火车订票管理系统.docx

上传人:b****3 文档编号:2292673 上传时间:2022-10-28 格式:DOCX 页数:19 大小:18.98KB
下载 相关 举报
火车订票管理系统.docx_第1页
第1页 / 共19页
火车订票管理系统.docx_第2页
第2页 / 共19页
火车订票管理系统.docx_第3页
第3页 / 共19页
火车订票管理系统.docx_第4页
第4页 / 共19页
火车订票管理系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

火车订票管理系统.docx

《火车订票管理系统.docx》由会员分享,可在线阅读,更多相关《火车订票管理系统.docx(19页珍藏版)》请在冰豆网上搜索。

火车订票管理系统.docx

火车订票管理系统

学号11~15选题三:

火车票订票管理系统

1.基本要求:

为方便管理火车票购买信息,编写一个火车票订票管理系统软件。

系统记录必须包括订票人姓名、订票人身份证号、始发站、终到站、票价、席别、订票时间等。

2.基本管理功能:

[1]添加:

增加一条订票人的记录到管理系统中。

[2]查询:

根据订票人身份证查找订票人的相关信息并显示,若找不到也要给出相应提示。

[3]修改:

在管理系统中修改订票人的订票记录。

[4]保存:

将所有订票信息保存在一个文件中(数据库文件或普通的文本文件)。

[5]读取:

从文件中读取已保存了数据。

[6]删除:

从管理系统中删除一条记录。

[7]恢复:

能恢复被删除的记录。

[8]统计:

(A)统计每天订票张数和总车票金额;(B)统计单价在100元以下、100~400元之间和400元以上的票数总张数及总金额;(C)以表格形式打印所有订票信息。

源代码:

#include

#include

#include

#include

usingnamespacestd;

intd;//用于选择(按1继续,按2退出,按他其他报错待完善)

intx=1;//用于脱出while循环

stringsfz;//身份证号码,用户输入可用到

classticket

{public:

stringID;

stringname;

stringSstation;

stringTstation;

floatprice;

stringseat;

stringtime;

ticket*next;

ticket(stringI,stringn,stringS,stringT,floatp,strings,stringt)

{ID=I;name=n;Sstation=S;Tstation=T;price=p;seat=s;time=t;}

voiddisplay();

};

voidticket:

:

display()

{cout<

cout<<"|"<

}

voidmenu()

{cout<

cout<

cout<<"************欢迎使用************"<

cout<

cout<<"**请输入选项前的编号**"<

cout<

cout<<"**************************************************************"<

cout<<"*1.添加车票信息*"<

cout<<"*2.查询车票信息*"<

cout<<"*3.修改车票信息*"<

cout<<"*4.删除车票信息*"<

cout<<"*5.恢复车票信息*"<

cout<<"*6.显示车票信息*"<

cout<<"*7.统计车票信息*"<

cout<<"*8.保存车票信息*"<

cout<<"*9.读取车票信息*"<

cout<<"*0.离开*"<

cout<<"**************************************************************"<

}

ticket*head=NULL,*del=NULL,*p0,*p1,*p2,*p3,*p4;//head数据链表头指针,p0,p1,p2添加函数专用,避免发生错误

intcheck(stringb)//身份证号码作为功能基本辨别数据,应该有一个函数专门检查其是否重复,0表示重复,1表示不重复

{ticket*ch;

ch=head;

intche=1;

while(ch!

=NULL)

{if(ch->ID==b){che=0;ch=NULL;}

else{ch=ch->next;}

}

returnche;

}

intcheck1(stringb)//sbl

{ticket*ch;

ch=del;

intche=1;

while(ch!

=NULL)

{if(ch->ID==b){che=0;ch=NULL;}

else{ch=ch->next;}

}

returnche;

}

intadd()//将订票数据保存在一个基础链表中

