2.2.3 Требования к персоналу (пользователю)
Конечный пользователь программы (оператор) должен обладать практическими навыками
работы с графическим пользовательским интерфейсом операционной системы.
2.3.1 Загрузка и запуск программы
Загрузка и запуск программы «Учебная база данных» осуществляется способами, детальные сведения о которых изложены в Руководстве пользователя операционной системы.
После запуска программы появляется окно программы, содержащее главное меню программы (рис. 1)
Рисунок 1
Для продолжения работы требуется ввести цифру, соответствующую нужному пункту меню.
2.3.2.1 Выполнение функции добавления записи
Для добавления данных нужно ввести цифру «1» в окне программы указанном на рисунке 1, после чего нажать клавишу «Enter». Далее окно программы примет следующий вид (рис. 2).
Рисунок 2
В ответ на запрос программы пользователь должен ввести запрашиваемые данные, завершая ввод информации нажатием клавиши «Enter». Последовательно вводя данные, которые запрашивает программа, пользователь увидит следующее окно программы (рис. 3).
Рисунок 3
Для продолжения работы и возврата в главное меню (рис. 1) от пользователя требуется нажать на любую клавишу.
2.3.2.2 Выполнение функции редактирования записи
Для добавления данных нужно ввести цифру «2» в окне программы указанном на рисунке 1, после чего нажать клавишу «Enter». Далее окно программы примет следующий вид (рис. 4).
Рисунок 4
Для редактирования показанной на экране записи пользователю нужно нажать на клавишу «Enter». Для возврата в главное меню программы следует нажать на клавишу «Escape», а для перехода к следующей записи — любую клавишу, отличную от «Escape» и «Enter».
После нажатия пользователем клавиши «Enter» окно программы примет следующий вид (рис. 5).
Рисунок 5
Для редактирования какого-либо из перечисленных полей пользователю нужно ввести соответствующую цифру, указанную перед названием этого поля в показанном списке и нажать клавишу «Enter». После этого окно программы будет выглядеть следующим образом (рис. 6)
Рисунок 6
На экране появится текущее значение редактируемого поля и запрос на ввод нового значения. После того как пользователь введет новое значение и нажмет «Enter» окно программы снова примет вид, показанный на рисунке 4.
2.3.2.3 Выполнение функций удаления записи
Для удаления записи нужно ввести цифру «3» в окне программы указанном на рисунке 1, после чего нажать клавишу «Enter». Далее окно программы примет следующий вид (рис. 7).
Рисунок 7
Для удаления записи, данные о которой показываются в окне программы, пользователю требуется нажать клавишу «Enter».
После этого программа удалит текущую запись и на экране отобразятся данные о следующей записи.
Для возврата в главное меню программы нужно нажать клавишу «Escape».
2.3.2.4 Выполнение функций сортировки данных
Для сортировки данных нужно ввести цифру «4» в окне программы указанном на рисунке 1, после чего нажать клавишу «Enter». Далее окно программы примет следующий вид (рис. 8).
Рисунок 8
В данном окне следует выбрать критерий сортировки данных и ввести соответствующую цифру, после чего нажать клавишу «Enter». Программа выведет отсортированный список на экран (рис. 9)
Рисунок 9
Выход в главное меню осуществится после нажатия любой клавиши.
2.3.3 Завершение работы программы
Для завершения работы и выхода из программы необходимо в главном меню программы (рис. 1) ввести цифру «0» и нажать клавишу «Enter». После этого программа закончит работу и выгрузится из оперативной памяти ПК.
2.4.1 Сообщение «Некорректный ввод данных»
Программа при добавлении или редактировании записи выдает сообщение об ошибке, показанное на рисунке 10.
Рисунок 10
ПРИЧИНА. Данное сообщение появляется, когда пользователь вводит для обозначения пола ученика значения, отличные от букв «м» и «ж».
ДЕЙСТВИЯ ПРОГРАММЫ. Программа не заносит ошибочные данные и повторно запрашивает у пользователя указать пол ученика, используя строчную русскую букву «м» для обозначения мужского пола или строчную русскую букву «ж» для обозначения женского.
ДЕЙСТВИЯ ОПЕРАТОРА. Убедиться в том, что вводятся именно русские строчные буквы «м» или «ж», при необходимости сменить раскладку клавиатуры на русскоязычную.
usescrt;
typepupil=record{переменная типа запись для хранения данных об ученике}
fam, name: string[30]; {фамилия, имя}
pol: boolean; {пол, мужской = true}
data, ves, rost: integer; {год рождения, вес, рост}
end;
var p: pupil;
f: file of pupil; {файл записей об учениках}
knc: boolean; {флаг окончания программы}
v: integer; {переменная для хранения выбора пункта меню}
procedureadd; {процедура добавления новой записи в файл}
var u: pupil;
s: string;
n: integer;
pl, ok :boolean;
c: char;
begin
clrscr; {очистка экрана}
writeln('---Добавление записи---'); {вывод информационных надписей на экран}
writeln('Введите фамилию ученика');
readln(s) {считывание введенной пользователем информации}
u.fam := s; {занесение введенной пользователем фамилии ученика в переменную типа запись}
writeln('Введите имя ученика');
readln(s);
u.name := s;
writeln('Укажите пол ученика, если мужской - введите букву "м", если женский - "ж"');
readln(c);
if (c = 'м') or (c = 'ж') thenok := trueelseok := false; {проверка корректности введенных данным о поле ученика}
whilenotokdo {выполняем до тех пор, пока пол не будет верно указан}
begin
writeln('Некорректный ввод данных');
writeln('Вводите строчные русские буквы!');
writeln('Укажите пол ученика, если мужской - введите букву "м", если женский - "ж"');
readln(c);
if (c = 'м') or (c = 'ж') then ok := true else ok := false;
end;
if c = 'м' then pl := true else pl := false;
u.pol := pl;
writeln('Введите год рождения ученика');
readln(n);
u.data := n;
writeln('Введите вес ученика');
readln(n);
u.ves := n;
writeln('Введите рост ученика');
readln(n);
u.rost := n;
reset(f); {открываем файл для чтения}
seek(f, filesize(f)); {устанавливаем указатель на последнюю запись файла}
write(f,u); {дописываем в конец файла запись об ученике}
close(f); {закрываем файл}
writeln('Запись добавлена, нажмите любую клавишу для продолжения');
repeatuntilkeypressed; {ждем, пока не нажата какая-нибудь клавиша}
c := readkey;
end;
procedureedit; {процедура редактирования записи в файле}
var u: pupil;
s: string;
n, i, k: integer;
pl, ok, next: boolean;
c: char;
begin
reset(f); {открываемфайлдлячтения}
k := 0; {устанавливаем начальное значение счетчика}
whilek < filesize(f) do {выполняем пока счетчик меньше количества записей в файле}
begin
seek(f,k); {ищем запись с номером, совпадающим со счетчиком}
clrscr; {очищаем экран}
writeln('---Редактирование записи---');
writeln('Фамилия':15, 'Имя':15, 'Пол':10, 'Год рождения':17, 'Вес':6, 'Рост':6);{выводим заголовки для полей записи}
read(f, u);{считываем запись из файла}
ifu.polthens := 'Мужской' elses := 'Женский'; {переводим логическое обозачение пола в строку}
writeln(u.fam:15, u.name:15, s:10, u.data:17, u.ves:6, u.rost:6);{выводим данные из записи}
writeln;
writeln('Enter - редактирование текущей записи, Esc - выход в меню');
writeln('любая другая клавиша - переход к следующей записи');
repeatuntilkeypressed;{ждем, пока не нажата какая-нибудь клавиша}
c := readkey;
iford(c) = 27 thenexit; {если нажата клавиша ESC, то выходим из процедуры}
next := true;
iford(c) = 13 then {если нажата клавиша Enter, то выполняем следующее}
begin
writeln;
writeln('Выберите поле для редактирования');{выводим информацию о выборе поля для редактирования}
writeln('1 - Фамилия');
writeln('2 - Имя');
writeln('3 - Пол');
writeln('4 - Год рождения');
writeln('5 - Вес');
writeln('6 - Рост');
writeln('0 - Отмена редактирования и переход к следующей записи');
readln(i); {считываем выбор пользователя}
caseiof{в зависимости от выбора пользователя выполняем}
1: begin {если пользователь ввел "1", то редактируем фамилию}
writeln('Старое значение поля "Фамилия" - ', u.fam); {выводим на экран фамилию, указанную в записи}
write('Введите новое значение: '); {выводим запрос для ввода измененной фамилии}
readln(s); {считываем введенное пользователем значение}
u.fam := s; {заносим значение введенное пользователем в запись}
seek(f,k); {ищем запись с номером счетчика в файле}
write(f,u); {записываем измененную запись в файл}
next := false; {устанавливаем признак того, что на следующую запись после редактирования переходить не нужно}