铁路售票管理系统完整版.docx

上传人:b****8 文档编号:9377211 上传时间:2023-02-04 格式:DOCX 页数:23 大小:104.93KB
下载 相关 举报
铁路售票管理系统完整版.docx_第1页
第1页 / 共23页
铁路售票管理系统完整版.docx_第2页
第2页 / 共23页
铁路售票管理系统完整版.docx_第3页
第3页 / 共23页
铁路售票管理系统完整版.docx_第4页
第4页 / 共23页
铁路售票管理系统完整版.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

铁路售票管理系统完整版.docx

《铁路售票管理系统完整版.docx》由会员分享,可在线阅读,更多相关《铁路售票管理系统完整版.docx(23页珍藏版)》请在冰豆网上搜索。

铁路售票管理系统完整版.docx

铁路售票管理系统完整版

HENsystemofficeroom【HEN16H-HENS2AHENS8Q8-HENH1688】

 

铁路售票管理系统

《C++程序设计》

课程设计说明书

题目

铁路售票系统

学号

姓名

指导教师

日期

内蒙古科技大学课程设计任务书

课程名称

面向对象程序设计A课程设计

设计题目

铁路售票管理系统的设计

指导教师

周李涌

时间

2013-2014秋学期第17、18周

一、教学要求

1.巩固和加深学生对C++语言课程的基本知识的理解和掌握

2.掌握C++语言编程和程序调试的基本技能

3.利用C++语言进行基本的软件设计

4.掌握书写程序设计说明文档的能力

5.提高运用C++语言解决实际问题的能力

二、设计资料及参数

用C++设计一个系统,能提供下列服务:

(1)录入车次信息,格式为:

车次

发车时间

起始

终点

硬座票价

剩余座位

k264

20:

30

包头

北京

110

200

可不定时地增加车次数据。

(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。

(3)查询路线:

可按车次编号查询,可按起始站,终点站查询

(4)售票和退票功能

A:

查询车次或站点。

当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。

B:

退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。

三、设计要求及成果

根据系统功能要求,可以将问题解决分为以下步骤:

(1)分析系统中的各个实体之间的关系及其属性和行为;

(2)根据问题描述,设计系统的类层次;

(3)完成类层次中各个类的描述(包括属性和力一法);

(4)完成类中各个成员函数的定义;

(5)完成系统的应用模块;

(6)功能调试;

(7)提交课程设计报告:

完成系统总结报告以及系统使用说明书

 

0

0

0

1

2

3

3

第1章需求分析

用C++设计一个系统,能提供下列服务:

(1)录入车次信息,格式为:

车次

发车时间

起始

终点

硬座票价

剩余座位

k264

20:

30

包头

北京

110

200

可不定时地增加车次数据。

(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。

(3)查询路线:

可按车次编号查询,可按起始站,终点站查询

(4)售票和退票功能

A:

查询车次或站点。

当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。

B:

退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。

第2章总体设计

1.用结构框图表示各个功能之间的关系。

 

2.将框图中系统的各个功能用文字详细的描述。

1)初始化:

在未添加过列车信息的情况下,管理员进入系统初次录入列车信息。

2)添加:

管理员添加列车信息。

3)浏览:

浏览列车信息,显示车次、发车时间、起始站、终点站、硬座票价、剩余座位、列车是否发出。

4)查找:

查找列车信息(分别为按车次、起始站、终点站)。

5)订票:

订购车票;已发出的列车不能订票。

6)退票:

退还车票;已发出的列车不能退票。

第3章类的设计

3.1user类的设计(第一个类)

1.画出类图

User

数据成员

structTime

{

inthour;

intminute;

};

charnum[10];

Timetime;

charstart[20];

charend[20];

intprice;

intcount;

函数成员

voidprint();

voidsearch();

voiddingpiao();

voidtuipiao();

2.对类的函数成员的说明

在第一个类中定义了浏览函数、查找函数、订票函数、退票函数

函数的首部:

1)浏览函数:

输入了当地时间、车次、列车发出时间、起始站、终点站、剩余车票;

进行了选择对象与输出流操作;

输出了当地时间,不同车次的车次编号、列车发出时间、起始站、终点

站、剩余车票、列车状态;

2)查找函数:

输入了车次(或起始站或终点站)。

进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。

输出了相匹配的车次的信息。

3)订票函数:

输入了车次(或起始站或终点站)。

进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。

判断是否允许

被购买,然后进行是否购买。

刷新车票。

输出车票已订购。

4)退票函数:

输入了车次(或起始站或终点站)。

进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。

判断是否允许

被退票,然后进行是否退票。

刷新车票。

输出车票已退还。

3.2service类的设计(第二个类)

1.画出类图

service

数据成员:

structTime

{

inthour;

intminute;

};

charnum[10];

Timetime;

charstart[20];

charend[20];

