Проектирование классов с использованием механизмов наследования агрегирования, обработки исключений и перегрузки операция в языке C++ для обработки файлов данных
Разработка класса Work, содержащего поля: вид работы, единица измерения, стоимость работы, и содержащий методы доступа к этим полям. Проектирование класса Firma. Обработка данных из файла с информацией о счетах за работу в виде объектов класса Firma.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.11.2015 |
Размер файла | 2,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Введение
Описание разработанных функций
Диаграммы потоков
Тестирование программы
Заключение
Приложение А. Исходный код программы
Введение
Цель работы:
Спроектировать классы с использованием механизмов наследования, агрегирования, обработки исключений и перегрузки операция в языке C++ для обработки файлов данных.
Постановка задачи:
Спроектировать класс WORK, содержащий поля: вид работы, единица измерения, стоимость за выполненную единицу работы, и содержащий методы доступа к этим полям.
Спроектировать класс FIRMA, являющийся наследником класса WORK и дополнительно содержащий поля: номер счета, название фирмы, дата исполнения, объем исполненной работы, и содержащий методы доступа к этим полям.
Требуется спроектировать класс, позволяющий обрабатывать данные из файла, содержащего информацию о счетах за работу в виде объектов класса FIRMA.
Описание разработанных функций
Название функции |
Параметры функции |
Назначение функции |
|
main |
- |
Главная подпрограмма, содержащая меню |
|
Структура d |
|||
bool operator < |
const d &dd |
Перегрузка оператора: > |
|
bool operator == |
const d &dd |
Перегрузка оператора: == |
|
friend ostream & operator << |
ostream & on, d &p |
Перегрузка оператора: << |
|
friend ofstream & operator << |
ostream & on, d &p |
Перегрузка оператора: << |
|
Класс firma |
|||
friend ofstream & operator << |
ostream & on, d &p |
Перегрузка оператора: << |
|
friend ofstream & operator >> |
ostream & on, d &p |
Перегрузка оператора: >> |
|
friend ostream & operator << |
ostream & on, d &p |
Перегрузка оператора: << |
|
friend ostream & operator >> |
ostream & on, d &p |
Перегрузка оператора: >> |
|
clear |
firma* &beg1, firma* &end1 |
Очистка списка |
|
inputfile |
- |
Ввод из файла |
|
output |
firma* &beg1 |
Вывод на экран |
|
outputfile |
firma* &beg1 |
Вывод в файл |
|
sortnazv |
firma* &beg1, firma* &end1 |
Сортировка по названию фирмы |
|
sortnum |
firma* &beg1, firma* &end1 |
Сортировка по номеру счета |
|
sortkol |
firma* &beg1, firma* &end1 |
Сортировка по объему исполненной работы |
|
sortdat |
firma* &beg1, firma* &end1 |
Сортировка по дате |
|
sortprise |
firma* &beg1, firma* &end1 |
Сортировка по цене |
|
sortedizm |
firma* &beg1, firma* &end1 |
Сортировка по единице измерения |
|
sortvidrab |
firma* &beg1, firma* &end1 |
Сортировка по виду работ |
|
delet |
- |
Удаление выбранной записи |
|
vvodklav |
- |
Ввод с клавиатуры (добавление) |
|
searchnumch |
firma* &beg1 |
Поиск по номеру счета с выводом результата на экран |
|
Класс search |
|||
clear |
- |
Очистка списка |
|
output |
- |
Вывод на экран |
|
outputfile |
- |
Вывод в файл |
|
sortnum |
- |
Сортировка по номеру счета |
|
sortkol |
- |
Сортировка по объему исполненной работы |
|
sortdat |
- |
Сортировка по дате |
|
sortprise |
- |
Сортировка по цене |
|
sortedizm |
- |
Сортировка по единице измерения |
|
sortvidrab |
- |
Сортировка по виду работ |
|
serch_nazv |
- |
Поиск по названию и создание списка |
|
searchnumch |
- |
Поиск по номеру счета с выводом результата на экран |
|
Класс pervidrab |
|||
clear |
- |
Очистка списка |
|
output |
- |
Вывод на экран |
|
outputfile |
- |
Вывод в файл |
|
sortkoll |
- |
Сортировка по количеству |
|
per_vidrab |
- |
Формирование перечня видов работ |
|
sortvidrab |
- |
Сортировка по по виду работ |
|
Класс perprise |
|||
clear |
- |
Очистка списка |
|
output |
- |
Вывод на экран |
|
outputfile |
- |
Вывод в файл |
|
sortprise |
- |
Сортировка по цене |
|
per_prise |
- |
Формирование перечня цен |
|
sortvidrab |
- |
Сортировка по по виду работ |
|
Класс perdate |
|||
clear |
- |
Очистка списка |
|
output |
- |
Вывод на экран |
|
outputfile |
- |
Вывод в файл |
|
sortkoll |
- |
Сортировка по количеству |
|
per_date |
- |
Формирование перечня цен |
|
sortdate |
- |
Сортировка по по дате |
Диаграммы классов
Тестирование программы
Основное меню (рис. 1)
Меню работы с основной таблицей (рис. 2)
Меню перечня видов работ (рис. 3)
Меню перечня цен (рис. 4)
разработка класс объект работа
Меню перечня дат (рис. 5)
Меню поиска по названию фирмы (рис. 6)
Ввод из файла основной таблици (рис. 7)
Сортировка по названию фирмы (рис. 8)
Поиск по номеру счета (рис. 9)
Удаление записи 24 (рис. 10)
Формирование перечня видов работ (рис. 11)
Формирования перечня цен (рис. 12)
Формирование перечня дат (рис. 13)
Поиск по названию фирмы (рис. 14)
Заключение
В результате выполнения курсовой работы был разработан класс линейных односвязных списков с методами для решения таких задач, как сортировки, различные виды поиска данных, создание перечней, добавление, удаление записей и так далее. Программа содержит меню, позволяющее проверить все методы класса на работоспособность.
Программа написана на языке C++, но исходя из того что, приведенные алгоритмы довольно просты, то программа может быть переписана и на другой современный язык. Реализация с помощью списков позволила эффективно использовать динамическую память, а также детально понять структуру хранения данных в памяти компьютера.
В программе были использованы такие механизмы, как наследование, агрегирование, обработка исключений и перегрузка операций, а также статические и виртуальные методы.
Приложение А. Исходный код программы
Заголовочные файлы
Xeder.h:
#pragma once
#include<iostream> //библиотека функций ввода, вывода
#include<fstream> //библиотека файловых функций
#include<string> //библиотека строковых функций
#include<conio.h> //библиотека консольных функций
#include<iomanip> //библиотека манипулятор
#include<Windows.h> // библиотека WinAPI
using namespace std; //пространство имён std
Error.h:
#ifndef _ERROR
#define _ERROR
#include "Xeder.h"
class error{
protected:
string mest;
public:
error(string mes) : mest(mes){}
virtual ~error(){}
virtual void output(){cout << "\n Ошибка: " << mest<<endl;}};
class errorm : public error{
protected:
string func;
public:
errorm(string mes, string fun) : error(mes), func(fun){}
void output(){
error::output();
cout << " В методе: " << func<<endl;}};
class errorf : public errorm{
protected:
string file;
public:
errorf(string mes, string fun, string fil) : errorm(mes, fun), file(fil){}
void output(){
errorm::output();
cout << " Файл: " << file<<endl;
}};
#endif
Firma.h:
#ifndef _FIRMA
#define _FIRMA
#include "Xeder.h"
struct d{
int day;
int mount;
int year;
bool operator < (const d &dd) const {
return this->year < dd.year;
return this->year < dd.year && this->mount < dd.mount;
return this->year < dd.year && this->mount < dd.mount && this->day < dd.day;}
bool operator == (const d &dd) const {
return this->day == dd.day && this->mount == dd.mount && this->year == dd.year;}
friend ostream & operator << (ostream & on, d &p){
on<<setfill(' ')<<setw(4)<<p.day<<" "<<setfill(' ')<<setw(2)<<p.mount<<" "<<p.year;
return on;}
friend ofstream & operator << (ofstream & on, d &p){
on<<setfill(' ')<<setw(4)<<p.day<<" "<<setfill(' ')<<setw(2)<<p.mount<<" "<<p.year;
return on;}
};
class work{
protected:
string vidrab;
string edizm;
int prise;
};
class firma : public work, d{
private:
static firma *beg1;
static firma *end1;
static int n;
int numch;
string nazv;
d date;
int koll;
firma *next;
public:
friend class search;
friend class perdate;
friend class pervidrab;
friend class perprise;
friend int main();
friend ostream & operator << (ostream & on, firma *p){
on<<setfill(' ')<<setw(13)<<p->vidrab<<" |"<<setfill(' ')<<setw(9)<<p->prise<<" |"<<setfill(' ')
<<setw(9)<<p->edizm<<" |"<<setfill(' ')<<setw(16)<<p->nazv<<" |"
<<setfill(' ')<<setw(11)<<p->numch<<" |"<<setfill(' ')<<setw(4)<<p->date.day<<" "<<setfill(' ')<<setw(2)<<
p->date.mount<<" "<<p->date.year<<" |"<<setfill(' ')<<setw(9)<<p->koll<<" |";
return on;}
friend istream & operator >> (istream & on, firma *p){
on>>p->vidrab>>p->edizm>>p->prise>>p->nazv>>p->numch>>p->koll>>p->date.day>>p->date.mount>>p->date.year;
return on;}
friend ifstream & operator >> (ifstream & on, firma *p){
on>>p->vidrab>>p->edizm>>p->prise>>p->nazv>>p->numch>>p->koll>>p->date.day>>p->date.mount>>p->date.year;
return on;}
friend ofstream & operator << (ofstream & on, firma *p){
on<<setfill(' ')<<setw(13)<<p->vidrab<<" |"<<setfill(' ')<<setw(9)<<p->prise<<" |"<<setfill(' ')
<<setw(9)<<p->edizm<<" |"<<setfill(' ')<<setw(16)<<p->nazv<<" |"
<<setfill(' ')<<setw(11)<<p->numch<<" |"<<setfill(' ')<<setw(4)<<p->date.day<<" "<<setfill(' ')<<setw(2)<<
p->date.mount<<" "<<p->date.year<<" |"<<setfill(' ')<<setw(9)<<p->koll<<" |";
return on;}
static void firma :: clear(firma* &beg1, firma* &end1);
static void firma :: inputfile();
static void firma :: output(firma* &beg1);
static void firma :: outputfile(firma* &beg1);
static void firma :: sortnazv(firma* &beg1, firma* &end1);
static void firma :: sortnum(firma* &beg1, firma* &end1);
static void firma :: sortkol(firma* &beg1, firma* &end1);
static void firma :: sortdat(firma* &beg1, firma* &end1);
static void firma :: sortprise(firma* &beg1, firma* &end1);
static void firma :: sortedizm(firma* &beg1, firma* &end1);
static void firma :: sortvidrab(firma* &beg1, firma* &end1);
static void firma :: delet();
static void firma :: vvodklav();
static void firma :: searchnumch(firma* &beg1);
};
#endif;
Search.h:
#include "Search.h"
#include "Error.h"
firma *search::beg1(NULL), *search::end1(NULL); int search::n(0);
void search :: serch_nazv(){
if (firma::beg1==NULL){throw errorm("Не где искать","stud :: searchodn");}
string f;
int fl=0;
firma *p,*pn;
p=firma::beg1;
cout<<"Введите название фирмы : ";
cin>>f;
while(p!=NULL){
if (f==p->nazv){
try{pn=new firma;}
catch (bad_alloc) {search::clear(); throw errorm("Недостаточно памяти", "search :: serch_nazv()");}
*pn=*p;
pn->next=NULL;
if (beg1==NULL){beg1=pn; end1=pn; n++;}
else {end1->next=pn; end1=pn; n++;};
fl=1;}
p=p->next;}
if (fl==0){cout<<" Ненайдено! \n";}}
void search :: output(){
if (beg1==NULL){throw errorm("Не чего выводить","search :: output()");}
firma::output(beg1);}
void search :: sortprise(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortprise");}
firma::sortprise(beg1,end1);}
void search :: sortvidrab(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortnum()");}
firma::sortvidrab(beg1,end1);}
void search :: sortkol(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortkol()");}
firma::sortdat(beg1,end1);}
void search :: sortdat(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortdat()");}
firma::sortkol(beg1,end1);}
void search :: sortedizm(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortedizm()");}
firma::sortedizm(beg1,end1);}
void search :: sortnum(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortnum()");}
firma::sortnum(beg1,end1);}
void search :: clear(){
firma::clear(beg1,end1);}
void search :: outputfile(){
if (beg1==NULL){throw errorm("Не чего выводить","search :: outputfile()");}
firma::outputfile(beg1);}
void search :: seurchnumch(){
if (beg1==NULL){throw errorm("Не где искать","search :: seurchnumch()");}
firma::searchnumch(beg1);}
Perech.h:
#ifndef _SEARCH
#define _SEARCH
#include "Xeder.h"
#include "Firma.h"
class search{
private:
static firma *beg1;
static firma *end1;
static int n;
public:
static void search :: serch_nazv();
static void search :: sortprise();
static void search :: sortvidrab();
static void search :: sortkol();
static void search :: sortdat();
static void search :: sortedizm();
static void search :: sortnum();
static void search :: clear();
static void search :: output();
static void search :: outputfile();
static void search :: seurchnumch();
};
#endif;
Файлы исходного кода
Firma.cpp:
# include "Firma.h"
#include "Error.h"
firma *firma::beg1(NULL), *firma::end1(NULL); int firma::n(0);
void firma :: inputfile(){ //ввод из текстового файла
firma *p;
ifstream fin;
char file[30];
cout<<"Имя входного файла: ";
cin>>file;
fin.open(file);
if (fin.fail()){ throw errorf("Не удалось открыть файл", "firma :: inputfile()", file);}
p=new firma;
fin>>p;
if (fin.fail()){delete p; throw errorf("Файл пуст или данные не соответствуют формату", "firma :: inputfile()", file);}
p->next=NULL;
if (beg1==NULL){beg1=p; end1=p; n++;}
else { end1->next=p; end1=p; n++;};
p=new firma;
fin>>p;
p->next=NULL;
while (fin.good()){
end1->next=p;
end1=p;
n++;
try{p=new firma;}
catch (bad_alloc){firma::clear(firma::beg1,firma::end1); throw errorm("Недостаточно памяти", "firma :: inputfile()");};
fin>>p;
p->next=NULL;}
delete p;
}
void firma :: output(firma* &beg1){ //вывод на экран
if (beg1==NULL){throw errorm("Не на что смотреть","firma :: output()");}
firma *p;
int i;
p=beg1;
i=0;
cout<<setfill('~')<<setw(108)<<'~';
cout<<"\n|No| Вид работы | Цена | Ед. изм. | Название фирмы | Номер счёта | Дата | Обьём |\n";
cout<<setfill('~')<<setw(109)<<"~\n";
while (p!=NULL){
cout<<"|"<<setfill(' ')<<setw(2)<<i+1<<"|"<<p<<endl;
p=p->next; i++;}
cout<<setfill('~')<<setw(109)<<"~\n";
}
void firma :: outputfile(firma* &beg1){
if (beg1==NULL){throw errorm("Нечего выводить","firma :: outputfile");}
ofstream fon;
firma *p;
char file[20];
int i=0;
p=beg1;
cout<<"Имя выходного файла: ";
cin>>file;
fon.open(file);
if (fon.fail()){throw errorf("Не удалось создать файл", "firma :: outputfile", file);}
fon<<setfill('*')<<setw(109)<<"\n";
fon<<"\n|No| Вид работы | Цена | Ед. изм. | Название фирмы | Номер счёта | Дата | Обьём |\n";
fon<<setfill('*')<<setw(108)<<"\n";
while (p!=NULL){
fon<<"|"<<setfill(' ')<<setw(2)<<i+1<<"|"<<p<<endl;
p=p->next; i++;}
fon<<setfill('-')<<setw(108)<<"\n";
cout << "Вывод произведён.\n";
fon.close();
}
void firma :: clear(firma* &beg1, firma* &end1){
firma *p;
while(beg1!=NULL){p=beg1; beg1=beg1->next; delete p;}
end1=NULL; n=0;}
void firma :: sortnazv(firma* &beg1, firma* &end1){
if (beg1==NULL){throw errorm("Не чего сортировать","firma :: sortnazv");}
int fl;
firma *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->nazv>p3->nazv){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->nazv>p3->nazv){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void firma :: sortkol(firma* &beg1, firma* &end1){
if (beg1==NULL){throw errorm("Не чего сортировать","firma :: sortkol()");}
int fl;
firma *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->koll>p3->koll){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->koll>p3->koll){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void firma :: sortnum(firma* &beg1, firma* &end1){
if (beg1==NULL){throw errorm("Не чего сортировать","firma :: sortnum()");}
int fl;
firma *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->numch>p3->numch){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->numch>p3->numch){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void firma :: sortdat(firma* &beg1, firma* &end1){
if (beg1==NULL){throw errorm("Не чего сортировать","firma :: sortdat()");}
int fl;
firma *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->date<p3->date){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->date<p3->date){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void firma :: sortvidrab(firma* &beg1, firma* &end1){
if (beg1==NULL){throw errorm("Не чего сортировать","firma :: sortvidrab()");}
int fl;
firma *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->vidrab>p3->vidrab){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->vidrab>p3->vidrab){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void firma :: sortedizm(firma* &beg1, firma* &end1){
if (beg1==NULL){throw errorm("Не чего сортировать","firma :: sortedizm()");}
int fl;
firma *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->edizm>p3->edizm){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->edizm>p3->edizm){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void firma :: sortprise(firma* &beg1, firma* &end1){
if (beg1==NULL){throw errorm("Не чего сортировать","firma :: sortprise()");}
int fl;
firma *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->prise>p3->prise){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->prise>p3->prise){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void firma :: delet(){
if (beg1==NULL){throw errorm("Нечего удалять","firma :: delet()");}
int a,z;
firma *p,*r;
cout<<"Введите колличество удаляемых записей: ";
metka:
cin>>z;
if (cin.fail() || z<0 || z>n){cout<<"Ошибка ввода, введите еще раз\n"; cin.clear(); cin.sync(); goto metka; };
while (z!=0){
firma::output(firma::beg1);
z--;
p=beg1;
cout<<"Введите номер удаляемой записи: ";
metka1:
cin>>a;
if (cin.fail() || a<=0 || a>n){cout<<"Ошибка ввода, введите еще раз\n"; cin.clear(); cin.sync(); goto metka1; };
if (a==1){
beg1=beg1->next;
n--;
if (p==end1){end1=NULL;}
delete p;}
else{
a=a-2;
while (a>0) {a--; p=p->next;};
r=p->next;
p->next=r->next;
n--;
if (p==end1){end1=NULL;}
delete r;}}}
void firma :: vvodklav(){ //добавление записи (ввод с клавиатуры)
firma*p;
int m;
cout<<"Введите количество записей: ";
metka:
cin>>m;
if (cin.fail() || m<=0){cout<<"Ошибка ввода, введите еще раз\n"; cin.clear(); cin.sync(); goto metka; };
cout<<"Введите данные согласно образцу : Гравий тонна 600 Автодор 07059403 65 14 11 2014\n";
m++;
p=new firma;
metka1:
cin>>p;
if (cin.fail()){cout<<"Ошибка ввода, введите еще раз\n"; cin.clear(); cin.sync(); goto metka1; };
p->next=NULL;
if (beg1==NULL){beg1=p;}
else{end1->next=p;}
end1=p;
n++;
for(int i=1; i<n; i++){
try{p=new firma;}
catch (bad_alloc){firma::clear(firma::beg1,firma::end1); throw errorm("Недостаточно памяти", "firma :: vvodklav()");};
metka2:
cin>>p;
if (cin.fail()){cout<<"Ошибка ввода, введите еще раз\n"; cin.clear(); cin.sync(); goto metka2; };
p->next=NULL;
end1->next=p;
end1=p;
n++;}}
void firma :: searchnumch(firma* &beg1){
if (beg1==NULL){throw errorm("Не где искать","firma :: searchnumch()");}
int f;
int fl=0;
firma *p;
p=beg1;
cout<<"Введите номер счета : ";
cin>>f;
cout<<setfill('-')<<setw(105)<<"-\n";
while(p!=NULL){
if (f==p->numch){
cout<<"|"<<p<<endl; fl=1;} p=p->next;}
if (fl==0){cout<<"| Ненайдено |\n";}
cout<<setfill('-')<<setw(105)<<"-\n";}
Search.cpp:
#include "Search.h"
#include "Error.h"
firma *search::beg1(NULL), *search::end1(NULL); int search::n(0);
void search :: serch_nazv(){
if (firma::beg1==NULL){throw errorm("Не где искать","stud :: searchodn");}
string f;
int fl=0;
firma *p,*pn;
p=firma::beg1;
cout<<"Введите название фирмы : ";
cin>>f;
while(p!=NULL){
if (f==p->nazv){
try{pn=new firma;}
catch (bad_alloc) {search::clear(); throw errorm("Недостаточно памяти", "search :: serch_nazv()");}
*pn=*p;
pn->next=NULL;
if (beg1==NULL){beg1=pn; end1=pn; n++;}
else {end1->next=pn; end1=pn; n++;};
fl=1;}
p=p->next;}
if (fl==0){cout<<" Ненайдено! \n";}}
void search :: output(){
if (beg1==NULL){throw errorm("Не чего выводить","search :: output()");}
firma::output(beg1);}
void search :: sortprise(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortprise");}
firma::sortprise(beg1,end1);}
void search :: sortvidrab(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortnum()");}
firma::sortvidrab(beg1,end1);}
void search :: sortkol(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortkol()");}
firma::sortdat(beg1,end1);}
void search :: sortdat(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortdat()");}
firma::sortkol(beg1,end1);}
void search :: sortedizm(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortedizm()");}
firma::sortedizm(beg1,end1);}
void search :: sortnum(){
if (beg1==NULL){throw errorm("Не чего сортировать","search :: sortnum()");}
firma::sortnum(beg1,end1);}
void search :: clear(){
firma::clear(beg1,end1);}
void search :: outputfile(){
if (beg1==NULL){throw errorm("Не чего выводить","search :: outputfile()");}
firma::outputfile(beg1);}
void search :: seurchnumch(){
if (beg1==NULL){throw errorm("Не где искать","search :: seurchnumch()");}
firma::searchnumch(beg1);}
Perech.cpp:
#include "Perech.h"
#include "Error.h"
pervidrab *pervidrab::beg1(NULL), *pervidrab::end1(NULL); int pervidrab::n(0);
void pervidrab :: per_vidrab(){
if (firma::beg1==NULL){throw errorm("Не из чего формировать","pervidrab::per_vidrab()");}
int l;
firma *p1;
pervidrab *p2;
p2=new pervidrab;
p1=firma::beg1;
p2->vidrab = p1->vidrab;
p2->koll=1;
p2->next=NULL;
beg1=p2;
end1=p2;
n++;
p1=p1->next;
while(p1!=NULL){
p2=beg1;
l=0;
while(p2!=NULL){
if (p1->vidrab == p2->vidrab){p2->koll++; l=1; break;}
p2=p2->next;}
if (l==0) {try{p2=new pervidrab;}
catch (bad_alloc) {pervidrab :: clear(); throw errorm("Недостаточно памяти", "pervidrab::per_vidrab()");}
p2->next=NULL; p2->vidrab = p1->vidrab; p2->koll=1; end1->next=p2; end1=p2; n++;}
p1=p1->next;}
}
void pervidrab :: output(){
if (beg1==NULL){throw errorm("Не на что смотреть","pervidrab::output()");}
pervidrab *p;
int i;
p=beg1;
i=0;
cout<<setfill('*')<<setw(31)<<"*";
cout<<"\n| Вид работы | Количество |\n";
cout<<setfill('-')<<setw(32)<<"-\n";
while (p!=NULL){
cout<<"|"<<setfill(' ')<<setw(14)<<p->vidrab<<" |"<<setfill(' ')<<setw(10)<<p->koll<<" |\n";
p=p->next; i++;}
cout<<setfill('*')<<setw(32)<<"*\n";
}
void pervidrab :: clear(){
pervidrab *p;
while(beg1!=NULL){p=beg1; beg1=beg1->next; delete p;}
end1=NULL; n=0;}
void pervidrab :: outputfile(){
if (beg1==NULL){throw errorm("Нечего выводить","pervidrab :: outputfile()");}
ofstream fon;
pervidrab *p;
char file[20];
int i=0;
p=beg1;
cout<<"Имя выходного файла: ";
cin>>file;
fon.open(file);
if (fon.fail()){throw errorf("Не удалось создать файл", "pervidrab :: outputfile()", file);}
fon<<setfill('*')<<setw(31)<<"*";
fon<<"\n| Вид работы | Количество |\n";
fon<<setfill('-')<<setw(32)<<"-\n";
while (p!=NULL){
fon<<"|"<<setfill(' ')<<setw(14)<<p->vidrab<<" |"<<setfill(' ')<<setw(10)<<p->koll<<" |\n";
p=p->next; i++;}
fon<<setfill('*')<<setw(32)<<"*\n";
cout << "Вывод произведён.\n";
fon.close();
}
void pervidrab :: sortvidrab(){
if (beg1==NULL){throw errorm("Не чего сортировать","pervidrab :: sortvidrab()");}
int fl;
pervidrab *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->vidrab>p3->vidrab){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->vidrab>p3->vidrab){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void pervidrab :: sortkoll(){
if (beg1==NULL){throw errorm("Не чего сортировать","pervidrab :: sortkoll()");}
int fl;
pervidrab *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->koll>p3->koll){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->koll>p3->koll){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
perdate *perdate::beg1(NULL), *perdate::end1(NULL); int perdate::n(0);
void perdate :: per_date(){
if (firma::beg1==NULL){throw errorm("Не из чего формировать","perdate :: per_date()");}
int l;
firma *p1;
perdate *p2;
p2=new perdate;
p1=firma::beg1;
p2->date = p1->date;
p2->koll=1;
p2->next=NULL;
beg1=p2;
end1=p2;
n++;
p1=p1->next;
while(p1!=NULL){
p2=beg1;
l=0;
while(p2!=NULL){
if (p1->date == p2->date){p2->koll++; l=1; break;}
p2=p2->next;}
if (l==0) {try{p2=new perdate;}
catch (bad_alloc) {perdate :: clear(); throw errorm("Недостаточно памяти", "perdate :: per_date()");}
p2->next=NULL; p2->date = p1->date; p2->koll=1; end1->next=p2; end1=p2; n++;}
p1=p1->next;}
}
void perdate :: output(){
if (beg1==NULL){throw errorm("Не на что смотреть","perdate :: output()");}
perdate *p;
int i;
p=beg1;
i=0;
cout<<setfill('*')<<setw(29)<<"*";
cout<<"\n| Дата | Количество |\n";
cout<<setfill('-')<<setw(30)<<"-\n";
while (p!=NULL){
cout<<"|"<<p->date<<" |"<<setfill(' ')<<setw(10)<<p->koll<<" |\n";
p=p->next; i++;}
cout<<setfill('*')<<setw(30)<<"*\n";
}
void perdate :: clear(){
perdate *p;
while(beg1!=NULL){p=beg1; beg1=beg1->next; delete p;}
end1=NULL; n=0;}
void perdate :: outputfile(){
if (beg1==NULL){throw errorm("Нечего выводить","perdate :: outputfile()");}
ofstream fon;
perdate *p;
char file[20];
int i=0;
p=beg1;
cout<<"Имя выходного файла: ";
cin>>file;
fon.open(file);
if (fon.fail()){throw errorf("Не удалось создать файл", "perdate :: outputfile()", file);}
fon<<setfill('*')<<setw(29)<<"*";
fon<<"\n| Дата | Количество |\n";
fon<<setfill('-')<<setw(30)<<"-\n";
while (p!=NULL){
fon<<"|"<<p->date<<" |"<<setfill(' ')<<setw(10)<<p->koll<<" |\n";
p=p->next; i++;}
fon<<setfill('*')<<setw(30)<<"*\n";
cout << "Вывод произведён.\n";
fon.close();
}
void perdate :: sortdate(){
if (beg1==NULL){throw errorm("Не чего сортировать","perdate :: sortdate()");}
int fl;
perdate *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->date<p3->date){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->date<p3->date){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void perdate :: sortkoll(){
if (beg1==NULL){throw errorm("Не чего сортировать","perdate :: sortkoll()");}
int fl;
perdate *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->koll>p3->koll){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->koll>p3->koll){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
perprise *perprise::beg1(NULL), *perprise::end1(NULL); int perprise::n(0);
void perprise :: per_prise(){
if (firma::beg1==NULL){throw errorm("Не из чего формировать","perprise :: per_prise()");}
int l;
firma *p1;
perprise *p2;
p2=new perprise;
p1=firma::beg1;
p2->prise = p1->prise;
p2->vidrab = p1->vidrab;
p2->nazv = p1->nazv;
p2->next=NULL;
beg1=p2;
end1=p2;
n++;
p1=p1->next;
while(p1!=NULL){
p2=beg1;
l=0;
while(p2!=NULL){
if (p1->prise == p2->prise && p1->vidrab == p2->vidrab && p1->nazv == p2->nazv){l=1; break;}
p2=p2->next;}
if (l==0) {try{p2=new perprise;}
catch (bad_alloc) {perprise :: clear(); throw errorm("Недостаточно памяти", "perprise :: per_prise()");}
p2->next=NULL; p2->prise = p1->prise; p2->vidrab = p1->vidrab; p2->nazv = p1->nazv; end1->next=p2; end1=p2; n++;}
p1=p1->next;}
}
void perprise :: output(){
if (beg1==NULL){throw errorm("Не на что смотреть","perprise :: output()");}
perprise *p;
int i;
p=beg1;
i=0;
cout<<setfill('*')<<setw(51)<<"*";
cout<<"\n| Цена | Вид работы | Название фирмы |\n";
cout<<setfill('-')<<setw(52)<<"-\n";
while (p!=NULL){
cout<<"|"<<setfill(' ')<<setw(9)<<p->prise<<" |"<<setfill(' ')<<setw(13)<<p->vidrab<<" |"<<setfill(' ')<<setw(16)<<p->nazv<<" |\n";
p=p->next; i++;}
cout<<setfill('*')<<setw(52)<<"*\n";
}
void perprise :: clear(){
perprise *p;
while(beg1!=NULL){p=beg1; beg1=beg1->next; delete p;}
end1=NULL; n=0;}
void perprise :: outputfile(){
if (beg1==NULL){throw errorm("Нечего выводить","perprise :: outputfile()");}
ofstream fon;
perprise *p;
char file[20];
int i=0;
p=beg1;
cout<<"Имя выходного файла: ";
cin>>file;
fon.open(file);
if (fon.fail()){throw errorf("Не удалось создать файл", "perprise :: outputfile()", file);}
fon<<setfill('*')<<setw(51)<<"*";
fon<<"\n| Цена | Вид работы | Название фирмы |\n";
fon<<setfill('-')<<setw(52)<<"-\n";
while (p!=NULL){
fon<<"|"<<setfill(' ')<<setw(9)<<p->prise<<" |"<<setfill(' ')<<setw(13)<<p->vidrab<<" |"<<setfill(' ')<<setw(16)<<p->nazv<<" |\n";
p=p->next; i++;}
fon<<setfill('*')<<setw(52)<<"*\n";
cout << "Вывод произведён.\n";
fon.close();
}
void perprise :: sortprise(){
if (beg1==NULL){throw errorm("Не чего сортировать","perprise :: sortprise()");}
int fl;
perprise *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->prise>p3->prise){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->prise>p3->prise){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
void perprise :: sortvidrab(){
if (beg1==NULL){throw errorm("Не чего сортировать","perprise :: sortvidrab()");}
int fl;
perprise *p1,*p2,*p3;
do{
fl=0;
p2=beg1;
p3=p2->next;
if(p2->vidrab>p3->vidrab){
p2->next=p3->next;
p3->next=p2;
beg1=p3;
fl=1;}
p1=beg1;
while(p1->next->next!=NULL)
{p2=p1->next;
p3=p2->next;
if(p2->vidrab>p3->vidrab){
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
fl=1;}
p1=p1->next;}}
while(fl==1);
end1=p1->next;}
Menu.cpp:
#include "Firma.h"
#include "Search.h"
#include "Error.h"
#include "Perech.h"
int main(){
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int j;
nach:
system("cls");
while (1){
try{cout<< "1. Работа с основной таблицей." << endl;
cout << "2. Перечень видов работ." << endl;
cout << "3. Перечень цен с указанием вида работы и фирмы." << endl;
cout << "4. Перечень дат исполнения с указанием числа счетов." << endl;
cout << "5. Поиск по названию фирмы." << endl;
cout << "6. Выход.\n" << endl;
cout << "Ваш выбор (1-6): "; cin >> j; cout<<endl; if (cin.fail()){cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
switch(j){
case 1: system("cls");
while (1){
try{cout << "1. Ввод с клавиатуры (добавление записи)." << endl;
cout << "2. Ввод из файла." << endl;
cout << "3. Удаление записи." << endl;
cout << "4. Ввод на экран." << endl;
cout << "5. Сортировка по названию." << endl;
cout << "6. Сортировка по номеру счёта." << endl;
cout << "7. Сортировка по оъёму выполненой работы." << endl;
cout << "8. Сортировка по дате." << endl;
cout << "9. Сортировка по виду работ." << endl;
cout << "10.Сортировка по стоимости." << endl;
cout << "11.Сортировка по единице измерения." << endl;
cout << "12.Поиск по номеру счёта." << endl;
cout << "13.Удаление таблицы." << endl;
cout << "14.Вывод в файл." << endl;
cout << "15.Выход." << endl;
cout << "Ваш выбор (1-15): "; cin >> j; cout<<endl; if (cin.fail()){cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
switch(j){
case 1: firma::vvodklav(); break;
case 2: firma::inputfile(); break;
case 3: firma::delet(); break;
case 4: firma::output(firma::beg1); break;
case 5: firma::sortnazv(firma::beg1,firma::end1); break;
case 6: firma::sortnum(firma::beg1,firma::end1); break;
case 7: firma::sortkol(firma::beg1,firma::end1); break;
case 8: firma::sortdat(firma::beg1,firma::end1); break;
case 9: firma::sortvidrab(firma::beg1,firma::end1); break;
case 10: firma::sortprise(firma::beg1,firma::end1); break;
case 11: firma::sortedizm(firma::beg1,firma::end1); break;
case 12: firma::searchnumch(firma::beg1); break;
case 13: firma::clear(firma::beg1,firma::end1); break;
case 14: firma::outputfile(firma::beg1); break;
case 15: cout << "Конец работы.\n"; goto nach;
default: cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
}catch(error &err){err.output(); _getch();}};
case 2: system("cls");
while (1){
try{cout << "1. Формирование перечьня видов работ." << endl;
cout << "2. Вывод на экран." << endl;
cout << "3. Сортировка по виду работ." << endl;
cout << "4. Сортировка по количеству." << endl;
cout << "5. Удаление таблицы." << endl;
cout << "6. Вывод в файл." << endl;
cout << "7. Выход." << endl;
cout << "Ваш выбор (1-8): "; cin >> j; cout<<endl; if (cin.fail()){cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
switch(j){
case 1: pervidrab::per_vidrab(); break;
case 2: pervidrab::output(); break;
case 3: pervidrab::sortvidrab(); break;
case 4: pervidrab::sortkoll(); break;
case 5: pervidrab::clear(); break;
case 6: pervidrab::outputfile(); break;
case 7: cout << "Конец работы.\n"; goto nach;
default: cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
}catch(error &err){err.output(); _getch();}};
case 3: system("cls");
while (1){
try{cout << "1. Формирование перечьня цен с указанием вида работы и фирмы." << endl;
cout << "2. Вывод на экран." << endl;
cout << "3. Сортировка по виду работы." << endl;
cout << "4. Сортировка по цене." << endl;
cout << "5. Удаление таблицы." << endl;
cout << "6. Вывод в файл." << endl;
cout << "7. Выход." << endl;
cout << "Ваш выбор (1-8): "; cin >> j; cout<<endl; if (cin.fail()){cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
switch(j){
case 1: perprise::per_prise(); break;
case 2: perprise::output(); break;
case 3: perprise::sortvidrab(); break;
case 4: perprise::sortprise(); break;
case 5: perprise::clear(); break;
case 6: perprise::outputfile(); break;
case 7: cout << "Конец работы.\n"; goto nach;
default: cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
}catch(error &err){err.output(); _getch();}};
case 4: system("cls");
while (1){
try{cout << "1. Формирование перечьня дат исполнения." << endl;
cout << "2. Вывод на экран." << endl;
cout << "3. Сортировка по дате." << endl;
cout << "4. Сортировка по количеству." << endl;
cout << "5. Удаление таблицы." << endl;
cout << "6. Вывод в файл." << endl;
cout << "7. Выход." << endl;
cout << "Ваш выбор (1-8): "; cin >> j; cout<<endl; if (cin.fail()){cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
switch(j){
case 1: perdate::per_date(); break;
case 2: perdate::output(); break;
case 3: perdate::sortdate(); break;
case 4: perdate::sortkoll(); break;
case 5: perdate::clear(); break;
case 6: perdate::outputfile(); break;
case 7: cout << "Конец работы.\n"; goto nach;
default: cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
}catch(error &err){err.output(); _getch();}};
case 5: system("cls");
while (1){
try{cout << "1. Поиск по названию фирмы." << endl;
cout << "2. Вывод рузультатов на экран." << endl;
cout << "3. Сортировка по номеру счёта." << endl;
cout << "4. Сортировка по оъёму выполненой работы." << endl;
cout << "5. Сортировка по дате." << endl;
cout << "6. Сортировка по виду работ." << endl;
cout << "7. Сортировка по стоимости." << endl;
cout << "8. Сортировка по единице измерения." << endl;
cout << "9. Поиск по номеру счёта." << endl;
cout << "10.Удаление таблицы." << endl;
cout << "11.Вывод в файл." << endl;
cout << "12.Выход." << endl;
cout << "Ваш выбор (1-10): "; cin >> j; cout<<endl; if (cin.fail()){cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
switch(j){
case 1: search::serch_nazv(); break;
case 2: search::output(); break;
case 3: search::sortnum(); break;
case 4: search::sortkol(); break;
case 5: search::sortdat(); break;
case 6: search::sortvidrab(); break;
case 7: search::sortprise(); break;
case 8: search::sortedizm(); break;
case 9: search::seurchnumch(); break;
case 10: search::clear(); break;
case 11: search::outputfile(); break;
case 12: cout << "Конец работы.\n"; goto nach;
default: cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
}catch(error &err){err.output(); _getch();}};
case 6: cout << "Конец работы.\n"; return(0);
default: cin.clear(); cin.sync(); throw error("Нет такого пункта.");}
}catch(error &err){err.output(); _getch();}}
};
Размещено на Allbest.ru
...Подобные документы
Понятие доступности элементов класса и объекта. Обращение к полям на основе общедоступных свойств (инкапсуляция на основе свойств класса). Способы передачи данных в метод и возвращения результатов работы метода. Обращение к полям и свойствам класса.
презентация [86,6 K], добавлен 09.12.2013Создание класса wind, характеризующего ветровой режим, и программы, демонстрирующей применение разработанного класса. Программный модуль на языке программирования C++ в среде программирования C++Builder6/0, демонстрирующая работу с классом wind.
курсовая работа [123,5 K], добавлен 24.06.2010Некоторые методы класса String. Символьные и байтовые потоки. Чтение консольного ввода. Запись и чтение файлов. Сериализация объектов. Разработка программы для обработки ведомости. Процесс диалога с пользователем, а также сохранения данных в файл.
презентация [196,7 K], добавлен 26.10.2013Разработка программы "Игроки КХЛ 2012-2013" на языке С++ с использованием классов списков структур для обработки данных. Описание глобальных переменных, разработанных функций. Главное меню программы. Чтение данных из файла, их просмотр и сохранение.
курсовая работа [2,2 M], добавлен 17.03.2016Оценка функциональных возможностей стандартных классов представления данных на примерах использования избранных методов ("detect: ifNone:" класса Set, "to:by:do:" класса Number и "copy: ReplaceFrom: to: with:" класса OrderedCollection), их тестирование.
лабораторная работа [1,1 M], добавлен 14.10.2012Разработка исходного XML-документа, который будет содержать данные варианта. Разработка таблицы стилей XSLT для преобразования исходного XML-документа исходного XML-документ с заданной структурой. Анализ базового класса, содержащего виртуальные методы.
курсовая работа [1,3 M], добавлен 01.05.2019Разработка программного обеспечения для автоматизации доступа, обработки, вывода информации об услугах автосервиса и его клиентах с использованием языка программирования С# и MySQL. Проектирование интерфейсов системы. Схема алгоритма работы программы.
курсовая работа [665,6 K], добавлен 02.04.2015Разработка структурной схемы системы. Выбор и обоснование не указанных в задании элементов. Анализ временных параметров системы. Разработка файла конфигурации для системы сбора-обработки данных на языке AHDL. Моделирование цифровой части системы.
курсовая работа [1,1 M], добавлен 26.10.2014Процедура ввода исходных данных в программу, вывод результатов работы программы на экран. Принцип организации хранения логически связанных наборов информации в виде файлов. Параметры характеристики файла, способы обращения к нему, соглашения по типу.
реферат [14,5 K], добавлен 06.12.2011Характеристика интерфейса в Java, возможность его расширения с использованием механизма наследования. Организация обратного вызова в Java. Сущность внутреннего класса. Обращение из внутреннего класса к элементам внешнего класса и листинг программы.
методичка [90,8 K], добавлен 30.06.2009Построение абстрактной модели. Структура базового класса System_Term: формальное описание класса, структура данных и функций, инструкция программиста и пользователя. Структура базовых классов mobile, Home, TV, Internet, их составные части и функционал.
курсовая работа [1,2 M], добавлен 20.06.2014Функциональные зависимости и нормализация отношений. Ограничения целостности данных. Описание таблиц на языке SQL. Интерфейс пользователя и надёжность программ обработки данных. Обработка данных с помощью запросов. Работа с данными из внешних источников.
дипломная работа [1,6 M], добавлен 25.04.2015Разработка и тестирование программы класса Точка. Спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров функций программы. Текст программы на языке C++. Особенности тестирования программы.
лабораторная работа [43,1 K], добавлен 21.07.2012Разработка программы, выполняющей обработку базы данных, элементами которой являются объекты класса Student. Организация пользовательского диалога для ввода информации и просмотра объектов. Определение классов и глобальных имен. Инструкция программиста.
контрольная работа [18,4 K], добавлен 13.10.2013Понятия шаблонов функции и класса, правила описания на языке С++. Разработка и отлаживание в среде программирования программ, содержащих шаблоны функций и классов. Шаблон функции square, возвращающей квадрат переменной. Создание шаблона класса массива.
лабораторная работа [162,6 K], добавлен 25.05.2013Изучение особенностей информационного процесса обработки данных. Процессы, связанные с поиском, хранением, передачей, обработкой и использованием информации. Основные режимы обработки данных на ЭВМ. Организация обслуживания вычислительных задач.
реферат [130,9 K], добавлен 28.09.2014Последовательность описания класса "Процессор", содержащего сведения о марке, тактовой частоте, объеме кэша и стоимости. Использование главной функции main, обеспечивающей всю необходимую и правильную работу программы. Ее алгоритм, интерфейс и листинг.
курсовая работа [544,2 K], добавлен 27.11.2013Листинг класса для работы с регулярными выражениями. Особенности классов для проверки данных при регистрации и отправки сообщений. Отправка ссылки для активации на почту пользователя, описание основных классов, анализ их назначения и листинг функций.
курсовая работа [1,7 M], добавлен 17.09.2013Входные данные - статистические сведения о работе механообрабатывающего цеха, представленные в виде файла. Способы расчета основных характеристик работы. Описание работы созданного программного комплекса. Формы отображения выходных данных проекта.
курсовая работа [36,8 K], добавлен 23.06.2011Описание формата и структуры входных и выходных файлов. Выбор языка программирования и Perl модуля для генерации документов в формате pdf. Валидация почтового адреса. Процесс создания алгоритма обработки данных. Структура штрихкодового идентификатора.
дипломная работа [1,6 M], добавлен 04.11.2015