Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Проверка работоспособности программы↑ ⇐ ПредыдущаяСтр 3 из 3 Содержание книги
Поиск на нашем сайте
5 Руководство оператора В данной программе реализованы следующие возможности: - отчет о продаже растений; - список имеющихся растений; - список имеющихся семян; - список имеющихся семян; - сообщение о характеристиках выбранных растений; - сообщение о технологии посадки выбранных растений; - указания по выращиванию выбранных растений; - дата выведения сорта выбранного растения; - цена выбранного растения; - морозоустойчиво ли выбранное растение;
Для выбора нужной функции необходимо следовать подсказкам главного и побочных меню. Например, если нам надо добавить покупку, то необходимо зайти в программу, затем ввести клавишу «1» и нажать клавишу «Enter». У нас на экране появится сообщение о необходимости ввести название файла, который мы хотим занести в вектор (например, buy.txt). Нажимаем «Enter» и возвращаемся в основное меню. В программе можно работать, опираясь на ее подсказки. При запуске программы вызывается функция glav_meny() и происходит загрузка информации из файлов (buy.txt, rastenie.txt, sort.txt) в вектора(buy, rastenie, sort). И у нас на экране появляется главное меню программы:
(Главное меню программы)
Далее у пользователя программы появляется возможность выбора любого из возможных пунктов меню. При выборе 1 пункта главного меню, появляется возможность внести из любого файла в вектор buy.
(Функция 1 - Добавление файла в вектор)
Аналогичным образом ведут себя Функции 5 и 9. За исключением того, что при нажатии Функции 5 мы записываем в вектор rastenie, а при нажатии Функции 9 в вектор sort. После чего мы возвращаемся в главное меню. При выборе 2 пункта главного меню вызывается функция Записи из вектора в файл. и на экране появляется:
(Функция 2 – Запись из вектора в файл)
Аналогичным образом ведут себя Функции 6 и 10. За исключением того, что при нажатии Функции 6, мы записываем из вектора rastenie в файл rastenie.txt, а при нажатии Функции 10 из вектора sort в файл sort.txt. После чего мы возвращаемся в главное меню. При выборе 3 пункта главного меню вызывается функцию Вывод содержимого вектора buy на экран: (Функция 3 – Вывод на экран содержимого вектора) Аналогичным образом ведут себя Функции 7 и 11. За исключением того, что при нажатии Функции 7, мы выводим на экран из вектора rastenie, а при нажатии Функции 11 из вектора sort. При выборе 4 пункта главного меню вызывается функция Записи в вектор buy с новым содержимым: Вводим новую покупку. После чего появляется подменю с тремя функциями. 1. Ввести новое растение 2. Выбрать растение из списка имеющихся. 0. Вернуться в главное меню
При выборе 1 пункта подменю программа выводится ___________просьба ввести новое __________растение. ________При выборе 2 ____________пункта подменю программа выводится просьба ввести номер имеющегося растения (нумерация начинается с нуля). При выборе 0 пункта подменю программа возвращает нас в главное меню. При выборе 8 пункта главного меню вызывается функция Записи в вектор rastenie с новым содержимым: Вводим новое растение. Аналогичным образом ведет себя Функции 12. За исключением того, что при нажатии Функции 12, мы вводим новый сорт.
При выборе 0 пункта главного меню программа заканчивает свою работу. Заключение В ходе данного курсового проекта я получила основные знания и некоторые навыки в составлении алгоритмов и написании программ на языке программирования C++. В этой работе было выполнено техническое задание на языке программирования C++. Я проверила приобретенные навыки и умения самостоятельного составления программ на языке программирования C++ для выполнения программного обеспечения института селекции растений. Я считаю, что язык программирования C++ - это простое, достаточно удобное и мощное средство разработки самых разных приложений – от создания простых программ, предназначенных для решения несложных вычислительных задач, до разработки сложнейших реляционных систем управления базами данных - обладающее весьма широким спектром возможностей.
Список литературы: 1. Лекции по курсу Программирование на ЯВУ С++ 2. Методические указания к выполнению курсовой работы по дисциплине “Программирование на языке высокого уровня” для студентов второго курса специальности 071900 ”Информационные системы в технике”, — М.: Редакционно-издательский отдел РГАСХМ, 2004. 3. Павловская Т.А., С++ Практикум, — М.: Питер, 2002. 4. Технология разработки программного обеспечения: Учебник /С.Орлов — СПб.: Питер, 2002. 5. Халперн П. Стандартная библиотека C++ на примерах. — М.: Издательский дом “Вильямс”, 2001.
Приложение 1. Техническое задание 1. ВВЕДЕНИЕ Наименование — прикладное программное обеспечение деятельности института селекции растений. Краткая характеристика — прикладное программное обеспечение института селекции растений с информационной базой об имеющихся растениях. 2. ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ Учебный план специальности 230201 и задание преподавателя для выполнения курсовой работы. 3. НАЗНАЧЕНИЕ РАЗРАБОТКИ Прикладное программное обеспечение деятельности института селекции растений предназначено для сбора и хранения информации о различных сортах семян имеющихся в институте. 4.ТРЕБОВАНИЯ К ПРОГРАММЕ 4.1. Требования к функциональным характеристикам 4.1.1. Программное обеспечение должно обеспечить ввод информации о: - покупках: - номер покупки растения - цену покупки растения - отдел покупки растения -растениях: - название растения - тип растения - срок хранения семян - технологии посадки - сортах: - названия сорта - характеристика сорта - морозоустойчивость - дата выведения сорта 4.1.1. По требованию пользователя система должна обеспечить хранение информации о: - покупках: - номер покупки растения - цену покупки растения - отдел покупки растения -растениях: - название растения - тип растения - срок хранения семян - технологии посадки - сортах: - названия сорта - характеристика сорта - морозоустойчивость - дата выведения сорта 4.1.2. По требованию пользователя система должна обеспечить выдачу: - отчет о продаже растений; - список имеющихся растений; - список имеющихся семян; - список имеющихся семян; - сообщение о характеристиках выбранных растений; - сообщение о технологии посадки выбранных растений; - указания по выращиванию выбранных растений; - дата выведения сорта выбранного растения; - цена выбранного растения; - морозоустойчиво ли выбранное растение; 4.1.3. Программное обеспечение должно работать в консольном режиме и поддерживать работу с клавиатуры. 4.1.4. Собранная информация может быть сохранена на внешнем носителе в выходном файле автоматически и по требованию пользователя. 4.1.5. Структура выходного файла должна быть разработана с учетом сохранения всех первичных параметров и моментов их изменений. 4.1.6. Программное обеспечение при запуске может использовать в качестве входной информации файл с ранее записанными данными. 4.1.7. Системное время и дата поддерживаются встроенными часами. 4.2. Требования к надежности 4.2.1. Программа должна обрабатывать ошибочные действия пользователя и сообщать ему об этом. 4.2.2. Программа должна учитывать отсутствие данных за требуемый период в связи с возникшим сбоем. 4.3. Условия эксплуатации 4.3.1. Температура окружающего воздуха должна находится в пределах от 10 до 30 градусов по Цельсию. 4.3.2. Относительная влажность воздуха должна находиться в пределах 30-60%. 4.3.3. Данным программным обеспечение может управлять любой квалифицированный сотрудник. 4.4. Требования к составу и параметрам технических средств 4.4.1. Программное обеспечение разрабатывается для персонального компьютера IBM PC с процессором не ниже Pentium-120 со следующими характеристиками: - объем ОЗУ не менее 16 Mb; - графический адаптер SVGA; - манипулятор типа "мышь". 4.4.2. ЭВМ должна работать под управлением операционной системы не ниже WINDOWS 98. 4.5. Требования к информационной и программной совместимости 4.5.1. Требование информационной совместимости должно быть обеспечено работой с файлами сбора информации о мониторинге определенной структуры в качестве входной и выходной информации. 5. ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ Программная документация должна содержать пояснительную записку к курсовой работе и графическую часть. 6. ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ В результате внедрения разработанного ПО предполагается увеличить информационность института. 7. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ 7.1. Стадия аналитической разработки: - ознакомление с теоретическим материалом; - аналитическая обработка теоретической информации. - объектно-ориентированный анализ; - разработка диаграммы объектов; - разработка диаграммы последовательности; - объектно-ориентированное проектирование; - разработка диаграммы классов. 7.2. Стадия программной разработки: - разработка классов и отдельных модулей программы; - отладка полученных классов и модулей; - объединение структур и формирование единой программы; - тестирование и получение результатов работы программы. 7.3. Стадия аналитического анализа: - анализ данных, полученных в результате работы программы; - выработка рекомендаций по увеличению эффективности использования объекта моделирования. 8. ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ 8.1. При сдаче работы производится демонстрация разработанной программы на контрольном примере. 8.2. Копии всех документов включают: - исходный текст программы; - загрузочные модули (скомпилированная программа и файлы с входными данными); - текстовую и графическую документацию. Копии передаются на магнитном носителе преподавателю не позднее, чем за 3 дня до защиты.
Приложение 2. Листинг программы CBuy.h #include <fstream> #include <vector> #include "CRastenie.h"
class CBuy { private: int Number; int Sum; char * Otdel; std::vector <CRastenie *> vr; public: int get_Number(void); void set_Number(int ANumber); int get_Sum(void); void set_Sum(int ASum); char * get_Otdel(void); void set_Otdel(char * AOtdel);
CBuy(); CBuy(CBuy & As); CBuy(int ANumber,int ASum,char * AOtdel); ~CBuy (); void Read(); void Write(); void ReadF(std::ifstream &f); void WriteF(std::ofstream &f); void WriteV(); void WriteFV(std::ofstream &f); void ReadFV(std::ifstream &f); void AddRastenieInBuy(CRastenie * r); int CountRastenieInBuy (); };
CRastenie.h #ifndef __CRastenie__ #define __CRastenie__ #include <fstream> class CRastenie { private: char Name [30]; char Tip [50]; char Tehnologi [120]; public: char * get_Name(void); void set_Name(char * AName); char * get_Tip(void); void set_Tip(char * ATip); char * get_Tehnologi(void); void set_Tehnologi(char * ATehnologi); CRastenie(); CRastenie(CRastenie & As); CRastenie(char * AName,char * ATip,char * ATehnologi); void Read(); void Write(); void ReadF(std::ifstream &f); void WriteF(std::ofstream &f); }; #endif
CSort.h #include <fstream> #include "CRastenie.h"
class CSort:public CRastenie { private: char NameSort[50]; char Description[300]; char Frost[3]; int Year; public: char * get_NameSort(void); void set_NameSort(char * AnewNameSort); char * get_Description(void); void set_Description(char * AnewDescription); char * get_Frost(void); void set_Frost(char * AnewFrost); int get_Year(void); void set_Year(int AnewYear); CSort(); CSort(char * AName,char * ATip,char * ATehnologi,char * ANameSort,char * ADescription,char * AFrost,int AYear); ~CSort(); void Write(); void Read(); void WriteF(std::ofstream & f); void ReadF(std::ifstream & f); }; B.cpp #include "stdafx.h" #include <string.h> #include "CBuy.h" #include <iostream.h>
extern std::vector <CBuy *> v; extern std::vector <CRastenie *> w;
int CBuy::get_Number(void) { return Number;} void CBuy::set_Number(int ANumber) { Number = ANumber;} int CBuy::get_Sum(void) { return Sum;} void CBuy::set_Sum(int ASum) { Sum = ASum;} char * CBuy::get_Otdel(void) { return Otdel;} CBuy::CBuy() { Number = 10; Sum = 370; Otdel= new char [8]; strcpy(Otdel,"Flowers"); }
CBuy::CBuy(CBuy & As) { Number = As.Number; Sum = As.Sum; Otdel= new char [strlen(As.Otdel)+1]; strcpy(Otdel, As.Otdel); } CBuy::CBuy(int ANumber, int ASum, char * AOtdel) { Number = ANumber; Sum = ASum; Otdel= new char [strlen(AOtdel)+1]; strcpy(Otdel, AOtdel); }
CBuy::~CBuy() { delete [ ] Otdel; } void CBuy::set_Otdel(char * AOtdel) { if (Otdel!=0) delete[] Otdel; Otdel = new char[strlen(AOtdel)+1]; strcpy(Otdel, AOtdel); }
void CBuy::Read(void) { cout << "vvedite informazhiy o pokupke" << endl; cout << "vvedite Number" << endl; cin >> Number; cout << "vvedite Sum" << endl; cin >> Sum; cout << "vvedite Otdel" << endl; char s[1000]; cin >> s; Otdel = new char [strlen(s)+1]; strcpy(Otdel, s); int i; int command = 4; CRastenie * Temp100; while (command!= 0) { cout << "Please enter operation..." << endl; cout << "1. Add new Rastenie in Buy" << endl; cout << "2. Add Rastenie in Buy" << endl; cout << "0. Exit from this menu" << endl; cin >> command; if (command==1) { Temp100=new CRastenie(); Temp100->Read(); w.push_back(Temp100); AddRastenieInBuy(Temp100); } else if (command==2) { cout << "Vvedite nomer rastenija v glob-spiske"; cin >> i; AddRastenieInBuy (w[i]); } else {cout << "Invalid command" << endl; } } }
void CBuy::ReadF(std::ifstream &f) { char s[1000]; f >> Number >> Sum >> s; Otdel= new char [strlen(s)+1]; strcpy(Otdel, s); ReadFV(f); } void CBuy::Write(void) { cout << "informazhiy o pokupke" << endl; cout << "Number: " << Number <<endl; cout << "Sum: " << Sum << endl; cout << "Otdel: " << Otdel << endl; }
void CBuy::WriteF(std::ofstream &f) { f << Number << std::endl << Sum << std::endl << Otdel << std::endl; WriteFV(f); }
void CBuy::AddRastenieInBuy(CRastenie * r) { vr.push_back(r); } void CBuy::WriteV() {cout << "Kolichestvo rasteni: " << CountRastenieInBuy() << endl; for(int i =0; i< CountRastenieInBuy(); i++) {vr[i]->Write(); } } void CBuy::WriteFV(std::ofstream &f) { f << CountRastenieInBuy () << std::endl; for(int i =0; i< CountRastenieInBuy (); i++) {for(int n = 0; n<w.size(); n++) { if(w[n] == vr[i]) break; } f << n << std::endl; } } void CBuy::ReadFV(std::ifstream & f) { int N2, n2; f >> N2; for(int i = 0; i < N2; i++) { f >> n2; vr.push_back(w[n2]); } } int CBuy::CountRastenieInBuy () { return vr.size(); } Cr.cpp #include "stdafx.h" #include <string.h> #include "CBuy.h" #include <iostream.h>
char * CRastenie::get_Name (void) { return Name;} void CRastenie::set_Name (char * AName) { strcpy (Name,AName);} char * CRastenie::get_Tip (void) { return Tip;} void CRastenie::set_Tip (char * ATip) { strcpy(Tip,ATip);} char * CRastenie::get_Tehnologi(void) { return Tehnologi;} void CRastenie::set_Tehnologi (char * ATehnologi) { strcpy (Tehnologi,ATehnologi);}
CRastenie::CRastenie() { strcpy(Name,"Tomato"); strcpy(Tip,"Seeds"); strcpy(Tehnologi,"To_plant_in_the_earth_and_to_water"); } CRastenie::CRastenie(CRastenie & As) { strcpy(Name, As.Name); strcpy(Tip, As.Tip); strcpy(Tehnologi, As.Tehnologi); } CRastenie::CRastenie(char * AName,char * ATip,char * ATehnologi) { strcpy(Name,AName); strcpy(Tip,ATip); strcpy(Tehnologi,ATehnologi); }
void CRastenie::Read(void) { cout << "vvedite informazhiy o rastenie" << endl; cout << "vvedite Name" << endl; cin >> Name; cout << "vvedite Tip" << endl; cin >> Tip; cout << "vvedite Tehnologi" << endl; cin >> Tehnologi; } void CRastenie::ReadF(std::ifstream &f) { f >> Name >> Tip >> Tehnologi; } void CRastenie::Write(void) { cout << "informazhiy o rastenie" << endl; cout << "Name: " << Name <<endl; cout << "Tip: " << Tip << endl; cout << "Tehnologi: " << Tehnologi << endl; } void CRastenie::WriteF(std::ofstream &f) { f << Name << std::endl << Tip << std::endl << Tehnologi << std::endl; }
S.cpp #include "stdafx.h" #include <string.h> #include "CSort.h" #include "CRastenie.h" #include <iostream.h>
char * CSort::get_NameSort(void) { return NameSort;} void CSort::set_NameSort(char * ANameSort) { strcpy(NameSort,ANameSort);} char * CSort::get_Description(void) { return Description;} void CSort::set_Description(char * ADescription) { strcpy(Description,ADescription);} char * CSort::get_Frost(void) { return Frost;} void CSort::set_Frost(char * AFrost) { strcpy(Frost,AFrost);} int CSort::get_Year(void) { return Year;} void CSort::set_Year(int AYear) { Year = AYear;}
CSort::CSort():CRastenie() { strcpy(NameSort,"Kivi"); strcpy(Description,"Leaves_roundish,with_slightly_pointed_top,dark_green_colour,with_a_glossy_surface_and_the_rough_bottom_party.Fruits_large,weight_from_80_to_150,the_oval_form."); strcpy(Frost,"yes"); Year = 2011; }
CSort::CSort(char * AName,char * ATip,char * ATehnologi,char * ANameSort,char * ADescription,char * AFrost,int AYear):CRastenie(AName,ATip,ATehnologi) { strcpy(NameSort,ANameSort); strcpy(Description,ADescription); strcpy(Frost,AFrost); Year = AYear; }
CSort::~CSort() { }
void CSort::Read(void) { CRastenie::Read(); cout << "vvedite informazhiy o sorte" << endl; cout << "vvedite NameSort" << endl; cin >> NameSort; cout << "vvedite Description" << endl; cin >> Description; cout << "vvedite Frost" << endl; cin >> Frost; cout << "vvedite Year"<< endl; cin >> Year; }
void CSort::ReadF(std::ifstream & f) { CRastenie::ReadF(f); f >> NameSort >> Description >> Frost >> Year; } void CSort::Write(void) { cout << endl; CRastenie::Write(); cout << "informazhiy o sorte" << endl; cout << "NameSort: " << NameSort << endl; cout << "Description: " << Description << endl; cout << "Frost: " << Frost << endl; cout << "Year: "<< Year << endl; } void CSort::WriteF(std::ofstream & f) { CRastenie::WriteF(f); f << NameSort << std::endl << Description << std::endl << Frost << std::endl << Year << std::endl; } Buy.cpp #include "stdafx.h" #include <string.h> #include "CBuy.h" #include "CRastenie.h" #include "CSort.h" #include <iostream.h> #include <fstream> #include <vector>
void ReadFAllCBuy(char * fn, std::vector <CBuy *> & v) { std::ifstream f(fn); int N; f>>N; CBuy *b; for(int i=0; i<N; i++) { b = new CBuy(); b->ReadF(f); v.push_back(b); } f.close(); } void WriteFAllCBuy(char * fn, std::vector <CBuy *> v) { std::ofstream f(fn); f<<v.size()<< std::endl; for(int i=0; i<v.size(); i++) { v[i]->WriteF(f); } f.close(); } void WriteAllCBuy(std::vector <CBuy *> v) { cout<<"kolich buy =" <<v.size()<< endl; for(int i=0; i<v.size(); i++) { v[i]->Write(); } } void ReadFAllCRastenie(char * fn, std::vector < CRastenie *> & w) { std::ifstream f(fn); int N; f>>N; CRastenie *m; for(int i=0; i<N; i++) { m = new CRastenie(); m->ReadF(f); w.push_back(m); } f.close(); } void WriteFAllCRastenie(char * fn, std::vector < CRastenie *> w) { std::ofstream f(fn); f<<w.size()<< std::endl; for(int i=0; i<w.size(); i++) { w[i]->WriteF(f); } f.close(); } void WriteAllCRastenie(std::vector <CRastenie *> w) { cout<<"kolich rasteni =" <<w.size()<< endl; for(int i=0; i<w.size(); i++) { w[i]->Write(); } } void ReadFAllCSort(char * fn, std::vector <CSort *> & vs) { std::ifstream f(fn); int N; f>>N; CSort *o; for(int i=0; i<N; i++) { o = new CSort(); o->ReadF(f); vs.push_back(o); } f.close(); } void WriteFAllCSort(char * fn, std::vector <CSort *> vs) { std::ofstream f(fn); f<<vs.size()<< std::endl; for(int i=0; i<vs.size(); i++) { vs[i]->WriteF(f); } f.close(); } void WriteAllCSort(std::vector <CSort *> vs) { cout<<"kolich sort =" <<vs.size()<< endl; for(int i=0; i<vs.size(); i++) { vs[i]->Write(); } } std::vector <CBuy *> v; std::vector <CRastenie *> w; std::vector <CSort *> vs;
void main(void) { ReadFAllCBuy ("buy.txt", v); ReadFAllCRastenie ("rastenie.txt", w); ReadFAllCSort ("sort.txt", vs); char fn[600]; int kod; do{ cout << "1. Buy File -> vector" << endl; cout << "2. Buy vector -> File" << endl; cout << "3. Buy vector -> Display" << endl; cout << "4. Add Buy to vector" << endl; cout << "5. Rastenie File -> vector" << endl; cout << "6. Rastenie vector -> File" << endl; cout << "7. Rastenie vector -> Display" << endl; cout << "8. Add Rastenie to vector" << endl; cout << "9. Sort File -> vector" << endl; cout << "10.Sort vector -> File" << endl; cout << "11.Sort vector -> Display" << endl; cout << "12.Add Sort to vector" << endl; cout << "0. Exit" << endl; cout << "Select: 1-12 or 0." << endl; cin >> kod; switch (kod) { case 1: cout << "Input File name: " << endl; cin >> fn; ReadFAllCBuy(fn, v); break; case 2: cout << "Input File name: " << endl; cin >> fn; WriteFAllCBuy(fn, v); break; case 3: WriteAllCBuy(v); break; case 4: CBuy * b; b=new CBuy; b->Read(); v.push_back(b); break; case 5: cout << endl; cout << "Input File name: " << endl; cin >> fn; ReadFAllCRastenie(fn, w); break; case 6: cout << endl; cout << "Input File name: " << endl; cin >> fn; WriteFAllCRastenie(fn, w); break; case 7: WriteAllCRastenie(w); break; case 8: CRastenie *a; a=new CRastenie; a->Read(); w.push_back(a); break; case 9: cout << "Input File name: " << endl; cin >> fn; ReadFAllCSort(fn, vs); break; case 10: cout << "Input File name: " << endl; cin >> fn; WriteFAllCSort(fn, vs); break; case 11: WriteAllCSort(vs); break; case 12: CSort * o; o=new CSort; o->Read(); vs.push_back(o); break; } } while (kod > 0); cout << "GOOD BYE"<< endl; }
|
||||
Последнее изменение этой страницы: 2017-02-22; просмотров: 245; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.195.180 (0.007 с.) |