Разработка программы с помощью языка программирования Delphi

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

vate declarations}

  • public
  • {Public declarations}
  • end;
  • var
  • FormAvto: TFormAvto;
  • implementation
  • uses Unit1;
  • {$R *.dfm}
  • procedure TFormAvto. BitBtnStartClick (Sender: TObject);
  • begin
  • SFam:=EFam. Text+ ;
  • SGr:=EGroup. Text;
  • hide;
  • FormTest. Show;
  • end;
  • end.
  • Модуль формы тестирования

    1. unit Unit1;
    2. interface
    3. uses
    4. Windows, Messages, SysUtils, Variants, Classes, Graphics,
    5. Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;
    6. type
    7. TFormTest = class(TForm)
    8. BitBtn1: TBitBtn;
    9. Label1: TLabel;
    10. LbNom: TLabel;
    11. StaticText1: TStaticText;
    12. RGroup1: TRadioGroup;
    13. BNewTest: TButton;
    14. procedure FormCreate (Sender: TObject);
    15. procedure BitBtn1Click (Sender: TObject);
    16. procedure BNewTestClick (Sender: TObject);
    17. procedure FormClose (Sender: TObject; var Action: TCloseAction);
    18. procedure FormActivate (Sender: TObject);
    19. private
    20. {Private declarations}
    21. public
    22. {Public declarations}
    23. end;
    24. TTest = record
    25. vopr:string;// вопрос
    26. ans:array [0..3] of string;// ответы
    27. korans:byte;// номер правильного ответа
    28. end;
    29. CVoprosi = class
    30. test: array of TTest;
    31. procedure AddTest (_vopr,_ans0,_ans1,_ans2,_ans3:string;_korans:byte);
    32. procedure Mix;
    33. end;
    34. var
    35. SFam, Sgr:string;// фамилия и группа учащегося
    36. fName:string;
    37. f: TEXTFILE;
    38. FormTest: TFormTest;
    39. BasaV:CVoprosi;
    40. CurN:byte;// номер текущего вопроса
    41. Ratio:byte;// количество правильных ответов
    42. implementation
    43. uses Unit2;
    44. {$R *.dfm}
    45. // метод для добавления нового теста в базу
    46. Procedure CVoprosi. AddTest (_vopr,_ans0,_ans1,_ans2,_ans3:string; _korans:byte);
    47. var ln:integer;
    48. begin
    49. ln:=Length(test);
    50. SetLength (test, ln+1);
    51. test[ln].vopr:= _vopr;
    52. test[ln].ans[0]:= _ans0;
    53. test[ln].ans[1]:= _ans1;
    54. test[ln].ans[2]:= _ans2;
    55. test[ln].ans[3]:= _ans3;
    56. test[ln].korans:= _korans;
    57. end;
    58. // перемешивание базы вопросов
    59. Procedure CVoprosi. Mix;
    60. var
    61. i, i1, i2, ln:byte;
    62. TestTmp:TTest;
    63. begin
    64. ln:=Length(test);
    65. for i:=1 to 20 do
    66. begin
    67. i1:=Random(ln);// случайный №1
    68. i2:=Random(ln);// случайный №2
    69. // меняем местами вопросы №1 и №2
    70. TestTmp:=test[i1];
    71. test[i1]:=test[i2];
    72. test[i2]:=TestTmp;
    73. end;
    74. end;
    75. procedure TFormTest. FormCreate (Sender: TObject);
    76. begin
    77. // формирование базы вопросов
    78. BasaV:=CVoprosi. Create;
    79. BasaV. AddTest (Что выведет следующая программа?+#10+#13+var i, sum:sіnglе;+#10+#13+
    80. bеgin+#10+sum:=1;+#10+
    81. for і:=2 to 10 dо sum:=sum+i;+#10+
    82. WrіtеLn(sum);+#10+еnd.,
    83. 10, 55, 9, произойдет ошибка компиляции, 3);
    84. BasaV. AddTest (Какое значение вернет выражение?+#10+ chr (ord(A)+3),
    85. A3, 68, D , C , 2);
    86. BasaV. AddTest (С чего не может начинаться идентификатор?,
    87. с малой латинской буквы, с большой латинской буквы, с подчеркивания, с цифры, 3);
    88. BasaV. AddTest (Что из нижеперечисленного может быть использовано как идентификатор?,
    89. ord, for1, cardinal, C#21, 1);
    90. BasaV. AddTest (Какой из приведенных типов целочисленный?,
    91. real, byte, double, single, 1);
    92. BasaV. AddTest (Какой из приведенных типов можно использовать для хранения дробных чисел?,
    93. byte, word, double, integer, 2);
    94. BasaV. AddTest (Какая из приведенных инструкций является циклом с заданным числом повторений?,
    95. while then , 1);
    96. BasaV. AddTest (Какая из приведенных инструкций является циклом с предусловием?,
    97. for then , 1);
    98. BasaV. AddTest (Какая из приведенных инструкций является циклом с постусловием?,
    99. for then , 2);
    100. BasaV. AddTest (Какая из приведенных инструкций является инструкцией ветвления?,
    101. for then , 3);
    102. BasaV. AddTest (Какая из приведенных инструкций целочисленного деления?,
    103. MOD, DIV, /, ODD, 1);
    104. BasaV. AddTest (Какая из приведенных инструкций остаток от деления?,
    105. MOD, DIV, /, ODD, 0);
    106. BasaV. AddTest (Какая из приведенных инструкций вещественного деления?,
    107. MOD, DIV, /, ODD, 2);
    108. BasaV. AddTest (Какая из приведенных инструкций проверка на четность?,
    109. MOD, DIV, /, ODD, 3);
    110. BasaV. AddTest (Укажите функцию округления по правилам арифметики:,
    111. TRUNC(), FRAC(), ROUND(), INT(), 2);
    112. BasaV. AddTest (Укажите функцию выделения дробной части числа:,
    113. TRUNC(), FRAC(), ROUND(), INT(), 1);
    114. BasaV. AddTest (Укажите функцию округления к нулю с целочисленным результатом:,
    115. TRUNC(), FRAC(), ROUND(), INT(), 0);
    116. BasaV. AddTest (Укажите функцию округления к нулю с вещественным результатом:,
    117. TRUNC(), FRAC(), ROUND(), INT(), 3);
    118. BasaV. AddTest (Укажите функцию открытия существующего файла:,
    119. ASSIGNFILE(), REWRITE(), RESET(), CLOSEFILE(), 2);
    120. BasaV. AddTest (Укажите функцию создания нового файла и открытия его для записи:,
    121. ASSIGNFILE(), REWRITE(), RESET(), CLOSEFILE(), 1);
    122. randomize;
    123. end;
    124. // ***************************
    125. // активизация формы с тестами
    126. // ***************************
    127. procedure TFormTest. FormActivate (Sender: TObject);
    128. var ln:integer;
    129. begin
    130. fName:=SFam+ (+SGr+)+.txt;
    131. assignfile (f, fName);
    132. rewrite(f);
    133. BNewTest. Visible:=false;
    134. // перемешивание базы вопросов
    135. BasaV. Mix;
    136. // количество правильных ответов
    137. Ratio:=0;
    138. // текущий вопрос 0
    139. curN:=0;
    140. // отображаем первый вопрос на форме
    141. StaticText1. Caption:=BasaV.test[curN].vopr;
    142. RGroup1. Items[0]:=BasaV.test[curN].ans[0];
    143. RGroup1. Items[1]:=BasaV.test[curN].ans[1];
    144. RGroup1. Items[2]:=BasaV.test[curN].ans[2];
    145. RGroup1. Items[3]:=BasaV.test[curN].ans[3];
    146. RGroup1. ItemIndex:=0;
    147. Ln:=Length (BasaV.test);
    148. LbNom. Caption:= IntToStr (curN+1) + из + IntToStr(Ln);
    149. end;
    150. // ***************************
    151. // обработчик нажатия на кнопку Принять ответ
    152. // ***************************
    153. procedure TFormTest. BitBtn1Click (Sender: TObject);
    154. var
    155. sRes, S:string;
    156. <