intprice;

intcount;

函数成员:

voidchushihua();

voidadd();

友元函数:

friendvoidckym();

friendvoidglyym();

friendvoidsfyz();

friendvoidsave();

friendvoidread();

friendvoidinput();

friendvoiddisplay(intj);

friendvoidsearch_CC();

friendvoidsearch_QS();

friendvoidsearch_ZD();

2.对类的函数成员的说明

1)初始化函数:

输入了初次对象的车次、列车发出时间、起始站、终点站、剩余车票数。

进行了车票信息的储存。

结果将车票信息保存在了。

2)增添函数:

输入了不同对象的车次、列车发出时间、起始站、终点站、剩余车票数。

进行了车票信息的储存。

结果将车票信息保存在了。

第4章详细设计

4.1工程视图

4.2类图视图

4.3主程序流程图

Y

N

N

Y

0N

1-6Y

0

1-4

 

4.4主要算法的流程图

初始化函数:

Y

N

添加模块:

Y

N

查询模块:

123

订票函数:

N

Y

Y

N

退票函数:

N

Y

Y

N

第5章测试

程序的运行结果截图:

第6章总结

感谢老师的辛苦教学与悉心指导,通过本次课程设计,让我更加深刻的理解到了C++得运用,这门语言的奥妙之处。

相信这次实训会让我在今后的学习中受益匪浅。

附录:

程序代码

#include<>

#include<>

#include<>um;

cout<<"请输入起始站:

"<

cin>>ticket[g_num].start;

cout<<"请输入终点站:

"<

cin>>ticket[g_num].end;

cout<<"请输入时间(时):

"<

cin>>ticket[g_num].;

cout<<"请输入时间(分):

"<

cin>>ticket[g_num].;

cout<<"请输入票价:

"<

cin>>ticket[g_num].price;

cout<<"请输入车票数:

"<

cin>>ticket[g_num].count;

save();

}

voidsave()

{

ofstreamfile("",ios:

:

in);

for(intj=0;j<=g_num;j++)

{

file<

file<

file<

file<

file<

file<

file<

}

();

cout<<"信息已存入文件"<

}

voidread()um;

file>>ticket[g_num].;

file>>ticket[g_num].;

file>>ticket[g_num].start;

file>>ticket[g_num].end;

file>>ticket[g_num].price;

file>>ticket[g_num].count;

}

g_num--;

();

cout<<"读取完毕!

"<

}

voiddisplay(intj)

{

cout<

<

"

<

<

t=:

:

time(NULL);

tm*pt=localtime(&t);

if(ticket[j].tm_hour)

cout<<"此班列车已发出";

elseif(ticket[j].==pt->tm_hour&&ticket[j].<=pt->tm_min)

cout<<"此班列车已发出";

elsecout<<"正常";

cout<

}

voidoutput()tm_hour)

{

cout<<"此班列车已发出,不能订票!

";

cout<<"请按回车键返回上层菜单"<

getchar();

strcpy(ii,"n");

break;

}

elseif(ticket[j].==pt->tm_hour&&ticket[j].<=pt->tm_min)

{

cout<<"此班列车已发出,不能订票!

";

getchar();

strcpy(ii,"n");

break;

}

do

{

cout<<"请输入您要订的车票数(以回车键结束):

";

cin>>n;

if(n<=0)

{

cout<<"输入错误!

至少需订1张车票。

"<

}

elseif(ticket[j].count!

=0&&ticket[j].count>=n)

{

ticket[j].count=ticket[j].count-n;

cout<<"订票成功!

";

break;

}

elseif(ticket[j].count==0)

{

cout<<"对不起,你所选择的列车的车票已售完!

"<

break;

}

elseif(ticket[j].count

{

cout<<"对不起,你所选择的列车只剩余"<

cout<<"是否需要重新输入车票数?

请输入y或n以回车键结束:

";

cin>>a;

}

}while(!

strcmp(a,"y"));

cout<<"是否需要重新订购其他车票?

请输入y或n以回车键结束:

";

cin>>a;

}while(!

strcmp(a,"y"));

}

/***********************************退票模块*******************************************/

voiduser:

:

tuipiao()

{

system("cls");

tm*pt=localtime(&t);

intn;

chara[10];

do

{

search();

if(!

strcmp(ii,"n"))

{

cout<<"对不起!

没有找到您所需要的列车,所以不能退票。

"<

cout<<"请按回车键返回上层菜单"<

strcpy(ii,"n");

getchar();

return;

}

if(ticket[j].tm_hour)

{

cout<<"此班列车已发出,不能退票!

"<

strcpy(ii,"n");

getchar();

break;

}

elseif(ticket[j].==pt->tm_hour&&ticket[j].<=pt->tm_min)

{

cout<<"此班列车已发出,不能退票!

"<

strcpy(ii,"n");

getchar();

break;

}

cout<<"请输入您要退的车票数:

"<

cin>>n;

if(n<=0)

cout<<"输入错误!

至少需退1张车票。

"<

else

{

ticket[j].count=ticket[j].count+n;

cout<<"退票成功!

";

}

cout<<"是否继续?

请键入y或n以回车键结束:

"<

cin>>a;

}while(!

strcmp(a,"y"));

}

