Программа управления базой данных, содержащей информацию о читателях, книгах и работниках библиотеки
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
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(Книги с таким номером нет!