车票管理系统文档格式.docx

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

车票管理系统文档格式.docx

《车票管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《车票管理系统文档格式.docx(31页珍藏版)》请在冰点文库上搜索。

车票管理系统文档格式.docx

还有哪些地方需要改进?

课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;

6)附录:

主要源程序代码,含必要的注释。

3、答辩:

在实验室建立程序运行的环境,并在指导教师的监督下,独立解

决问题、运行程序和回答教师提出的问题。

四、课程设计进程安排

序号

设计各阶段内容

地点

起止日期

1

下达任务书,说明设计要求;

收集资料

实验3#517

6.18

2

总体方案设计、详细设计

6.19

3

编写程序,调试分析

6.20

4

撰写报告并上交,答辩

6.21

五、应收集的资料及主要参考文献

[1]谭浩强.C程序设计(第三版)[M],北京:

清华大学出版社,2005.9

[2]谭浩强.C程序设计题解与上机指导(第三版)[M],北京:

清华大学出版社,2005.7

[3]张淑平.C语言程序设计学习指导,西安电子科技大学出版社,2004.6

[4]刘振安.C++程序设计课程设计,机械工业出版社,2004.7

[5]鲁沐浴.C语言编程技巧及实用程序荟萃,科学出版社,1994.7

发出任务书日期:

2007年6月18日指导教师签名:

计划完成日期:

2007年6月22日基层教学单位责任人签章:

主管院长签章:

1设计目的与要求………………………………………………………………5

2总体设计………………………………………………………………………6

3详细设计………………………………………………………………………9

3.1功能模块设计………………………………………………………………9

3.1.1售票功能模块…………………………………………………9

3.1.2退票功能模块…………………………………………………10

3.1.3菜单功能模块…………………………………………………11

3.2数据结构设计………………………………………………………………11

4调试分析……………………………………………………………………12

5总结……………………………………………………………………………14

6附录……………………………………………………………………………15

6答辩记录(正文处请留出适当空白)………………………………………29

7指导教师意见(正文处请留出十行空白)…………………………………30

1目的与要求

编写目的:

便于车站管理部门对汽车班次信息的统计和管理,提高车站部门的工作效率,能够更好的为市民服务,同时也便于旅客了解相关的信息,方便出行。

要求:

1.能够录入汽车班次信息,如班次号,发车时间,起点站,终点站,行车时间,额载量,已订票人数等。

2.能够浏览班次信息,显示信息总和(如果已发出站的要要显示“已经开出”)。

3.查询路线:

4.售票功能:

当查询出已定票人数小于额定载量且当前系统时间小于发车时间

才能售票,自动更新已售票人数。

5.退票功能:

输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数

 

2总体设计

1)系统总体设计框架

按终点站查询

按班次查询

2)主要功能流程图:

录入班次信息功能流程图:

浏览班次功能流程图:

售票系统工作流程图:

3详细设计

(内容可以适当调整,清晰的有条理的把你的设计思路表达出来)

3.1功能模块设计

3.1.1售票函数

while(选择的是“Y”)

