КС1108 Л/Р 4 | 19:01 |
Всем, кому надо выкладываю код своей лабы. Соотв., думаю, догодаетесь что и где поменять. Все выстроено по принципу:
Code program Laba4; {$APPTYPE CONSOLE} uses SysUtils; type {Описание нашей записи} STUDENTS = record fio : string[255]; b : array[1..5] of integer; group : string[15]; end; {Используемые переменные} var sfile: file of STUDENTS; // Переменная файла action : integer; // Выбранное действие flag : boolean; // Переменная-флаг s: char; // Символьная переменная procedure eItem(var s : STUDENTS); {Процедура ввода данных в запись} begin writeln('Enter student FIO'); readln(s.fio); writeln('Enter student GROUP'); readln(s.group); writeln('Enter student BALL1'); readln(s.b[1]); writeln('Enter student BALL2'); readln(s.b[2]); writeln('Enter student BALL3'); readln(s.b[3]); writeln('Enter student BALL4'); readln(s.b[4]); writeln('Enter student BALL5'); readln(s.b[5]); end; procedure oItem(s : STUDENTS); {Процедура вывода данных из записи} begin writeln(''); writeln('Student ', s.fio); writeln(' Gruop : ', s.group); writeln(' B1 : ', s.b[1]); writeln(' B2 : ', s.b[2]); writeln(' B3 : ', s.b[3]); writeln(' B4 : ', s.b[4]); writeln(' B5 : ', s.b[5]); writeln(' SB : ',round((s.b[1]+s.b[2]+s.b[3]+s.b[4]+s.b[5])/5)); end; procedure newFile(); {Процедура создания нового файла} var fname : string[100]; student : STUDENTS; begin writeln('Enter new file name:'); readln(fname); assign(sfile,fname); rewrite(sfile); s := 'y'; while( (s='y') or (s='Y')) do begin eItem(student); writeln('Add another student, Y/N ?'); write(sfile, student); readln(s); end; close(sfile); end; { Функция просмотра списка студентов } procedure viewFile(); {Процедура просмотра файла} var fname : string[100]; student : STUDENTS; begin writeln('Enter new file name:'); readln(fname); assign(sfile,fname); reset(sfile); while( not eof(sfile)) do begin read(sfile, student); oItem(student); end; close(sfile); end; { Функция добавления студентов } procedure addItem(); {Процедура добавления записей в файл} var fname : string[100]; student : STUDENTS; st : array of STUDENTS; i: integer; begin writeln('Enter new file name:'); readln(fname); assign(sfile,fname); reset(sfile); while(not eof(sfile)) do begin setlength(st, length(st)+1); read(sfile,st[length(st)-1]); end; close(sfile); rewrite(sfile); for i := 0 to length(st) - 1 do begin write(sfile, st[i]); end; s := 'y'; while( (s='y') or (s='Y')) do begin eItem(student); writeln('Add another student, Y/N ?'); write(sfile, student); readln(s); end; close(sfile); end; procedure runFile(); {Процедура выполнения файла, выполнения - значит проведение действий указанных в задании} var fname : string[100]; st : array of STUDENTS; s : STUDENTS; i,j: integer; begin writeln('Enter new file name:'); readln(fname); assign(sfile,fname); reset(sfile); while(not eof(sfile)) do begin setlength(st, length(st)+1); read(sfile,st[length(st)-1]); end; close(sfile); for i := 0 to length(st) - 1 do begin for j := 0 to length(st) - 1 - i do begin if(AnsiCompareStr(st[j].group,st[j+1].group)>0) then begin s := st[j]; st[j] := st[j+1]; st[j+1] := s; end; end; end; for i := 0 to length(st) - 1 do if((st[i].b[1]+st[i].b[2]+st[i].b[3]+st[i].b[4]+st[i].b[5])/5 >= 4) then oItem(st[i]); end; begin {Главная функция, тут происходит выбор нужного действия} flag := true; while(flag) do begin s := 'n'; writeln(' Choose action:'); writeln('1. New file'); writeln('2. Add item'); writeln('3. View file'); writeln('4. Run file'); readln(action); case action of 1 : begin newFile(); end; 2 : begin addItem(); end; 3 : begin viewFile(); end; 4 : begin runFile(); end; end; writeln(''); writeln('Continue working, Y/N? '); readln(s); if( (s = 'Y') or (s = 'y') ) then flag := true else flag :=false; writeln('');writeln('');writeln(''); end; end. | |
Категория: Coding | Просмотров: 652 | Добавил: DeT | Теги: институт, лабы |
Всего комментариев: 0 | |