/**************************************查询模块*********************************************************************/

voiduser:

:

search()车次查询"<

"\t2.按起始站查询"<

cout<<"请选择1或2或3,以回车键结束:

";

cin>>n;

for(;n!

=1&&n!

=2&&n!

=3;)

{

cout<<"指令错误!

请重新输入!

"<

cin>>n;

}

switch(n)

{

case1:

search_CC();

break;

case2:

search_QS();

break;

case3:

search_ZD();

break;

}

}

voidsearch_CC()um)==0)

{

cout<<"你所要查询的列车信息为:

"<

cout<<"车次\t"<<"起始站\t"<<"终点站\t"<<"发车时间\t"<<"票价\t"<<"剩余票数\t"<<"状态"<

display(j);

cout<<"\n查询完毕,按回车键继续"<

strcpy(ii,"y");

getchar();

return;

}

}

cout<<"\n对不起,没有您需要的信息!

"<

cout<<"是否重新查找?

请键入y或n以回车键结束";

cin>>ii;

}while(!

strcmp(ii,"y"));

}

voidsearch_QS()tart)==0)

{

cout<<"你所要查询的列车信息为:

"<

cout<<"车次\t"<<"开车时间\t"<<"起始\t"<<"终点\t"<<"票价\t"

<<"剩余座位\t"<<"状态\t"<

display(j);

cout<<"\n查询完毕,按回车键继续"<

strcpy(ii,"y");

getchar();

return;

}

}

cout<<"\n对不起,没有您需要的信息!

"<

cout<<"是否重新查找?

请键入y或n以回车键结束";

cin>>ii;

}while(!

strcmp(ii,"y"));

}

voidsearch_ZD()nd)==0)

{

cout<<"你所要查询的列车信息为:

"<

cout<<"车次\t"<<"开车时间\t"<<"起始\t"<<"终点\t"<<"票价\t"

<<"剩余座位\t"<<"状态\t"<

display(j);

cout<<"\n查询完毕,按回车键继续"<

strcpy(ii,"y");

getchar();

return;

}

}

cout<<"\n对不起,没有您需要的信息!

"<

cout<<"是否重新查找?

请键入y或n以回车键结束";

cin>>ii;

}while(!

strcmp(ii,"y"));

}

/*******************************************************浏览模块*****************************************************/

voiduser:

:

print()览车次信息"<

cout<<"2.查找车次信息"<

cout<<"3.订票业务"<

cout<<"4.退票业务"<

cout<<"0.退出"<

cout<<"********************************************************************************"<

cout<<"请输入选项前数字(回车键结束):

"<

cin>>j;

switch(j)

{

case1:

ticket[9].print();

break;

case2:

ticket[9].search();

break;

case3:

ticket[9].dingpiao();

break;

case4:

ticket[9].tuipiao();

break;

case0:

save();

cout<<"谢谢使用,您已退出乘客系统,再见"<

break;

}

}while(j!

=0);

}

voidglyym()hushihua();

intj;

do

{

cout<<"********************************************************************************";

cout<<"1.增加车次信息"<

cout<<"2.浏览车次信息"<

cout<<"3.查找车次信息"<

cout<<"4.订票业务"<

cout<<"5.退票业务"<

cout<<"0.退出"<

cout<<"********************************************************************************";

cout<<"请输入选项前数字(回车键结束):

";

cin>>j;

switch(j)

{

case1:

ticket[9].add();

break;

case2:

ticket[9].print();

break;

case3:

ticket[9].search();

break;

case4:

ticket[9].dingpiao();

break;

case5:

ticket[9].tuipiao();

break;

case0:

save();

cout<<"谢谢使用,您已退出管理员系统,再见"<

break;

}

}while(j!

=0);

}

voidsfyz()理员"<

cin>>sf;

if(sf==1)

{

cout<<"请输入密码:

";

cin>>code;

while(code!

=1)//管理员密码为1

{

cout<<"指令错误!

请重新输入!

"<

cin>>code;

}

glyym();//调用管理员选择页面函数

}

elseif(sf==2)

{

ckym();//调用乘客界面

}

}while(sf!

=0);

}

voidmain()

{

cout<<"》》》》》》》》》》》》》》》欢迎使用铁路订票系统《《《《《《《《《《《《《《《"<

cout<<"\t\t\t\t\t\t☆☆"<

sfyz();//调用身份验证函数

cout<<"谢谢使用,再见!

"<

}

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

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1