По учебно-вычислительной практике
на базе кафедры ПОВТАС
ФГБОУОГУ 231000.62.9012.__ П
Руководитель от кафедры Тишина Н.А.
Исполнитель
студент гр. 11ИВТ(б)-1 Лежнев С.В.
Оренбург 2012
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Оренбургский государственный университет»
Факультет информационных технологий
Кафедра программного обеспечения вычислительной техники и автоматизированных систем
Задание на практическую работу
Склад
Исходные данные: текст задания:
А) Существует файл СКЛАД , в котором хранится информация об ассортименте продукции на складе: наименование продукции; цена единицы продукции; количество единиц наличия; сумма.
Б) Имеется сеть магазинов, которые получают продукцию со склада. Информация хранится в файле РАСХОД: потребитель; наименование продукции; количество единиц отпущено; сумма; дата.
Программа следит за движением продукции со склада, обеспечивает ввод, удаление и просмотр информации, каждому потребителю выдаёт счёт-накладную.
Разработать: 1) Алгоритм и программу;
2) Разработать интерфейс;
Дата выдачи задания «____»______________2012г.
Руководитель Н.А.Тишина
Исполнитель
студент группы 09ПОВТ-1 С.В. Лежнев
Срок защиты работы «____»_____________2012г.
Содержание
Обоснование выбора языка программирования.......................................................................................................... . | ||
Описание разработки структуры программы………………………... | ||
Словесный алгоритм.......................................................................................................... . | ||
Спецификация переменных ………………………………………….. | ||
Спецификация функций ……………………………………………… | ||
Руководство оператора ..……………………………………………… | ||
6.1 | Назначение и условия применения программы…………………….. | |
6.2 | Характеристика программы………………………………………….. | |
6.3 | Выполнение программы………………………………………………. | |
6.4 | Сообщения оператору………………………………………………… | |
Список использованных источников ..……………………………………. | ||
Приложение А Схемы алгоритмов......................................................... | ||
Приложение Б Тестирование программы .................................................................................................................. .. | ||
Приложение В Текст программы .................................................................................................................. .. |
Обоснование выбора языка программирования
Для разработки программы использован язык С++, как наиболее популярный и имеющий достаточную функциональность для решения поставленной задачи. С++ постоянно находился в состоянии изменения, поскольку происходило его дополнение новыми функциональными возможностями. Этот язык совмещает несколько парадигм – объектно-ориентированное программирование, обобщенное программирование и традиционно-процедурное программирование.
Этот язык стал одним из основных языков программирования в 90-е годы и сохраняет свои позиции в первом десятилетии ХХI века. Унаследовав от языка С такие свойства, как эффективность, компактность, быстроту выполнения и переносимость программ.
Описание разработки структуры программы
Для облегчения и наглядности обработка данных проводится в динамической памяти. При разработке программного комплекса был использован принцип модульного программирования (создан специальный модуль SKLADUNIT.H, который содержит в себе некоторые вспомогательные функции), а также стандартные библиотеки языка С++. Графический режим не использовался.
Для хранения и обработки данных используется структурированный тип, поэтому он описывается до описания функций. Исходный код программы состоит из главного файла (SKLAD.CPP), вспомогательного модулей (PRODUCT.H, POTREB.H, GRAPH.H). Для успешной компиляции необходимы стандартные библиотеки языка С++. В главном файле программы содержится функция main(). В модуле содержатся необходимые для работы программы функции. Программа начинается с вызова функции main().
Словесный алгоритм
Программа начинается с вызова функции main(). Первоначально на экране появляется меню, состоящее из 2 пунктов:
1. просмотр товаров на складе
2. просмотр потребителей.
Выбор какого-либо пункта осуществляется путём передвижения курсора вверх или вниз с помощью функции up() и down() соответственно.
При выборе первого пункта на экран выводится информация о товарах на складе. При нажатии клавиши «Del» происходит удаление выбранного товара с помощью функции del(), при нажатии «1» происходит добавление количества выбранного товара со склада с помощью функции add_prod(), при нажатии «2» - происходит редактирования выбранного товара на складе, программа просит ввести новое имя и количество, осуществляемое с помощью функции correct(), при нажатии «3» - запускается функция buy(), которая осуществляет покупку магазином, выбранным из предоставленного списка, нажатие клавиши «4» дает возможность добавить новый товар на склад с помощью функции new_prod(), при нажатии клавиши «5» происходит поиск товара на складе с помощью функции seach(), при нажатии клавиши Esc программа возвращается к предыдущему пункту.
При выборе второго пункта на экране появляется список магазинов-потребителей. При нажатии клавиши Enter происходит выбор одного из них и появляется вся информация о выбранном магазине. Нажатие клавиши «1» дает возможность добавить нового потребителя с помощью функции new_potr(), при нажатии клавиши «2» происходит удаление выбранного потребителя с помощью функции del_potr().
Спецификация переменных
Таблица 1 – Спецификация переменных
Идентификатор | Тип | Описание |
Главный файл | ||
Potreb[10] | Potr | Информация о потребителей |
ntov | Int | Количество товаров на складе |
npotr | int | Количество потребителей |
strmenu[30][30] | Char | Список имен для меню |
Color | Int | Текущий цвет фона |
Da | date | Текущая дата |
Модуль Product.h | ||
Product[30] | product | Информация о товарах |
Спецификация функций
Таблица 2 – Спецификация функций
Название | Описание |
Главный файл | |
main() | Главная функция программы. В зависимости от выбранного пункта меню вызывает соответствующую функцию: see_tov(), see_potr() . Параметры не получает. Значений не возвращает. Локальные переменные: m , f char Вспомогательная переменная Key int Номер клавиши Cr Int Номер текущего пункта меню Old Int Номер предыдущего пункта меню |
flush(void) | Функция записи всей информации в файлы Локальные переменные: SKLAD FILE* Указатель на Файл SKLAD RASXOD FILE* Указатель на Файл RASXOD i , j int Счетчик |
Файл Graph.h | |
new_menu(int cr,int old) | Меняет цвет экрана при выборе какого-либо пункта из меню. Локальные переменные: x,y int Координаты курсора |
window1(int x1,int y1,int x2,int y2) | Рисует на экране окно. Локальные переменные: I int Счетчик |
vvod(void) | Функция ввода целых значений, которая возвращает только цифры. Локальные переменные: M,c,cif,d Int Вспомогательные переменные Key Int Номер введенной клавиши array[] Int Массив кодов клавиш цифр kol Int Введенное число |
up(int *old,int *cr) | Функция изменения позиции текущего указателя, т.е. перевод его вверх (смена цвета текущей позиции и верхней). |
Продолжение таблицы 2 | |
Файл Product.h | |
down(int *old,int *cr,int n) | Функция изменения позиции текущего указателя, т.е. перевод его вверх (смена цвета текущей позиции и нижней). |
int read_prod(void)) | Функция считывает из файла СКЛАД информацию о продукции, хранящейся на складе, и выводит её на экран. Локальные переменные: RASXOD FILE* Указатель на Файл RASXOD I int Счетчик j int Счетчик |
new_prod(void) | Функция просит ввести с клавиатуры имя нового товара на складе, а также высчитывает его цену, кол-во и сумму. |
del_prod(char number) | Функция удаляет какой-либо товар на складе. Локальные переменные: j int Счетчик |
corect(int number) | Функция изменяет имя какой-либо товар на складе. |
schet(int p1,int p2) | Выводит на экран счёт-накладную. Локальные переменные: d date Текущая дата |
int buy(int number) | Покупка товара на складе. Количество продукции вводится с клавиатуры. Локальные переменные: m,f,kol Int Вспомогательные переменные Key int Номер нажатой клавиши cr Int Номер текущего пункта меню Old Int Номер предыдущего пункта меню |
int seach(void) | Функция поиска товара Локальные переменные: Name[20] Char Имя искомого товара m Int Вспомогательная переменная j Int Счетчик |
int see_tov(void) | Функция просмотра продукции на складе. Локальные переменные: m,f,kol,u,d,l.p int Вспомагательная переменная Cr int Номер текущего пункта меню old int Номер предыдущего пункта меню key Int Номер клавиши |
Продолжение таблицы 2 | |
Файл Potreb.h | |
del_potr(int number) | Функция удаления потребителя. Локальные переменные: i int Счетчик j int Счетчик j Int Счетчик |
int read_potr(void) | Считывает из файла РАСХОД информацию о потребителях, и выводит её на иэкран. Значений не возвращает. Локальные переменные: RASXOD FILE* Указатель на Файл RASXOD i int Счетчик j int Счетчик |
del_pok(int p,int number) | Функция удаления текущей покупки |
see_potreb(int number) | Функция просмотра информации о потребителе (информация о купленном товаре, дата покупки). Локальные переменные: m,f,kol,u,d,l.p int Вспомагательная переменные Cr int Номер текущего пункта меню old int Номер предыдущего пункта меню key Int Номер клавиши |
new_potr(void) | Функция просит ввести с клавиатуры имя нового потребителя. |
see_potr(void) | Функция просмотра списка потребителей (возможность добавления и удаления потребителя) Локальные переменные: m,f int Вспомагательная переменные Cr int Номер текущего пункта меню old int Номер предыдущего пункта меню key Int Номер клавиши |
Руководство оператора