Программа учёта работы склада
Курсовая работа, 19 Октября 2011, автор: пользователь скрыл имя
Краткое описание
Язык программирования TurboPascal был разработан в 1968-1971 гг. Никлаусом Виртом в Цюрихском институте информатики (Швейцария). Первоначальная цель разработки языка диктовалась необходимостью инструмента «для обучения программированию как системной дисциплине». Однако очень скоро обнаружилась чрезвычайная эффективность языка TurboPascal в самых разнообразных приложениях, от решения небольших задач численного характера до разработки сложных программных систем-компиляторов, баз данных, операционных систем и т.п.
Файлы: 1 файл
8.DOC
— 465.50 Кб (Скачать)
Введение
Язык программирования 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- процедура построения диаграммы;
Методика отладки программы
Отладка программы является непременным этапом при создании практически любой программы, т. к. при написании программы обычно допускаются различные ошибки, и их необходимо выявить либо удостовериться, что в программе ошибок нет. Ошибки в программе могут быть трех типов:
- синтаксические, которые возникают при нарушении правил написания предложений языка;
- семантические, связанные с недопустимыми значениями параметров, недопустимыми действиями над параметрами и т. д.; выявляются эти ошибки во время работы программы (обычно на этапе отладки);
- логические ошибки, связанные с неправильным использованием тех или иных алгоритмических конструкций; эти ошибки приводят к неправильным результатам при работе программы (часто не во всех случаях, а только при определенном сочетании параметров), но нарушение работы программы не вызывают.
Семантические и логические
Отладка предполагает выполнение следующих моментов:
- выявление факта наличия ошибки в программе;
- определение места нахождения ошибки (локализация);
- устранение ошибки.