Создание базы данных "Библиотека" с возможностью проверки года издания книги

Страницы работы

Содержание работы

Балтийский государственный технический университет "ВОЕНМЕХ"

им. Д.Ф. Устинова

Кафедра "И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

Похожие материалы

Информация о работе