Описание функционирования программы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Описание функционирования программы



Аннотация

 

 

В данной курсовом проекте разработано программное обеспечение для института селекции растений на языке программирования С++. Эта программа создана для хранения, ввода-вывода и обработки информации о покупках (номер покупки растения, цена покупки растения, отдел покупки растения), растениях (название растения, тип растения, срок хранения семян, технология посадки), сортах (название, характеристики, морозоустойчивость, дата выведения).

Для работы программы надо ввести максимально полную информацию покупке растений, о самих растениях и их сортах. Введённая информация также должна с лёгкостью выводиться из программы.

В результате внедрения разработанной программы, предполагается увеличить информационность института, а также внести ясность и порядок касательно выданной техники. Работая с программой, пользователю будет гораздо легче формировать отчёты по проделанной работе, подсчитывать количество выведенных сортов, вести учет прихода и расхода семян.

Данное программное обеспечение работает в консольном режиме и поддерживает работу с клавиатурой. Информация о покупке, растениях и о выведенных сортах хранится в отдельных выходных файлах. В данной программе имеется возможность считывать нужную информацию непосредственно из соответствующего файла.

Разработанную программу можно использовать не только для нужд данного института, но и для других организаций, изменив ее соответствующим образом.

 

Содержание:

 

Аннотация................................................................................................. 2

Введение.................................................................................................... 4

1. Описание программы........................................................................... 5

1.1. Общие сведения......................................................................... 5

1.2. Функциональное назначение..................................................... 5

1.3. Описание алгоритма функционирования программы............. 5

1.4. Логическая структура............................................................... 7

1.4.1. Диаграммы классов....................................................... 7

1.5. Используемые технические и программные средства............. 9

1.6. Вызов и загрузка....................................................................... 9

1.7. Входные данные........................................................................ 9

1.8. Выходные данные...................................................................... 9

2. Программа и методика испытаний...................................................... 9

2.1. Цель испытаний......................................................................... 9

2.2. Требования к программе.......................................................... 9

2.3. Средства и порядок испытаний................................................ 10

3. Руководство системного программиста.............................................. 11

3.1. Назначение и условия применения программы....................... 11

3.2. Характеристика программы..................................................... 11

3.3. Структура программы.............................................................. 11

3.4. Проверка работоспособности программы............................... 11

3.5. Дополнительные возможности.................................................. 11

4. Руководство оператора........................................................................ 12

Заключение............................................................................................... 13

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

Приложение 1. Техническое задание....................................................... 15

Приложение 2. Листинг программы........................................................ 17

Введение

В данном курсовом проекте разработано программное обеспечение для института селекции растений на языке С++.

C++ - это попытка решения разработчиками языка С задач объектно-ориентированного программирования (Object Oriented Programming, OOP). Построенный на твердом фундаменте С, С++ помимо ООР поддерживает множество других полезных инструментов, не жертвуя при этом ни мощью, ни элегантностью, ни гибкостью С. С++ уже стал универсальным языком для программистов всего мира.

C++ - универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей C++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, C++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.

Ключевым понятием C++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают скрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. C++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline- подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В C++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.
C++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из C++ программ можно использовать C библиотеки, и с C++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.

 

 

Описание программы.

Общие сведения.

 

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

Программное обеспечение разработано для персонального компьютера IBM PC с процессором не ниже Pentium-120 со следующими характеристиками:

ü Объем ОЗУ не менее 16 Мб;

ü Графический адаптер SVGA;

ü Манипулятор типа «мышь».

ü Клавиатура

Реализовано данное программное обеспечение на языке С++.

 

Функциональное назначение

 

Программа предназначена для ввода, хранения и последующего извлечения данных о растениях для института селекции растений, поступающих средств, и информации о выведенных сортах семян.

 

Диаграмма классов

(Рис.2.Диаграммы классов)

Вызов и загрузка

Вызов программы может быть произведен с произвольного носителя.

Объем занимаемого места на носителе составляет 616 кб.(исполняемый файл) Объем памяти занимаемой программой в ОЗУ составляет 348 кб.

Входные данные

Входные данные могут быть реализованы 2-мя способами. Первый способ это ввод данных с клавиатуры. Второй способ чтение данных из файла.

