c++铁路售票系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C++语言实验报告班级:学号:姓名:题目:模拟设计一民航或铁路客运售票系统一、实验目的1.掌握面向对象编程的基本思想2.培养解决实际问题的能力3.熟练掌握VC++6.0调试环境二、实验题目模拟设计一民航或铁路客运售票系统,要求可输入航班或到站与购票数量,即可输出(显示)客票的基本信息(航班次、到站、日期、起飞或开车时间、座位号、总计票款额等)。说明:1、先建立一数组,存放一些航班或车次信息(10组以上)。2、在计算总计票款与输出基本信息时,应读取数组中的相应数据。3、输出的信息尽量显示为:起点站名——到站名车次:日期:开车时间:起始座号——终止座号票数:总计票款额:(大写):4、起点站名可以固定。三、实验步骤1.题目分析针对购票系统,定义一个TICKET结构体,将基本信息(车次,日期,发车时间,终点,座位数,票数,金额)置入其中。建立一个TICKET结构体数组。将车次信息存储在其中。定义Train类,将结构体作为私有数据成员置入其中,同时在类中新定义ticket-所购票数。在外部接口中定义ShowInfo()进行输出操作。创建查询函数,voidfoundNum();voidfoundEndPlace();分别通过车次和到站名与结构体信息进行对比,并输出车票信息,创建大写金额转化函数。参数为int,为计算总金额时方便输出。创建主界面,用switch()语句进行选项判断,从而调用不同的函数。2.程序源代码#includeiostream#includestring#includecmathusingnamespacestd;voidmainstage();voidfoundNum();voidfoundEndPlace();voiddaxie(doublenum);structTICKET//把车票信息存于结构体中,作为元素置入Trainman中{char*Num;//车次char*Date;//日期char*DepartTime;//发车时间char*EndPlace;//终点intCapacity;//座位数intTicketNum;//票数intmoney;//金额}ticket[10]={{ER232,2014,1,1,2:00,太原,12,8,120},{WD243,2014,3,5,4:00,郑州,23,6,130},{SD354,2014,4,5,4:25,合肥,34,23,170},铁路售票系统主界面按车次查询按到站名查询生成车票信息{SD546,2014,5,4,4:30,长沙,43,23,200},{SS334,2014,8,9,5:35,广州,34,12,300},{ER453,2014,4,5,5:40,北京,34,11,300},{FS432,2014,5,8,6:40,宝鸡,45,33,70},{FS234,2014,9,9,20:21,汉中,54,23,80},{FS322,2014,5,5,21:00,武汉,45,34,150},{JK384,2014,3,3,15:00,青岛,66,44,260}};voidBuyTicket(TICKETq);classTrain{private:TICKETp;intticket;public:Train(TICKETp,intticket):p(p),ticket(ticket){}voidShowInfo();//显示};voidTrain::ShowInfo(){cout━━━━━━━━━━━━━━━━━━━━━━━endl;cout西安--p.EndPlace\t\t车次:p.Numendl;cout日期:p.Date\t\t\b发车时间:p.DepartTimeendl;cout座位号:1--ticket\t\t票数:ticketendl;cout总计票款额:¥p.money*ticketendl;cout(大写):;daxie(p.money*ticket);coutendl;cout━━━━━━━━━━━━━━━━━━━━━━━endl;cout任意键返回,0键退出endl;chark;cink;if(k=='0')exit(1);elsemainstage();}voidmainstage(){cout******************************************endl******************************************endl;cout\t欢迎进入铁路售票系统endl;cout\t1.按车次查询endl;cout\t2.按到站名查询endl;cout\t3.退出系统endl;cout******************************************endl******************************************endl;while(1){intk;cink;switch(k){case1:foundNum();break;case2:foundEndPlace();break;case3:exit(1);break;default:{cout选项输入有误,请重新输入;mainstage();}}}}voidfoundNum(){stringnum;booljudge=false;cout请输入车次:;cinnum;cout车次\t日期\t发车时间始末站座位数票数金额endl;for(inti=0;i10;i++){if(num==ticket[i].Num){coutticket[i].Num\tticket[i].Dateticket[i].DepartTime\t西安-ticket[i].EndPlaceticket[i].Capacityticket[i].TicketNumticket[i].moneyendl;judge=true;break;}}if(judge==true)BuyTicket(ticket[i]);else{cout未找到有关信息endl;mainstage();}}voidfoundEndPlace(){stringplace;booljudge=false;cout请输入终点站:;cinplace;cout车次\t日期\t发车时间始末站座位数票数金额endl;for(inti=0;i10;i++){if(place==ticket[i].EndPlace){coutticket[i].Num\tticket[i].Dateticket[i].DepartTime\t西安-ticket[i].EndPlaceticket[i].Capacityticket[i].TicketNumticket[i].moneyendl;judge=true;break;}}if(judge==true)BuyTicket(ticket[i]);else{cout未找到有关信息endl;mainstage();}}voidBuyTicket(TICKETq){intnumber;cout请输入购票数量:endl;cinnumber;Trainx(q,number);x.ShowInfo();}voiddaxie(doublex){intnum=x*100;intshuwei=0;for(intk=0;k10;k++){if(num=pow(10,k))shuwei++;}//确定数位for(inti=shuwei;i0;i--){switch(int(num/pow(10,i-1)))//该数位上的数字,123/100=1;{case1:if(shuwei!=4&&shuwei!=8)cout壹;break;case2:cout贰;break;case3:cout叁;break;case4:cout肆;break;case5:cout伍;break;case6:cout陆;break;case7:cout柒;break;case8:cout捌;break;case9:cout玖;break;default:if(int(num%int(pow(10,i-1))/pow(10,i-2))!=0&&i!=3)//假设下一位上的数字不为0的话就输出零,避免重复输出。注意个位与小数点之间除外cout零;}if(int(num/pow(10,i-1))!=0)//假如该位上数字不为0switch(i){case1:cout分;break;case2:cout角;break;case3:cout元;break;case4:cout拾;break;case5:cout佰;break;case6:cout仟;break;case7:cout万;break;case8:cout十;break;case9:cout百;break;case10:cout千;break;}elseif(i==3)cout元;elseif(i==7)cout万;num%=int(pow(10,i-1));//123%100=23,取剩余的数}}intmain(){mainstage();return0;}3.程序运行主页面输入车次输入票数输入终点站确认购票

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功