Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.11.2011, 22:59
Fenrix Fenrix вне форума
Прохожий
 
Регистрация: 14.11.2011
Сообщения: 3
Репутация: 10
Печаль Написание в Delphi программы для создания и прохождения теста. Помогите, пожалуйста

Здравствуйте! Очень нужна ваша помощь. Задали курсовой проект, который нужно выполнить в течении 8-ми дней. Боюсь, что я не справлюсь за такое время, так как начинающий. Буду благодарен за любую, даже самую минимальную информацию. Может быть, кто-нибудь хоть с блок-схемой поможет...

В общем, программа должна состоять из основного окна и трёх дополнительных окон (форм): "Создание теста", "Прохождение теста" и "О программе". Собственно, гравная форма должна содержать лишь три кнопки - для вызова тех трёх перечисленных окон. Ну, это-то я уже сделал: создал три формы, оформил окошко "О программе". А дальше затрудняюсь...

___________________________


Вот подробное описание задания, которое дал преподаватель:


Написать программу для тестирования знаний в той или иной области.
Программа должна иметь:

1. Окно, котрое даёт возможность создавать тест.
а) Тест должен храниться в ini-файле.
b) Если при создании теста файл уже существует, то его необходимо удалить.
c) В файле должна храниться информация: ФИО преподавателя, создавшего тест и название предмета, по которому создаётся тест.
d) На каждый вопрос должно быть предусмотрено 4 варианта ответа ответа.
e) Правильным может быть только один ответ.
f) Давать возможность вводить неограниченное число вопросов.

2. Окно, которое даёт возможность проходить тестирование.
а) При выборе режима прохождения тестирования, предоставить возможность ввода ФИО тестируемого пользователя и группу.
b) редусмотреть проверку существующего файла теста.
c) По окончанию тестирования выдавать оценку знаний: 5 - если правильных ответов 90-100%; 4 - если правильных ответов 80-90%; 3 - если правильных ответов 60-80%; тест не сдан, если правильных ответов менее 60%.
d) По окончанию тестирования предусмотреть возможность отображения списка вопросов с правильными и неправильными ответам, оценки тестирования.

3. Окно "О программе". (Это я уже сделал)


Примерная структура ini-файла:
[Тест]
Название теста=Общее
Составитель теста=Иванова
Количество вопросов=2
[Вопрос №1]
Текст вопроса=сезон
Текст ответа1=зима
Текст ответа2=лето
Текст ответа3=весна
Текст ответа4=осень
Правильный ответ=3
[Вопрос №2]
Текст вопроса=день недели
Текст ответа1=вторник
Текст ответа2=среда
Текст ответа3=суббота
Текст ответа4=пятница
Правильный ответ=1
Ответить с цитированием
  #2  
Старый 14.11.2011, 23:02
Аватар для @Rafa3L
@Rafa3L @Rafa3L вне форума
Начинающий
 
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
По умолчанию

43$, подробности в приват.
__________________
Помогаю платно.
Помогаю иногда бесплатно.
Ответить с цитированием
  #3  
Старый 14.11.2011, 23:11
Аватар для Nikitiy_II
Nikitiy_II Nikitiy_II вне форума
Новичок
 
Регистрация: 01.05.2008
Сообщения: 52
Репутация: 11
По умолчанию

Возьмусь за 25$
Ответить с цитированием
  #4  
Старый 15.11.2011, 08:16
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Сделаю за 400 руб на телефон )
Ответить с цитированием
  #5  
Старый 16.11.2011, 00:59
p2rcoder p2rcoder вне форума
Прохожий
 
Регистрация: 15.11.2011
Сообщения: 7
Репутация: 10
По умолчанию

сделаю и доплачу еще 10$ автору
Ответить с цитированием
  #6  
Старый 16.11.2011, 13:22
t116 t116 вне форума
Новичок
 
Регистрация: 29.06.2011
Адрес: Луганск
Сообщения: 92
Версия Delphi: Delphi7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от p2rcoder
сделаю и доплачу еще 10$ автору
Просто заплачу автору 400 рублей, если он еще 30000 таких постов напишет
Ответить с цитированием
  #7  
