Программа для тестирования (тест)
|
|
kravekadze | Дата: Четверг, 05.04.2012, 12:58 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Code struct test { char fam[30]; int kolbal; }persona; extern int pravil_otvet; { FILE*f("C:\\test.txt"); f=fopen("test","rb") Fseek(f,SEEK_SET,SEEK_END); Fwrite(&persona,sizlof(test),1,f); Fread(&persona,sizeof(test),1,f); F=fopen(&persona,sizeof(test),1,f); while(!feof(f)); {Fread(&persona,sizeof(test),1,f); Form3->StringGrid1->celes[1][1];
Здравствуйте, помогите пожалуйста, очень помогла ваша программа, но мне нужно не много исправить её, чтобы этот текст сохранял результат, для 10 студентов выше мне написали что нужно писать но куда именно я не могу понять, помогите!!
Сообщение отредактировал Admin - Четверг, 05.04.2012, 21:50 |
|
| |
Admin | Дата: Четверг, 05.04.2012, 21:52 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
| Вас интересует чтобы данные о результате прохождения добавлялись в один файл или для каждого студента создавался свой файл?
|
|
| |
kravekadze | Дата: Пятница, 06.04.2012, 01:14 | Сообщение # 3 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| ну 1 для всех(чтоб была мини база данных, и чтоб потом результаты выдавались в таблице (stringGrid), чтоб студент вписал свои данные(ФИО), а баллы брались сами с 3 формы.
|
|
| |
Admin | Дата: Суббота, 07.04.2012, 14:18 | Сообщение # 4 |
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
| Для ввода ФИО добавьте на форму с приветствием компонент Edit, за количество баллов отвечает переменная s. Ну а код вам надо добавлять туда, где выполняется переход на 3 форму. Только вам его придется немного переделать. И почитайте: Потоки ввода-вывода Про структуры
|
|
| |
kravekadze | Дата: Суббота, 07.04.2012, 16:46 | Сообщение # 5 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| вот я не могу понять куда иммено его вводить, спасибо почитаю, попробую, если что отпишусь.... а вы не можите написать хотябы начало
|
|
| |
Admin | Дата: Воскресенье, 08.04.2012, 19:17 | Сообщение # 6 |
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
| К данным Edit обращайтесь так: Form1->Edit1->Text.c_str(); А код свой вставляйте когда тест завершен, т.е. переменная с количеством баллов накопила свой значение. И, наверное, имеет смысл хранить текстовый файл в папке с программой. ExtractFilePath(Application->ExeName) - возвращает путь к каталогу с программой.
|
|
| |
kravekadze | Дата: Понедельник, 09.04.2012, 04:49 | Сообщение # 7 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Спасибо большое, и последнее, мой код правильно написан? Если нет поправте его пожалуйста.
|
|
| |
Admin | Дата: Пятница, 13.04.2012, 16:27 | Сообщение # 8 |
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
| Добавьте этот код в начало обработчика события нажатия кнопки "Завершить тест":
Code AnsiString path = ExtractFilePath(Application->ExeName);//путь к папке из которой запускается приложение const char *file = "test.txt";//имя файла path +=file; char *cpath = path.c_str();//окончательный адрес файла
FILE *F;//указатель потока if ((F = fopen(cpath, "at")) == NULL) { ShowMessage("Не получается создать файл"); return; }
char fio[70];//массив символов для хранения ФИО strcpy(fio, Form1->Edit1->Text.c_str());//копируем текст из Edit с формы приветствия в массив
fprintf(F, "%s - %i \n", &fio, s);//выводим результат в файл в виде "ФИО" - "количество баллов" fclose( F );//закрываем поток
И добавьте #include <fstream.h> .
|
|
| |
fanCread | Дата: Вторник, 03.07.2012, 06:11 | Сообщение # 9 |
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
| здравствуйте, это снова я, очень помогла ваша помощь, сдал курсовую на 5. Но мне снова нужна ваша помощь! Подскажите как сделать чтоб ответ на вопрос нужно было вписать самому в Edit, и чтоб за каждый вопрос выставлялось 10 баллов а не 1?
Сообщение отредактировал Admin - Вторник, 03.07.2012, 12:56 |
|
| |
Admin | Дата: Вторник, 03.07.2012, 13:03 | Сообщение # 10 |
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
| Умножайте конечное число баллов на 10, вот вам и будет тот же эффект. Или проверку ответа по другому сделайте. Вместо: if(i==pravil_otvet)s++; сделайте: if(i==pravil_otvet)s += 10;
Что качается второго вопроса, то вам придется переделывать структуру проверки ответов. Все зависит от того, что будет находится в Edit - целые числа, вещественные числа, текст.
|
|
| |
fanCread | Дата: Среда, 04.07.2012, 16:04 | Сообщение # 11 |
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
| спасибо, поторопился с вопросом так-как сделал это сам) и у меня новый вопрос программу сделал, на первой форме у меня вопросы с выбором ответа, а на второй с вписыванием ответа в Edit но не могу сделать чтоб они складывались, чтоб после их сохранить и вывести в таблицу. вот моя программа посмотрите может подскажите как сделать _rghost.ru/39023374
Сообщение отредактировал fanCread - Четверг, 05.07.2012, 02:58 |
|
| |
Admin | Дата: Среда, 04.07.2012, 17:52 | Сообщение # 12 |
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
| Суммируйте переменные, отвечающие за количества баллов.
|
|
| |
fanCread | Дата: Четверг, 05.07.2012, 03:07 | Сообщение # 13 |
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
| он почему то не берет переменную "s" со второй формы может её как-то объявить по другому надо?
|
|
| |
Admin | Дата: Четверг, 05.07.2012, 10:58 | Сообщение # 14 |
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
| Надо объявить её глобальной: extern int s = 0; А в других модулях просто: int s;
|
|
| |
Deer | Дата: Воскресенье, 29.03.2015, 18:26 | Сообщение # 15 |
Рядовой
Группа: Пользователи
Сообщений: 2
Статус: Offline
| У меня пишет ошибку File, F, fopen, fprintf, fclose (((
|
|
| |