您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 总结/报告 > 车票管理系统课程设计报告
2011~2012学年第二学期C++课程设计2013年9月17日星期二课程设计报告2011~2012学年第二学期课程C++课程设计课程设计名称车票管理系统学生姓名刘吉喆学号1104121008专业班级1210指导教师2013年9月17日星期二一、系统的需求分析:需求分析是一项重要的工作,也是最困难的工作。它指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,“需求分析”就是确定要计算机“做什么”。车票管理系统是典型的管理信息系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。车票管理系统可以实现对车票的科学化、规范化、查询车票情况、定票信息、以及路线信息等。车票管理系统是根据某车站对这票管理的实际情况进行编写的,主要目的是为了方便车站对车票的实际情况进行集中的查询与管理工作,以提高整个车站的工作。经过电脑及生活的调查研究,根据车辆的运行状态和车站的管理模式,车票管理系统需要管理的东西主要有:车辆的班次,车辆的线路,售票和退票等等。车辆是一个对外服务的内容,为了乘客的乘车要求,所以系统需要实现售票信息的录入、修改和删除功能。乘客对剩余车票需要进行选择,系统必须实现相应的查询和输出功能,使乘客择优而乘。本次课程设计需要实现的是——车票管理系统的链表实现。主要实现的功能包括:车票信息的录入、修改、删除、剩余车票信息的查询、输出。车票信息可写入文件,也可从文件中读取。车票信息涉及的数据有班次号、发车时间、起点站、终点站、行车时间、额定载量、已定票人数等。按照需求分析所得,车票管理系统有以下几个功能模块:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。(3)查询路线:可按班次号查询,可按终点站查询(4)售票和退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。(5)退出在界面状态下,按下“ESC”会退出该系统。返回源程序。由上述需求分析可得,系统的功能模块图如图1所示。图1系统功能模块图二、系统的设计与实现根据第一章的需求分析,接下来给出的是系统的设计和实现。1、类的设计根据上述需求分析,有车票信息类和链表类。(1)车票信息类系统研究车票系统Bus_infor类中成员:Bus_order是班次编号,start[20]是车票信息的起点录入班次信息车票信息管理系统售票和退票功能保存班次信息功能关于车票管理介绍浏览班次信息查询路线信息删除班次信息退出系统站,end[20]是车票信息的终点站,all_tickted是总共要发售的票数,tickted是已经被订购的票数,Hour_start,Minute_start是车票的发车时间,GoHour表示行车时间,构造函数Bus_infor(),析构函数~Bus_infor(),录入函数input(),读取函数input(ifstream&is),输出函数output(),写入函数output(ofstream&os),定票函数Order_tickt(intn),获取发车时间函数GetTime_start(),判断当前班次状况函数GetTime(),内联函数,返回额定载量Get_all_tickted(){returnall_tickted;},返回已定票人数Get_tickted(),返回班次号Get_bus_order(),返回终点站的字符串Get_end()const。车票类的UML图如(图2)所示:图2客房类的UML图classBus_inforpublic:+Bus_order:int//班次编号+start[20]:char//起始站+end[20]:char//终点站+all_tickted:int//总共要发售的票数+tickted:int//已经被订购的票数+Hour_start,Minute_start:int//发车时间+GoHour:float//行车时间+Bus_infor()//构造函数初始化+~Bus_infor()//析构函数+input():void//录入函数+input(ifstream&is):void//读取函数+output():void//输出函数+output(ofstream&os):void//写入函数+Order_tickt(intn):void//定票函数+GetTime_start():void//获取发车时间函数+GetTime():bool//判断当前班次状况函数+Get_all_tickted():int//内联函数,返回额定载量+Get_tickted():int//返回已定票人数+Get_bus_order():int//返回班次号+Get_end()const:string//返回终点站的字符串private:Bus_No;staticintstart[20];charend[20];charBus_order;int(2)链表类在Bus_link类中,有成员:构造函数Bus_link(),析构函数~Bus_link(),录入车票信息的函数input(),修改车票信息的函数mend(),删除车票信息的函数del(),查找函数find(Bus_infor**p,intnum,char*pn),查询车票信息found(),显示车票信息show(),定购车票信息Order(),退还车票信息Unorder(),保存车票信息save(),初始化车票信息begin(),清除函数clear(),关于车票信息about(),主菜单函数mainmenu(),设置系统修改标志voidsetkey(intk){key=k;},返回系统修改标志intgetkey(){returnkey;},头节点head,系统修改标志key,管理员登陆标志password。链表类的UML图如(图3)所示:2.界面设计:classBus_linkpublic:+Bus_link();+~Bus_link();+input():void+mend():void+del():void+find(Bus_infor**p,intnum,char*pn):int+found():void;+show():void;+Order():void;+Unorder():void;+save():void;+begin():void;+clear():void;+about():void;+mainmenu():void;+setkey(intk):void;+getkey():int;Private:-*head:Bus_infor;-key:int;-password:int;分界面:车票信息的查询的设计提示进入查询界面,选择按班次查找或按终点站查询车票信息。车票信息的查询界面如图所示。分界面:车票信息的删除的设计在录入或修改错误的车票信息后,想删除错误的车票信息,按提示按提示输入班次号,程序会显示该班次的信息并提示用户是否确定删除,输入y则删除。删除车票的信息界面如图所示。修改车票信息的设计按提示进行车票信息的修改,本系统中只有管理员身份才可以修改车票,显示屏幕如图所示。分界面:订购车票信息的设计在管理员身份下按提示在剩余未出发的班次中,输出车票的信息,以判断是否可以订票,已出发的和已定票人数已满的情况下是不能订票的。定购车票信息输出界面如图所示。分界面:退订车票信息的设计在管理员身份下按提示在剩余未出发的班次中,输出车票的信息,以判断是否可以退票,已出发的和没人定票的情况下是不能退票的。退定信息输出界面如图所示。分界面:介绍车票信息的设计在程序中输出使用说明。介绍信息界面如图所示。3.关键程序代码的分析:(1)系统的登录在主函数中,先输出车票管理系统的欢迎界面。调用一个对象的mainmenu函数来输出主菜单,按照提示选择需要执行功能的序号,由switch判断和选择所需要执行的功能。选择1:执行车票信息的录入;选择2:执行车票信息的浏览;选择3:执行查询车票信息;选择4:执行车票信息的删除;选择5:执行车票信息的修改;选择6:执行定购车票;选择7:执行退定车票;选择8:执行车票信息的保存;选择9:输出关于车票管理系统的信息;选择0:退出;主函数:intmain(){Bus_linkpp;intk=1;charc;strings;pp.begin();cout\n\n→→→→→→→→→→→→→→欢迎进入车票管理系统←←←←←←←←←←←←←←←←endlendl;//开机选择是否进入系统cout*******************************************************************************endl系统说明:endl*******************************************************************************endl**\t本系统为课程设计作品,可以简易的进行车票管理,欢迎提出意见和建议!**endl**\t合肥学院计算机科学与技术系11网工二班\t**endl**\t作者:孙乐\t\t学号:1104032043**endl*******************************************************************************endlendl;cout\n\t\t是否进入系统?\n\n\t\t按Enter进入主菜单,按Esc键退出:;do//利用一个do-while循环来判断输入是否进入系统{c=getch();if(c==27)exit(0);elseif(c==13)break;else{cout\n\n\t\t按键错误!请重新输入:;}}while((c!=13)||(c!=27));try{while(k==1){system(cls);s=pp.mainmenu();//调用主菜单函数switch(s[0]){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'9':pp.about();break;//关于车票系统case'0':cout\n\t\t是否退出系统?\n\n\t\t按Enter返回主菜单,按Esc键退出:;do//利用一个do-while循环来判断输入是否退出系统{c=getch();if(c==27){k=0;break;}elseif(c==13){k=1;break;}else{cout\n\n\t\t按键错误!请重新输入:;//利用循环防止误操作而引起的退出系统}}while((c!=13)||(c!=27));break;}if(k==1){cout\n\t\t\t是否返回主菜单?1.是0.不是:;cink;if(!cin)throwstring(数据输入错误);cout\n\t\t是否退出系统?\n\n\t\t按Enter返回主菜单,按Esc键退出:;do//利用一个do-while循环来判断输入是否退出系统{c=getch();if(c==27){
本文标题:车票管理系统课程设计报告
链接地址:https://www.777doc.com/doc-5482481 .html