Балтийский государственный технический университет "ВОЕНМЕХ"
им. Д.Ф. Устинова
Кафедра "И7"
по дисциплине "Информатика"
Студента: Аникина А .А. .
Группы: Е-151 .
Номер зач. книжки Е-15102 .
Преподаватель: Пак В.Г.
Общая оценка: __________
Санкт-Петербург 2006
Задание:
Создать базу данных в библиотеке. Для каждой книги хранить: автора, название, жанр, год издания, издательство, кому отдана и мнение. Предусмотреть возможность внесение новой записи, удаление записи, внесение изменений о том кому отдана книга и о том какое мнение о книги. Предусмотреть проверку года издания книги (от 1 до 2006).
Текст программы:
program kursovik;
uses crt;
const MAX = 10;
DB_NAME = 'book.txt';
DB_TEMP = 'book.bak';
type book = record
avtor,nazv,shanr,izdanie,komu,mnenie : string;
god : integer;
end;
var f: text;
db : array [1..MAX] of book;
i, m, g,k,er : integer;
r : real;
s,av,va : string;
key : char;
bk : book;
isChanged : boolean;
function cut_token( var b : string ) : string;
var p : integer;
res : string;
begin
p := pos( ';', b )-1;
if p <= 0 then p := length(b);
res := copy( b, 1, p );
while res[1] = ' ' do delete(res,1,1);
while res[length(res)] = ' ' do delete(res,length(res),1);
delete( b, 1, p+1 );
cut_token := res;
end;
begin
assign(f, DB_NAME);
reset(f);
i := 1;
begin
clrscr;
gotoxy(30,10);
textcolor(green);
gotoxy(30,7);
write('Љ“ђ‘Ћ‚€Љ');
gotoxy(27,8);
write('Ї® Ёд®а¬ вЁЄҐ');
textcolor(white);
gotoxy(20,10);
write('Ў § ¤ ле');
textcolor(red);
gotoxy(30,11);
write('Ѓ€Ѓ‹€Ћ’…ЉЂ');
gotoxy(45,14);
textcolor(11);
write('бв㤥⠣агЇЇл …-151');
gotoxy(48,15);
write('ЂЁЄЁ Ђ.Ђ.');
gotoxy(45,16);
write('ЇаҐЇ®¤ ў ⥫м');
gotoxy(48,17);
write('Џ Є ‚.ѓ.');
gotoxy(51,22);
textcolor(18);
writeln('„«п ўе®¤ ¦¬ЁвҐ "ENTER"');
readln;
end;
while not seekeof(f) do begin
readln(f,s);
bk.avtor := cut_token( s );
bk.nazv := cut_token( s );
bk.shanr := cut_token( s );
val( cut_token( s ), bk.god, er );
bk.izdanie := cut_token( s );
bk.komu := cut_token( s );
bk.mnenie := cut_token( s );
db[i] := bk;
inc(i);
end;
m := i-1;
close(f);
isChanged := false;
while true do begin
clrscr;
textbackground(blue);
textcolor(12);
gotoxy(32,6);
writeln('ЃЁЎ«Ё®вҐЄ .');
writeln;
gotoxy(34,8);
writeln('Ќ ¦¬ЁвҐ:');
gotoxy(17,9);
writeln ('"1" —в®Ўл ўҐбвЁ ў ЎЁЎ«Ё®вҐЄг ®ўго ЄЁЈг');
gotoxy(17,10);
writeln ('"2" —в®Ўл ўлЄЁгвм ЄЁЈг');
gotoxy(17,11);
writeln ('"3" —в®Ўл Ё§¬ҐЁвм ᢥ¤ҐЁп ® ЄЁЈЁ');
gotoxy(17,12);
writeln ('"4" —в®Ўл Їа®б¬®ваҐвм ЎЁЎ«Ё®вҐЄг');
gotoxy(17,13);
writeln ('"5" —в®Ўл ўл©вЁ...');
key := readkey;
case key of
'1': begin
writeln; writeln;
if ( m = MAX ) then begin
textcolor(yellow);
write('ЃЁЎ«Ё®вҐЄ ЇҐаҐЇ®«Ґ . Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
readkey;
continue;
end;
textcolor(12);
writeln;
writeln('‘ўҐ¤ҐЁп ® ®ў®© ЄЁЈҐ:');
writeln;
write('‚ўҐ¤ЁвҐ ўв®а ЄЁЈЁ: ');
readln(bk.avtor);
write('‚ўҐ¤ЁвҐ §ў ЁҐ ЄЁЈЁ: ');
readln(bk.nazv);
write('‚ўҐ¤ЁвҐ ¦ а ЄЁЈЁ: ');
readln(bk.shanr);
write('‚ўҐ¤ЁвҐ Ј®¤ Ё§¤ Ёп ЄЁЈЁ: ');
readln(bk.god);
if (bk.god>0) and (bk.god<2007) then begin
write('‚ўҐ¤ЁвҐ Ё§¤ ЁҐ ЄЁЈЁ: ');
readln(bk.izdanie);
write('‚ўҐ¤ЁвҐ Є®¬г ®в¤ ЄЁЈ : ');
readln(bk.komu);
write('‚ўҐ¤ЁвҐ ¬ҐЁҐ ® ЄЁЈҐ: ');
readln(bk.mnenie);
inc(m);
db[m] := bk;
isChanged := true;
writeln;
textcolor(yellow);
writeln('Ќ®ў п ЄЁЈЁ ўҐбҐ . Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
readkey;
end else
begin
writeln;
textcolor(yellow);
writeln('!!!ЌҐўҐал© Ј®¤ Ё§¤ Ёп!!!. Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
readkey;
end;
end;
'2': begin
writeln; writeln;
if m < 1 then begin
textcolor(yellow);
write('‚ ЎЁЎ«Ё®вҐЄҐ Ў®«миҐ Ґв ЄЁЈ! Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
readkey;
continue;
end;
textcolor(12);
writeln('Љ Єго ЄЁЈг ўл е®вЁвҐ ўлЄЁгвм? ');
writeln;
write(' ўв®а: ');readln(av);
write(' §ў ЁҐ: ');readln(s);
g:=0;
For k:=1 to m do
if (av = db[k].avtor) and (s = db[k].nazv) then begin
g:=1;
writeln;
writeln('‚лЄЁгвм ЄЁЈг <',av,' - "',s,'"> Ё§ ЎЁЎ«Ё®вҐЄЁ?');
writeln;writeln('Ќ ¦¬ЁвҐ:');
writeln(' "„" зв®Ўл ўлЄЁгвм ЄЁЈг');
writeln(' Ё«Ё ¤агЈго Є« ўЁиг ¤«п ®в¬Ґл...');
key:=readkey;
if (key = '„') or (key = '¤') then begin
while k < m do begin
db[k] := db[k+1];
inc(k);
end;
dec(m);
isChanged := true;
writeln; writeln;
textcolor(yellow);
write('ЉЁЈ <',av,' - "',s,'"> ўлЄЁгв ! Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
readkey;
end;
end;
if g=0 then
begin
writeln;
textcolor(yellow);
write('’ Є®© ЄЁЈЁ Ґв. Ќ ¦¬ЁвЁ «оЎго Є« ўЁиг...');
readkey
end
else
end;
'3': begin
writeln; writeln;
if m < 1 then begin
textcolor(yellow);
write('‚ ЎЁЎ«Ё®вҐЄҐ Ў®«миҐ Ґв ЄЁЈ! Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
readkey;
continue;
end;
textcolor(12);
writeln('€§¬ҐҐЁҐ ᢥ¤ҐЁ© ® ЄЁЈЁ.');
writeln;writeln('‚лЎҐаЁвҐ ЄЁЈг: ');
write(' ўв®а: ');readln(av);
write(' §ў ЁҐ: ');readln(va);
g:=0;
For k:=1 to m do
if (av = db[k].avtor) and (va = db[k].nazv) then begin
g:=1;
writeln('—в® ўл е®вЁвҐ Ё§¬ҐЁвм?');
writeln;
writeln('Ќ ¦¬ЁвҐ:');
writeln(' "6" зв®Ўл Ё§¬ҐЁвм ᢥ¤ҐЁп ® еа ҐЁЁ ЄЁЈЁ');
writeln(' "7" зв®Ўл Ё§¬ҐЁвм ¬ҐЁҐ ® ЄЁЈҐ');
writeln(' Ё«Ё ¤агЈго Є« ўЁиг ¤«п ®в¬Ґл');
key:=readkey;
end;
if (key='6') then
begin
writeln;
s := db[k].komu;
write('ЉЁЈ <',av,' - "',va,'"> ®в¤ : ',s);
writeln;
writeln;
write('Љ®¬г ®в¤ с⥠ЄЁЈг: ');
readln(s);
db[k].komu := s;
isChanged := true;
writeln;
textcolor(yellow);
write('€§¬ҐҐЁп ўҐбҐл. Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
readkey;
end;
if (key='7') then begin
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.