Автор работы: Пользователь скрыл имя, 03 Декабря 2013 в 19:26, курсовая работа
Цель работы: освоение функций работы со структурным типом данных и файлами.
Постановка задачи: Разработать программу на С++ для обработки данных типа структура.
Введение
1. Описание глобальных переменных
2.Тестирование
3.Листинг программы
Список использованной литературы
Содержание
Введение
1. Описание глобальных переменных
2.Тестирование
3.Листинг программы
Список использованной литературы
Введение
Цель работы: освоение функций работы со структурным типом данных и файлами.
Постановка задачи: Разработать программу на С++ для обработки данных типа структура. Обработка должна включить следующие функции:
«Легковые автомобили»
Марка |
Цвет |
Стоимость |
Изготовитель |
Максимальная скорость |
Ключевые поля: цвет, стоимость
1.Описание глобальных переменных, разработанных подпрограмм
Описание глобальных переменных:
Const int L=30
struct avto { char model[L]; char cvet[L]; long int stoimost; char izgotovitel[L]; int speed; }; |
Количество символов под структуру
-структура записей в базе данных
-тип наименования марки -тип наименования цвета -тип стоимость -тип наименования изготовителя -тип максимальная скорость |
Class avtos |
|
avto a[N] int n |
|
Описание разработанных подпрограмм:
Название подпрограммы |
Назначение |
void input_file |
Ввод из файла |
void outputfile |
Вывод из файла |
void alfsort |
Сортировка по наименованию марки |
void sohranenie |
Сохранение изменений |
void sort_chisl_1 |
Сортировка по цвету |
void sort_chisl_2 |
Сортировка по стоимости |
void sort_chisl_3 |
Сортировка по изготовителю |
void sort_chisl_4 |
Сортировка по скорости |
void add |
Добавление записей в базу данных |
void udalenie |
Удаление записей из базы данных |
void redaktirovanie |
Редактирование записей в базе данных |
void input |
Создание новой базы данных |
void poisk |
Поиск по заданному полю |
2. Тестирование программы
При входе в программу появляется меню с выбором пунктов меню, доступных для любого пользователя:
1. Ввод из файла.
2. Вывод из файла.
3. Сортировка по наименованию марки.
4. Сортировка по цвету.
5. Сортировка по стоимости.
6. Сортировка по изготовителю.
7. Сортировка по максимальной скорости.
8. Поиск по полю.
9. Добавление записи в базу данных.
10. Удаление записи из базы данных.
11. Редактирование базы данных.
12. Создание новой базы данных.
13. Сохранение изменений.
14. Выход из программы.
Теперь посмотрим, что происходит при нажатии пользователем каждого пункта меню. При неверном вводе данных во всех пунктах меню выходит сообщение об ошибке.
Нумерация пунктов – есть номер клавиш на клавиатуре.
Ввод из файла – в этом пункте пользователь может ввести свой файл:
Вывод из файла – в этом пункте пользователь может просмотреть свой файл:
Сортировка по наименованию марки.
До сортировки:
После сортировки:
Сортировка по цвету автомобиля
До сортировки:
После сортировки:
Сортировка по стоимости автомобиля:
До сортировки:
После сортировки:
Сортировка по изготовителю
До сортировки:
После сортировки:
Сортировка по максимальной скорости
До сортировки:
После сортировки:
Поиск осуществляется по всем критериям: по марке автомобиля, его цвету, стоимости, изготовителю и максимальной скорости. Поиск может осуществляться как по одному, так и по нескольким критериям одновременно:
1) Поиск по марке автомобиля:
2) Поиск по цвету автомобиля:
3) Поиск по стоимости автомобиля:
4) Поиск по изготовителю автомобиля:
5) Поиск по максимальной скорости автомобиля:
Добавление записи производится поочередно:
Результат:
Удаление записей производится по номеру строки:
Редактирование базы данных производится по каждому полю строки:
Результат:
Создание новой базы данных:
Просмотр созданной базы данных:
Сохранение изменений. При этом создается файл, имя и расположение которого указывается пользователем:
Открытие только что сохраненного файла:
Просмотр сохраненной базы данных:
3.Листинг программы
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<iomanip.h>
#include <io.h>
const int L=30;
struct avto
{
char model[L];
char cvet[L];
long int stoimost;
char izgotovitel[L];
int speed;
int d;
};
const int N=100;
class avtos
{
private:
avto a[N];
int n;
public:
void input_file();
void outputfile();
void alfsort();
void sohranenie();
void sort_chisl_1();
void sort_chisl_2();
void sort_chisl_3();
void sort_chisl_4();
void add();
void udalenie();
void redaktirovanie();
void input();
void poisk();
};
void main()
{
clrscr();
avtos a;
int pm;
while(1)
{cout<<endl;
cout<<"*/*/*/*/*/*/*/*/*/*/*/*
cout<<"*
cout<<"/ 1.Otkritie faila *"<<endl;
cout<<"* 2.Vivod na ekran /"<<endl;
cout<<"/ 3.Alfofitnai sortirovka *"<<endl;
cout<<"* 4.Sortirovka po cvety /"<<endl;
cout<<"/ 5.Sortirovka po stoimosti *"<<endl;
cout<<"* 6.Sortirovka po izgotovitelu /"<<endl;
cout<<"/ 7.Sortirovka po skorosti *"<<endl;
cout<<"* 8.Poisk po polu /"<<endl;
cout<<"/ 9.Dobavlenie zapisi v bazu dannih *"<<endl;
cout<<"* 10.Udalenie zapisi iz bazi dannih /"<<endl;
cout<<"/ 11.Redaktirovanie
cout<<"* 12.Sozdanie novoi bazi dannih /"<<endl;
cout<<"/ 13.Sohranenie
cout<<"* 14.Vihod /"<<endl;
cout<<"/ *"<<endl;
cout<<"*/*/*/*/*/*/*/*/*/*/*/*
cout<<endl<<endl;
cout<<" Vash vibor 1-14: ";
cin>>pm;
cout<<endl<<endl;
switch(pm)
{
case 1:a.input_file();break;
case 2:a.outputfile();getch();
case 3:a.alfsort();break;
case 4:a.sort_chisl_1();break;
case 5:a.sort_chisl_2();break;
case 6:a.sort_chisl_3();break;
case 7:a.sort_chisl_4();break;
case 8:a.poisk();break;
case 9:a.add();break;
case 10:a.udalenie();break;
case 11:a.redaktirovanie();break;
case 12:a.input();break;
case 13:a.sohranenie();break;
case 14:
{
clrscr();
cout<<"\t\t TTTTTT HH HH EEEEEE \n";
cout<<"\t\t TT HH HH EE \n";
cout<<"\t\t TT HHHHHH EEEE \n";
cout<<"\t\t TT HH HH EE \n";
cout<<"\t\t TT HH HH EEEEEE \n\n";
cout<<"\t\t EEEEEE NNN NN DDDD \n";
cout<<"\t\t EE NN N NN D D \n";
cout<<"\t\t EEEE NN N NN D D \n";
cout<<"\t\t EE NN N NN D D \n";
cout<<"\t\t EEEEEE NN NNN DDDD \n\n";
getch();
}
return;
default:cout<<"Net tacogo puncta.";
getch();break;
}
}
}
void avtos::alfsort()
{
int fl,i,l;
avto t;
l=n-1;
do
{
fl=0;
for(i=0;i<l;i++)
if(strcmp(a[i].model ,a[i+1].model)>0)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
fl=1;
}
l--;
}
while(fl==1);
return;
getch();
}
void avtos::input_file()
{
ifstream fin;
char file[L];
cout<<"Ukazite put k failu: ";
cin>>file;
fin.open(file);
if(fin==NULL)
{
cout<<"File ne otkrit";
getch();
exit(1);
}
n=0;
fin>>a[n].model>>a[n].cvet>>a[
while(fin.good())
{
n++;
fin>>a[n].model>>a[n].cvet>>a[
}
fin.close();
getch();
}
void avtos::outputfile()
{
int i;
cout<<setw(10)<<"Model "<<setw(15)<<"Cvet "<<setw(15)<<"Stoimost "<<setw(18)<<"Izgotovitel "<<setw(14)<<"Ckopoctb "<<endl;
cout<<endl;
for(i=0;i<n;i++)
cout<<setw(10)<<a[i].model<<
getch(); }
void avtos::sort_chisl_1()
{
int fl,i,l;
avto t;
l=n-1;
do
{
fl=0;
for(i=0;i<l;i++)
if(strcmp(a[i].cvet ,a[i+1].cvet )>0)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
fl=1;
}
l--;
}
while(fl==1);
return;
getch();
}
void avtos::sort_chisl_2()
{
int fl,i,l;
avto t;
l=n-1;
do
{
fl=0;
for(i=0;i<l;i++)
if(a[i].stoimost>a[i+1].
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
fl=1;
}
l--;
}
while(fl==1);
return;
getch();
}
void avtos::sort_chisl_3()
{
int fl,i,l;
avto t;
l=n-1;
do
{
fl=0;
for(i=0;i<l;i++)
if(strcmp(a[i].izgotovitel ,a[i+1].izgotovitel )>0)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
fl=1;
}
l--;
}
while(fl==1);
return;
getch();
}
void avtos::sort_chisl_4()
{
int fl,i,l;
avto t;
l=n-1;
do
{
fl=0;
for(i=0;i<l;i++)
if(a[i].speed>a[i+1].speed)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
fl=1;
}
l--;
}
while(fl==1);
return;
getch();
}
void avtos::sohranenie()
{
char file[L];
ofstream out;
int otvet;
cout<<"Sohranit izmeneniya?"<<endl<<"Yes(press 1),No(press 0)";
cin>>otvet;
if(otvet==1)
{
cout<<"Vvedite direktoriyu, kuda vj bj hoteli sohranit: ";
cin>>file;
out.open(file);
if(out==NULL)
cout<<"File ne sozdan"<<endl<<"Programm to be finished";
getch();
exit(1);
}
}
int i;
for(i=0;i<n;i++)
out<<setw(10)<<a[i].model<<
cout<<endl;
getch();
}
void avtos::redaktirovanie()
{
int c,r;
cout<<"Vvedite nomer stroki,kotoruiu nujno otredaktirovat: ";
cin>>c;
cout<<c<<"."<<a[c-1].model<<" "<<a[c-1].cvet<<" "<<a[c-1].stoimost<<" "<<a[c-1].izgotovitel<<" "<<a[c-1].speed<<endl;
cout<<"Izmenit naimenovanie? (1 Da/0 Net):"<<endl;
cin>>r;
if(r)
{
cout<<"Model: ";
in>>a[c-1].model;
}
cout<<"Izmenit cvet avto? (1 Da/0 Net):"<<endl;
cin>>r;
if(r)
{
cout<<"Cvet avto: ";
cin>>a[c-1].cvet;
}
cout<<"Izmenit stoimost? (1 Da/0 Net):"<<endl;
cin>>r;
if(r)
{
cout<<"stoimost";
cin>>a[c-1].stoimost;
}
cout<<"Izmenit izgotovitel? (1 Da/0 Net):"<<endl;
cin>>r;
if(r)
{
cout<<"Izgotovitel: ";
cin>>a[c-1].izgotovitel;
}
cout<<"Izmenit ckopocmb? (1 Da/0 Net):"<<endl;
cin>>r;
if(r)
{
cout<<"Ckopoctb:";
cin>>a[c-1].speed;
}
cout<<endl;
cout<<"Redaktirovanie zaversheno."<<endl;
return;
getch();}
void avtos::udalenie()
{
int i,c;
cout<<"Vvedite nomer stroki,kotoruiu neobhodimo udalit: "<<endl;
cin>>c;
if (c>n) cout<<"Dannaia stroka v baze dannih otsutstvuet."<<endl;
else
{
cout<<c<<"."<<a[c-1].model<<" "<<a[c-1].cvet<<" "<<a[c-1].stoimost<<" "<<a[c-1].izgotovitel<<" "<<a[c-1].speed<<endl;
for (i=c;i<=n;i++)
{
a[i-1] = a[i];
}
cout<<"Stroka "<<c<<" udalena."<<endl;
n=n-1;
}
return;
getch();
}
void avtos::add()
{
struct avto x;
cout<<"Vvedite dannie novogo avto: "<<endl;
cout<<n+1<<".";
cout<<"Nomer: "<<endl;
cin>>x.d;
cout<<"Model: ";
cin>>x.model;
cout<<"Cvet avto: ";
cin>>x.cvet;
cout<<"Stoimost avto: ";
cin>>x.stoimost;
cout<<"Izgotovitel: ";
cin>>x.izgotovitel;
cout<<"Ckopocmb: ";
cin>>x.speed;
cout<<endl;
a[n]=x;
n=n+1;
cout<<"Zapisi dobavleni."<<endl;
return;
getch();
}
void avtos::input()
{
int i;
cout<<"Vvedite kolichestvo strok:"<<endl;
cin>>n;
cout<<"Vvedite dannie avto:"<<endl;
for (i=0;i<n;i++)
{
cout<<i+1<<".";
cout<<"Nomer: "<<endl;
cin>>a[i].d;
cout<<"Model: ";
cin>>a[i].model;
cout<<"Cvet avto: ";
cin>>a[i].cvet;
cout<<"Stoimost avto: ";
cin>>a[i].stoimost;
cout<<"Izgotovitel: ";
cin>>a[i].izgotovitel;
cout<<"Ckopocmb: ";
Информация о работе Информационно-поисковая система «Легковые автомобили»