Лабы+курсовик(1) / Информатика(Курсовик) / Информатика (Курсовик)
.docЗадание на курсовую работу
В файл F_IN.dat требуется записать данные об учениках: Ф.И.О., дата рождения, домашний адрес и телефон.
Требуется:
-
Распечатать список учащихся;
-
Определить фамилию самого старшего и самого младшего учеников;
-
Сформировать файл F_OUT.dat, который бы содержал фамилии и адреса учеников, родившихся в заданном месяце.
Алгоритм программы
-
Задание количества записей списка;
-
Ввод данных обучающихся: Ф.И.О., адрес, телефон, дата рождения;
-
Очистка экрана;
-
Вывод на экран монитора полный список введенных данных;
-
Вывод данных на принтер;
-
Создание/перезапись файла «F_IN.Dat» в который заносится весь список данных;
-
Закрытие файла «F_IN.Dat»;
-
Данные из первого элемента массива принимаются за минимальные/максимальные по возрасту;
-
Непосредственный выбор (поиск) в массиве данных, отвечающих наименьшему значению возраста;
-
Непосредственный выбор (поиск) в массиве данных, отвечающих наибольшему значению возраста;
-
Вывод полученных значений на экран монитора;
-
Задание номера месяца, по значению которого необходимо создать файл выхода данных «F_Out.dat»;
-
Создание файла «F_Out.dat», в котором заносятся данные из списка, отвечающие заданному месяцу;
-
Закрытие файла «F_Out.dat».
Текст программы
program Kursovik;
uses CRT,printer;
const n=10;
type
zap=record
name:string;
adres:string;
bday:array[1..3]of integer;
tel:longint;
end;
var
i,j:integer;
c:char;
book: array[1..n] of zap;
max,min:zap;
mes,col:Integer;
f:text;
begin
clrscr;
write('Vvedite kolichestvo zapisey: ');
readln(col);
for i:=1 to col do
begin
writeln;
write('Familia: ');
readln(book[i].name);
write('Adres: ');
readln(book[i].adres);
write('Telefon: ');
readln(book[i].tel);
write('Data rozdenia: ');
for j:=1 to 3 do
readln(book[i].bday[j]);
writeln;
end;
clrscr;
for i:=1 to col do
begin
write(book[i].name);
write(' ');
write(book[i].adres);
write(' ');
write(book[i].tel);
write(' ');
for j:=1 to 3 do
begin
write(book[i].bday[j]);
write('.');
end;
writeln;
end;
for i:=1 to col do
begin
write(lst,book[i].name);
write(lst,' ');
write(lst,book[i].adres);
write(lst,' ');
write(lst,book[i].tel);
write(lst,' ');
for j:=1 to 3 do
begin
write(lst,book[i].bday[j]);
write(lst,'.');
end;
writeln;
end;
assign(f,'f_in.dat');
rewrite(f);
for i:=1 to col do
begin
write(f,book[i].name);
write(f,'; ');
write(f,book[i].adres);
write(f,'; ');
write(f,book[i].tel);
write(f,'; ');
for j:=1 to 3 do
begin
write(f,book[i].bday[j]);
write(f,'; ');
end;
writeln(f,'');
end;
close(f);
min.name:=book[1].name;
min.adres:=book[1].adres;
min.tel:=book[1].tel;
for j:=1 to 3 do
min.bday[j]:=book[1].bday[j];
max.name:=book[1].name;
max.adres:=book[1].adres;
max.tel:=book[1].tel;
for j:=1 to 3 do
max.bday[j]:=book[1].bday[j];
for i:=1 to col do
begin
if (book[i].bday[3]<min.bday[3])then
begin
min.name:=book[i].name;
min.adres:=book[i].adres;
min.tel:=book[i].tel;
for j:=1 to 3 do
min.bday[j]:=book[i].bday[j];
end;
if (book[i].bday[3]>max.bday[3]) then
begin
max.name:=book[i].name;
max.adres:=book[i].adres;
max.tel:=book[i].tel;
for j:=1 to 3 do
max.bday[j]:=book[i].bday[j];
end;
if (book[i].bday[3]=min.bday[3])then
begin
if (book[i].bday[2]<min.bday[2])then
begin
min.name:=book[i].name;
min.adres:=book[i].adres;
min.tel:=book[i].tel;
for j:=1 to 3 do
min.bday[j]:=book[i].bday[j];
end;
if (book[i].bday[2]=min.bday[2])then
begin
if (book[i].bday[1]<min.bday[1])then
begin
min.name:=book[i].name;
min.adres:=book[i].adres;
min.tel:=book[i].tel;
for j:=1 to 3 do
min.bday[j]:=book[i].bday[j];
end;
end;
end;
if (book[i].bday[3]=max.bday[3])then
begin
if (book[i].bday[2]>max.bday[2])then
begin
max.name:=book[i].name;
max.adres:=book[i].adres;
max.tel:=book[i].tel;
for j:=1 to 3 do
max.bday[j]:=book[i].bday[j];
end;
if (book[i].bday[2]=max.bday[2])then
begin
if (book[i].bday[1]>max.bday[1])then
begin
max.name:=book[i].name;
max.adres:=book[i].adres;
max.tel:=book[i].tel;
for j:=1 to 3 do
max.bday[j]:=book[i].bday[j];
end;
end;
end;
end;
writeln('Samiy molodoy: ',max.name,' - ',max.adres,'; ',max.tel,'; ',max.bday[1],'.',max.bday[2],'.',max.bday[3]);
writeln('Samiy starshiy: ',min.name,' - ',min.adres,'; ',min.tel,'; ',min.bday[1],'.',min.bday[2],'.',min.bday[3]);
write('Vvedite mesiac dlya sortirovki: ');
readln(mes);
assign(f,'f_out.dat');
rewrite(f);
for i:=1 to col do
begin
if (book[i].bday[2]=mes)then
begin
write(f,book[i].name);
write(f,'; ');
write(f,book[i].adres);
write(f,'; ');
write(f,book[i].tel);
write(f,'; ');
for j:=1 to 3 do
begin
write(f,book[i].bday[j]);
write(f,'.');
end;
writeln(f,'');
end;
end;
close(f);
end.
Пример работы программы
1) Vvedite kolichestvo zapisey: 3
Familia: Timofeev
Adres: Yahtennaya
Telefon: 3447453
Data rozdenia: 31 03 1985
Familia: Zaharov
Adres: Skolnaya
Telefon: 3445584
Data rozdenia: 26 06 1985
Familia: Ivanov
Adres: Nevskiy prospect
Telefon: 3549749
Data rozdenia: 21 07 1985
2) После очистки экрана
Timofeev Yahtennaya 3447453 31.03.1985
Zaharov Shkolnaya 3445584 26.06.1985
Ivanov Nevskiy prospect 354749 27.07.1985
Samiy molodoy: Ivanov - Nevskiy prospect; 354749; 27.07.1985
Samiy starshiy: Timofeev – Yahtennaya; 3447453; 31.03.1985
Vvedite mesiac dlya sortirovki: 3
3) Содержание созданного файла F_IN.dat
Timofeev; Yahtennaya; 3447453; 31; 3; 1985;
Zaharov; Shkolnaya; 3445584; 26; 6; 1985;
Ivanov; Nevskiy; 1234567; 21; 7; 1985;
4) Содержание созданного файла F_OUT.dat
Timofeev; Yahtennaya; 3447453; 31.3.1985.
Вывод: В ходе курсовой работы создана программа, позволяющая создавать и сохранять в файл список данных об учениках, а также производит поиск самого старшего и самого младшего ученика из списка. Программа способна создавать файл, в который будут заносится данные об учениках заданного месяца. В программу ко всему прочему заложена функция печати списка всех учащихся.