МИНИСТЕРМТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН
КАЗАХСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. Т. РЫСКУЛОВА
Кафедра: «Прикладная информатика»
КУРСОВАЯ РАБОТА
По дисциплине:
«Программирование на алгоритмических языках»
На тему:
«Автоматизация выдачи справок по товарам в универмаге»
Выполнил :
Студент 1 курса,
109 группы, ВТиПО,
Пулиев Ю.А.
Проверила:
Ст.преподаватель
Тимофеева Е.П.
Алматы 2008
СОДЕРЖАНИЕ
Введение………………………………………………………………………….3
1 Программная часть…………….…………………………………………….4
1.2 Входная и выходная информация. 4
1.3 Алгоритм решения задачи. 4
Заключение………………………………………………………………………16
Введение
Паскаль — замечательный язык программирования, который относительно прост в изучении, довольно ясен и логичен и, будучи первым изучаемым языком программирования, приучает к хорошему стилю. Паскаль воспитывает дисциплину структурного программирования и программирования вообще лучше, чем другие языки программирования, такие, как, например Бейсик.
Пакет Turbo Pascal 7.0 обладает ограниченными возможностями и позволяет работать только в обычном режиме MS DOS. Начинающему программисту, по-видимому, целесообразно начать изучение языка и среды именно с этого пакета.
Язык характеризуется расширенными возможностями по сравнению со стандартом, хорошо развитой библиотекой модулей, позволяющих использовать возможности операционной системы, создавать оверлейные структуры, организовывать ввод-вывод, формировать графическое изображение и т.д.
Достоинства
- Удобная среда разработки, включающая функциональный отладчик, доступный в любой момент.
- Конкретная справочная система, по которой можно изучить язык без обращения к сторонним источникам.
- Высокая скорость компиляции, высокая скорость выполнения откомпилированных программ.
- Встроенная возможность использовать вставки на языке ассемблера.
Паскаль высоко используется во многих учебных заведения для обучения программированию.
1 Программная часть
1.1 Постановка задачи
Программа «Расписание» представляет собой алгоритм действий, предназначенный для автоматизированного вывода базы данных для учёта товаров в универмаге.
Программа должна выполнять следующие функции: выдавать по запросу сведения о поступлении товара.
Для этого необходимо записать в программу сведения о поступившем товаре: наименование, дата поступления: день, месяц, год и цена за единицу товара.
Программа должна вывести на экран расписание всех продуктов , удалить по необходимости какой либо продукт, добавить новый продукт в конец базы данных и корректировать выбранный номер товара.
1.2 Входная и выходная информация
Для работы программы «Расписание» необходимы следующие данные о товаре: наименование , дата: день, месяц, год и цена за единицу товара.
Программа отражает все товары в универмаге и выполняет следующие функции: добавляет новый товар в конец базы данных, корректирует выбранный товар и удаляет ненужный товар.
1.3 Алгоритм решения задачи
В исполнительной части программы выводится на экран меню для выбора режима работы:
1 –Формирование новой базы данных.
2 – Просмотр базы данных.
3 – Корректировка базы данных.
4 — Добавление записей в базу данных.
5 — Удаление записи из базы данных.
6 — Конец работы. (рис.1)
Общая схема алгоритма
Начало |
Ввод имени файлов |
Приветствие |
Вывод меню |
Ввод номера пункта меню |
R |
Формирование новой базы данных |
Просмотр базы данных |
Корректировка записей |
Добавление записей |
Удаление записей |
Конец |
Рис.1
В программе введены следующие обозначения переменных:
Tovar – компоненты. Это записной тип, имеющий следующие поля: Name – наименование, Price – цена товара, kolvo – количество товара, Data – дата поступления, которая является компонент, это записной тип, имеющие следующие переменные: Day – день поступления, Mon – месяц поступления, Year – год поступления.
Filename – имя файла.
f – имя логического файла.
Tov – компонента файла.
Программа:
Program kursovai;
Uses CRT, Dos;
label menu;
Type
Tf = String[20];
Date = Record
chas : real;
day : 1..31;
Mon : 1..12;
Year : 1..2008;
End;
Tovar = Record
Name : Tf;
Data : Date;
Price : Real;
kolvo: integer;
End;
Var FileName : Tf;
R : Byte;
date1: Date;
year,month,day,dayofweek:word;
hour,minute,second, sec100:word;
{Процедура вывода даты на экран}
Procedure data_vremya;
Begin
TextColor(11);
GoToXY(65,45);
getdate(year,month,day,dayofweek);
writeln(day,’.’,month,’.’,year);
GoToXY(65,46);
getTime(hour,minute,second,sec100);
writeln(hour,’:’,minute);
End;
{Процедура написании шапки}
Procedure SHLAPKA;
Begin
Writeln( ‘╔═════╦═════════════════════╦════════════════╦═════════════╦════════╗’);
Writeln( ‘║ Nom ║ Naimenovanie tovara ║ Vremia i Data ║ Cena tovara ║ Kol-vo ║’);
Writeln( ‘╠═════╬═════════════════════╬════════════════╬═════════════╬════════╣’);
End;
{Процедура начальной страницы }
Procedure O_PROGRAMME;
Begin
clrscr;
Textbackground(0);
TextColor(11);
GoToXY(15,10);
writeln(‘ UNIVERMAG’);
GoToXY(15,12); writeln(‘╔═════════════════════════════════════════════════════╗’);
GoToXY(15,13); writeln(‘║ Prpgrama soderjit naimenovanie tovara v univermage. ║’);
GoToXY(15,14); writeln(‘║ Vipolniaet takie deistvia kak: ║’);
GoToXY(15,15); writeln(‘║ Dobavliaet zapisi, korrektiruet, udalaet i ║’);
GoToXY(15,16); writeln(‘║ vivodit spisok tovara v univermage. ║’);
GoToXY(15,17); writeln(‘╚═════════════════════════════════════════════════════╝’);
readln;
End;
{Процедура ввода новых элементов базы данных}
Procedure Vvod(fname : Tf);
Var f : File Of Tovar;
tov: Tovar;
Begin
Clrscr;
Writeln(‘ FORMROVANIA NOVOI BAZI DANNIH!’);
Assign (f, fname);
Rewrite(f);
Writeln(‘Okonchanie — pusto’);
Write(‘Naimenovanie tovara — ‘); Readln(tov.name);
While tov.name <> » do
Begin
With tov Do
Begin
Writeln(‘Data postuplenia : ‘);
Write(‘Vremia ‘); Readln(Data.chas);
Write(‘Den ‘); Readln(Data.Day);
Write(‘Mesac ‘); Readln(Data.Mon);
Write(‘God ‘); Readln(Data.Year);
Write(‘Cena za edinicu tovara — ‘); Readln(Price);
Write(‘Kolichestvo v shtukah — ‘); Readln(kolvo);
End;
Write(f, tov);
Write(‘Naimenovanie tovara — ‘); Readln(tov.name);
End; Writeln; Writeln;
Writeln(‘Dla prodolgenia — <Enter>’);
Repeat Until keypressed;
Close (f);
End;
{Процедура просмотра элементов базы данных}
Procedure Look (fname : Tf);
Var f : File Of tovar; tov : tovar; i, code : Integer;
Begin
Clrscr;
Write(‘ Naimenovanie tovara na prilavkah magazina!’);
Writeln; Writeln;
Assign (f, fname);
{$i-}
Reset(f);
{$i+}
If code <> 0 Then Begin
Writeln{(‘File net!’)};
Delay(20000);
End;
SHLAPKA;
i:=0;
While Not eof(f) do
Begin
Read(f, tov);
With tov Do
Begin
i := i + 1;
Write(‘║’,i:3,’ ║’);
Write(Name:16,’ ║’);
Write(Data.chas:2:2,’/’, Data.Day:2, ‘/’, Data.Mon:2, ‘/’, Data.Year:4,’║’);
Write(Price:9:2,’ ║’);
Writeln(kolvo:5,’ ║’);
Delay(10000);
End;
End;
Writeln (‘╚═════╩═════════════════════╩════════════════╩═════════════╩════════╝’);
Writeln; Writeln; Writeln(‘Dla prodolgenia najmite — <Enter>’);
data_vremya;
Repeat Until keypressed;
Close (f);
End;
Procedure DeletF (fname:Tf);
Var f, fl:File of tovar; tov:tovar; code: Byte; g:string[4]; tname: string[20];
begin
Clrscr;
Assign (f, fname);
Reset (f);
Code:=IOResult;
If code <>0 then begin
Writeln(‘File net !’);
Delay (2000); Exit;
end;
Writeln (‘ Ostorogno! Eti destvia mogut privest k udaleniu zapisi,’);
Writeln (‘ Vvedite nazvanie tovara! — ‘); Readln(tname);
Assign(fl, ‘Temp’); rewrite(fl);
While Not Eof(f) do
Begin
Read (f, tov);;
If tov.name <> tname then write (fl, tov);
end;
Close (f); Close (fl);
Erase(f); Rename (fl, fname);
end;
{Процедура корректировки элементов базы даных}
Procedure Correct(fname : Tf);
Var f : File Of tovar; i, code : Integer; tov : tovar;
Begin
Clrscr;
Writeln(‘ KORREKTIROVKA ZAPISI!’);
Assign (f, fname);
{$i-}
Reset(f);
{$i+}
code := IOResult;
If code <> 0 Then Begin
Writeln(‘File net !’);
Delay(2000);
End;
i := Filesize(f);
Writeln(‘File sodergit ‘, i ,’ zapisei.’);
Write(‘Kakay korrectirovat (0 — konec) — ‘);
Readln(i);
While i > 0 Do
Begin
Seek(f, i — 1);
Read(f, tov);
With tov Do
Begin
Writeln(‘Zapis nomer ‘, i);
Write(‘Naimenovanie tovara — ‘, Name,’ ?’); Readln(name);
Writeln(‘Data vileta — ‘, data.chas,’/’,Data.Day,’/’,Data.Mon,’/’,Data.Year);
Write(‘Vremia ? ‘); Readln(Data.chas);
Write(‘Den ? ‘); Readln(Data.Day);
Write(‘Mesac ? ‘); Readln(Data.Mon);
Write(‘God ? ‘); Readln(Data.Year);
Write(‘Cena za edinicu tovara — ‘,Price : 9 : 2,’ ?’);
Readln(Price);
Write(‘kolichestvo tovara — ‘,kolvo :5,’ ?’);
Readln(Price);
End;
Seek(f, i-1);
Write(f, tov);
Writeln; Write(‘Kakuy korrekttirovat (0 — konec) — ‘);
Readln(i);
End; WRITELN; WRITELN;
Writeln(‘Dla prodolgenia <Enter>’);
Repeat Until keypressed;
Close (f);
End;
{Процедура добавления новых элементов базы даных}
Procedure Appenf(fname : Tf);
Var f : File Of tovar; tov : tovar; code : Byte;
Begin
Clrscr;
Writeln(‘ DOBAVLENIA NOVOI ZAPISI!’);
Assign (f, fname);
{$i-}
Reset(f);
{$i+}
code := IOResult;
If code <> 0 Then Begin
Writeln(‘File net !’);
Delay(2000); Exit;
End;
Seek(f, Filesize (f));
Writeln(‘Konec vvoda — pusto. ‘);
Writeln;
Write(‘Naimenovanie tovara — ‘); Readln(tov.name);
While tov.name <> » do
Begin
With tov Do
Begin
Writeln(‘Data postuplenia — ‘);
Write(‘Vremia — ‘); Readln(Data.chas);
Write(‘Den — ‘); Readln(Data.Day);
Write(‘Mesac — ‘); Readln(Data.Mon);
Write(‘God — ‘); Readln(Data.Year);
Write(‘Cena za edinicy tovara — ‘); Readln(Price);
Write(‘Kolichestvo tovara — ‘); Readln(kolvo);
End;
Write(f, tov);
Writeln;
Write(‘Naimenovanie tovara — ‘); Readln(tov.name);
End;
Writeln; Writeln; Writeln(‘Dla prodolgenia — <Enter>’);
Repeat Until keypressed;
Close(f);
End;
{Начало программы}
Begin
Clrscr;
O_PROGRAMME;
Clrscr;
Repeat
Gotoxy(25,12); Write(‘VVEDITE IMA FAILA — ‘); Readln(FileName);
menu:
Clrscr;
data_vremya;
Gotoxy(31,3);writeln(‘╔═══════════════╗’);
Gotoxy(31,4);writeln(‘║ PUNKT MENU ║’);
Gotoxy(31,5);writeln(‘╚═══════════════╝’);
Gotoxy(20,8); Write(‘1 — Formirovanie novoy bazi!’);
Gotoxy(20,10); Write(‘2 — Prosmotr bazi!’);
Gotoxy(20,12); Write(‘3 — Korrektirovka bazi!’);
Gotoxy(20,14); Write(‘4 — Dobavlenie zapisi v konec!’);
Gotoxy(20,16); Write(‘5 — Udalenie zapisi!’);
Gotoxy(20,18); Write(‘6 — Konec raboti! ‘);
Gotoxy(20,20); Write(‘Nomer — ‘);Readln(R);
Case R Of
1: begin Vvod (FileName); goto menu; end;
2: begin Look (FileName); goto menu; end;
3: begin Correct (FileName); goto menu; end;
4: begin AppenF (FileName); goto menu; end;
5: begin DeletF (FileName); goto menu; end;
End;
Until R = 6;
End.
1.4 Контрольный пример
Работа программы начинается с приветствия в котором говорится что выполняет данная программа.
Затем после нажатия клавиши Inter вводится имя файла, в который будет внесена база данных. Например: Shoop.
При появлении программного меню в режиме выбираем пункт меню 1 – Формирование новой базы данных.
На черном экране появляется первое поле для внесения данных:
После окончания ввода данных в Режиме набираем цифру 2 – Просмотр базы данных. Результатом является вывод на экран таблицы «Наименование товара на прилавках магазина»
Для корректировки записей нажимаем цифру 3.
Добавление записи в конец базы данных – 4.
Удаление записи из базы данных – 5
Заключение
Завершается рассмотрение основ программирования на Турбо Паскале. Среди них вычисления и обработка информации, использование объектно-ориентированного программирования – словом, те задачи, с которыми приходится сталкиваться профессиональному программисту. Турбо Паскаль был выбран как наилучший язык программирования для обучения основам профессионального программирования.
Турбо Паскаль – достаточно «старый» программный продукт. Следует заметить, однако, что Паскаль – это живой язык. Известны, используются или находятся в стадии разработки компиляторы и среды разработки программ на Паскале для различных операционных систем, в том числе и бурно развивающейся операционной системы Linux. Эти системы иногда частично, а иногда и в значительной мере совместимы с Турбо Паскалем, а следовательно, накопленный опыт может быть использован и для серьезной, профессиональной работы по разработке программ.