Входными данными в данной программе являются 3 файла: о покупке - buy.txt, о растениях – Rastenie.txt и о сортах – Sort.txt. Формат файлов имеет расширение *.txt.

Файлы имеют следующую структуру:

buy.txt

1.Сохранено число, обозначающее, количество покупок находящихся в этом файле.

2.Сохранен номер покупки.

3.Сохранена сумма покупки.

4.Сохранен отдел покупки.

5.Сохранено количество растений, числящихся за этой покупкой (нумерация растений начинается с нуля).

Rastenie.txt

1. Сохранено название растений, находящихся в этом файле.

2. Сохранен тип растений.

3. Сохранена технология посадки.

Sort.txt

1 Сохранено название сортов, находящихся в этом файле.

2 Сохранено описание сорта.

3 Сохранена информация о морозоустойчивости растения.

4 Сохранен год выведения сорта.

 

Выходные данные

Выходные данные реализуются 2-мя способами. Первый способ вывод информации на монитор компьютера. Второй способ вывод информации в файл (возможно и в файл, из которого были взяты входные данные).

Данная программа использует 3 файла с входными данными (о покупке, растениях и сортах). Формат файлов имеет расширение *.txt. Файлы имеют такую же структуру как и входные данные (описана в пункте 1.7).

Цель испытаний

Любое испытание нужно, чтобы проверить работу объекта, ее исправность. Для нас это очень важно, потому что от исправности зависит качество продукта. Цель испытаний - выявить все ошибки в программе и исправить их. Это необходимо для корректной работы программы и получения верного результата, т.е. необходимо установить правильность выходных данных для любого произвольного набора входных. Программу перед ее полным использованием нужно испытать и проверить. Для каждого файла программы можно использовать разные способы проверки, они могут быть похожи, но отличия будут. Нам нужно, чтобы программа быстро и точно выводила верный результат на экран и сохраняла в файл.

К данной программе предъявляются следующие требования:

ñ система должна работать в консольном режиме и поддерживать работу с клавиатурой;

ñ добавление новых данных к имеющимся (с возможностью создания нового файла);

ñ вывод данных на экран, требуемых пользователем – список покупрк, список растений, список сортов;

ñ сохранение данных, полученных при работе программы в текстовый файл.

 

Требования к программе

Технические и программные средства, требуемые для работы программы: Промышленный компьютер, программное обеспечение (Windows 98, Windows Vista, Windows XP, Windows 7), Microsoft Visual C++ 6.0. Обязательно нужны компьютерная мышь и клавиатура.

При проведении испытаний применялся редактор Visual C++, выявляющий синтаксические и логические ошибки, необъявленные переменные, при обнаружении которых происходит прерывание в выполнении программы и предоставляется возможность перехода в окно отладки программы. Помимо этого среда разработки Visual C++ позволяет применять такие методы отладки, как пошаговое выполнение программы и др.

Испытания проходили в следующей последовательности:

  1. проверка корректного написания и последующее исправление ошибок, если таковые имеются, о наличии которых можно судить по сообщениям, выдаваемым редактором или отсутствии ожидаемого результата;
  2. проверка правильности работы для каждого отдельного пункта меню:
ñ загрузка из файла покупка/растения/сортñ сохранение в файл покупка/растения/сортñ вывод на экран покупка/растения/сортñ добавление покупка/растения/сорт

Было выполнено несколько раз испытание на правильное функционирование.

В ходе испытаний ошибок или сбоев найдено не было. Все работает верно.

4.1 Программа и методика испытаний Для каждого отдельного подпункта меню- добавление растения/покупки/сорта- вывод на экран растения/покупки/сорта- сохранение в файл растения/покупки/сорта и- загрузка из файла растения/покупки/сорта

Было выполнено несколько раз испытание на правильное функционирование. В ходе испытаний ошибок или сбоев найдено не было. Все работает верно.

Структура программы

Данная программа состоит их файлов с расширениями *.dsw, *.dsp, *.h,*.cpp, *.txt

Файлы расширения *.dsw и *.dsp являются файлами проекта. Это Station.dsw и Station.dsp

Файлы расширения *.h являются классами. Это CAutobus.h, CRabotnic.h, CVoditel.h Класс CRabotnic.h является родительским классом для класса CVoditel.h.

В файлах расширения *.cpp записан программный код программы, описание программы. Это CAutobus.cpp, CRabotnic.cpp, CVoditel.cpp, Station.cpp

В файлах расширения *.txt записаны входные и выходные данные программы. Это autobus.txt, rabotnic.txt, voditel. txt

Настройка программы

Настройка данной программы не требуется.

Дополнительные возможности

Характеристика программы

Данное программное обеспечение работает в консольном режиме и поддерживает работу с клавиатурой. Информация о покупках, растениях и сорте хранится в отдельных выходных файлах. Структура выходного файла разработана с учетом сохранения всех первичных параметров и моментов их измерений. В данной программе имеется возможность считывать нужную информацию непосредственно из соответствующего файла.

 

Структура программы

Программа состоит из 3-х классов (Cbuy, Crastenie,Csort) и 12 основных функций (которые располагаются в buy.cpp). Класс Crastenie.h является родительским классом для класса Csort.h.

 

Заключение

В ходе данного курсового проекта я получила основные знания и некоторые навыки в составлении алгоритмов и написании программ на языке программирования 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;

}


 

Аннотация

 

 

В данной курсовом проекте разработано программное обеспечение для института селекции растений на языке программирования С++. Эта программа создана для хранения, ввода-вывода и обработки информации о покупках (номер покупки растения, цена покупки растения, отдел покупки растения), растениях (название растения, тип растения, срок хранения семян, технология посадки), сортах (название, характеристики, морозоустойчивость, дата выведения).

Для работы программы надо ввести максимально полную информацию покупке растений, о самих растениях и их сортах. Введённая информация также должна с лёгкостью выводиться из программы.

В результате внедрения разработанной программы, предполагается увеличить информационность института, а также внести ясность и порядок касательно выданной техники. Работая с программой, пользователю будет гораздо легче формировать отчёты по проделанной работе, подсчитывать количество выведенных сортов, вести учет прихода и расхода семян.

Данное программное обеспечение работает в консольном режиме и поддерживает работу с клавиатурой. Информация о покупке, растениях и о выведенных сортах хранится в отдельных выходных файлах. В данной программе имеется возможность считывать нужную информацию непосредственно из соответствующего файла.

Разработанную программу можно использовать не только для нужд данного института, но и для других организаций, изменив ее соответствующим образом.

 

Содержание:

 

Аннотация................................................................................................. 2

Введение.................................................................................................... 4

1. Описание программы........................................................................... 5

1.1. Общие сведения......................................................................... 5

1.2. Функциональное назначение..................................................... 5

1.3. Описание алгоритма функционирования программы............. 5

1.4. Логическая структура............................................................... 7

1.4.1. Диаграммы классов....................................................... 7

1.5. Используемые технические и программные средства............. 9

1.6. Вызов и загрузка....................................................................... 9

1.7. Входные данные........................................................................ 9

1.8. Выходные данные...................................................................... 9

2. Программа и методика испытаний...................................................... 9

2.1. Цель испытаний......................................................................... 9

2.2. Требования к программе.......................................................... 9

2.3. Средства и порядок испытаний................................................ 10

3. Руководство системного программиста.............................................. 11

3.1. Назначение и условия применения программы....................... 11

3.2. Характеристика программы..................................................... 11

3.3. Структура программы.............................................................. 11

3.4. Проверка работоспособности программы............................... 11

3.5. Дополнительные возможности.................................................. 11

4. Руководство оператора........................................................................ 12

Заключение............................................................................................... 13

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

Приложение 1. Техническое задание....................................................... 15

Приложение 2. Листинг программы........................................................ 17

Введение

В данном курсовом проекте разработано программное обеспечение для института селекции растений на языке С++.

C++ - это попытка решения разработчиками языка С задач объектно-ориентированного программирования (Object Oriented Programming, OOP). Построенный на твердом фундаменте С, С++ помимо ООР поддерживает множество других полезных инструментов, не жертвуя при этом ни мощью, ни элегантностью, ни гибкостью С. С++ уже стал универсальным языком для программистов всего мира.

C++ - универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей C++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, C++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.

Ключевым понятием C++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают скрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. C++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline- подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В C++ сохранены возможности языка C по работе с основными объектами ап



Поделиться:


Последнее изменение этой страницы: 2017-02-22; просмотров: 276; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.11.34 (0.753 с.)