《C++程序设计》课程设计说明书题目铁路售票管理系统的设计学号姓名指导教师王丽颖日期2014-2015秋学期第16、17周内蒙古科技大学课程设计任务书目录内蒙古科技大学课程设计任务书 (2)第1章需求分析 (4)第2章总体设计 (4)第3章类的设计 (5)3.1 Busman类的设计 (5)第4章详细设计 (6)4.1 工程视图 (6)4.2 类图视图 (6)4.3主程序流程图 (6)第5章测试 (7)第6章总结 (9)附录:程序代码 (10)第1章需求分析用C++设计一个系统,能提供下列服务:(1)录入车次信息,格式为:可不定时地增加车次数据。
(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。
(3)查询路线:可按车次编号查询,可按起始站,终点站查询(4)售票和退票功能A:查询车次或站点。
当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。
B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。
第2章总体设计1.用结构图表示各功能间关系2. 功能模块描述车次录入录入车次,发车时间,起始站,终点站,硬座票价,剩余座位。
车次浏览浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息车次查询查询路线:可按车次编号查询,可按终点站查询售票查询车次或站点。
当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。
退票退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。
第3章类的设计3.1Busman类的设计1.画出类图图3.1类图2.对类的函数成员的说明void FoundInfo();输入1;进行火车票录入操作;返回建立成功按任意键返回void SearchInfo(); 输入2;进行浏览火车票操作;返回火车票信息按任意键返回void ShowInfo(); 输入3;进行查询路线信息查询操作;返回火车路线信息按任意键返回void SellTicket(); 输入4;进行售票操作;返回火车票购买成功或者已发车按任意键返回void ExitTicket(); 输入5;进行退票操作;返回退票成功或者该车已发无法退票按任意键返回第4章详细设计4.1工程视图图4.1工程视图4.2类图视图图4.2类图视图4.3主程序流程图主菜单录入车次信息浏览火车信息查询路线信息售票退票退出程序按班次查询按终点查询结束图4.3主程序流程图第5章测试5.1车次信息录入5.2车次信息浏览5.3车次信息查找5.4售票5.5退票第6章总结经历过基本几天都在看程序的时间,我发现我懂的太少,要学的太多。
原以为会很轻松,但还是遇到很多问题,以前上课时从未想到过。
对文件的操作我一直都没注意,学习与实践果然是不可分割的。
本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。
在期间我对编程的理念理解又加深了一点,他是我明白好的算法或者是好的逻辑思维对编程的重要性,当费很大劲才把程序调运行的时候那种感觉实在是太好了。
在本次课程设计活动中,我明显的感觉到自己知识的欠缺和实际动手能的差劲。
尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。
有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全暴露出来。
此次实习加强了我的理解,很多以前迷糊的概念得到了明确,亦让我感到计算机语言的强大之处。
一句诗概括此次实践,“山重水复疑无路,柳暗花明又一村”;如今实践已然结束,但是对于计算机语言的学习决不能放松,“雄关漫道真如铁,而今迈步从头越”。
现在的世界是信息化的,路漫漫其修远兮,吾将上下而求索。
感谢老师抽出时间的指导,同时亦感谢大家这些天来的支持与帮助。
附录:程序代码#include<iostream>#include<fstream>#include<conio.h>#include<string>#include<cstdio>#include<windows.h>using namespace std;struct node{string Num;string SetoutTime;string BegPlace;string EndPlace;string Price;int Capacity;int HumNum;node *Next;};class Busman{private:node *BusHead;public:Busman(){BusHead=NULL;}void FoundInfo();void SearchInfo();void ShowInfo();void ExitTicket();void SellTicket();};void Busman::FoundInfo(){node *p=NULL,*q;int i,n;cout<<"\n录入班次信息:\n";cout<<"记录总数:";cin>>n;for (i=0; i<n;i++){q=p;p=new node;cout<<"班次:";cin>>p->Num;cout<<"发车时间:";cin>>p->SetoutTime;cout<<"起始站:";cin>>p->BegPlace;cout<<"终点站:";cin>>p->EndPlace;cout<<"硬座票价:";cin>>p->Price;cout<<"剩余座位:";cin>>p->Capacity;p->HumNum=0;if(Busman::BusHead==NULL)Busman::BusHead=p;elseq->Next=p;cout<<endl;}p->Next=NULL;cout<<"建立完毕!"<<endl;}void Busman::ShowInfo(){string time;node *p;cout<<"当前时间为:";cin>>time;cout<<"班次"<<"\t"<<"发车时间"<<" "<<"起始站"<<"\t"<<"终点站"<<" "<<"硬座票价"<<"\t"<<"客载量"<<" "<<"订票人数"<<"发出"<<endl;for (p=Busman::BusHead; p!=NULL; p=p->Next){cout<<p->Num<<"\t"<<p->SetoutTime<<"\t"<<p->BegPlace<<"\t"<<p->EndPlace<<"\t"<< p->Price<<"\t"<<p->Capacity<<"\t"<<p->HumNum;if (time >= p->SetoutTime) cout<<"(已发车)"<<endl;else cout<<"(未发车)"<<endl;}}void Busman::SearchInfo(){int sel;string s;node *p;cout<<"(1)班次查找"<<endl;cout<<"(2)终站查找"<<endl;cout<<">>>>选择:";cin>>sel;if (sel==1){cout<<"输入查找的班次号:";cin>>s;}else if ((sel=2)){cout<<"输入查找的终点名称:";cin>>s;}cout<<"班次"<<"\t"<<"发车时间"<<" "<<"起始站"<<"\t"<<"终点站"<<" "<<"硬座票价"<<"\t"<<"客载量"<<" "<<"订票人数"<<"发出"<<endl;for (p=Busman::BusHead; p!=NULL; p=p->Next){if ((sel==1 && p->Num==s) || (sel==2 && p->EndPlace==s)){cout<<p->Num<<"\t"<<p->SetoutTime<<"\t"<<p->BegPlace<<"\t"<<p->EndPlace<<"\t"<< p->Price<<"\t"<<p->Capacity<<"\t"<<p->HumNum;break;}}if (p==NULL)cout<<"未找到!"<<endl;}void Busman::ExitTicket(){string s,t;node *p;cout<<"退票的班次是:";cin>>s;for (p=BusHead; p!=NULL; p=p->Next)if (p->Num==s) break;if (p==NULL){cout<<"未找到班次!"<<endl;return;}cout<<"当前时间是:";cin>>t;if (t < p->SetoutTime){p->HumNum--;cout<<"退票成功!"<<endl;}else{cout<<"该车已发无法退票!"<<endl;}}void Busman::SellTicket(){string t,s;node *p;cout<<"售票的班次是:";cin>>s;for (p=BusHead; p!=NULL; p=p->Next)if (p->Num==s) break;if (p==NULL){cout<<"未找到班次!"<<endl;return;}cout<<"当前时间是:";cin>>t;if (t < p->SetoutTime && p->HumNum+1 <= p->Capacity) {p->HumNum++;cout<<"售票成功!"<<endl;}else{cout<<"该车已发或客载量已满!"<<endl;}}void ShowForm();int main(){int sel;Busman BusAdmin;while (1){system("cls");ShowForm();cin>>sel;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;}cout<<endl;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; cout<<" 请输入数字进行选择:";}欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。