📄 b.cpp
字号:
#include<stdio.h>
#include<string.h>
#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>
#define N 10
struct cp{
int num;/*班次*/
char fcsj[10];/*发车时间*/
char qdz[10];/*起点站*/
char zdz[10];/*终点站*/
char xcsj[4];/*行车时间*/
int edzl;/*额定载量*/
int ydrs;/*已定票人数*/
};
class cpso
{
public:
static int n;
static int i;
void typein();
void overlook();
void search_num();
void search_end();
void booking();
void tpiao();
void save();
void menu();
struct cp cpiao[N];
};
int cpso::n=0;
int cpso::i=0;
void cpso::typein() /*功能:实现数据的录入及添加*/
{
for(;i<n;++i){
cout<<"please input the message of "<<i+1<<endl; /*录入第i+1个车票的信息*/
cout<<"Number:";
cin>>cpiao[i].num; /*班次*/
cout<<"Departure Time:";
cin>>cpiao[i].fcsj; /*发车时间*/
cout<<"Departs:";
cin>>cpiao[i].qdz; /*起点站*/
cout<<"Arrives:";
cin>>cpiao[i].zdz; /*终点站*/
cout<<"Time:";
cin>>cpiao[i].xcsj;
cout<<"Edtickets:";
cin>>cpiao[i].edzl; /*额定载量*/
cout<<"Ydtickets:";
cin>>cpiao[i].ydrs; /*已定票人数*/
}
}
void cpso::overlook() /*功能:实现数据的浏览*/
{
int j=0;
cout<<"Number Departure Time Departs Arrives Time Edtickets Ydtickets\n";
for(;j<n;++j)
cout<<cpiao[j].num<<'|'<<cpiao[j].fcsj<<'|'<<cpiao[j].qdz<<'|'<<cpiao[j].zdz<<'|'<<cpiao[j].xcsj<<'|'<<cpiao[j].edzl<<'|'<<cpiao[j].ydrs<<endl;
}
void cpso::search_num() /*功能:实现班次查询*/
{
int j,k,b=0;
cout<<"type the num:";
cin>>k;
for(j=0;j<n;++j)
if(k==cpiao[j].num)
{
cout<<"Number Departure Time Departs Arrives Time Edtickets Ydtickets\n";
cout<<cpiao[j].num<<'|'<<cpiao[j].fcsj<<'|'<<cpiao[j].qdz<<'|'<<cpiao[j].zdz<<'|'<<cpiao[j].xcsj<<'|'<<cpiao[j].edzl<<'|'<<cpiao[j].ydrs<<endl;++b;
}
else if(!b&&(j==n-1)) cout<<"the num you type is error\n"; /*如果班次不符合并且已经j=n-1则显示:输入的班次有错误*/
}
void cpso::search_end() /*功能:实现终点查询*/
{
int j,b=0;
char end[10];
cout<<"type the arrive:";
cin>>end;
for(j=0;j<n;++j)/*对所录入的终点站与原有数据进行比较*/
if((strcmp(end,cpiao[j].zdz))==0){
cout<<"Number Departure Time Departs Arrives Time Edtickets Ydtickets\n";
cout<<cpiao[j].num<<'|'<<cpiao[j].fcsj<<'|'<<cpiao[j].qdz<<cpiao[j].zdz<<cpiao[j].xcsj<<cpiao[j].edzl<<cpiao[j].ydrs<<endl;
++b;
}
else if(!b&&(j==n-1))
cout<<"the arrive you type is error"<<endl; /*如果终点站不符合并且已经j=n-1则显示:输入的终点站有错误*/
}
void cpso::booking() /*功能:实现售票功能*/
{
int j,l,sl,b=0;
cout<<"type the num:"; /*输入要预定的班次*/
cin>>l;
cout<<"sl:"; /*预定的数量*/
cin>>sl;
for(j=0;j<n;++j)
if(l==cpiao[j].num) {if(cpiao[j].edzl>=(cpiao[j].ydrs+sl)) {cpiao[j].ydrs=cpiao[j].ydrs+sl;++b;cout<<"your booking has passed!\n";}/*判断是否能够售出*/
else{cout<<"can't booking!\n";++b;}} /*如果额定票数<已定票数+预定数量 则显示:不能预定*/
else if(!b&&(j==n-1)) cout<<"the num you type is error\n"; /*同理*/
}
void cpso::tpiao() /*功能:实现退票功能*/
{
int j,m,tpsl,b=0;
cout<<"type the num:";
cin>>m;
cout<<"tpsl:";
cin>>tpsl;
for(j=0;j<n;++j)
if(m==cpiao[j].num) {cpiao[j].ydrs=cpiao[j].ydrs-tpsl;++b;cout<<"your tpiao has passed!\n";}
else if(!b&&(j==n-1)) cout<<"the num you type is error\n";
}
void cpso::save() /*功能:保持文件*/
{
int j;
ofstream fout("cpiao.txt",ios::app);
for(j=0;j<i;j++)
fout<<setw(6)<<cpiao[j].num<<setw(6)<<cpiao[j].fcsj<<setw(6)<<cpiao[j].qdz<<setw(6)<<cpiao[j].zdz<<setw(6)<<cpiao[j].xcsj<<setw(6)<<cpiao[j].edzl<<setw(6)<<cpiao[j].ydrs<<endl;
fout.close();;/*关闭文件*/
}
void cpso::menu() /*菜单*/
{cout<<"********************MENU******************\n\n";
cout<<" 1:add record\n";
cout<<" 2:look through the record \n";
cout<<" 3:search by number\n";
cout<<" 4:search by arrives\n";
cout<<" 5:booking\n";
cout<<" 6:tpiao\n";
cout<<" 7:menu\n";
cout<<" 8:clear\n";
cout<<" 9:Quit\n\n";
cout<<"******************************************\n";
}
void main()
{
int x;
char y;
int flag=1;
class cpso a;//生成一个对象,对车票各种功能进行实现
a.menu();//显示菜单
while(flag)//循环调用
{
cout<<"choose your request:";
cin>>x;
switch(x)
{
case 1:a.i=a.n;++a.n;a.typein();break;//填加数据
case 2:a.overlook();break;//查看车票情况
case 3:a.search_num();break;//按车号查询
case 4:a.search_end();break;//按到达地点查询
case 5:a.booking();break;//实现定票操作
case 6:a.tpiao();break;//实现退票操作
case 7:a.menu();break;//显示菜单
case 8:a.menu();break;
case 9:flag=0;break;//退出
default:cout<<"error\n";
}
}
cout<<"Are you want to save the result(y/n):";
cin>>y;
switch(y)
{
case 'y':a.save();
case 'n':break;
default:cout<<"error\n";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -