车票管理系统毕业课程设计报告Word文件下载.docx

上传人:b****2 文档编号:3506207 上传时间:2023-05-01 格式:DOCX 页数:40 大小:44.44KB
下载 相关 举报
车票管理系统毕业课程设计报告Word文件下载.docx_第1页
第1页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第2页
第2页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第3页
第3页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第4页
第4页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第5页
第5页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第6页
第6页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第7页
第7页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第8页
第8页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第9页
第9页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第10页
第10页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第11页
第11页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第12页
第12页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第13页
第13页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第14页
第14页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第15页
第15页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第16页
第16页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第17页
第17页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第18页
第18页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第19页
第19页 / 共40页
车票管理系统毕业课程设计报告Word文件下载.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

车票管理系统毕业课程设计报告Word文件下载.docx

《车票管理系统毕业课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《车票管理系统毕业课程设计报告Word文件下载.docx(40页珍藏版)》请在冰点文库上搜索。

车票管理系统毕业课程设计报告Word文件下载.docx

(5)退出

在界面状态下,按下“ESC”会退出该系统。

返回源程序。

由上述需求分析可得,系统的功能模块图如图1所示。

图1系统功能模块图

二、系统的设计与实现

根据第一章的需求分析,接下来给出的是系统的设计和实现。

1、类的设计

根据上述需求分析,有车票信息类和链表类。

(1)车票信息类

系统研究车票系统Bus_infor类中成员:

Bus_order是班次编号,start[20]是车票信息的起点站,end[20]是车票信息的终点站,all_tickted是总共要发售的票数,tickted是已经被订购的票数,Hour_start,Minute_start是车票的发车时间,GoHour表示行车时间,构造函数Bus_infor(),析构函数~Bus_infor(),录入函数input(),读取函数input(ifstream&

is),输出函数output(),写入函数output(ofstream&

os),定票函数Order_tickt(intn),获取发车时间函数GetTime_start(),判断当前班次状况函数GetTime(),内联函数,返回额定载量Get_all_tickted(){returnall_tickted;

},返回已定票人数Get_tickted(),返回班次号Get_bus_order(),返回终点站的字符串Get_end()const。

车票类的UML图如(图2)所示:

图2客房类的UML图

(2)链表类

在Bus_link类中,有成员:

构造函数Bus_link(),析构函数~Bus_link(),录入车票信息的函数input(),修改车票信息的函数mend(),删除车票信息的函数del(),查找函数find(Bus_infor**p,intnum,char*pn),查询车票信息found(),显示车票信息show(),定购车票信息Order(),退还车票信息Unorder(),保存车票信息save(),初始化车票信息begin(),清除函数clear(),关于车票信息about(),主菜单函数mainmenu(),设置系统修改标志voidsetkey(intk){key=k;

},返回系统修改标志intgetkey(){returnkey;

},头节点head,系统修改标志key,管理员登陆标志password。

链表类的UML图如(图3)所示:

2.界面设计:

分界面:

车票信息的查询的设计

提示进入查询界面,选择按班次查找或按终点站查询车票信息。

车票信息的查询界面如图所示。

车票信息的删除的设计

在录入或修改错误的车票信息后,想删除错误的车票信息,按提示按提示输入班次号,程序会显示该班次的信息并提示用户是否确定删除,输入y则删除。

删除车票的信息界面如图所示。

修改车票信息的设计

按提示进行车票信息的修改,本系统中只有管理员身份才可以修改车票,显示屏幕如图所示。

订购车票信息的设计

在管理员身份下按提示在剩余未出发的班次中,输出车票的信息,以判断是否可以订票,已出发的和已定票人数已满的情况下是不能订票的。

定购车票信息输出界面如图所示。

退订车票信息的设计

在管理员身份下按提示在剩余未出发的班次中,输出车票的信息,以判断是否可以退票,已出发的和没人定票的情况下是不能退票的。

退定信息输出界面如图所示。

介绍车票信息的设计

在程序中输出使用说明。

介绍信息界面如图所示。

3.关键程序代码的分析:

(1)系统的登录

在主函数中,先输出车票管理系统的欢迎界面。

调用一个对象的mainmenu函数来输出主菜单,按照提示选择需要执行功能的序号,由switch判断和选择所需要执行的功能。

选择1:

执行车票信息的录入;

选择2:

执行车票信息的浏览;

选择3:

执行查询车票信息;

选择4:

执行车票信息的删除;

选择5:

执行车票信息的修改;

选择6:

执行定购车票;

选择7:

执行退定车票;

选择8:

执行车票信息的保存;

选择9:

输出关于车票管理系统的信息;

选择0:

退出;

主函数:

intmain()