Старый 16.11.2011, 19:53
Fenrix Fenrix вне форума
Прохожий
 
Регистрация: 14.11.2011
Сообщения: 3
Репутация: 10
По умолчанию

Эх, мне сейчас не весело... Примерно представляю решение процентов на 40, а ещё параллельно куча дел и подготовка к другим экзаменам.

Один человек согласился помочь.
Ответить с цитированием
  #8  
Старый 16.11.2011, 21:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

можно делать по простому, можно по нормальному. во втором варианте ini-файл не катит, хотя можно и в ini.

если говорить по простому, то тебе потребуются примерно такие структуры:

Код:
type
  TQuestion = record
     Text : String;
      Answers :  Array Of String;
      CorrectAnswer : Integer;
  end;

  TTest = record
     Name : String;
     Author : String;
     Questions : Array Of TQuestion;
  end;

Для удобства я бы добавил в секцию вопроса так же кол-во ответов на вопрос (что бы не разбирать динамически). Таким образом, код чтения и сохранения будет примерно такой:

Код:
var
   FTest : TTest;

procedure LoadTest(AFileName : String);
var
  ini : TIniFile;
  I, J : Integer;
  cQ, cA : Integer;
  qName : String;
begin
  FTest.Name := '';
  FTest.Author := '';
  SetLength(FTest.Questions,0);
  If Not FileExist(AFileName) Then Exit;
  
  ini := TIniFile.Create(AFileName);
  Try
     FTest.Name := Ini.ReadString('Тест','Название теста','');
	 FTest.Author := Ini.ReadString('Тест','Составитель теста','');
	 cQ := ini.ReadInteger('Тест','Количество вопросов',0);
	 SetLength(FTest.Questions,cQ);
	 For I := 0 To cQ-1 Do
	   Begin
	     qName := 'Вопрос №1'+IntToStr(I);
	     FTest.Questions[i].Text := ini.ReadString(qName,'Текст вопроса','');
		 FTest.Questions[i].CorrectAnswer := ini.ReadInteger(qName,'Правильный ответ',-1);
		 cA := ini.ReadInteger('Тест','Количество ответов',0);
		 SetLength(FTest.Questions[i].Answers,cA);
		 For J := 0 To cA-1 Do
		   FTest.Questions[i].Answers[J] := ini.ReadString(qName,'Текст ответа'+IntToStr(J),'');
	   End;
  Finally
    ini.Free;
  End;
end;

procedure SaveTest(AFileName : String);
var
  ini : TIniFile;
  I, J : Integer;
  qName : String;
begin
  ini := TIniFile.Create(AFileName);
  Try
     Ini.WriteString('Тест','Название теста',FTest.Name);
	 Ini.WriteString('Тест','Составитель теста',FTest.Author);
	 ini.WriteInteger('Тест','Количество вопросов',Length(FTest.Questions));
     For I := Low(FTest.Questions) To High(FTest.Questions) Do
	   Begin
		 qName := 'Вопрос №1'+IntToStr(I);
	     ini.WriteString(qName,'Текст вопроса',FTest.Questions[i].Text);
		 ini.WriteInteger(qName,'Правильный ответ',FTest.Questions[i].CorrectAnswer);
		 ini.WriteInteger('Тест','Количество ответов',Length(FTest.Questions[i].Answers));
		 For J := Low(FTest.Questions[i].Answers) To High(FTest.Questions[i].Answers) Do
			ini.WriteString(qName,'Текст ответа'+IntToStr(J),FTest.Questions[i].Answers[J]);
	   End;
  Finally
    ini.Free;
  End;
end;

ну а уж визуальную работу с этой структурой ты сам сделаешь, там уже не сложно.
Ответить с цитированием
  #9  
Старый 16.11.2011, 21:07
Fenrix Fenrix вне форума
Прохожий
 
Регистрация: 14.11.2011
Сообщения: 3
Репутация: 10
По умолчанию

lmikle, спасибо за подсказку!
Насчёт ini-файла - это обязательное условие задания.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter