面向对象课程设计长途客运售票管理系统Word文件下载.docx
《面向对象课程设计长途客运售票管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《面向对象课程设计长途客运售票管理系统Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
(1)录入车次信息,格式为:
车次
开车时间
起始
终点
票价
剩余座位
221
20:
30
包头
北京
310
87
可不定时地增加车次数据。
(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班车已发出”的提示信息。
(3)查询路线:
可按车次编号查询,可按起始站,终点站查询
(4)售票和退票功能
A:
查询车次编号或站点。
当剩余座位数大于0,并且当前系统时间小于开车时间时才能售票,售票后自动更新剩余座位数。
B:
退票时,输入退票的车次,当本班车未发出时才能退票,退票后自动更新剩余座位数。
三、设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)提交课程设计报告:
完成系统总结报告以及系统使用说明书
目录
第1章需求分析4
第2章总体设计4
第3章类的设计4
3.1×
×
类的设计3
3.2×
类的设计4
第4章详细设计5
4.1工程视图4
4.2类图视图4
4.3函数的调用关系5
4.4主程序流程图5
4.5主要算法的流程图5
第5章测试6
第6章总结6
附录:
程序代码6
需求分析
发车时间
硬座票价
k264
110
200
(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。
查询车次或站点。
当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。
退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。
总体设计
1.用结构框图表示各个功能之间的关系。
2.将框图中系统的各个功能用文字详细的描述。
基本功能:
录入——次、始发站、终点站、开车时间(小时、分钟)、票价、剩余票数等信息。
浏览车次——查看所有的录入车次其中开车时间小于当前时间的车次则输出车次已发出。
查询车次——通过搜索车次或站点来快速的查看车辆的信息。
定退票——车时间大于当前系统时间的前提下才可退票并且在票数大于零的前提下才可定票,票数更新。
文件的存储——存储录入的车次信息以便下次访问。
文件的读取——读取文件内的信息方便操作以上的各项功能;
。
类的设计
user类的设计(第一个类)
1.画出类图
user
数据成员
私有段:
定义车辆的车次、开车时间(小时、分钟)、始发站、终点站、票价、票数。
函数成员
公有段:
依次为输出函数、定票函数、退票函数。
友元函数
查询函数、浏览函数、文件存储函数、文件读取函数。
2.对类的函数成员的说明
车次:
变量train定义为字符型。
发车时间:
time结构体。
始发站:
变量star-station字符型。
终点站:
变量end-station字符型。
开车的间:
:
变量time整型、变量time1整型。
票价:
变量ticket-price实型。
剩余票数:
变量remaind_seats整型。
service类的设计(第二个类)
service
私有段:
(公有继承user类)
公有段:
依次为输入函数、输出函数、定票函数、退票函数。
添加设定信息函数。
添加输入函数。
g-num:
确定数组对象的个数,也是控制循环的条件。
ticket[j]:
代表具体的某个对象。
A:
bool型,判断使用者身份。
B:
bool型,判断是否退出程序。
t:
long型,获得当前距1970年秒数。
pt:
tm指向类的对象的指针,指向当前时间。
Functionnumber:
整型,选择功能。
详细设计
工程视图
说明有几个源代码文件,可以截取工程文件视图表示
类图视图
每个文件包含哪些类和函数,可以截图说明
主程序流程图
测试
程序的运行结果截图。
1验证身份
2管理员登陆
3录入信息并保存
4浏览
5不是管理员,不能录入信息
5查询子菜单
6查询车次
7订票
8退票
9退出
总结
经历过基本几天都在看程序的时间,我发现我懂的太少,要学的太多。
原以为会很轻松,但还是遇到很多问题,以前上课时从未想到过。
对文件的操作我一直都没注意,现在才发现其乐无穷,学习与实践果然是不可分割的。
发现水平还是不够,同学可以编出一个比较漂亮的界面,还可以随意调用文件操作,实在让人赞叹不已。
课程设计旨在锻炼学生的实际动手能力和解决真实问题的能力。
并在其中掌握和熟练所学的知识,并能够运用所学知识解决比较简单的现实模拟问题。
本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。
在期间我对编程的理念理解又加深了一点,他是我明白好的算法或者是好的逻辑思维对编程的重要性,在调试期间我自卑过、高兴过、平静过。
可以说是我经历了比较大的情感波动。
当费很大劲才把程序调运行的时候那种感觉实在是太好了。
在本次课程设计活动中,我明显的感觉到自己知识的欠缺和实际动手能的差劲。
尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。
有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全暴露出来。
此次实习加强了我的理解,很多以前迷糊的概念得到了明确,亦让我感到计算机语言的强大之处。
一句诗概括此次实践,“山重水复疑无路,柳暗花明又一村”;
如今实践已然结束,但是对于计算机语言的学习决不能放松,“雄关漫道真如铁,而今迈步从头越”。
现在的世界是信息化的,路漫漫其修远兮,吾将上下而求索。
感谢老师抽出时间的指导,同时亦感谢大家这些天来的支持与帮助。
程序代码
#include<
iostream>
iomanip>
stdlib.h>
#include<
string.h>
fstream>
ctime>
usingnamespacestd;
constintN=10;
boolA=false,B=true;
longt=time(0);
tm*pt=localtime(&
t);
voidmainmenu();
structTime
{
inthour;
intminute;
};
classuser
{friendvoidsave();
friendvoidsure_message();
friendvoidbrowse();
friendvoidticketmenu();
friendvoidsearch_train();
friendvoidsearch_station();
protected:
chartrain[10];
Timetime;
charstart_station[20];
charend_station[20];
intticket_price;
intremaind_seats;
public:
voiddisplay()
{
cout<
<
train<
"
\t"
"
setfill('
0'
)<
setw
(2)<
time.hour<
:
<
time.minute<
\t\t"
start_station<
end_station<
ticket_price<
remaind_seats<
;
t=:
time(NULL);
tm*pt=localtime(&
if(time.hour<
pt->
tm_hour)
cout<
此班列车已发出"
elseif(time.hour==pt->
tm_hour&
&
=pt->
tm_min)
elsecout<
\t正常"
endl;
}
voidorder()
{
此班列车已发出,不能订票,退出!
elseif(remaind_seats==0)
cout<
此班列车已没票,不能订票,退出!
<
endl;
else
{
remaind_seats=remaind_seats-1;
次列车"
售票一次,现存票量为:
remaind_seats<
}
voidDelete()
此班列车已发出,不能退票,退出!
else{
remaind_seats=remaind_seats+1;