{打印当前时间

打印“班次发车时间起点站终点站行车时间额定载量已定票人数”

for()

{

输出班次信息

提示输入车的班次

}

if(当查询出已定票人数小于额定载量且当前系统时间小于发车时间时)

{提示售票成功!

订票人数加1;

}

IF(额定载量小于订票人数)

提示票已售完!

elseif(输入的班次号小于零)

{该车不存在!

elseif(当前系统时间晚于发车时间)

提示车已发出!

提示继续售票按Y,按任意键返回主菜单!

输入一个字符;

3.1.2退票函数

while(输入的是Y的时候)

提示输入要退票的车次;

if(输入的班次号存在和系统时间比发车时间晚)

{订票人数-1;

提示退票成功!

提示该班次不存在!

elseif(要退票的那辆车的发车时间早过现在系统时间)

提示车已发出不能退票!

提示继续退票请按(Y),返回主菜单按任意键;

输入一个字符;

3.1.3菜单函数

打印“车票管理系统”;

打印“系统时间”;

打印“录入班次信息”;

打印“查询班次信息”;

打印“售票”;

打印“退票”;

打印“保存车次信;

"

打印“退出系统”;

打印“请选择(0--6)”;

打印“车票管理系统;

得到一个字符;

返回值;

3.2数据结构设计(可选)

程序中涉及的数据过多,本人决定采用两个结构体处理数据。

其中时间为一个数据结构体(即结构1),它又是汽车结构体(即结构2)的一个成员元素,这样处理数据容易些。

4调试分析

本人在写代码的过程中觉得难控制的是那个班次数。

因为本系统提供了个录入信息功能,可以不定时的增加班次,即这个班次数是不确定的。

而这个班次数又影响到查询函数,退票函数,售票函数等,另外还影响到一些功能小函数,如比较时间函数等。

经过上网查找资料,我发现有一个巧妙的方法可以解决这个问题,即设定一个静态局部变量(即代码中的H),这样每当班次号改变之后这个H的值就和它的班次号一样大,这样就可以解决之前提到的问题了。

另外,这个系统要有一个保存文件功能,由于本人对文件保存处理不清楚,设计过程中一直搞不明白。

最后在网上查到了相关信息才可以弄出。

以下是该程序运行的部分结果:

主界面:

信息录入图和浏览时刻表:

售票图:

退票图:

保存信息图:

5总结

经历三天的学习和锻炼,这个车票管理系统算是做出来了(不过我承认我是参考网上代码所得,我基本能看懂)。

它基本有前面提到过的功能,即录入班次信息,浏览班次信息,售票和退票,保存文件。

有一个扩展功能,即可以退出系统(代码中的sys_exit()函数)。

不过目前我发现它一个不足之出,就是不能对输入时间的格式起限制作用。

如我可以输入25:

00:

00,它系统不会提示说输入错误提示再输入一个正确的时间。

还有,就是整个代码条理不够清晰,只是用到一个主函数和调用其他函数,可读性差!

我认为最好是能分模块化处理,分文件处理,这样条理性强,可读性高,再者修改也容易。

不过由于本人水平有限,不能这样处理。

经历这三天的锻炼,我也比较满意自己的表现。

在这过程中我查阅了很多书,学到了很多课堂上没有的东西。

很多知识我之前不知道的现在大部分都知道了,不过理解不够深透,,导致在这三天里碰了不少壁!

三天我觉得编程既是一项费时费力但也是有趣的十。

说它费时费力是因为它繁琐,而有趣是因为我很享受一段段的小程序编成功之后的喜悦,苦尽干来啊。

我觉得编程是一件快乐的差事,我想我今后会加把时间学习它,把它学好。

我觉得有一点不满意的是课程设计的时间太短和学C的课时过少。

C语言作为我们专业的基础课,是一项重要的课程。

除了需要本人的努力外,我觉得学校也应该给我们提供个良好的学C语言的氛围!

7.附录

程序代码:

#include"

stdio.h"

time.h"

windows.h"

string.h"

dos.h"

stdlib.h"

ctype.h"

#defineMax50//最大贮赌量

#definenull0

staticintH=0;

structTimes

{//定义时钟

inthour;

intmin;

intsec;

};

structBuses{//定义汽车

intnumber;

structTimestime;

charstart[30];

charend[30];

floattime_cost;

intcarry_number;

intbooK_number;

structBusesbus[Max];

time_tnow=time(0);

tm*tnow=localtime(&

now);

voidload()//载入车次信息

voidlu(void);

//声明录入函数

voidchaxun(structBusesbus[]);

//声明查询路线函数

voidsave(structBusesbus[]);

//声明保存函数

intcaidan();

//声明菜单录数

voidliulan(structBusesbus[]);

//声明浏览函数

voidtuipiao(structBusesbus[]);

//退票

voidshoupiao(structBusesbus[]);

//声明售票函数

voidxitongtuichu();

//声明退出函数

//工具函数

structBusescopy(structBusesb1,structBusesb2);

//赋值

voidsort_time(structBusesbus[]);

//声明按时间发车的先后顺序排序

intcompare_time(structTimest1,structTimest2);

//时间比较函数

intcompare_systime(structBusesbus,tm*T);

//比较发车时间与当前系统时间的函数

voidprint(structBusesbus);

//声明输入出函数

intnumber_search(structBusesbus[],intnum);

//声明按班次查询函数

intend_search(structBusesbus,charends[]);

//声明按终点查询函数

voidmain(){//主函数

while

(1){

system("

cls"

);

switch(caidan()){

case1:

lu();

break;

case2:

liulan(bus);

case3:

chaxun(bus);

case4:

shoupiao(bus);

case5:

tuipiao(bus);

case6:

save(bus);

case0:

xitongtuichu();

intcompare_systime(structBusesbus,tm*T){//与系统时间的比较函数

if(bus.time.hour>

=T->

tm_hour){

return1;

if(bus.time.min>

tm_min){

if(bus.time.sec>

T->

tm_sec)

elsereturn0;

return0;

structBusescopy(structBusesb1,structBusesb2){

b1.booK_number=b2.booK_number;

b1.carry_number=b2.carry_number;

strcpy(b1.end,b2.end);

b1.number=b2.number;

strcpy(b1.start,b2.start);

b1.time.hour=b2.time.hour;

b1.time.min=b2.time.min;

b1.time.sec=b2.time.sec;

b1.time_cost=b2.time_cost;

returnb1;

voidliulan(structBusesbus[]){//浏览车次

getchar();

inti;

printf("

\n\t\t\t\t车辆时刻表\n"

\t\t\t**************************\n"

\t班次发车时间起点站终点站行车时间额定载量已定票人数"

\n\t--------------------------------------------------------------\n"

sort_time(bus);

for(i=0;

i<

H;

i++){

print(bus[i]);

\t--------------------------------------------------------------\n"

\t\t\t\t%d条记录!

\n"

H);

\t按任意键返回主菜单..."

intcompare_time(structTimest1,structTimest2){//比较时间大小

if(t1.hour>

t2.hour){

if(t1.min>

=t2.min){

if(t1.sec>

=t2.sec)

voidsort_time(structBusesbus[]){//按发车时间排序

inti,j,k;

structBusesb={0};

H-1;

k=i;

for(j=i+1;

j<

j++){

if(compare_time(bus[i].time,bus[j].time)){

k=j;

if(k!

=i){

b=copy(b,bus[i]);

bus[i]=copy(bus[i],bus[k]);

bus[k]=copy(bus[k],b);

intnumber_search(structBusesbus[],intn){//按班次查询

if(bus[i].number==n)

returni;

return-1;

intend_search(structBusesbus,charends[]){//按终点站查询

if(strcmp(bus.end,ends)==0)

else

voidprint(structBusesbus){

if(!

compare_systime(bus,tnow))

\t%-6d%-2d:

%-2d:

%-2d%6s%8s%8.1f%10d%10d(已发出)\n"

bus.number,bus.time.hour,

bus.time.min,bus.time.sec,bus.start,bus.end,bus.time_cost,bus.carry_number,bus.booK_number);

%-2d%6s%8s%8.1f%10d%10d\n"

intcaidan(){

inta;

//以下是菜单图案

\n\n"

\t\t车票管理系统\n"

\t\t*****************(%d年%d月%d日)\n"

1900+tnow->

tm_year,tnow->

tm_mon+1,tnow->

tm_mday);

\t\t|----------------------------------------------|\n"

\t\t|菜单|\n"

\t\t|

(1)录入班次信息|\n"

\t\t|

(2)显示班次信息|\n"

\t\t|(3)查询班次信息|\n"

\t\t|(4)售票|\n"

\t\t|(5)退票|\n"

\t\t|(6)保存车次信息|\n"

\t\t|(0)退出系统|\n"

\n\t\t请选择(0-6):

scanf("

%d"

&

a);

return(a);

voidsave(structBusesbus[]){//保存函数体

FILE*fp;

if((fp=fopen("

Bus_system"

"

wb"

))==null){

不能打开文件\n"

return;

i++)

if(fwrite(&

bus[i],sizeof(structBuses),1,fp)!

=1)

文件保存出错!

fclose(fp);

文件保存成功!

voidlu(){//录入函数

inti=H,f=1;

charflag='

Y'

;

while(toupper(flag)=='

){

\n\t\t车次信息录入\n请输入车的班次:

bus[i].number);

while(number_search(bus,bus[i].number)>

=0){

你输入的班次已存在请重新输入!

:

请输入时间如:

(20:

30:

00):

%d:

bus[i].time.hour,&

bus[i].time.min,&

bus[i].time.sec);

请输入车的起点站:

%s"

bus[i].start);

请输入车的终点站:

bus[i].end);

请输入行车时间:

%f"

bus[i].time_cost);

请输入车的额定载量:

bus[i].carry_number);

bus[i].booK_number=0;

H++;

i++;

信息录入成功!

继续录入请按(Y),返回主菜单按任意键..."

flag=getchar

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

当前位置:首页 > 农林牧渔 > 林学

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

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