Программа учёта работы склада
Введение
Язык программирования TurboPascal был разработан в 1968-1971 гг. Никлаусом Виртом в Цюрихском институте информатики (Швейцария). Первоначальная цель разработки языка диктовалась необходимостью инструмента «для обучения программированию как системной дисциплине». Однако очень скоро обнаружилась чрезвычайная эффективность языка TurboPascal в самых разнообразных приложениях, от решения небольших задач численного характера до разработки сложных программных систем-компиляторов, баз данных, операционных систем и т.п. К настоящему времени TurboPascal принадлежит к группе наиболее распространенных и популярных в мире языков программирования. Существуют многочисленные реализации языка практически для всех машинных архитектур; разработаны десятки диалектов и проблемно-ориентированных расширений языка TurboPascal; обучение программированию и научно технические публикации в значительной степени базируются на этом языке.
Существует ряд объективных причин, обусловивших выбор языка TurboPascal для реализации данной программы. Среди них в первую очередь необходимо указать следующие:
- Язык в современной и элегантной форме отразил важнейшие современные концепции технологии разработки программ: развитая система типов, ориентация на принципы структурного программирования, поддержка процесса пошаговой разработки.
- Несмотря на относительную простоту языка, он оказался пригоден для весьма широкого спектра приложений, в том числе для разработки очень больших и сложных программ, например, операционных систем.
- Язык TurboPascal содержит удобные средства для представления данных. Развитая система типов позволяет адекватно описывать данные, подлежащие обработке, и конструировать структуры данных произвольной сложности. TurboPascal является типизированным языком, что означает фиксацию типов переменных при их описании, а также строгий контроль преобразований типов и контроль доступа к данным в соответствии с их типом.
- Набор операторов TurboPascal отражает принципы структурного программирования и позволяет записывать достаточно сложные алгоритмы в компактной и элегантной форме. TurboPascal является процедурным языком с традиционной блочной структурой и статически определенными областями действия имен. Процедурный механизм сочетает в себе простоту реализации и использования, гибкие средства параметризации.
- Синтаксис языка достаточно не сложен. Программы записываются в свободном формате, что позволяет сделать их наглядными и удобными для изучения.
Постановка задачи на разработку программы
Требуется разработать программу учёта работы склада. Программа должна обеспечивать возможность ввода наименования товара, инвентарного номера, даты поставки, цены и автоматический расчёт отпускной цены. Программа должна обеспечивать
- ввод данных;
- запись данных в файл;
- чтение данных из файла;
- вывод данных на экран;
- дополнение данных;
- удаление данных;
- поиск
информации по заданному
- сортировка данных методом «обменом»;
- построение диаграммы по данным и вывод ее на экран
Учёт работы склада должен быть представлен в таблице. Каждому препарату соответствовать отдельная строка таблицы.
Взаимодействие
пользователя и программы происходит
в диалоговом режиме с выводом
подсказок и запросов пользователю.
В программе должно быть реализовано
меню (горизонтальное с выбором по функциональной
клавише), обеспечивающее быстрый доступ
ко всем функциям программы.
Состав и структура исходных данных и результатов
Входными данными для программы является информация о товаре со следующими атрибутами: наименование, инвентарный номер, дата поставки, цена.
Выходными данными программы является список товаров со следующими атрибутами: наименование, инвентарный номер, дата поставки цена и отпускная цена.
В начале программы объявляется новый тип NEWTYPE, представляющий собой запись, состоящую из следующих полей представленный в таблице 1.
Таблица 1 – Состав записи
| Имя переменной | Назначение | Тип | Ограничения |
| nam | Наименование товара | STRING | 20 символов |
| nom | Инвентарный номер | STRING | 20 символов |
| dat | Дата поставки | STRING | 20 символов |
| cen | Цена | REAL | |
| ocen | Отпускная цена | REAL |
В программе используются переменные представленные в таблице 2.
Таблица 2 – Описание переменных
| Имя переменной | Назначение | Тип | Ограничения |
| keykod | Хранение кода нажатой клавиши | CHAR | |
| i,n | Хранят номера записей | WORD | |
| tek,beg,tek1,newp,next | Ссылки на элементы | ptr |
Продолжение таблицы 2
| Процедура isreal | |||
| Ws | Строка, считываемая для проверки введенного значения в процедуре проверки данных | STRING | |
| Wr | Преобразованное из строки число в процедуре проверки данных | real | |
| Wl | Флаг перевода строки в число в процедуре проверки данных | INTEGER | |
| Процедура Find | |||
| m | Строка для ввода названия препарата процедуре поиска | STRING | |
| Процедура save | |||
| fl | Файловая переменная для записи в файл и чтения из файла | FILE OF NEWTYPE | |
| mflnam | Переменная для хранения имени файла | STRING | |
| temp | Переменная для записи в файл | NEWTYPE | |
Продолжение таблицы 2
| Процедура load | |||
| fl | Файловая переменная для записи в файл и чтения из файла | FILE OF NEWTYPE | |
| m | Переменная для хранения имени файла | STRING | |
| Функция WideFileTest | |||
| fileError | Код ошибки обработки файлов | INTEGER | |
| Процедура sort | |||
| Y | Буфер обмена | Newtype | |
| b,p | Указатели для смены мест элементов | Ptr | |
| nam_b,nom_b,dat_b | Переменные для смены мест | String | |
| ocen_b,cen | Переменные для смены мест | Real | |
| Fl | Флаг сортировки | Boolean | |
| Процедура diag | |||
| X | Ширина выводимой области | INTEGER | - |
| Y | Высота выводимой области | INTEGER | - |
| cen | Переменная для вывода графика | Real | - |
| V | Начальный отступ | INTEGER | - |
Методы решения задачи
Ввод данных организован в форме диалога занесения данных, что обеспечивает простой, удобный и наглядный интерфейс. Ввод происходит в следующей последовательности.
- Число записей для ввода
- Наименование товара
- Инвентарный номер
- Дата поставки
- Цена
- Отпускная цена вычисляется по формуле: Цена*1,1.
При
вводе символов вместо числа
пользователю выводится
Чтение и Запись данных в файл. Данные сохраняются в файл, имя (и путь) которого вводится запросом к пользователю. Имеется возможность обрабатывать считанные из файла данные средствами программы.
Дополнение данных. Запись, содержащая дополняемые данные о товаре, заносится в таблицу после указанного в запросе номера записи. При успешном выполнении операции на экран выводится соответствующая информация.
Удаление данных. Определение данных, подлежащих удалению, осуществляется по номеру записи. Номер конкретной записи вводится пользователем после соответствующего запроса. Информация об успешном завершении операции удаления выводится на экран.
Поиск данных реализован в форме диалога, в котором ведется поиск данных по названию препарата, введенному с клавиатуры. Найденные данные выводится на экран. Если ничего не найдено, выводится сообщение об этом.
Вывод
данных на экран осуществляется
в форме таблицы, где каждому препарату
соответствует отдельная строка.
Сортировка данных. При выборе пункта меню "Сортировка", выполняется сортировка массива "Обменом". Следует отметить, что записи сортируются по полю «цена со скидкой».
Построение диаграммы производится по полю "Отпускная цена".
Выход При выборе пункта меню "Выход" программа завершает работу.
Описание программы
Процедуры программы:
- Procedure Menu – выводит главное меню программы;
- Procedure Bhead – выводит шапку таблицы данных
- Procedure testr(txt:string; var wt:real) - процедура ввода и контроля вещественных числовых значений;
- Procedure vvod – процедура ввода данных в основной массив программы;
- Procedure addarray – процедура добавления новой записи в массив;
- Procedure find – процедура поиска записи в массиве;
- Procedure del - процедура удаления записи из массива;
- Procedure out – процедура вывода данных на экран;
- Function WideFileTest:boolean – функция проверки правильности ввода/вывода данных в файл;
- Procedure save – процедура записи данных в файл;
- Procedure load – процедура чтения данных из файла;
- Procedure sort – процедура сортировки данных;
- Procedure diag- процедура построения диаграммы;
Методика отладки программы
Отладка программы является непременным этапом при создании практически любой программы, т. к. при написании программы обычно допускаются различные ошибки, и их необходимо выявить либо удостовериться, что в программе ошибок нет. Ошибки в программе могут быть трех типов:
- синтаксические, которые возникают при нарушении правил написания предложений языка;
- семантические, связанные с недопустимыми значениями параметров, недопустимыми действиями над параметрами и т. д.; выявляются эти ошибки во время работы программы (обычно на этапе отладки);
- логические ошибки, связанные с неправильным использованием тех или иных алгоритмических конструкций; эти ошибки приводят к неправильным результатам при работе программы (часто не во всех случаях, а только при определенном сочетании параметров), но нарушение работы программы не вызывают.
Семантические и логические
Отладка предполагает выполнение следующих моментов:
- выявление факта наличия ошибки в программе;
- определение места нахождения ошибки (локализация);
- устранение ошибки.
При разработке и отладке программы возникали ошибки всех трех видов. Однако они были своевременно выявлены и устранены.
Данная программа отлаживалась при помощи команд Step Over и Trance Into меню Run, которые позволяют осуществлять построчную отладку программы. Активизация команды Step Over или нажатие функциональной клавиши [F8], так же как активизация команды Trance Into или нажатие функциональной клавиши [F7], вызывает выполнение отладчиком всех операторов, расположенных в строке, помеченной маркером (указателем строки выполнения). Единственное отличие между выполнением программы по шагам и ее трассировкой состоит в том, как реагирует отладчик на появление в тексте программы операторов вызова процедур. При пошаговом выполнении программы вызов процедуры интерпретируется как вызов простого оператора, то есть можно увидеть результат работы процедуры, но нельзя пошагово проследить, каким образом этот результат был получен, в то время как при трассировке программы такая возможность предоставляется.
Также
при отладке программы
В ходе сеанса отладки программы возникала необходимость в перезапуске программы без окончания ее текущего выполнения. Чтобы осуществить перезапуск программы, активизировалась команда Run (комбинация клавиш [Ctrl]+)[F9]).
Использование окна Watch (окно наблюдения). Что бы посмотреть значение переменных, необходимо выполнить следующие действия:
- нажать Ctrl-F7 или выбрать пункт меню Debug/Add Watch;
-
ввести имя просматриваемой
Анализ работы программы:
- Запустить программу по шагам клавишей F7.
- Выбрать пункт «Ввод данных» нажатием клавиши «F1».
- Нажать клавиши Ctrl-F7, добавить переменную tek^.ocen– вычисляемое поле.
- Нажимать клавишу F7 до тех пор, пока все переменные не будут введены. Вводить данные:
- Наименование товара: Подшипники
- Инвентарный номер: 011
- Дата поставки: 12.01.2010
- Цена: 1000
- Ожидаемое значение вычисляемого поля: 1100
- Значение переменной в окне Watches: 1100
Приведенный анализ показал, что программа работает корректно.
Руководство пользователя
Разработанная программа написана на языке высокого уровня Turbo Pascal и предназначена для расчёта цены со скидкой.
Из среды Turbo Pascal запуск программы следует осуществлять командой меню “Run->Run”, либо клавишами Ctrl+F9.
После запуска программы на экран выводится горизонтальное меню, состоящее из десяти пунктов.
Выбор пункта меню осуществляется нажатием выделенных клавиш. Нажатие других клавиш сопровождается сообщением о неверно нажатой клавише.
Для ввода данных следует нажать клавишу «F1». Появится диалоговый запрос ввода данных в следующей последовательности:
- Число записей для ввода
- Наименование товара
- Инвентарный номер
- Дата поставки
- Цена
После того, как ввод данных будет закончен, следует нажать любую клавишу для возврата в главное меню.
Для
просмотра данных следует нажать клавишу
«F5». На экран буду выведены данные в табличной
форме. После того, как вывод данных будет
закончен, следует нажать любую клавишу
для возврата в главное меню.
Программой предусмотрена возможность изменения имеющегося набора данных.
- Для дополнения массива записей следует нажать клавишу «F2». Дополнение произойдет в конец списка. После того, как ввод данных будет закончен, следует нажать любую клавишу для возврата в главное меню.
Для удаления записи следует нажать клавишу «F3». В появившемся запросе следует ввести номер удаляемой записи. Программа произведет поиск данных и в случае успешного завершения выдаст соответствующее сообщение. В противном случае на экран выводится сообщение об ошибке.
После завершения работы удаления следует нажать любую клавишу для выхода в меню.
Чтобы найти данные, следует нажать клавишу «F4» и появившемся запросе ввести наименование товара, информацию о котором следует найти. Программа выдаст данные, которые будут найдены, в противном случае выдаст сообщение об ошибке. После этого следует нажать любую клавишу для выхода в главное меню.
Чтобы записать данные в файл, необходимо нажать клавишу «F6». В появившемся запросе следует ввести имя (и путь) к файлу, в который будут сохранены данные. В случае успешного сохранения данных программа выведет соответствующее сообщение, в противном случае – сообщение об ошибке.
Для
чтения данных из файла
следует нажать клавишу «F7». В появившемся
запросе следует ввести имя файла, из которого
следует считать данные. Программа выдаст
предупреждение о возможной потере всех
несохранённых данных в массиве и подтверждение
на продолжение чтения файла, сообщение
о успешном чтении файла, либо сообщение
об ошибке, после чего следует нажать любую
клавишу для возврата в главное меню программы.
Чтобы
построить диаграмму, следует нажать
клавишу «F8». Если в массиве отсутствуют
данные, программа выдаст сообщение об
ошибке. После вывода диаграммы следует
нажать любую клавишу для возврата в главное
меню программы.
Программой
предусмотрена возможность сорт
Для завершения работы программы следует воспользоваться командой «выход» главного меню программы.
Таблица 3 - Основные сообщения программы на действия оператора
| Сообщение программы | Тип сообщения | Действия оператора |
| 1 | 2 | 3 |
| Ввод
данных
Дополнение данных Удаление данных Сортировка данных Поиск данных Ввод данных завершен Дополнение данных завершено Удаление данных завершено |
Информация |
- |
|
Запрос |
|
Продолжение таблицы 3
| Массив
данных пуст! Нажмите любую клавишу...
Ошибка открытия файла Введен символ вместо числа. Повторите ввод данных |
Ошибка | Ввод правильных данных |
| Дополнение завершено(, Данные успешно записаны в файл, Данные успешно считаны из файла, Сортировка закончена) нажмите любую клавишу для продолжения. | Информация |
Нажатие клавиши Enter, продолжение работы. |
Требования к техническим и программным средствам:
Для работы с программой необходимо:
- IBM PC – совместимый компьютер с процессором архитектуры х86
- Операционная система MS DOS версии 6.22 и выше
- 4 Мб оперативной памяти и выше
- 1 мб свободного дискового пространства
Использование
параметров, превышающих вышеперечисленные,
ЗАКЛЮЧЕНИЕ
При выполнении курсового проекта были использованы все основные этапы программирования задачи, а именно:
- был оценен метод решения поставленной задачи,
- проанализированы необходимые данные и результаты,
- составлена блок-схема алгоритма,
- написана, отлажена и проверена на работоспособность программа на языке TURBO PASCAL.
Результаты
проверки показали, что разработанная
программа правильно
осуществляет обменную сортировку
введенных пользователем записей.
ЛИТЕРАТУРА:
- Пикулин В.В. Алгоритмизация и разработка программ на ТУРБО ПАСКАЛЕ.Методические указания к курсовому проектированию по дисциплине "Основы алгоритмизация и языки программирования", Пенза,1996г.
- Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров. - М.: Машиностроение, 1991.
- Сергиевский М.В., Шалашов А.В. ТУРБО ПАСКАЛЬ 7.0. Язык, Среда программирования:- М: Машиностроение,1994
- Форсайт Р. Паскаль для всех, перевод с английского М: Машиностроение, 1986
- Фаронов В.В. ТУРБО ПАСКАЛЬ 7.0. Начальный курс. Учебное пособие.-М: Нолидж, 1997
- ГОСТ 19.101 - 77 ЕСПД. Виды программ и программных документов. - М.: Изд-во стандартов, 1977.
- ГОСТ 19.103 - 77 ЕСПД. Обозначение программ и программных документов. - М.: Изд-во стандартов, 1977.
- ГОСТ 19.401 - 78 ЕСПД. Текст программы. Требования к содержанию и оформлению. - М.: Изд-во стандартов, 1978.
- ГОСТ 19.402 - 78 ЕСПД. Описание программы. - М.: Изд-во стандартов, 1978.
- ГОСТ 19.505 - 79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению. - М.: Изд-во стандартов, 1977.
- ГОСТ 19.701 - 90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. - М. -Изд-во стандартов, 1977.
- Брябрин В.Н. Программное обеспечение персональных ЭВМ. -М.: Наука, 1988.
- Васюкова Н.Д., Тюляева В.В. Практикум по основам программирования. Язык Паскаль: Учеб. пособие. - М.: Высш. шк.. 1991.
- Вирт Н. Алгоритмы + структуры данных = программы. - М.:Мир, 1985.
- Зуев Е.А. Программирование на языке Turbo Pascal 6.0, 7.0 -М.: Радио и связь, 1993.
- Йенсен К., Вирт Н.Паскаль: руководство для пользователя. -М.: Финансы и статистика, 1989.
Приложение 1
(Схема программы)