1、1C+程序设计课程设计说明书题 目 铁路售票管理系统的设计学 号姓 名指导教师 王丽颖日 期 2014-2015 秋学期 第 16、17 周2内蒙古科技大学课程设计任务书课程名称 面向对象程序设计 A 课程设计设计题目 铁路售票管理系统的设计指导教师 王丽颖 时间 2014-2015秋学期 第16、17周一、教学要求1. 巩固和加深学生对 C+语言课程的基本知识的理解和掌握2. 掌握 C+语言编程和程序调试的基本技能3. 利用 C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用 C+语言解决实际问题的能力二、设计资料及参数用 C+设计一个系统,能提供下列服务:(1)录
2、入车次信息,格式为:车次 发车时间 起始 终点 硬座票价 剩余座位k264 20:30 包头 北京 110 200可不定时地增加车次数据。(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。(3)查询路线:可按车次编号查询,可按起始站,终点站查询(4)售票和退票功能A:查询车次或站点。当剩余座位数大于 0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的
3、各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和力一法) ;(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书3目录内蒙古科技大学课程设计任务书 .2第 1 章 需求分析 .4第 2 章 总体设计 .4第 3 章 类的设计 .53.1 Busman 类的设计 .5第 4 章 详细设计 .64.1 工程视图 64.2 类图视图 64.3 主程序流程图 .7第 5 章 测试 .7第 6 章 总结 .10附录:程序代码 .104第 1 章 需求分析用
4、C+设计一个系统,能提供下列服务:(1)录入车次信息,格式为:车次 发车时间 起始 终点 硬座票价 剩余座位k264 20:30 包头 北京 110 200可不定时地增加车次数据。(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。(3)查询路线:可按车次编号查询,可按起始站,终点站查询(4)售票和退票功能A:查询车次或站点。当剩余座位数大于 0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。第 2 章 总体设计1. 用结构图表示各
5、功能间关系2. 功能模块描述开始录入火车信息 浏览火车信息 查询路线信息 售票 退票进入主菜单退出程序班次查询 终点查询5车次录入录入车次,发车时间,起始站,终点站,硬座票价,剩余座位。车次浏览浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息车次查询查询路线:可按车次编号查询,可按终点站查询售票查询车次或站点。当剩余座位数大于 0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。退票退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。第 3 章 类的设计3.1 Busman 类的设计1.画出类
6、图Busmanstring Num;string SetoutTime;string BegPlace;string EndPlace;string Price;int Capacity;int HumNum;void FoundInfo();void SearchInfo();void ShowInfo();void ExitTicket();void SellTicket();图 3.1 类图62.对类的函数成员的说明void FoundInfo();输入 1;进行火车票录入操作;返回建立成功按任意键返回void SearchInfo(); 输入 2;进行浏览火车票操作;返回火车票信息按任
7、意键返回void ShowInfo(); 输入 3;进行查询路线信息查询操作;返回火车路线信息按任意键返回void SellTicket(); 输入 4;进行售票操作;返回火车票购买成功或者已发车按任意键返回void ExitTicket(); 输入 5;进行退票操作;返回退票成功或者该车已发无法退票按任意键返回第 4 章 详细设计4.1 工程视图图 4.1 工程视图4.2 类图视图图 4.2 类图视图74.3 主程序流程图图 4.3 主程序流程图第 5 章 测试5.1 车次信息录入开始主菜单录入车次信息 浏览火车信息 查询路线信息 售票 退票 退出程序按班次查询 按终点查询 结束85.2 车
8、次信息浏览5.3 车次信息查找95.4 售票5.5 退票10第 6 章 总结经历过基本几天都在看程序的时间,我发现我懂的太少,要学的太多。原以为会很轻松,但还是遇到很多问题,以前上课时从未想到过。对文件的操作我一直都没注意,学习与实践果然是不可分割的。本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。在期间我对编程的理念理解又加深了一点,他是我明白好的算法或者是好的逻辑思维对编程的重要性,当费很大劲才把程序调运行的时候那种感觉实在是太好了。在本次课程设计活动中,我明显
9、的感觉到自己知识的欠缺和实际动手能的差劲。尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全暴露出来。此次实习加强了我的理解,很多以前迷糊的概念得到了明确,亦让我感到计算机语言的强大之处。一句诗概括此次实践, “山重水复疑无路,柳暗花明又一村” ;如今实践已然结束,但是对于计算机语言的学习决不能放松, “雄关漫道真如铁, 而今迈步从头越”。现在的世界是信息化的,路漫漫其修远兮,吾将上下而求索。感谢老师抽出时间的指导,同时亦感谢大家这些天来的支持与
10、帮助。附录:程序代码#include#include#include#include#include#includeusing namespace std;struct nodestring Num;string SetoutTime;string BegPlace;string EndPlace;string Price;int Capacity;int HumNum;node *Next;class Busmanprivate:node *BusHead;public:11Busman()BusHead=NULL;void FoundInfo();void SearchInfo();voi
11、d ShowInfo();void ExitTicket();void SellTicket();void Busman:FoundInfo()node *p=NULL,*q;int i,n;coutn;for (i=0; ip-Num;coutp-SetoutTime;coutp-BegPlace;coutp-EndPlace;coutp-Price;coutp-Capacity;p-HumNum=0;if(Busman:BusHead=NULL)Busman:BusHead=p;elseq-Next=p;coutNext=NULL;couttime;coutNext)coutNumSeto
12、utTimeBegPlaceEndPlacePriceCapacityHumNum;if (time = p-SetoutTime) cout选择:“;cinsel;if (sel=1)couts;else if (sel=2)couts;coutNext)if (sel=1 break;if (p=NULL)couts;for (p=BusHead; p!=NULL; p=p-Next)if (p-Num=s) break;if (p=NULL)coutt;if (t SetoutTime)p-HumNum-;couts;for (p=BusHead; p!=NULL; p=p-Next)i
13、f (p-Num=s) break;if (p=NULL)coutt;if (t SetoutTime coutsel;switch (sel)case 1: BusAdmin.FoundInfo(); break;case 2: BusAdmin.ShowInfo(); break;case 3: BusAdmin.SearchInfo(); break;case 4: BusAdmin.SellTicket(); break;case 5: BusAdmin.ExitTicket(); break;case 0: return 0;coutendl;fflush(stdin);cout“按任意键返回主菜单:“endl;getch();void ShowForm()cout“ 欢迎使用火车订票系统 “endl;cout“ “endl;cout“ *“endl;cout“ * (1) 录入火车信息 *“endl;cout“ * (2) 浏览火车信息 *“endl;cout“ * (3) 查询路线信息 *“endl;cout“ * (4) 售票 *“endl;cout“ * (5) 退票 *“endl;cout“ * (0) 退出程序 *“endl;cout“ *“endl;cout“ “endl;15cout“ 请输入数字进行选择:“;