{

Bus_linkpp;

intk=1;

charc;

strings;

pp.begin();

cout<

<

"

\n\n→→→→→→→→→→→→→→欢迎进入车票管理系统←←←←←←←←←←←←←←←←"

endl<

endl;

开机选择是否进入系统

*******************************************************************************"

endl

<

系统说明:

**\t本系统为课程设计作品,可以简易的进行车票管理,欢迎提出意见和建议!

**"

endl

**\t合肥学院计算机科学与技术系11网工二班\t**"

**\t作者:

孙乐\t\t学号:

\n\t\t是否进入系统?

\n\n\t\t按Enter进入主菜单,按Esc键退出:

;

do利用一个do-while循环来判断输入是否进入系统

{

c=getch();

if(c==27)

exit(0);

elseif(c==13)

break;

else

{

cout<

\n\n\t\t按键错误!

请重新输入:

}

}while((c!

=13)||(c!

=27));

try

while(k==1)

{

system("

cls"

);

s=pp.mainmenu();

调用主菜单函数

switch(s[0])

{

case'

1'

:

pp.input();

break;

录入车票信息

2'

pp.show();

浏览车票信息

3'

pp.found();

查询车票信息

4'

pp.del();

删除车票信息

5'

pp.mend();

修改车票信息

6'

pp.Order();

保存车票信息

7'

pp.Unorder();

退还车票信息

8'

pp.save();

9'

pp.about();

break;

关于车票系统

0'

cout<

\n\t\t是否退出系统?

\n\n\t\t按Enter返回主菜单,按Esc键退出:

do利用一个do-while循环来判断输入是否退出系统

{

c=getch();

if(c==27)

{

k=0;

break;

}

elseif(c==13)

k=1;

else

cout<

利用循环防止误操作而引起的退出系统

}while((c!

break;

}

if(k==1)

\n\t\t\t是否返回主菜单?

1.是0.不是:

"

cin>

>

k;

if(!

cin)

throwstring("

数据输入错误"

if(k==0)

if(pp.getkey()==1)

cout<

\t\t\t是否保存?

1.保存0.不保存:

cin>

if(!

throwstring("

if(k==1)

pp.save();

pp.clear();

k=0;

}

}

}

}

catch(strings)

cout<

s<

为保护系统不崩溃,将自动退出系统!

system("

pause"

return0;

}

在读取数据库中,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,有利于后面的信息修改、删除等功能。

读取数据库:

voidBus_link:

begin()

{

password=0;

Bus_infor*p,*p2;

p=);

文件以输入方式打开

if(!

is)

ofstreamos("

bus.txt"

ios:

out);

文件以输出方式打开

os.close();

关闭文件

return;

intnum=-1;

while

(1)

num=-1;

t=is.tellg();

记录下当前位置

is>

num;

is.seekg(t);

移动到原来位置

if(num<

0)

{

is.close();

return;

p2=newBus_infor;

p2->

input(is);

输入is对象内容

p->

next=p2;

next=NULL;

p=p->

next;

(2)信息的添加

车票信息的录入,创建Bus_infor类和Bus_link对象,调用构造函数,输入车票的班次、额定座位数、始发时间、行车时间、起始站与终点站、,通过input函数实现。

input()

if(password==1)

Bus_infor*p,*p2=NULL;

p==1;

intn;

while(p->

next)

p=p->

while(n)

p2=newBus_infor;

p2->

input();

p->

Bus_link:

setkey

(1);

\t\t\t按1继续,按0返回:

cin>

n;

if(!

throwstring("

else

\n\t\t对不起,游客不能录入车票信息"

voidBus_infor:

GetTime_start()

请输入始发时间(时分):

{

cin>

Hour_start>

Minute_start;

if(cin.fail())判断输入的数据类型是否有错

cout<

\n时间输入错误,请重新输入:

cin.clear();

cin.get();

}

elseif(Hour_start<

0||Hour_start>

24||Minute_start<

0||Minute_start>

60)

\n时间格式出错,请重新输入:

判断时间格式是否出错,小时不能小于大于24,分钟不能小于大于60

else

}

input()Bus_infor类中成员函数input的函数体

\t\t\t按提示输入:

输入班次:

while

(1)

Bus_order;

if(cin.fail())判断输入的数据类型是否有错

\n班次输入错误,请重新输入:

清除刚才输入的数据

重新输入

else

break;

请输入车的额定座位数:

all_tickted;

if(cin.fail())判断输入的数据类型是否有错

\n座位数输入错误,请重新输入:

GetTime_start();

请输入行车时间:

GoHour;

\n行车时间输入错误,请重新输入:

请输入起始站与终点站:

cin>

start;

cin>

end;

是否清空售票(yn)?

chara;

a;

if(a=='

y'

||a=='

Y'

)tickted=0;

(3)信息的浏览

浏览客房信息,如果之前有文件信息,则直接输出,如果没有则需录入后才能输出。

所以,先得有一个读取函数begin,再有一个浏览函数show。

show()

客车基本信息如下:

班次发车时间起点站终点站行车时间额定载量已定票人数当前状况"

Bus_infor*p;

p=)

p=)

{

<

(p->

next)->

output();

t=1;

}

returnt;

mend()

Bus_infor*p;

intnum;

charname[20];

\t\t\t输入班次号:

if(!

if(!

find(&

p,num,name))

\t\t找不到你要修改的内容!

(p->

Bus_link:

\n\t\t对不起,游客不能修改车票信息"

}

(5)信息的查询

按提示输入要查询的班次或者终点站,定义一个指向链表第一个节点的指针p。

如果指针创建成功,开始用while和if语句实现p指向的节点的班次与存在的班次比较。

如果相同,则输出车票的各个信息;

如果没有相同,提示没有所查询的车票。

found()

intnum,n;

charname[20];

do

\t\t1:

按班次查找,2:

按终点站查找:

}while(n<

1||n>

2);

if(n==1)

\t\t\t输入班次:

if(n==2)

\t\t\t输入终点站:

name;

p,num,name))

\t\t找不到你要查找的内容!

return;

(6)信息的删除

按提示输入要删除的班次,定义一个指向链表第一个节点的指针p。

如果相同,输出车票的各个信息并提示是否确定删除;

del()

Bus_infor*p,*p2;

charname[20];

\t\t找不到你要删除的内容!

}

\n\t\t\t确

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2