Автор работы: Пользователь скрыл имя, 20 Февраля 2015 в 18:39, курсовая работа
Цель работы: разработать программу проверки знаний для тестирования студентов по программированию с кодом на языке Delphi, для ввода и вывода данных использовать компоненты Delphi.
В первом разделе курсовой работы выполнен анализ технического задания, выделены функции, которыми должно обладать разрабатываемое приложение, а также сформулированы требования к нему, произведена постановка задачи на проектирование. Во втором разделе выполняется анализ задачи проектирования, анализируется вид исходных данных, в зависимости от чего проектируется визуальный интерфейс и приводится словесный алгоритм работы программы. В третьем разделе рассматриваются алгоритмы разработанных процедур и функций, а также приводятся их описания. К реализованной программе разработана инструкция пользователя, которая приведена в четвертом разделе.
144. 'TRUNC()', 'FRAC()', 'ROUND()', 'INT()', 2);
145. BasaV. AddTest ('Укажите функцию выделения дробной части числа:',
146. 'TRUNC()', 'FRAC()', 'ROUND()', 'INT()', 1);
147. BasaV. AddTest ('Укажите функцию округления к нулю с целочисленным результатом:',
148. 'TRUNC()', 'FRAC()', 'ROUND()', 'INT()', 0);
149. BasaV. AddTest ('Укажите функцию округления к нулю с вещественным результатом:',
150. 'TRUNC()', 'FRAC()', 'ROUND()', 'INT()', 3);
151. BasaV. AddTest ('Укажите функцию открытия существующего файла:',
152. 'ASSIGNFILE()', 'REWRITE()', 'RESET()', 'CLOSEFILE()', 2);
153. BasaV. AddTest ('Укажите функцию создания нового файла и открытия его для записи:',
154. 'ASSIGNFILE()', 'REWRITE()', 'RESET()', 'CLOSEFILE()', 1);
155. randomize;
156. end;
157. // ***************************
158. // активизация формы с тестами
159. // ***************************
160. procedure TFormTest. FormActivate (Sender: TObject);
161. var ln:integer;
162. begin
163. fName:=SFam+' ('+SGr+')'+'.txt';
164. assignfile (f, fName);
165. rewrite(f);
166. BNewTest. Visible:=false;
167. // перемешивание базы вопросов
168. BasaV. Mix;
169. // количество правильных ответов
170. Ratio:=0;
171. // текущий вопрос 0
172. curN:=0;
173. // отображаем первый вопрос на форме
174.
StaticText1. Caption:=BasaV.test[curN].
175.
RGroup1. Items[0]:=BasaV.test[curN].
176.
RGroup1. Items[1]:=BasaV.test[curN].
177.
RGroup1. Items[2]:=BasaV.test[curN].
178.
RGroup1. Items[3]:=BasaV.test[curN].
179. RGroup1. ItemIndex:=0;
180. Ln:=Length (BasaV.test);
181. LbNom. Caption:= IntToStr (curN+1) + ' из ' + IntToStr(Ln);
182. end;
183. // ***************************
184. // обработчик нажатия на кнопку «Принять ответ»
185. // ***************************
186. procedure TFormTest. BitBtn1Click (Sender: TObject);
187. var
188. sRes, S:string;
189. ln:byte;
190. begin
191. // проверка ответа
192. Ln:=Length (BasaV.test);
193. if (CurN<ln) then
194. begin
195. // записываем лог ответов в файл
196. S:= BasaV.test[curN].vopr + ' (ответил: – '+
197. BasaV.test[curN].ans [RGroup1. ItemIndex]+')';
198. writeln (f, S);
199. // проверяем, правильно ли был сделан ответ
200. if (RGroup1. ItemIndex = BasaV.test[curN].Korans) then
201. Ratio:= Ratio +1;
202. CurN:=CurN+1;
203. if CurN=ln then // была последняя запись
204. begin
205. // сообщение с результатом
206. sRes:= 'Итоговая оценка: '+FloatToStr (Ratio*12/ln);
207. // запись результа в файл
208. writeln (f, Sfam+Sgr);
209. writeln (f, sRes);
210. CloseFile(f);
211. end;
212. end;
213. if CurN>=ln then
214. begin
215. sRes:= 'Итоговая оценка: '+FloatToStr (Ratio*12/ln);
216. Application. MessageBox (PAnsiChar(sRes), PAnsiChar (SFam+Sgr));
217. BNewtest. Visible:=true;
218. exit;
219. end;
220. // отображаем следующий вопрос на форме
221.
StaticText1. Caption:=BasaV.test[curN].
222.
RGroup1. Items[0]:=BasaV.test[curN].
223.
RGroup1. Items[1]:=BasaV.test[curN].
224.
RGroup1. Items[2]:=BasaV.test[curN].
225.
RGroup1. Items[3]:=BasaV.test[curN].
226. RGroup1. ItemIndex:=0;
227. LbNom. Caption:= IntToStr (curN+1) + ' из ' + IntToStr(Ln);
228. end;
229. // ***************************
230. // закрыте формы с тестами
231. // ***************************
232. procedure TFormTest.BNewTestClick (Sender: TObject);
233. begin
234. Close;
235. end;
236. // ***************************
237. // активизация формы с авторизации
238. // ***************************
239. procedure TFormTest. FormClose (Sender: TObject; var Action: TCloseAction);
240. begin
241. FormAvto. Show;
242. end;
243.
244. end.
Приложение В
Моя программа выполняет тестирование студентов по программированию. При открытии программы появляется окно (рис В.1), тестирования в котором нужно вести Фамилию Имя и Группу. Тестирование состоит из 20 вопросов, в каждом вопросе четыре варианта ответа необходимо выбрать один правильный (рис В.2). В конце тестирования появляется окно в котором выводится бал за количество ответов по 12 бальной системе (рис В.3).
Рисунок В.1 – Окно авторизации
Рисунок В.2 – Внешний вид формы FormTest
Рисунок В.3 – Итог
Информация о работе Разработка программы с помощью языка программирования Delphi