C++程序设计源代码C++程序设计源代码
//C++课程设计
#include //数据流输入、输出 #include //文件输入、输出 #include //字符串操作 #include //参数化输入/输出 #include
using namespace std; //命名空间
class Bus_infor
{
int No; //班次号
static int Bus_No; //静态数据成员,统计当前所有的Bus_infor
对象的数目
char start[20]; //起始站
char end[20]; //终...
C++程序
源代码
//C++课程设计
#include
//数据流输入、输出 #include //文件输入、输出 #include //字符串操作 #include //参数化输入/输出 #include
using namespace std; //命名空间
class Bus_infor
{
int No; //班次号
static int Bus_No; //静态数据成员,统计当前所有的Bus_infor
对象的数目
char start[20]; //起始站
char end[20]; //终点站
int Bus_order; //班次号
int all_tickted; //额定载量
int tickted; //已定票人数
int Hour_start,Minute_start,Hour_end,Minute_end; //起始时间
int Hour,Minute; //行车时间
public:
Bus_infor();
~Bus_infor();
Bus_infor *next;
int Get_no(){return No;} //返回班次号
void input(); //录入函数
void input(ifstream & is); //读取函数
void output(); //输出函数
void output(ofstream & os); //写入函数
void GetTime_start(); //录入发车时间
void GetTime_end(); //录入到站时间
void addr(); //录入起始站
int Get_all_tickted(){return all_tickted;} //返回额定载量
int Get_tickted(){return tickted;} //返回已定票人数
char *Get_start(){ return start;} //返回发车时间
char *Get_end(){return end;} //返回到站时间
void GetTime(); //获取行车时间
void ShowTime(); //显示行车时间
int Get_bus_order(){return Bus_order;} //返回当前所有的Bus_infor对象的数目
void Order_tickt(int n); //订票函数
void Unorder_tickt(int n); //退票函数
};
int Bus_infor::Bus_No=1;
void Bus_infor::input()
{
cout<<"\t\t\t按提示输入:"<>Bus_order;
cout<<"请输入车的额定载量: ";
cin>>all_tickted;
GetTime_start();
GetTime_end();
GetTime();
ShowTime();
addr();
char a;
cout<<"是否清空售票(y/n)?"<>a;
if(a=='y'||a=='Y') tickted=0;
}
void Bus_infor::input(ifstream & is) {
is>>Bus_order>>start>>end>>all_tickted>>tickted>>Hour_start>>Minute_start>>Hour_end
>>Minute_end>>Hour>>Minute;
is.get();
}
void Bus_infor::output()
{cout<<"客车基本信息如下:"<>NewH>>NewM;
Hour_start=NewH;
Minute_start=NewM;
}
void Bus_infor::GetTime_end(){
int NewH=0,NewM=0;
cout<<"请输入到站时间:"<>NewH>>NewM;
Hour_end=NewH;
Minute_end=NewM;
}
void Bus_infor::GetTime(){
if(Minute_end>=Minute_start)
{
Minute=(Minute_end-Minute_start);
Hour=(Hour_end-Hour_start);
}
else
{
Minute=(Minute_end-Minute_start+60);
Hour=(Hour_end-Hour_start-1);
}
}
void Bus_infor::ShowTime() {
cout<<"显示行车时间"<>a;cin>>b;
strcpy(start,a);strcpy(end,b); }
void Bus_infor::Order_tickt(int n){
tickted=tickted+n;
}
void Bus_infor::Unorder_tickt(int n){
tickted=tickted-n;
};
class Bus_link{
public:
Bus_link(){head=new Bus_infor;head->next=NULL;key=0;}
void input(); //录入车票信息
void mend(); //修改车票信息
void del(); //删除车票信息
int find(Bus_infor **p,int num,char *pn); //查找函数
void found(); //查询车票信息
void show(); //显示车票信息
void Order(); //订购车票信息
void Unorder(); //推定车票信息
void save(); //保存车票信息
void begin(); //初始化车票信息
void clear(); //清楚函数
char mainmenu(); //主菜单函数
void setkey(int k){ key=k; } //设置系统修改标志
int getkey(){ return key;} //返回系统修改标志 private:
Bus_infor *head; //链指针
int key; //系统修改标志 };
void Bus_link::input() {
Bus_infor *p,*p2=NULL;
p=head;
int n;
while(p->next)
p=p->next;
while(n)
{
p2=new Bus_infor;
p2->input();
p->next=p2;
p2->next=NULL;
p=p->next;
Bus_link::setkey(1);
cout<<"\t\t\t按1继续,按0返回 : ";
cin>>n;
if(!cin)
throw string("数据输入错误");
}
}
void Bus_link::Order(){
Bus_infor *p;
cout<<"确定购票(y/n)?"<>X;
if(X=='y'){
int num;
cout<<"\t\t\t输入车次号: ";
cin>>num;
if( !find(&p,num,"^") )
{
cout<<"\t\t找不到你要定票的车辆的内容!"<>n;
p=p->next;
if((p->Get_tickted()+n)<=p->Get_all_tickted())
{p->Order_tickt(n);
cout<<"谢谢使用"<>X;
if(X=='y'){
int num;
cout<<"\t\t\t输入车次号: ";
cin>>num;
if( !find(&p,num,"^") )
{
cout<<"\t\t找不到你要定票的车辆的内容!"<>n;
p=p->next;
if((p->Get_tickted()-n)>=0)
p->Unorder_tickt(n);
else cout<<"对不起,数据出错~。"<>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入车次: ";
cin>>num;
}
if(n==2)
{
cout<<"\t\t\t输入终点站: ";
cin>>name;
}
if(!find(&p,num,name))
{
cout<<"\t\t找不到你要查找的内容!"<next)
{
(*p1)=p;
if( (p->next)->Get_bus_order()==num||!strcmp( (p->next)->Get_end(),pn ) )
{
(p->next)->output();
t=1;
break;
}
p=p->next;
}
return t;
}
void Bus_link::del() {
Bus_infor *p,*p2;
int num;
cout<<"\t\t\t输入车次号: ";
cin>>num;
if( !find(&p,num,"^") )
{
cout<<"\t\t找不到你要删除的内容!"<next;
p->next=p2->next;
delete p2;
Bus_link::setkey(1); }
void Bus_link::show() {
Bus_infor *p;
p=head;
while(p->next)
{
(p->next)->output();
p=p->next;
}
}
void Bus_link::mend()
{
Bus_infor *p;
int num=-1;
char name[20]="^";
cout<<"\t\t\t输入车次号: ";
cin>>num;
if( !find(&p,num,name) )
{
cout<<"\t\t找不到你要修改的内容!"<next)->output();
(p->next)->input();
Bus_link::setkey(1); }
void Bus_link::save() {
Bus_infor *p;
p=head;
ofstream os("bus.txt",ios::out);
if (Bus_link::getkey()==1)
{
while(p->next)
{
(p->next)->output(os);
p=p->next;
}
}
cout<<"\t\t\t文件已保存! "<>num;
is.seekg(t);
if(num<0)
{
is.close();
return;
}
p2=new Bus_infor;
p2->input(is);
p->next=p2;
p2->next=NULL;
p=p->next;
}
}
void Bus_link::clear() {
Bus_infor *p,*p2;
p=head->next;
while( p )
{
p2=p;
p=p->next;
delete p2;
}
}
char Bus_link::mainmenu()
{
char n[20];
cout<<"\n\n ---欢迎使用车票管理系统---"<>n;
return n[0];
}
int main()
{
Bus_link pp;
int k=1;
char n;
pp.begin();
while(k==1)
{
n=pp.mainmenu();
switch(n)
{
case '1':pp.input(); break;
case '2':pp.show(); break;
case '3':pp.found(); break;
case '4':pp.del(); break;
case '5':pp.mend(); break;
case '6':pp.Order(); break;
case '7':pp.Unorder(); break;
case '8':pp.save(); break;
case '0':
if(pp.getkey()==1)
{
cout<<"\t\t\t是否保存? 1 : 保存 0:不保存 : ";
cin>>k;
if(k==1)
pp.save();
}
pp.clear();
k=0;
break;
}
}
return 0;
}
本文档为【C++程序设计源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。