Читайте также:
|
|
Удаление производиться по фамилии кассира (Kovalchuk)
Редактирование производиться по фамилии кассира (Ovechkina)
Листинг Программы
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
ofstream fout;
ifstream fin;
struct bileti
{
char fio[30];
int nomer,kpb,vir,data;
};
int cs();
void input_file(bileti p[]);
void outputfile(bileti p[]);
void sort_pnk(bileti p[]);
void sort_fam(bileti p[]);
void sort_pb(bileti p[]);
void sort_v(bileti p[]);
void sort_d(bileti p[]);
void poisk_nom(bileti p[]);
void poisk_fam(bileti p[]);
void add(bileti a);
void udalenie(bileti p[]);
void redakt(bileti p[]);
void input(bileti p[]);
void output(bileti p[]);
char h[30];
void main()
{
clrscr();
int gm;
cout<<"Vvedite imya faila:";
cin>>h;
const int e=2;
bileti p[e],a;
while(gm!=12)
{
clrscr();
cout<<"\n 1.Vivod na ekran ";
cout<<"\n 2.Sortirovka po nomery ";
cout<<"\n 3.Sortirovka po familii ";
cout<<"\n 4.Sortirovka po prodannim biletam";
cout<<"\n 5.Sortirovka po virychke ";
cout<<"\n 6.Sortirovka po date ";
cout<<"\n 7.Poisk po nomery kassi ";
cout<<"\n 8.Poisk po familii kassira ";
cout<<"\n 9.Dobavlenie zapisi ";
cout<<"\n 10.Udalenie zapisi ";
cout<<"\n 11.Redaktirovanie ";
cout<<"\n 12.Vihod ";
cout<<endl<<endl;
cout<<"Vash vibor:";
cin>>gm;
cout<<endl<<endl;
switch(gm)
{
case 1:input_file(p); output(p); getch(); break;
case 2:input_file(p); output(p); sort_pnk(p); break;
case 3:input_file(p); output(p); sort_fam(p);break;
case 4:input_file(p); output(p); sort_pb(p);break;
case 5:input_file(p); output(p); sort_v(p);break;
case 6:input_file(p); output(p); sort_d(p);break;
case 7:input_file(p); output(p); poisk_nom(p);break;
case 8:input_file(p); output(p); poisk_fam(p);break;
case 9:add(a);break;
case 10:input_file(p); output(p); udalenie(p);break;
case 11:input_file(p); output(p); redakt(p);break;
case 12:
{
clrscr();
cout<<"\nTHE END!\n";
getch();
}
return;
default: cout<<"Net takogo punkta!!!";
getch(); break;
}
}
}
int cs()
{int c;
char line[40];
fin.open(h,ios::in);
c=0;
while(fin.getline(line,40))
{
c++;
}
fin.close();
return(c/5);
}
void input(bileti p[])
{
int i,n;
cout<<"Vvedite kolichestvo strok:"<<endl;
cin>>n;
cout<<"Vvedite dannie:"<<endl;
for(i=0;i<n;i++)
{
cout<<i+1<<".";
cout<<"Nomer kassi:"<<endl;
cin>>p[i].nomer;
cout<<"Familiya kassira:"<<endl;
cin>>p[i].fio;
cout<<"Kolichestvo prodannih biletov:"<<endl;
cin>>p[i].kpb;
cout<<"Virychka:"<<endl;
cin>>p[i].vir;
cout<<"Data:"<<endl;
cin>>p[i].data;
cout<<endl;
}
}
void output_file(bileti p[])
{
int n,i;
cout.setf(ios::left);
for(i=0;i<n;i++){
fout<<p[i].nomer<<endl;
fout<<p[i].fio<<endl;
fout<<p[i].kpb<<endl;
fout<<p[i].vir<<endl;
fout<<p[i].data<<endl;
}
}
void input_file(bileti p[])
{
int n,i;
char line[40];
n=cs();
if(n==0){cout<<"Fail ne naiden!"<<endl;}
if(n!=0){fin.open(h,ios::in);
for(i=0;i<n;i++){
fin>>p[i].nomer;
fin>>p[i].fio;
fin>>p[i].kpb;
fin>>p[i].vir;
fin>>p[i].data;
}
fin.close();
}
}
void output(bileti p[])
{
int i,n;
n=cs();
if(n!=0){
cout.setf(ios::left);
cout<<"Nomer Familiya Prodannie bileti Virychka Data\n";
for(i=0;i<n;i++){
cout.width(14); cout<<p[i].nomer;
cout.width(20); cout<<p[i].fio;
cout.width(17); cout<<p[i].kpb;
cout.width(16); cout<<p[i].vir;
cout.width(15); cout<<p[i].data<<endl;
}
}
}
void sort_pnk(bileti p[])
{
int i,n,j;
bileti a;
n=cs();
fout.open(h);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{if(p[j].nomer<p[i].nomer)
{a=p[i];
p[i]=p[j];
p[j]=a;
}
}
for(i=0;i<n;i++){
fout<<p[i].nomer<<endl;
fout<<p[i].fio<<endl;
fout<<p[i].kpb<<endl;
fout<<p[i].vir<<endl;
fout<<p[i].data<<endl;
}
fout.close();
}
void sort_fam(bileti p[])
{
int i,n,j;
bileti a;
n=cs();
fout.open(h);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{if(strcmp(p[j].fio,p[i].fio)<0)
{a=p[i];
p[i]=p[j];
p[j]=a;
}
}
for(i=0;i<n;i++){
fout<<p[i].nomer<<endl;
fout<<p[i].fio<<endl;
fout<<p[i].kpb<<endl;
fout<<p[i].vir<<endl;
fout<<p[i].data<<endl;
}
fout.close();
}
void sort_pb(bileti p[])
{
int i,n,j;
bileti a;
n=cs();
fout.open(h);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{if(p[j].kpb<p[i].kpb)
{a=p[i];
p[i]=p[j];
p[j]=a;
}
}
for(i=0;i<n;i++){
fout<<p[i].nomer<<endl;
fout<<p[i].fio<<endl;
fout<<p[i].kpb<<endl;
fout<<p[i].vir<<endl;
fout<<p[i].data<<endl;
}
fout.close();
}
void sort_v(bileti p[])
{
int i,n,j;
bileti a;
n=cs();
fout.open(h);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{if(p[j].vir<p[i].vir)
{a=p[i];
p[i]=p[j];
p[j]=a;
}
}
for(i=0;i<n;i++){
fout<<p[i].nomer<<endl;
fout<<p[i].fio<<endl;
fout<<p[i].kpb<<endl;
fout<<p[i].vir<<endl;
fout<<p[i].data<<endl;
}
fout.close();
}
void sort_d(bileti p[])
{
int i,n,j;
bileti a;
n=cs();
fout.open(h);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{if(p[j].data<p[i].data)
{a=p[i];
p[i]=p[j];
p[j]=a;
}
}
for(i=0;i<n;i++){
fout<<p[i].nomer<<endl;
fout<<p[i].fio<<endl;
fout<<p[i].kpb<<endl;
fout<<p[i].vir<<endl;
fout<<p[i].data<<endl;
}
fout.close();
}
void poisk_nom(bileti p[])
{
int i,f,n;
n=cs();
int nomerp;
cout<<"Vvedite nomer kassi: \n";
cin>>nomerp;
f=0;
for(i=0;i<n;i++)
{if(nomerp==p[i].nomer)
{cout<<"Nomer Familiya Prodannie bileti Virychka Data\n";
f++;
cout.width(14); cout<<p[i].nomer;
cout.width(20); cout<<p[i].fio;
cout.width(17); cout<<p[i].kpb;
cout.width(16); cout<<p[i].vir;
cout.width(15); cout<<p[i].data<<endl;
}
}
if(f==0) cout<<"Takogo nomera kassi net v BD! \n";
getch();
}
void poisk_fam(bileti p[])
{
int n,i,f;
n=cs();
char fiop[20];
cout<<"Vvedite familiy kassira: \n";
cin>>fiop;
f=0;
for(i=0;i<n;i++)
{if(strcmp(p[i].fio,fiop)==0)
{
cout<<"Nomer Familiya Prodannie bileti Virychka Data\n";
f++;
cout.width(14); cout<<p[i].nomer;
cout.width(20); cout<<p[i].fio;
cout.width(17); cout<<p[i].kpb;
cout.width(16); cout<<p[i].vir;
cout.width(15); cout<<p[i].data<<endl;
}
}
if(f==0) cout<<"Takoi familii net v BD \n";
getch();
}
void add(bileti a)
{
int i,p;
fout.open(h,ios::app);
cout<<"Vvedite kolichestvo strok: \n";
cin>>p;
cout<<endl<<endl;
cout<<"*Vvedite novie dannie*"<<endl;
cout<<endl;
for(i=0;i<p;i++)
{
cout<<"Nomer kassi:"<<endl;
cin>>a.nomer;
cout<<"Familiya kassira:"<<endl;
cin>>a.fio;
cout<<"Prodannie bileti:"<<endl;
cin>>a.kpb;
cout<<"Virychka:"<<endl;
cin>>a.vir;
cout<<"Data:"<<endl;
cin>>a.data;
fout<<a.nomer<<endl;
fout<<a.fio<<endl;
fout<<a.kpb<<endl;
fout<<a.vir<<endl;
fout<<a.data<<endl;
}
fout.close();
}
void udalenie(bileti p[])
{
int i,n;
char fiou[30];
cout<<"Familiya kassira,kotoryy vi hotite udalit \n";
cin>>fiou;
n=cs();
fout.open(h);
for(i=0;i<n;i++)
if((strcmp(p[i].fio,fiou))!=0)
{
fout<<p[i].nomer<<endl;
fout<<p[i].fio<<endl;
fout<<p[i].kpb<<endl;
fout<<p[i].vir<<endl;
fout<<p[i].data<<endl;
}
fout.close();
}
void redakt(bileti p[])
{
int i,d,n,g;
char fior[30];
n=cs();
fout.open(h);
cout<<"Familiya kassira dlya redaktirovaniya: \n";
cin>>fior;
d=0;
for(i=0;i<n;i++)
if(strcmp(p[i].fio,fior)==0)
{
d=d+1;
cout<<"Izmenit' nomer kassi? da-1 net-0 \n";
cin>>g;
if(g==1)
{cout<<"Nomer kassi: \n";
cin>>p[i].nomer;}
cout<<"Izmenit Familiy kassira? da-1 net-0 \n";
cin>>g;
if(g==1)
{cout<<"Familiya: \n";
cin>>p[i].fio;}
cout<<"Izmenit' kolichestvo prodannih biletov? da-1 net-0 \n";
cin>>g;
if(g==1)
{cout<<"Prodannie bileti: \n";
cin>>p[i].kpb;}
cout<<"Izmenit' Virychky? da-1 net-0 \n";
cin>>g;
if(g==1)
{cout<<"Virychka: \n";
cin>>p[i].vir;}
cout<<"Izmenit' daty prodagi? da-1 net-0 \n";
cin>>g;
if(g==1)
{cout<<"Data: \n";
cin>>p[i].data;}
}
for(i=0;i<n;i++){
fout<<p[i].nomer<<endl;
fout<<p[i].fio<<endl;
fout<<p[i].kpb<<endl;
fout<<p[i].vir<<endl;
fout<<p[i].data<<endl;
}
fout.close();
if(d==0) cout<<"Net takoi Familii \n";
getch();
}
Заключение
В ходе выполнения курсовой работы разработана программа на языке Си для обработки данных типа структура. Обработка данных включает:
просмотр существующей БД
редактирование БД
дополнение БД
удаление записей из БД
сортировка БД по определённому полю
поиск записи по одному или нескольким критериям
При разработке программе использовались функции, массивы, циклы.
Разработанная программа позволяет повысить эффективность обработки данных и сократить время на поиск необходимых записей.
Дата добавления: 2015-09-05; просмотров: 42 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ввод имени файла | | | Классификация радиовещания по типу |