{system("cls");

floatprice;

stringname,ID,Sstation,Tstation,seat,time;

if(head==NULL)//以下为链表为空的情况

{

cout<<"=============开始输入订票信息============="<

cout<<"请输入订票人身份证号码:

";

cin>>ID;

cout<<"请输入订票人姓名:

";

cin>>name;

cout<<"请输入始发站:

";

cin>>Sstation;

cout<<"请输入终点站:

";

cin>>Tstation;

cout<<"请输入票价:

";

cin>>price;

cout<<"请输入席别:

";

cin>>seat;

cout<<"请输入订票时间(年月日以“-”隔开):

";

cin>>time;

head=p1=p2=newticket(ID,name,Sstation,Tstation,price,seat,time);

x=1;

while(x)

{system("cls");

cout<<"按1继续输入,按2退出-》";

cin>>d;

if(d==1)

{system("cls");

p1->next=NULL;

cout<<"=============开始输入订票信息============="<

cout<<"请输入订票人身份证号码:

";

cin>>ID;

if(check(ID)==0){cout<<"身份证号码重复!

"<

system("pause");

return0;}

cout<<"请输入订票人姓名:

";

cin>>name;

cout<<"请输入始发站:

";

cin>>Sstation;

cout<<"请输入终点站:

";

cin>>Tstation;

cout<<"请输入票价:

";

cin>>price;

cout<<"请输入席别:

";

cin>>seat;

cout<<"请输入订票时间(年月日以“-”隔开):

";

cin>>time;

p1=newticket(ID,name,Sstation,Tstation,price,seat,time);

p2->next=p1;

p2=p1;

}

elseif(d==2)

{p1->next=NULL;

x=0;

}

else{cout<<"非法输入!

"<

}

}//以上为链表为空的情况

else//以下为链表已有数据,往末尾添加

{p3=head;

while(p3->next!

=NULL)

{p3=p3->next;}

x=1;

while(x)

{system("cls");

cout<<"=============开始输入订票信息============="<

cout<<"请输入订票人身份证号码:

";

cin>>ID;

if(check(ID)==0){cout<<"身份证号码重复!

"<

system("pause");

return0;}

cout<<"请输入订票人姓名:

";

cin>>name;

cout<<"请输入始发站:

";

cin>>Sstation;

cout<<"请输入终点站:

";

cin>>Tstation;

cout<<"请输入票价:

";

cin>>price;

cout<<"请输入席别:

";

cin>>seat;

cout<<"请输入订票时间(年月日以“-”隔开):

";

cin>>time;

p0=newticket(ID,name,Sstation,Tstation,price,seat,time);

p3->next=p0;

p3=p0;

system("cls");

cout<<"按1继续输入,按2退出-》";

cin>>d;

if(d==1){x=1;p3->next=NULL;}

elseif(d==2){p3->next=NULL;x=0;}

else

{cout<<"非法输入!

"<

}

}//以上为链表已有数据,往末尾添加

return1;

}

ticket*search1(stringa)//查询函数1,用于输入身份证号码返回一个指针,可在其他部分被使用

{ticket*cha1;

cha1=head;

x=1;

while(x)

{if(cha1==NULL){x=0;}

elseif(cha1->ID==a){x=0;}

else{cha1=cha1->next;}

}

returncha1;

}

ticket*search_1(stringa)//改查1后面都得改,嗯,就这样了(~ ̄▽ ̄)~

{ticket*cha1;

cha1=del;

x=1;

while(x)

{if(cha1==NULL){x=0;}

elseif(cha1->ID==a){x=0;}

else{cha1=cha1->next;}

}

returncha1;

}

ticket*search2(stringb)//查询函数2,返回所要查询结点的前一个结点的指针,在删除部分使用

{ticket*cha2,*cha3;

cha2=cha3=head;

x=1;

while(x)

{if(cha2->next==NULL){x=0;}

elseif(cha2->ID==b){x=0;}

else{cha3=cha2;

cha2=cha2->next;}

}

returncha3;

}

ticket*search_2(stringb)//-_-

{ticket*cha2,*cha3;

cha2=cha3=del;

x=1;

while(x)

{if(cha2->next==NULL){x=0;}

elseif(cha2->ID==b){x=0;}

else{cha3=cha2;

ch

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1