Используя записи, написать программу, которая заполняет анкеты студентов - Pascal ABC (13725)
Формулировка задачи:
Добрый вечер форум, есть задание, которое нужно будет сдать до завтрашнего утра, сам я по времени не успеваю сдеалтрь все, так что пожалуйста, помогите студенту, который валил сессию, а теперь восстанавливается.
Используя записи, написать программу, которая заполняет анкеты студен-тов. Анкета включает в себя ФИО, возраст, пол, номер группы и оценки по че-тырем предметам. Программа выводит ФИО студента, который имеет макси-мальный балл по четырем предметам.
Решение задачи: «Используя записи, написать программу, которая заполняет анкеты студентов»
textual
Листинг программы
program pr; type student=record numbergroup:integer; nameson:string[50]; age:integer; sex:string[20]; end; marks=record phisical:integer; math:integer; prog:integer; history:integer; end; var i,n:integer; stud:array [1..100] of student; // массив студентов (массив структур student) ocenki:array [1..100] of marks; procedure fill(); var i:integer; f:file of student; begin assign(f,'c:\studentsfill.txt'); rewrite(f); for i:=1 to n do begin writeln('Введите номер группы'); readln(stud[i].numbergroup); writeln('Введите имя,фамилию,отчество студента'); readln(stud[i].nameson); writeln('Введите возраст'); readln(stud[i].age); writeln('Введите пол'); readln(stud[i].sex); writeln('Введите оценки по физике'); readln(ocenki[i].phisical); writeln('Введите оценки по математике'); readln(ocenki[i].math); writeln('Введите оценки по программированию'); readln(ocenki[i].prog); writeln('Введите оценки по истории'); readln(ocenki[i].history); write(f,stud[i]); end; close (f); end; procedure show(); var i:integer; f:file of student; begin assign(f,'c:\studentsfill.txt'); reset (f); while not eof (f) do begin inc(i); read(f,stud[i]); if ((ocenki[i].phisical=5)and(ocenki[i].math=5)and(ocenki[i].prog=5)and(ocenki[i].history=5)) then begin writeln('Студенты,которые имею максимальный бал по всем предметам: ',stud[i].nameson); end; end; close (f); end; begin writeln('Введите количество студентов:'); readln(n); fill(); show(); end.
Объяснение кода листинга программы
- Создается тип данных
student
иmarks
, представляющий структуру информации о студенте и его оценках соответственно. - Создается переменная
i
для отслеживания текущего индекса студента в массиве. - Создается массив
stud
для хранения информации о студентах и массивocenki
для хранения оценок. - Создается процедура
fill
, которая считывает информацию о студентах из файла и записывает ее в соответствующие структуры. - В процедуре
show
происходит вывод информации о студентах, у которых все оценки равны максимальным баллам. - Программа завершается после вывода информации о всех студентах.