Помощь в написании студенческих работ
Антистрессовый сервис

Программная реализация задачи распределения товаров

Курсовая Купить готовую Узнать стоимостьмоей работы

Павловская Т. А. C/C++:Программирование на языке высокого уровня СПб: Питер, 2013. Информатика. Базовый курс. 2-е издание Под ред. С. В. Симоновича СПб: Питер, 2005. Объединение списков. В приложении даны исходные коды функций на языке С++. Подбельский В. В. Программирование на языке Си Финансы и статистика, 2003. Ахо А. В., Хопкрофт Д., Ульман Д. Д. Структуры данных и алгоритмы2001, Вильямс… Читать ещё >

Программная реализация задачи распределения товаров (реферат, курсовая, диплом, контрольная)

Содержание

  • ВВЕДЕНИЕ
  • 1. ТЕОРЕТИЧЕСКАЯ ЧАСТ
  • 2. РАЗРАБОТКА АЛГОРИТМОВ И СТРУКТУР ДАННЫХ
  • 4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМОВ
  • 5. ТЕСТИРОВАНИЕ РАЗРАБОТАННОЙ ПРОГРАММЫ
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ 2

В этом случае нужно внимательно следить за полем list структуры Shop.

ЗАКЛЮЧЕНИЕ

В представленной работе дано краткое описание теоретических сведений о структурах и алгоритмах обработки данных. Подробно рассмотрены способы организации линейного списка как динамической структуры данных. Изложены алгоритмы работы со списками. В практической части работы реализованы исследованные операции работы со списками:

создание списка;

печать списка;

сохранение и восстановление списка из файла;

поиск элемента в списке;

добавление элемента в список;

обработка (корректировка) элементов;

удаление элемента из списка.Проведеноручноетестированиепрограммы. Разработан набор тестов, который позволил выявить некоторые слабые места программы. Дальнейшее усовершенствование программы можно проводить по пути расширения функциональных возможностей:

сортировка списков;

объединение списков. В приложении даны исходные коды функций на языке С++.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Ахо А.В., Хопкрофт Д., Ульман Д. Д. Структуры данных и алгоритмы2001, Вильямс

Информатика. Базовый курс. 2-е издание Под ред. С. В. Симоновича СПб: Питер, 2005

Павловская Т. А. C/C++:Программирование на языке высокого уровня СПб: Питер, 2013

Подбельский В. В. Программирование на языке Си Финансы и статистика, 2003

