版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.C+ 程序设计课程设计说明书题目铁路售票系统学号姓名指导教师日期word 专业资料.内蒙古科技大学课程设计任务书课程名称面向对象程序设计A 课程设计设计题目铁路售票管理系统的设计指导教师周李涌时间2013-2014秋学期第 17 、 18 周一、教学要求1. 巩固和加深学生对 C+ 语言课程的基本知识的理解和掌握2. 掌握 C+ 语言编程和程序调试的基本技能3. 利用 C+ 语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用 C+ 语言解决实际问题的能力二、设计资料及参数用 C+ 设计一个系统,能提供下列服务:( 1 )录入车次信息,格式为:车次发车时间起始终点硬座票价
2、剩余座位k26420 : 30包头北京110200可不定时地增加车次数据。( 2 )浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。( 3 )查询路线:可按车次编号查询,可按起始站,终点站查询( 4 )售票和退票功能A :查询车次或站点。当剩余座位数大于0 ,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。word 专业资料.三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:( 1 )分析系统中的各个实体之间的关系及其属性
3、和行为;( 2 )根据问题描述,设计系统的类层次;( 3 )完成类层次中各个类的描述 (包括属性和力一法 );( 4 )完成类中各个成员函数的定义;( 5 )完成系统的应用模块;( 6 )功能调试;( 7 )提交课程设计报告:完成系统总结报告以及系统使用说明书目录第 1 章 需求分析4第 2 章 总体设计5word 专业资料.第 3 章 类的设计 .63.1 user 类的设计 .63.2 service 类的设计 .8第 4 章 详细设计 .104.1工程视图 .104.2类图视图 .104.3主程序流程图 .114.4 主要算法的流程图.12第 5 章 测试 .1-21-第 6 章 总结
4、.23附录:程序代码 .23word 专业资料.第1章 需求分析用 C+ 设计一个系统,能提供下列服务:(1 )录入车次信息,格式为:车次发车时间起始终点硬座票价剩余座位k26420 :30包头北京110200可不定时地增加车次数据。(2 )浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。(3 )查询路线:可按车次编号查询,可按起始站,终点站查询(4 )售票和退票功能A:查询车次或站点。当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自
5、动更新剩余座位数。word 专业资料.第2章 总体设计1.用结构框图表示各个功能之间的关系。系统功能管理员乘客初始化添加浏览查找订票退票录入读取按车次起始站终点站保存保存2. 将框图中系统的各个功能用文字详细的描述。1)初始化:在未添加过列车信息的情况下,管理员进入系统初次录入列车信息。word 专业资料.2)添加:管理员添加列车信息。3)浏览:浏览列车信息,显示车次、发车时间、起始站、终点站、硬座票价、剩余座位、列车是否发出。4)查找:查找列车信息(分别为按车次、起始站、终点站)。5)订票:订购车票;已发出的列车不能订票。6)退票:退还车票;已发出的列车不能退票。第3章 类的设计3.1 us
6、er 类的设计(第一个类)1.画出类图User数据成员struct Timeint hour;int minute;char num10;Time time;char start20;char end20;int price;int count;word 专业资料.函数成员void print();void search();void dingpiao();void tuipiao();2. 对类的函数成员的说明在第一个类中定义了浏览函数、查找函数、订票函数、退票函数函数的首部:1)浏览函数:输入了当地时间、车次、列车发出时间、起始站、终点站、剩余车票;进行了选择对象与输出流操作;word 专
7、业资料.输出了当地时间,不同车次的车次编号、列车发出时间、起始站、终点站、剩余车票、列车状态;2 )查找函数:输入了车次(或起始站或终点站) 。进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。输出了相匹配的车次的信息。3 )订票函数:输入了车次(或起始站或终点站) 。进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。判断是否允许被购买,然后进行是否购买。刷新车票。输出车票已订购。4)退票函数:输入了车次(或起始站或终点站) 。进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。判断是否允许被退票,然后进行是否退票。刷新车票。输出车票已退还。word 专业资料.3.
8、2 service类的设计(第二个类)1. 画出类图service数据成员:struct Timeint hour;int minute;char num10;Time time;char start20;char end20;int price;int count;函数成员:void chushihua();void add();word 专业资料.友元函数:friend void ckym();friend void glyym();friend void sfyz();friend void save ();friend void read();friend void input();f
9、riend void display(int j);friend void search_CC();friend void search_QS();friend void search_ZD();2. 对类的函数成员的说明1)初始化函数:输入了初次对象的车次、 列车发出时间、 起始站、终点站、剩余车票数。进行了车票信息的储存。结果将车票信息保存在了 ticket.txt 。2)增添函数:输入了不同对象的车次、 列车发出时间、 起始站、终点站、剩余车票数。进行了车票信息的储存。结果将车票信息保存在了 ticket.txt 。word 专业资料.第4章 详细设计4.1 工程视图word 专业资料.
10、4.2 类图视图4.3 主程序流程图开始word 专业资料.Sf=0?YNSf=1?NYSf=2?管理员模块0N1-6Y乘客模块01-4word 专业资料.初始化添加浏览查找订票退票录入读取按车次起始站终点站保存保存结束4.4 主要算法的流程图初始化函数:开始文件中是否存在车票信息?Yword 专业资料.N输入车票信息保存信息结束添加模块:开始输入车票信息保存信息word 专业资料是否继续添加 ?.YN结束查询模块:1按车次输入车次输出车次信息开始23起始站终点站输入起始站输入终点站输出车次信息输出车次信息结束word 专业资料.订票函数:开始查询函数是否允许被订票?YN输入订购的票数是否继续
11、订Y票?word 专业资料.N结束退票函数:开始查询函数是否允许被N退票?Y输入退还的票数word 专业资料.是否继续退票?YN结束word 专业资料.第5章 测试程序的运行结果截图:word 专业资料.word 专业资料.word 专业资料.word 专业资料.word 专业资料.word 专业资料.word 专业资料.word 专业资料.第6章 总结感谢老师的辛苦教学与悉心指导,通过本次课程设计,让我更加深刻的理解到了C+ 得运用,这门语言的奥妙之处。相信这次实训会让我在今后的学习中受益匪浅。附录: 程序代码#include<iostream.h>#include<str
12、ing.h>#include<stdlib.h>/清屏文件的声明#include<ctime>/获取时间的文件的声明#include<fstream.h>#include <iomanip>const int N=10;static int g_num=-1;int j;int a=0;char ii10;long t = time(0);class userprotected:struct Timeword 专业资料.int hour;int minute;char num10;Time time;char start20;char en
13、d20;int price;int count;public:void print();void search();void dingpiao();void tuipiao();class service:public userpublic:void chushihua();void add();friend void ckym();friend void glyym();friend void sfyz();word 专业资料.friend void save ();friend void read();friend void input();friend void display(int
14、j);friend voidsearch_CC();friend void search_QS();friend void search_ZD();service ticket10;void input()g_num+;cout<<"请输入车次 :"<<endl;cin>>ticketg_num.num;cout<<"请输入起始站 :"<<endl;cin>>ticketg_num.start;cout<<"请输入终点站 :"<<endl;
15、cin>>ticketg_num.end;cout<<"请输入时间(时):"<<endl;cin>>ticketg_num.time.hour;cout<<"请输入时间(分):"<<endl;cin>>ticketg_num.time.minute;word 专业资料.cout<<"请输入票价: "<<endl;cin>>ticketg_num.price;cout<<"请输入车票数 :&quo
16、t;<<endl;cin>>ticketg_num.count;save ();void save ()ofstream file("ticket.txt",ios:in);for(int j=0;j<=g_num;j+)file<<ticketj.num<<" "file<<ticketj.time.hour <<" "file<<ticketj.time.minute<<" "file<<ticke
17、tj.start<<" "file<<ticketj.end<<" "file<<ticketj.price<<" "file<<ticketj.count<<endl;file.close();cout<<"信息已存入文件"<<endl;void read()/ 读取函数word 专业资料.ifstream file ( "ticket.txt" ,ios:out);while(!fil
18、e.eof()g_num+;file>>ticketg_num.num;file>>ticketg_num.time.hour;file>>ticketg_num.time.minute;file>>ticketg_num.start;file>>ticketg_num.end;file>>ticketg_num.price;file>>ticketg_num.count;g_num-;file.close();cout<<"读取完毕! "<<endl;void di
19、splay(int j)cout<<ticketj.num<<"t"<<ticketj.start<<"t"<<ticketj.end<<"t"<<" "<<ticketj.time.hour<<":"<<ticketj.time.minute<<"tt"<<ticketj.price<<"t"<
20、<ticketj.count<<"tt"word 专业资料.t = :time(NULL);tm * pt = localtime(&t);if(ticketj.time.hour<pt->tm_hour)cout<<"此班列车已发出"else if(ticketj.time.hour=pt->tm_hour&&ticketj.time.minute<=pt->tm_min)cout<<"此班列车已发出"else cout<<&
21、quot;正常 "cout<<endl;void output()/ 输出列车信息int j;t = time(NULL);tm * pt = localtime(&t);cout<<"当前时间: "<<"t"<<pt->tm_hour<<':'<<pt->tm_min<<':'cout<<pt->tm_sec<<endl;cout<<"车次信息如下:&quo
22、t;<<endl;cout<<"车次 t"<<"起始站 t"<<"终点站 t"<<"发车时间 t"<<"票价 t"<<"剩余票数 t"<<"状态"<<endl;for( j=0;j<=g_num;j+)display(j);word 专业资料./*订票模块 */void user:dingpiao()/ 订票函数system("cls
23、");tm * pt = localtime(&t);int n;char a10 = "y"dosearch();if (!strcmp(ii, "n")cout<<"对不起!没有找到您所需要的列车信息,不能订票。"<<endl;cout<<"请按回车键返回上层菜单"<<endl;getchar();strcpy(ii, "n");return;if(ticketj.time.hour < pt->tm_hour)c
24、out<<"此班列车已发出,不能订票! "cout<<"请按回车键返回上层菜单"<<endl;word 专业资料.getchar();strcpy(ii, "n");break;else if(ticketj.time.hour=pt->tm_hour&&ticketj.time.minute <= pt->tm_min)cout<<"此班列车已发出,不能订票! "getchar();strcpy(ii, "n")
25、;break;docout<<"请输入您要订的车票数(以回车键结束):"cin>>n;if (n <= 0)cout<<"输入错误!至少需订1 张车票。 "<<endl;word 专业资料.else if (ticketj.count != 0 && ticketj.count >= n)ticketj.count = ticketj.count - n;cout<<"订票成功! "break;else if (ticketj.count = 0)
26、cout<<"对不起,你所选择的列车的车票已售完!"<<endl;break;else if (ticketj.count<n)cout<<"对不起,你所选择的列车只剩余"<<ticketj.count<<"张车票 "<<endl;cout<<"是否需要重新输入车票数?请输入y 或 n 以回车键结束:"cin>>a;while (!strcmp(a, "y");cout<<"
27、;是否需要重新订购其他车票?请输入y 或 n 以回车键结束:"cin>>a; while (!strcmp(a, "y");/*退票模块 */word 专业资料.void user:tuipiao()system("cls");tm * pt = localtime(&t);int n;char a10;dosearch();if (!strcmp(ii, "n")cout<<"对不起!没有找到您所需要的列车,所以不能退票。"<<endl;cout<<
28、;"请按回车键返回上层菜单"<<endl;strcpy(ii, "n");getchar();return;if(ticketj.time.hour<pt->tm_hour)cout<<"此班列车已发出,不能退票 !! "<<endl;strcpy(ii, "n");getchar();break;word 专业资料.else if(ticketj.time.hour=pt->tm_hour&&ticketj.time.minute<=pt
29、->tm_min)cout<<"此班列车已发出,不能退票! "<<endl;strcpy(ii, "n");getchar();break;cout<<"请输入您要退的车票数:"<<endl;cin>>n;if (n <= 0)cout<<"输入错误!至少需退1 张车票。 "<<endl;elseticketj.count = ticketj.count + n;cout<<"退票成功! "
30、;cout<<"是否继续?请键入y 或 n 以回车键结束:"<<endl;cin>>a; while (!strcmp(a, "y");/*查询模块*/word 专业资料.void user:search()/ 按查找列车信息方式选择函数system("cls");int n;cout<<"1.按车次查询 "<<endl<<"t2. 按起始站查询"<<endl<<"tt3.按终点站查询 &q
31、uot;<<endl;cout<<"请选择 1 或 2 或 3,以回车键结束:"cin>>n;for(;n!=1&&n!=2&&n!=3;)cout<<"指令错误!请重新输入!"<<endl;cin>>n;switch (n)case 1:search_CC();break;case 2:search_QS();break;case 3:search_ZD();break;word 专业资料.void search_CC()/ 按列车号查找system
32、("cls");char t10;docout<<endl<<"请输入车次:"<<endl;cin>>t;for (j=0;j<=g_num;j+)if (strcmp(t,ticketj.num)=0)cout<<"你所要查询的列车信息为:"<<endl;cout<<"车次 t"<<"起始站 t"<<"终点站 t"<<"发车时间 t&quo
33、t;<<"票价 t"<<"剩余票数 t"<<"状态 "<<endl;display(j);cout<<"n查询完毕,按回车键继续"<<endl;strcpy(ii, "y");getchar();return;cout<<"n对不起,没有您需要的信息!"<<endl;word 专业资料.cout<<"是否重新查找?请键入y 或 n 以回车键结束 "cin>>ii; while (!strcmp(ii, "y");void search_QS()/ 按列车号查找system("cls");char q20;docout<<endl<<"请输入起始站:"<<endl;cin>>q;for ( j=0;j<=g_num;j+)if (strcmp(q,ticketj.start)=0)cout<<"你所要查询的列车信息为:"<<endl;c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 查补易混易错点09 生物的生殖和发育-【查漏补缺】2023年中考生物三轮冲刺过关(解析版)
- 2024至2030年中国监护继电器行业投资前景及策略咨询研究报告
- 2024至2030年中国高纯液氮行业投资前景及策略咨询研究报告
- 2024至2030年中国食品级硅橡胶制品行业投资前景及策略咨询研究报告
- 2024至2030年中国调味品喷雾干燥机行业投资前景及策略咨询研究报告
- 2024至2030年中国测温球阀行业投资前景及策略咨询研究报告
- 2024至2030年高速专用缩标机项目投资价值分析报告
- 2024至2030年静压镗床项目投资价值分析报告
- 2024至2030年中国桥式电极行业投资前景及策略咨询研究报告
- 2024至2030年轻型打胶枪项目投资价值分析报告
- 高血压脑病的诊治
- 期末模拟考试卷02-2024-2025学年上学期高一思想政治课《中国特色社会主义》含答案
- 2024年甘肃省公务员考试《行测》真题及答案解析
- 2024年高考真题-化学(福建卷) 含解析
- 医学免疫学(本)学习通超星期末考试答案章节答案2024年
- 2024亚马逊卖家状况报告
- 生态系统的信息传递课件
- 2024年秋季学期新人教版生物7年级上册课件 第3章 微生物 2.3.1 微生物的分布
- 中国长江三峡集团有限公司二级机构负责人招聘真题
- 2024-2025学年新教材高中政治 第二单元 认识社会与价值选择 6.1 价值与价值观说课稿 统编版必修4
- 2024年计算机操作员考试-计算机操作员高级考试近5年真题附答案
评论
0/150
提交评论