⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b.cpp

📁 一个简单的铁路订票系统,用VC++写的,课程设计
💻 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 + -