Автор работы: Пользователь скрыл имя, 29 Марта 2012 в 22:18, курсовая работа
В данном курсовом проекте разработано прикладное программное обеспечение института селекции растений средствами языка С++.
Эта программа предназначена для автоматизации работы института. Она позволяет хранить, добавлять, удалять, редактировать записи всего имеющегося ассортимента растений.
Программа имеет простой и понятный интерфейс, работает в консольном режиме и поддерживает работу с клавиатурой.
Введение 4
1. Описание программы 5
1.1. Общие сведения 5
1.2. Функциональное назначение 5
1.3. Описание алгоритма функционирования программы 6
1.4. Логическая структура 10
1.4.1. Диаграммы объектов 8
1.4.2. Диаграммы классов 9
1.5. Вызов и загрузка 12
1.6. Входные данные 12
1.7. Выходные данные 12
2. Программа и методика испытаний 12
2.1. Цель испытаний 12
2.2. Требования к программе 12
2.3. Средства и порядок испытаний 12
2.4. Программа и методика испытаний 12
3. Руководство системного программиста 13
3.1. Назначение и условия применения программы 13
3.2. Характеристика программы 13
3.3. Структура программы 14
3.4. Проверка работоспособности программы 14
4. Руководство оператора 14
Заключение 15
Список литературы 17
Приложение 1. Техническое задание 18
Приложения 21
Программа включает следующие функции:
1. просмотр всех записей;
2. ввод новых записей;
3. загрузка записей из файла;
4. удаление записей.
Разработанная программа позволяет повысить эффективность обработки, хранения, систематизации данных и сократить время на поиск необходимых записей.
Список используемой литературы
1. C/C++ Структурное программирование. Практикум. // Т.А. Павловская, Ю.А. Щупак // Санкт-Петербург, 2007г.
2. Программирование на ЯВУ // Теория и практика // А.Ю. Хасанов // УГАТУ, 2007г.
3. Объектно-ориентированное программирование на С++. // Айра Пол // California, 1997г.
4. Холзнер С. Visual C++ 6. Учебный курс. – СПб.: Питер, 2006. – 570с.: ил.
5. Красиков И.В., Красикова И.Е. Алгоритмы. Просто как дважды два. – М.: Эксмо,2006. – 256с.: ил.
Приложение 1
Техническое задание
1. ВВЕДЕНИЕ
Прикладное программное обеспечение института селекции растений.
2. ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ
Учебный план специальности 230201 и задание преподавателя для выполнения курсового проекта.
3. НАЗНАЧЕНИЕ РАЗРАБОТКИ
Программа предназначена для обеспечения работы института селекции растений.
4. ТРЕБОВАНИЯ К ПРОГРАММЕ ИЛИ ПРОГРАММНОМУ ОБЕСПЕЧЕНИЮ
4.1. Требования к функциональным характеристикам
4.1.1. Прикладное программное обеспечение должно обеспечивать сбор и хранение информации о всех видах растений, находящихся в ассортименте института по следующим параметрам:
·тип растения;
·название;
·срок жизни;
·высота растений в см;
·окраска цветов;
·срок цветения;
·плодовитость;
·тип почвы;
·область применения.
4.1.2. Прикладное программное обеспечение должно формировать отдельный список с информацией о выведенных новых сортах растений для дальнейшего тестирования по следующим параметрам:
·название;
·окраска цветов;
·цвет листьев;
4.1.3. Прикладное программное обеспечение должно формировать прайс-лист продукции института по следующим параметрам:
·название;
·цена розничная;
·цена оптовая.
4.1.4 По требованию пользователя программа должна обеспечивать выдачу:
·информации о растении по всем заданным параметрам;
·прайс-лист;
·список новых сортов.
4.1.5. Программное обеспечение института должно работать в консольном режиме и поддерживать работу с клавиатурой.
4.2. Требования к надежности
4.2.1. Программа должна обрабатывать ошибочные действия пользователя и сообщать ему об этом.
4.3. Требования к составу и параметрам технических средств
Платформа: Windows 95/98/Me/2000/Xp
Системные требования:
Процессор: Pentium 100 Mhz
ОЗУ: 32 МБайт
Объем HDD: 150 МБайт
Видеокарта: GeForce256/TNT/Radeon, 16 МБайт
5. ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ
5.1. Программная документация должна включать:
· пояснительную записку к курсовому проекту
· тексты программ должны включать в себя все комментарии.
6. ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ
6.1. В результате внедрения разработанного программного обеспечения предполагается увеличить скорость работы института, а так же повысить легкость и удобство использования программного обеспечения.
7. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ
7.1. Стадия аналитической разработки:
· ознакомление с теоретическим материалом;
· аналитическая обработка теоретической информации.
· объектно-ориентированный анализ;
· разработка диаграммы объектов;
· разработка диаграммы последовательности;
· объектно-ориентированное проектирование;
· разработка диаграммы классов.
7.2. Стадия программной разработки:
· разработка классов и отдельных модулей программы;
· отладка полученных классов и модулей;
· объединение структур и формирование единой программы;
· тестирование и получение результатов работы программы.
7.3. Стадия аналитического анализа:
· анализ данных, полученных в результате работы программы;
· выработка рекомендаций по увеличению эффективности использования объекта моделирования.
8. ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ
8.1. При сдаче работы производится демонстрация на ПЭВМ разработанной программы на контрольном примере.
8.2. Копии всех документов включают:
· исходный текст программы;
· загрузочные модули (скомпилированная программа и файлы с входными данными);
· текстовую и графическую документацию.
Копии передаются на магнитном носителе преподавателю не позднее, чем за 3 дня до защиты.
Приложение 2
Листинг программы
Файл rast1.h
class Cnew_sort
{
public:
char name[30];
char color_list[20];
char color_cvet[20];
char tip_rast[20];
char tip_pochvi[20];
public:
void write();
void read();
void writef(std::ofstream &f);
void readf(std::ifstream &f);
Cnew_sort(void);
};
class Cassortiment:public Cnew_sort
{
private:
char srok_juzni[20];
float visota;
float srok_cveteniya;
char plodovit[20];
char obl_prim[30];
public:
void write();
void read();
void writef(std::ofstream &f);
void readf(std::ifstream &f);
Cassortiment(void);
};
class Cprice
{
private:
char name[30];
float cena_rozn;
float cena_opt;
public:
void write();
void read();
void writef(std::ofstream &f);
void readf(std::ifstream &f);
Cprice(void);
};
StdAfx.h
#ifndef _STDAFX_H_
#define _STDAFX_H_
#include <windows.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <string.h>
using namespace std;
#include "rast1.h"
char *Rus(char *str);
#endif
Файл troj.cpp
#include "stdafx.h"
vector<Cnew_sort*> new_sort;
vector<Cassortiment*> assort;
vector<Cprice*> price;
int temp;
char *Rus(char *str)
{
static char s[1024];
CharToOem(str, s);
return s;
}
void add_new(std::vector<Cnew_sort*
{
int n;
cout<<Rus("Сколько ввсести?");
cin>>n;
cout<<endl;
Cnew_sort *t;
for (int i=1;i<=n;i++)
{
t=new Cnew_sort;
cout<<Rus("Введите №")<<i<<endl;
t->read();
cout<<"_______________________
new_sort.push_back(t);
}
}
void add_price(std::vector<Cprice*> &price)
{
int n;
cout<<Rus("Сколько ввсести?");
cin>>n;
cout<<endl;
Cprice *t;
for (int i=1;i<=n;i++)
{
t=new Cprice;
cout<<Rus("Введите №")<<i<<endl;
t->read();
cout<<"_______________________
price.push_back(t);
}
}
void add_assort(std::vector<
{
int n;
cout<<Rus("Сколько ввсести?");
cin>>n;
cout<<endl;
Cassortiment *w;
for (int i=1;i<=n;i++)
{
w=new Cassortiment;
cout<<Rus("Введите №")<<i<<endl;
w->read();
cout<<"_______________________
assort.push_back(w);
}
}
void view_new(std::vector<Cnew_
{
for (int i=0;i<new_sort.size();i++)
{
cout<<"_______________________
cout<<Rus("Растение №")<<i+1<<endl;
new_sort[i]->write();
}
}
void view_price(std::vector<Cprice*
{
for (int i=0;i<price.size();i++)
{
cout<<"_______________________
cout<<Rus("Растение №")<<i+1<<endl;
price[i]->write();
}
}
void view_assort(std::vector<
{
for (int i=0;i<assort.size();i++)
{
cout<<"_______________________
cout<<Rus("Растение №")<<i+1<<endl;
assort[i]->write();
}
}
void write_file_new(char *fn,std::vector<Cnew_sort*> &new_sort)
{
std::ofstream f(fn);
f<<new_sort.size()<< std::endl;
for(int i=0; i<new_sort.size(); i++)
{
new_sort[i]->writef(f);
}
f.close();
}
void write_file_price(char *fn,std::vector<Cprice*> &price)
{
std::ofstream f(fn);
f<<price.size()<< std::endl;
for(int i=0; i<price.size(); i++)
{
price[i]->writef(f);
}
f.close();
}
void write_file_assort(char *fn,std::vector<Cassortiment*> &assort)
{
std::ofstream f(fn);
f<<assort.size()<< std::endl;
for(int i=0; i<assort.size(); i++)
{
assort[i]->writef(f);
}
f.close();
}
void read_file_new(char * fn, std::vector < Cnew_sort *> & new_sort)
{
std::ifstream f(fn);
int N;
f>>N;
Cnew_sort *s;
for(int i=0; i<N; i++)
{
s = new Cnew_sort();
s->readf(f);
new_sort.push_back(s);
}
f.close();
}
void read_file_price(char * fn, std::vector < Cprice *> & price)
{
std::ifstream f(fn);
int N;
f>>N;
Cprice *s;
for(int i=0; i<N; i++)
{
s = new Cprice();
s->readf(f);
price.push_back(s);
}
f.close();
}
void read_file_assort(char * fn, std::vector < Cassortiment *> & assort)
{
std::ifstream f(fn);
int N;
f>>N;
Cassortiment *s;
for(int i=0; i<N; i++)
{
s = new Cassortiment();
s->readf(f);
assort.push_back(s);
}
f.close();
}
void del_new(std::vector < Cnew_sort*> &new_sort)
{
cout<<Rus("Введите номер растения:");
int n;
cin>>n;
cout<<endl;
new_sort.erase(&new_sort[n-1])
cout<<Rus("Растение удалено")<<endl;
}
void del_price(std::vector < Cprice*> &price)
{
cout<<Rus("Введите номер растения:");
int n;
cin>>n;
cout<<endl;
price.erase(&price[n-1]);
cout<<Rus("Растение удалено")<<endl;
}
void del_assort(std::vector < Cassortiment *> & assort)
{
cout<<Rus("Введите номер растения:");
int n;
cin>>n;
cout<<endl;
assort.erase(&assort[n-1]);
cout<<Rus("Растение удалено")<<endl;
}
void change_new(std::vector < Cnew_sort*> &new_sort)
{
cout<<Rus("Введите номер растения:");
cin>>temp;
new_sort[temp-1]->read();
}
void change_price(std::vector < Cprice*> &price)
{
cout<<Rus("Введите номер растения:");
cin>>temp;
price[temp-1]->read();
}
void change_assort(std::vector < Cassortiment*> &assort)
{
cout<<Rus("Введите номер растения:");
cin>>temp;
assort[temp-1]->read();
}
void pod_menu_1()
{
int kod;
cout<<Rus("1.Добавить растение")<<endl;
cout<<Rus("2.Удалить растение")<<endl;
cout<<Rus("3.Редактировать растение")<<endl;
cout<<Rus("4.Показать все растения")<<endl;
cout<<Rus("5.Сохранить в файл растения")<<endl;
cout<<Rus("6.Загрузить из файла растения")<<endl;
cout<<Rus("7.Вернуться в главное меню")<<endl;
cout<<Rus("Введите код:");
cin>>kod;
cout<<endl;
switch(kod)
{
case 1:
Информация о работе Разработка ПО для института селекции растений на С++