2022年车票管理系统课程设计报告 .pdf
《2022年车票管理系统课程设计报告 .pdf》由会员分享,可在线阅读,更多相关《2022年车票管理系统课程设计报告 .pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、合肥学院计算机科学与技术系课程设计报告20112012学年第二学期课程C+课程设计课 程 设 计 名 称车票管理系统学生姓名学号专业班级指导教师2012 年 6 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 42 页 - - - - - - - - - 一、系统的需求分析:需求分析是一项重要的工作,也是最困难的工作。它指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,“需求分析”就是确定要计算机“做什么”。
2、车票管理系统是典型的管理信息系统(MIS) ,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。车票管理系统可以实现对车票的科学化、规范化、 查询车票情况、 定票信息、以及路线信息等。 车票管理系统是根据某车站对这票管理的实际情况进行编写的,主要目的是为了方便车站对车票的实际情况进行集中的查询与管理工作,以提高整个车站的工作。经过电脑及生活的调查研究,根据车辆的运行状态和车站的管理模式,车票管理系统需要管理的东西主要有:车辆的班次,车辆的线路,售票和退票等等。车辆是一个对外服务的内容,为了乘客的乘车要求,所以系统需要实现售票信息的录入、修改和删除功能。乘客对剩余车票需要进行选
3、择,系统必须实现相应的查询和输出功能,使乘客择优而乘。本次课程设计需要实现的是车票管理系统的链表实现。主要实现的功能包括:车票信息的录入、修改、删除、剩余车票信息的查询、输出。车票信息可写入文件,也可从文件中读取。车票信息涉及的数据有班次号、发车时间、起点站、终点站、行车时间、额定载量、已定票人数等。按照需求分析所得,车票管理系统有以下几个功能模块:(1)录入班次信息( 信息用文件保存), 可不定时地增加班次数据(2)浏览班次信息, 可显示出所有班次当前状总( 如果当前系统时间超过了某班次的发车时间, 则显示“此班已发出”的提示信息) 。(3)查询路线:可按班次号查询 , 可按终点站查询(4)
4、售票和退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。(5)退出在界面状态下,按下“ESC ”会退出该系统。返回源程序。由上述需求分析可得,系统的功能模块图如图1 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 42 页 - - - - - - - - - 图 1 系统功能模块图二、 系统的设计与实现根据第一章的需求分析,接下来给出的是系统的
5、设计和实现。1、 类的设计根据上述需求分析,有车票信息类和链表类。( 1)车票信息类系统研究车票系统Bus_infor类中成员:Bus_order是班次编号,start20是车票信息的起点站,end20是车票信息的终点站,all_tickted是总共要发售的票数,tickted是已经被订购的票数,Hour_start,Minute_start是车票的发车时间,GoHour表示行车时间,构造函数Bus_infor() ,析构函数Bus_infor(), 录入函数 input(), 读取函数 input(ifstream & is), 输出函数 output(),写入函数 output(ofstr
6、eam & os),定票函数Order_tickt(int n),获取发车时间函数GetTime_start(),判断当前班次状况函数GetTime(),内联函数 ,返回额定载量Get_all_tickted() return all_tickted; ,返回已定票人数Get_tickted(),返回班次号Get_bus_order(),返回终点站的字符串Get_end()const。车票类的UML图如(图2)所示:录入班次信息车票信息管理系统售票和退票功能保存班次信息功能关于车票管理介绍浏览班次信息查询路线信息删除班次信息退出系统名师资料总结 - - -精品资料欢迎下载 - - - - -
7、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 42 页 - - - - - - - - - 图 2 客房类的UML图( 2)链表类在 Bus_link类中,有成员:构造函数Bus_link (),析构函数 Bus_link(),录入车票信息的函数input(), 修改车票信息的函数mend(), 删除车票信息的函数del(),查找函数 find(Bus_infor *p,int num,char *pn),查询车票信息found() ,显示车票信息show() ,定购车票信息Order() ,退还车票信息 Unorder() ,保
8、存车票信息save() ,初始化车票信息begin(),清除函数clear(),关于车票信息about() ,主菜单函数mainmenu() ,设置系统修改标志void setkey(int k) key=k; ,返回系统修改标志 int getkey() return key;,头节点head, 系统修改标志key,管理员登陆标志password。链表类的UML图如(图3)所示:class Bus_infor public:+ Bus_order:int/ 班次编号+ start20:char/起始站+ end20:char/终点站+ all_tickted:int/总共要发售的票数+tic
9、kted: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(int n):void/定票函数+ GetTime_start():void/获取发车时间函数+ GetTime():bool/判断当前班次状况函数+
10、Get_all_tickted():int/内联函数 , 返回额定载量+ Get_tickted():int/返回已定票人数+ Get_bus_order():int/返回班次号+Get_end()const:string/返回终点站的字符串private: Bus_No; static int start20; char end20; char Bus_order; int all_tickted; int tickted; int Hour_start,Minute_start; int 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
11、- - - 名师精心整理 - - - - - - - 第 4 页,共 42 页 - - - - - - - - - 图 3 链表类2界面设计:(1) 主界面的设计主界面中显示车票管理系统的全部信息,车票信息的录入,车票信息的浏览,车票信息的查询,车票信息的删除,车票信息的修改,定购车票信息,退订车票信息,保存车票信息,关于车票管理系统和安全退出系统。车票信息管理系统如图4 所示。class Bus_link public: + Bus_link (); +Bus_link(); + input():void + mend():void + del():void +find(Bus_infor*
12、p,int num,char *pn):int + found():void; + show():void; + Order():void; + Unorder():void; + save():void; + begin():void; + clear():void; + about():void; + mainmenu():void; + setkey(int k):void; + getkey():int; Private: -*head: Bus_infor; - key:int; - password:int; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
13、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 42 页 - - - - - - - - - 图 4 主界面( 2)分界面:开始程序欢迎界面。显示程序相关信息。界面如图5所示。图 5 开始程序欢迎分界面(3)分界面:车票信息的录入。录入车票包括班次、车的额定座位数、车辆的始发时间、行车时间、起始站和终点站等相关信息。按照操作提示输入即可,输入错误还会提示重新输入如图7 所示。客房信息保存如图6 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
14、- - - 第 6 页,共 42 页 - - - - - - - - - 图 6 保存客房信息的分界面图 7 输入错误提示( 4)分界面:车票信息的浏览。输出录入的车票信息,包括已经订票数。车票信息浏览界面如图8 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 42 页 - - - - - - - - - 图 8 浏览车票信息的分界面( 5)分界面:车票信息的查询的设计提示进入查询界面,选择按班次查找或按终点站查询车票信息。车票信息的查询界面如图9.1和 9.2所示
15、。图 9.1 查询车票信息的分界面图 9.2 查询车票信息的分界面( 6)分界面:车票信息的删除的设计在录入或修改错误的车票信息后,想删除错误的车票信息,按提示按提示输入班次号,程序会显示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 42 页 - - - - - - - - - 该班次的信息并提示用户是否确定删除,输入y 则删除。删除车票的信息界面如图10 所示。图 10 删除车票信息的分界面( 7)修改车票信息的设计按提示进行车票信息的修改,本系统中只有管理员身份才可
16、以修改车票,显示屏幕如图11 所示。图 11 修改车票信息的分界面( 8)分界面:订购车票信息的设计在管理员身份下按提示在剩余未出发的班次中,输出车票的信息,以判断是否可以订票,已出发的和已定 票 人 数 已 满 的 情 况 下 是 不 能 订 票 的 。 定 购 车 票 信 息 输 出 界 面 如 图12所 示 。图 12 订购车票(9)分界面:退订车票信息的设计在管理员身份下按提示在剩余未出发的班次中,输出车票的信息,以判断是否可以退票,已出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
17、 - 第 9 页,共 42 页 - - - - - - - - - 发的和没人定票的情况下是不能退票的。退定信息输出界面如图13 所示。图 13 退定车票(10)分界面:保存车票信息的设计在管理员身份下按提示操作即可保存。退定信息界面如图14 所示。图 14 保存车票信息( 11)分界面:介绍车票信息的设计名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 42 页 - - - - - - - - - 在程序中输出使用说明。介绍信息界面如图15 所示。图 15 使用说明(1
18、2)分界面:退出系统的设计为保证车票信息的准确性,防止误操作而引起的退出,因此设置了按Esc 键退出程序,界面如图 16 所示。图 16 程序退出界面3. 关键程序代码的分析:( 1)系统的登录在主函数中,先输出车票管理系统的欢迎界面。调用一个对象的mainmenu函数来输出主菜单,按照提示选择需要执行功能的序号,由switch判断和选择所需要执行的功能。选择 1:执行车票信息的录入;选择 2:执行车票信息的浏览;选择 3:执行查询车票信息;选择 4:执行车票信息的删除;选择 5:执行车票信息的修改;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
19、- - - - - 名师精心整理 - - - - - - - 第 11 页,共 42 页 - - - - - - - - - 选择 6:执行定购车票;选择 7:执行退定车票;选择 8:执行车票信息的保存;选择 9:输出关于车票管理系统的信息;选择 0:退出;主函数:int main() Bus_link pp; int k=1; char c; string s; pp.begin(); coutnn欢迎进入车票管理系统 endlendl; /开机选择是否进入系统cout*endl 系统说明 :endl *endl *t本系统为课程设计作品, 可以简易的进行车票管理, 欢迎提出意见和建议! *
20、endl *t合肥学院计算机科学与技术系11网工二班t *endl *t作者:孙乐 tt学号: 1104032043 *endl *endlendl; coutntt是否进入系统?nntt按 Enter 进入主菜单,按Esc 键退出 :; do /利用一个do-while循环来判断输入是否进入系统 c=getch(); if(c=27) exit(0); else if(c=13) break; else coutnntt按键错误!请重新输入:; while(c!=13)|(c!=27); try 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
21、 - - - - 名师精心整理 - - - - - - - 第 12 页,共 42 页 - - - - - - - - - while(k=1) system(cls); s=pp.mainmenu(); /调用主菜单函数 switch(s0) 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.O
22、rder(); break; /保存车票信息 case 7:pp.Unorder(); break; /退还车票信息 case 8:pp.save(); break; /保存车票信息 case 9:pp.about();break; /关于车票系统 case 0: coutntt是否退出系统?nntt按 Enter返回主菜单,按Esc 键退出:; do / 利用一个do-while循环来判断输入是否退出系统 c=getch(); if(c=27) k=0; break; else if(c=13) k=1; break; else coutnntt按键错误!请重新输入:; / 利用循环防止误操
23、作而引起的退出系统 while(c!=13)|(c!=27); break; if(k=1) coutk; if(!cin) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 42 页 - - - - - - - - - throw string(数据输入错误); coutntt是否退出系统?nntt按 Enter返回主菜单,按Esc 键退出:; do /利用一个 do-while循环来判断输入是否退出系统 c=getch(); if(c=27) k=0; break;
24、else if(c=13) k=1; break; else coutnntt按键错误!请重新输入:; / 利用循环防止误操作而引起的退出系统 while(c!=13)|(c!=27); if(k=0) if(pp.getkey()=1) coutk; if(!cin) throw string(数据输入错误); if(k=1) pp.save(); pp.clear(); k=0; catch(string s) couts,为保护系统不崩溃, 将自动退出系统!num; is.seekg(t); / 移动到原来位置if(numinput(is); / 输入 is 对象内容p-next=p2;
25、 p2-next=NULL; p=p-next; ( 2)信息的添加车票信息的录入,创建Bus_infor类和 Bus_link对象,调用构造函数,输入车票的班次、额定座位数、始发时间、行车时间、起始站与终点站、,通过 input函数实现。void Bus_link:input() if(password=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 42 页 - - - - - - - - - Bus_infor *p,*p2=NULL; p=head; in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年车票管理系统课程设计报告 2022 车票 管理 系统 课程设计 报告
限制150内