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

0

МИНИСТЕРМТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН

КАЗАХСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ                   ИМ. Т. РЫСКУЛОВА

                        

   Кафедра: «Прикладная информатика»

КУРСОВАЯ РАБОТА

По дисциплине:

«Программирование на алгоритмических языках»

На тему: 

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

 

Выполнил :

Студент 1 курса, 

109 группы, ВТиПО,

Пулиев Ю.А.

Проверила:

                                                                                                 Ст.преподаватель

                                                                                                                          Тимофеева Е.П.

                                              Алматы 2008

СОДЕРЖАНИЕ

Введение………………………………………………………………………….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)

Общая схема алгоритма

                               

Рис.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 Контрольный пример

     Работа программы начинается с приветствия в котором говорится что выполняет данная программа. 

     pastedGraphic.png

Затем после нажатия клавиши Inter вводится имя файла, в который будет внесена база данных. Например: Shoop.

                         pastedGraphic_1.png

При появлении программного меню  в режиме выбираем пункт меню 1 – Формирование новой базы данных.

pastedGraphic_2.png

На черном экране появляется первое поле для внесения данных:

pastedGraphic_3.png

pastedGraphic_4.png

После окончания ввода данных в Режиме набираем цифру 2 – Просмотр базы данных. Результатом является вывод на экран таблицы «Наименование товара на прилавках магазина»

pastedGraphic_5.png

Для корректировки записей нажимаем цифру 3.

pastedGraphic_6.png

Добавление записи в конец базы данных – 4.

pastedGraphic_7.png

pastedGraphic_4.png

Удаление записи из базы данных – 5

pastedGraphic_8.png

Заключение

Завершается рассмотрение основ программирования на Турбо Паскале. Среди них вычисления и обработка информации, использование объектно-ориентированного программирования – словом, те задачи, с которыми приходится сталкиваться профессиональному программисту. Турбо Паскаль был выбран как наилучший язык программирования для обучения основам профессионального программирования.

Турбо Паскаль – достаточно «старый» программный продукт. Следует заметить, однако, что Паскаль – это живой язык. Известны, используются или находятся в стадии разработки компиляторы и среды разработки программ на Паскале для различных операционных систем,  в том числе и бурно развивающейся операционной системы Linux. Эти системы иногда частично, а иногда и в значительной мере совместимы с Турбо Паскалем, а следовательно, накопленный опыт может быть использован и для серьезной, профессиональной работы по разработке программ.