Программа управления базой данных, содержащей информацию о читателях, книгах и работниках библиотеки

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

p>

Главный вывод, который можно сделать на основе изложенного материала - несомненное сходство языков программирования в основных компонентах, таких, как набор операторов, конструктор типов, механизм процедур и Объектно-Ориентированного Программирования. Различия проявляются только в деталях, семантически современные языки программирования практически идентичны.

Свой выбор языка программирования я объясняю некоторыми знаниями этого языка и его относительную простоту.

 

3. Требование к техническим средствам

 

Минимальные:

Intel 2x86 процессор

1 mb ОЗУ

Операционная система Dos

Рекомендуемые:

Celeron 400 Mhz и выше

8 mb ОЗУ и выше

Операционная системы поколения Windows любой версии

 

 

4. Анализ входных и выходных данных

 

Входные данные: Для решения задачи необходимо создать 4 файла: файл содержащий данные по всем книгам, файл с данными выдаче книг, файл с данными о библиотекарях и файл с данными о читателях. Файлы организуются как файлы с записями.

Файл данные по книгам имеет следующие поля:

Уникальный номер

Название

Автор

Издательство

Год издания

Жанр

Есть в наличии

Если нет ->

Срок возврата (день, месяц, год)

Уникальный номер читателя взявшего книгу

Файл Читатели имеет следующие поля:

Уникальный номер читателя

Имя

Фамилия

Отчество

Место жительства

Домашний телефон

Возраст

Файл библиотекари имеет следующие поля:

Имя

Фамилия

Отчество

Должность

Кроме исходных файлов используется переменная ch типа char для считывания с клавиатуры данных, введённых пользователем для выполнения запросов.

Выходные данные: Результатом решения задачи, являются данные полученные из исходных файлов. Результатом запроса является список всех книг/читателей, соответствующих параметрам запроса и качественно оформленных.

Промежуточные данные: В ходе решения задачи использовались целочисленные переменные i,j,k,l,m,n и другие в качестве счётчиков для определения длины циклов, для операций выбора и других операций.

 

 

 

5. Модель задачи

 

Математическое описание: Математические функции используются только для вычисления суммы и счетчиков операций в запросах.

При поиске задержанных книг используются операции сравнения.

 

6. Алгоритм решения

 

6.1 Обобщенный алгоритм основной программы

 

 

6.2 Алгоритм процедуры newkniga

 

 

 

 

 

7. Листинг программы

biblioqw; {Курсовая работа: Библиотека: Книги, Читатели, Библиотекари}

{Автор: Зыков Николай }crt;=$7; {Цвет невыделенного пункта}=$2; {Цвет выделенного пункта }=20; {Количество команд меню}knigi=record {Запись с данными о книгах}

nomk,god,kol,nomch,godsv: integer;,auth,izd,zhanr,nal: string;

densv:1..31;:1..12;;reader=record {Запись с данными о читателях}

name,lname,fname,tel,adress,naruk:string;,nomk,voz,godsv:integer;:1..31;:1..12;;biblio=record {Запись с данными о библиотекарях},lname,fname,dolzh:string;;spknig: file of knigi;: file of reader;: file of biblio;:integer;: array [1..k] of string[35]; {Массив с перечнем команд меню}

punkt:integer; {Переменные для управления меню }

ch:char;,y:integer;

{------------------------Рисование линии------------------------------}ris(a:integer);i:integer;i:=1 to a do Write(-);;

{------------------------Добавление книги -----------------------------}newkniga;st:knigi;:char;(spknig,knigi.txt);(spknig);(spknig,filesize(spknig)); {Переходим в конец файла для добавления записи };(35);write(Новая книга);ris(34);

writeln( Заполните данные о новой книге );(Уникальный номер: ); readln(st.nomk);

write(Название: ); readln(st.naz);(Автор: ); readln(st.auth);

write(Издательство: ); readln(st.izd);(Год издания: ); readln(st.god);(Жанр: ); readln(st.zhanr);(Количество страниц: ); readln(st.kol);

st.nal:=Да;(spknig,st);

ris(80);writeln();(Хотите добавить ещё одну книгу? (Д\Н));readln(k);;(k=н) or (k=Н);(spknig);;

{--------------------------------Удаление книги --------------------------}Clearkn;st:knigi;: integer;: file of knigi;:char;: integer;(spknig,knigi.txt);(spknig);(fo,newfile.txt);(fo);;:=g;(33);write(Удаление книги);ris(32);writeln();

writeln(Введите уникальный номер книги, которую вы хотите удалить из базы:); поиск программа информация данные

1thenbeginwriteln(">readln(udal);:=0;not EoF(spknig) do(spknig,st);st.nomk=udal then tt:=1;;tt<>1 then begin writeln(Книги с таким номером нет!);readln;end else(spknig);reset(spknig);

Writeln(Вы точно хотите удалить книгу с номером ,udal, (Д\Н));

udalthenwrite(fo,st);;(spknig);(fo);(spknig);(fo,knigi.txt);;;;">readln(otv);(otv=д)or(otv=Д) thennot eof(spknig) do(spknig,st);st.nomk<>udal then write(fo,st);;(spknig);(fo);(spknig);(fo,knigi.txt);;;;

{---------------------------------Просмотр списка книг---------------------}seekknigi;st:knigi;:char;(spknig,knigi.txt);(spknig);(spknig,st);;(34);write(Просмотр списка книг);ris(26); writeln();

writeln( Уникальный номер: ,st.nomk);( Название: ,st.naz);

writeln( Автор: ,st.auth);

writeln( Издательство: ,st.izd);( Год издания: ,st.god);

writeln( Жанр: ,st.zhanr);

writeln( Количество страниц: ,st.kol);( Есть в наличии: ,st.nal);

If (st.nal=Нет) then

writeln( Уникальный номер читателя взявшего книгу: ,st.nomch);( Срок возврата: ,st.densv, ,st.messv, ,st.godsv);;(80);( Введите "Esc" для окончания );

otv:=readkey;(EoF(spknig)) or (otv=#27);(spknig);;

{---------------------------------Взятие возврат книг---------------------}vvkniga;:knigi;:integer;,god2,kol2,nomch2,godsv2: integer;,auth2,izd2,zhanr2,nal2: string;,lname2,fname2,tel2,adress2,naruk2:string;:integer;:1..31;:1..12;:reader;,nomchh,x,n:integer;:string;:char;(spknig,knigi.txt);(spknig);;:=0;:=0;(30);write(Взятие, возврат книг); ris(30);writeln();st do

begin write(Введите уникальный номер книги, данные о которой вы хотели бы изменить: );readln(str);

while not eof(spknig) do(spknig,st);str=st.nomk then x:=1;;x=0 then begin writeln(Книги с таким номером нет!