Кернига Б.В., Пайк Р. Практика программирования. — СПб.: Невский диалект, 2001. ПРИЛОЖЕНИЕ#include #include #include #include #include usingnamespacestd;constintt_name = 50;//максимальное количество символов в наименовании товараconstintm_name = 15;//максимальное количество символов в названии магазинаlongbooks_itog = 0;//общее количество книг на складе (за весь период)//элемент списка товаровstructProd{char name[t_name]; intqty;intproc;float coast;Prod* next;};//элемент списка магазиновstructShop{char name[m_name]; Prod* list;Shop* next;};//—-Меню———————————————int menu (){intsel;do{cout << «Choose an action:» << endl;cout << «1 — Find items in stock» << endl;// найтитоварнаскладеcout << «2 — Takefromthestock» << endl;// отгрузить товар со склада в магазинcout << «3 — Sellfromtheshop» << endl;// продать товар из магазинаcout << «4 — Printstock» << endl;// распечатать список товаров на складеcout << «5 — Printshops» << endl;// распечатать список магазинов в сети обслуживанияcout << «6 — Printshopsproduct» << endl;// распечатать ассортимент товаров в магазинах сетиcout << «7 — Newstock» << endl;// обновить склад в связи с началом нового месяцаcout << «8 — Exit» << endl;// выходcin >> sel;}while (!sel);returnsel;}//—Добавлениетовара———————————————Prod* AddProd (Prod* beg, const Prod& pr){Prod* temp = new Prod;*temp = pr;temp->next = 0;//если список не пустойif (beg){Prod* t = beg;while (t->next) t = t->next;t->next=temp;}//если список пустойelsebeg = temp;return beg;}//—Добавлениемагазина в сеть—————————————Shop* AddShop (Shop* beg, const Shop& sh){Shop* temp = new Shop;*temp = sh;temp->next = 0;//если список не пустойif (beg){Shop* t = beg;while (t->next) t = t->next;t->next=temp;}//если список пустойelsebeg = temp;return beg;}//—Чтение товаров на складе из файла————————Prod* ReadStock (){ifstream file («Stock.txt»);if (!file){cout << «File not found!» << endl;getch (); return 0;}Prod pr, *beg = 0;while (file.getline (pr.name, t_name)){file >> pr. qty >> pr. coast;pr.proc = 100;file.get ();beg = AddProd (beg, pr);};returnbeg;}//—Чтение списка магазинов————————Shop* ReadShop (Prod *begP){ifstream file («Shops.txt»);if (!file){cout << «File not found!» << endl;getch ();return 0;}Shop pr, *beg = 0;while (file.getline (pr.name, m_name)){Prod *t = begP;pr.list=0;while (t){Prod *lp = new Prod;strcpy (lp->name, t->name);file >> lp->proc;lp->qty = (t->qty)*(lp->proc)/100;lp->coast = t->coast;lp->next = 0;t = t->next;if (pr.list) {//если список не пустойProd* tt = pr. list;while (tt->next) tt = tt->next;tt->next=lp;}//если список пустойelsepr. list = lp;}file.get ();beg = AddShop (beg, pr);};returnbeg;}//—-Печать на экран товаров со склада——————-voidPrintStock (Prod* beg){Prod* temp = beg;while (temp){cout << temp->name <<'t' << temp->qty << 't' << temp->coast << endl;temp = temp->next;}}//—-Подсчет товара на складеvoidCountStock (Prod* beg){Prod* temp = beg;longitog = 0;while (temp){itog += temp->qty;temp = temp->next;}books_itog += itog;cout << «Result:» << itog << endl << endl;}//—-Печать на экран списка магазинов——————-voidPrintShops (Shop* beg){Shop* temp = beg;while (temp){cout << temp->name << endl;temp = temp->next;}cout << endl;}//—-Печать на экран товаров в магазинах——————-voidPrintShopsProd (Shop* beg){Shop* temp = beg;while (temp){cout << temp->name << «:» << endl;Prod* t = temp->list;while (t){cout << t->name <<'t' << t->qty << 't' << t->coast << endl;t = t->next;}cout << endl;temp = temp->next;}}//—-Поиск товара на складе——————-Prod* FindName (Prod* temp, char* name, Prod** prev){while (temp){if (strstr (temp->name, name)) return temp;*prev = temp;temp = temp->next;}cout << «Product is not found!» << endl; return 0;} voidFindStock (Prod* beg){charbuf[t_name]; cout << «Enter a product name:» << endl;cin >> buf;Prod* prev;Prod* pr = FindName (beg, buf, &prev);if (pr) cout << pr->name <<'t' << pr->qty << 't' << pr->coast << endl;}//—Поискмагазина в списке————————Shop* FindShop (Shop* temp, char* name){while (temp){if (strstr (temp->name, name)) return temp;temp = temp->next;}cout << «Shop is not found!» << endl; return 0;} Prod* RemoveProd (Prod* beg, Prod* p, Prod* prev){//если удаляем из начала спискаif (p == beg) beg = beg->next;//если удаляем из середины спискаelseprev->next = p->next;//освобождаемпамятьdelete p;return beg;}//корректировкаспискатоваровнаскладеvoidCorrStock (Prod* beg, Prod* p, Prod* prev, int q){//если ненулевой остаток, то корректируемif (p->qty > q) {p->proc = q * 100 / (p->qty); p->qty -= q;}//если нулевой остаток, то удаляем запись о товареelsebeg = RemoveProd (beg, p, prev);}//корректировка списка товаров в магазинеvoidCorrShop (Prod* p, Shop* s, intq){Prod *tmp = new Prod;strcpy (tmp->name, p->name);tmp->coast = p->coast;tmp->proc= q * 100 / (tmp->qty);tmp->qty = q;tmp->next = 0;//если список товаров не пустойif (s->list){Prod *prev;Prod *t = FindName (s->list, p->name, &prev);//если товар уже есть, то корректируемif (t) t->qty += q;//если нет, то добавляем новый элемент в списокelse{Prod* temp = s->list;while (temp->next) temp = temp->next;temp->next = tmp;}}//если список товаров пустойelses->list = tmp;}//—-Отгрузкасосклада———————————voidTakeStock (Prod* begP, Shop* begS){charbufP[t_name]; cout << «Enter a product name:» << endl;cin >> bufP;Prod* prev;//находим нужный товарProd* pr = FindName (begP, bufP, &prev);//определяем остаток товара на складеif (pr){cout << «Balance in stock is «<< pr->qty << endl;intqt;//запрашиваем нужное количество для отгрузкиcout << «Enter the amount of products:» << endl;cin >> qt;//если не хватаетif (qt > pr->qty){ cout << «Enough products in stock!» << endl;}//если товара достаточноelse{charbufS[m_name]; //запрашиваем магазинcout << «Enter a shop name:» << endl;cin >> bufS;//находимнужныймагазинShop* ps = FindShop (begS, bufS);if (ps){//корректируем список товаров в магазинеCorrShop (pr, ps, qt);//корректируем список товаров на складеCorrStock (begP, pr, prev, qt);}}}}//—-Обновление на складе (новый месяц)——voidNewStock (Prod* begP){Prod* temp = begP;int m;cout << «Enter the number of month: «<< endl;cin >> m;while (temp){switch (m){case 1: temp->qty = temp->qty; break;case 2: temp->qty = temp->qty * 105 / 100; break;case 3: temp->qty = temp->qty * 103 / 100; break;case 4: temp->qty = temp->qty * 104 / 100; break;}temp->proc = 100;temp = temp->next;}cout << endl;}//—-Продажа из магазина———————————voidSellShop (Shop* begS){charbufS[m_name]; cout << «Enter a shop name:» << endl;cin >> bufS;//находимнужныймагазинShop* ps = FindShop (begS, bufS);if (ps){Prod* t = ps->list;cout << «Product:» << endl;while (t){cout << t->name <<'t' << t->qty << 't' << t->coast << endl;t = t->next;}charbuf[t_name]; cout << «Enter a product name:» << endl;cin >> buf;Prod* prev;Prod* s = new Prod;s = ps->list;//находим нужный товарProd* pr = FindName (s, buf, &prev);//определяем остаток товара в магазинеif (pr){cout << «Balance in shop is «<< pr->qty << endl;intqt;//запрашиваем нужное количество для отгрузкиcout << «Enter the amount of prodocts:» << endl;cin >> qt;//если не хватаетif (qt > pr->qty){ cout << «Enough products in shop!» << endl;}//если товара достаточноelse//если ненулевой остаток, то корректируемif (pr->qty > qt) {pr->proc= qt * 100 / (pr->qty);pr->qty -= qt;}//если нулевой остаток, то удаляем запись о товареelse s = RemoveProd (s, pr, prev);ps->list = s;}}}//——————————————————-intmain (){ //первоначальное формирование списка товаров из файлаProd* Stock = ReadStock ();if (!Stock) {cout << «List is not created» << endl; getch (); return 1;}//первоначальное формирование списка магазинов с распределением товара//процентное распределение задано в файлеShop* Net = ReadShop (Stock);if (!Net) {cout << «List is not created» << endl; getch (); return 1;}while (true){switch (menu ()){case 1: cout << «Find items in stock» << endl; FindStock (Stock);break;case 2: cout << «Take from the stock» << endl; TakeStock (Stock, Net);break;case 3: cout << «Sell from the shop» << endl;SellShop (Net); break;case 4: cout << «PRINT STOCK:» << endl << endl;PrintStock (Stock); break;case 5: cout << «PRINT SHOPS:» << endl << endl; PrintShops (Net);break;case 6: cout << «PRINT SHOPS PRODUCT:» << endl << endl; PrintShopsProd (Net);break;case 7: cout << «New month» << endl << endl; NewStock (Stock); break;case 8: cout << «For 4 months: «<< books_itog << endl; getch ();return 0;default: cout << «Enter a number from 1 to 8» << endl; break; }}getch ();return 0;}

Показать весь текст

Список литературы

  1. Ахо А.В., Хопкрофт Д., Ульман Д. Д. Структуры данных и алгоритмы2001, Вильямс
  2. Информатика. Базовый курс. 2-е издание Под ред. С. В. Симоновича СПб: Питер, 2005
  3. Т. А. C/C++:Программирование на языке высокого уровня СПб: Питер, 2013
  4. Подбельский В. В. Программирование на языке Си Финансы и статистика, 2003
  5. .В., Пайк Р. Практика программирования. — СПб.: Невский диалект, 2001.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