Автоматизация выдачи справок по товарам в универмаге .

9 января, 2020 23:52

СОДЕРЖАНИЕ

 

Введение………………………………………………………………………….3

1 Программная часть…………….…………………………………………….4

1.1 Постановка задачи. 4

1.2 Входная и выходная информация. 4

1.3 Алгоритм решения задачи. 4

1.4 Контрольный пример. 13

Заключение………………………………………………………………………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. Эти системы иногда частично, а иногда и в значительной мере совместимы с Турбо Паскалем, а следовательно, накопленный опыт может быть использован и для серьезной, профессиональной работы по разработке программ.

 

0

Автор публикации

не в сети 3 года

Назира

1
Комментарии: 0Публикации: 167Регистрация: 25-12-2019

Читайте также:

Добавить комментарий

Войти с помощью: 
Авторизация
*
*
Войти с помощью: 
Регистрация
*
*
*
*
Войти с помощью: 
Генерация пароля