04033014简单的汽车站售票系统.docx

上传人:b****4 文档编号:4008977 上传时间:2023-05-06 格式:DOCX 页数:16 大小:47.91KB
下载 相关 举报
04033014简单的汽车站售票系统.docx_第1页
第1页 / 共16页
04033014简单的汽车站售票系统.docx_第2页
第2页 / 共16页
04033014简单的汽车站售票系统.docx_第3页
第3页 / 共16页
04033014简单的汽车站售票系统.docx_第4页
第4页 / 共16页
04033014简单的汽车站售票系统.docx_第5页
第5页 / 共16页
04033014简单的汽车站售票系统.docx_第6页
第6页 / 共16页
04033014简单的汽车站售票系统.docx_第7页
第7页 / 共16页
04033014简单的汽车站售票系统.docx_第8页
第8页 / 共16页
04033014简单的汽车站售票系统.docx_第9页
第9页 / 共16页
04033014简单的汽车站售票系统.docx_第10页
第10页 / 共16页
04033014简单的汽车站售票系统.docx_第11页
第11页 / 共16页
04033014简单的汽车站售票系统.docx_第12页
第12页 / 共16页
04033014简单的汽车站售票系统.docx_第13页
第13页 / 共16页
04033014简单的汽车站售票系统.docx_第14页
第14页 / 共16页
04033014简单的汽车站售票系统.docx_第15页
第15页 / 共16页
04033014简单的汽车站售票系统.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

04033014简单的汽车站售票系统.docx

《04033014简单的汽车站售票系统.docx》由会员分享,可在线阅读,更多相关《04033014简单的汽车站售票系统.docx(16页珍藏版)》请在冰点文库上搜索。

04033014简单的汽车站售票系统.docx

04033014简单的汽车站售票系统

沈阳航空工业学院

课程设计

学号_200704033014

班级_7403301_____

姓名_李振达____

指导教师___王晓岩_____

2009年3月6日

沈阳航空工业学院

课程设计任务书

院系:

航空宇航工程学院专业:

飞行器设计与工程班级:

7403301

学号:

200704033014题目:

简单的汽车站售票系统

一、课程设计时间

2008~09第2学期第1周,共计1周,20学时。

二、课程设计内容

用C语言编写程序完成以下任务:

每天“沈阳→植物园”有5个班次的汽车(假设),具体的数据如下:

班次发车时间载客量已售票数

106:

40500

209:

30400

313:

00400

416:

00400

520:

00500

请你为售票员开发一个小程序,以完成每天的“沈阳→植物园”的售票业务。

要求如下:

(1)售票:

应能够控制每人只允许买5张票,且不能购买已经发车的车票(取当前时间函数由老师提供)。

(2)退票:

已经发车的车票不能退(取当前时间函数由老师提供)。

(3)可以随时显示售票现状,并以文件(myfile.txt)形式保存当天各个车次的售票情况。

三、课程设计要求

1.程序质量:

✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2.课程设计说明书:

课程结束后,上交课程设计说明书和源程序。

课程设计说明书的格式和内容参见提供的模板。

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、说明书成绩

六、教师评语

目录

一、需求分析。

1

二、程序流程图。

2

三、核心技术的相关说明及相应程序段。

5

四、参考文献。

6

五、个人总结。

6

六、源程序。

7

一、需求分析

通过对任务书内容的详细了解和深入的思考得知,整个程序可以分为三大部分.定义变量,输入数据,输出数据。

在整个程序的执行过程当中,随处都体现了方便乘客购票、退票、查询售票与车次的思想,并且结合结构体与文件的读写来储存数据,以实现售票的数据化管理。

用户界面友好,功能明确,操作方便。

信息表达清楚明确。

1.定义变量:

声明结构体,定义变量,为变量赋初值,为下一步工作做好准备。

2.输入数据:

用户可以按自己意愿输入车次进行查询,进而根据售票情况进行自主的选择够票。

3.输出数据:

根据用户的需要输出车次、时间、售票情况等数据,以方便用户了解情况。

程序结束后还有退出功能,增加了程序的可操控性。

二、程序流程图

1、程序总体结构图

功能菜单

真输入1假

真输入2假

search输入3

查寻local真假

times

函数真输入4假

当地sell

时间输入5

买票return真假

函数退票save输入6

函数储存真假

函数exit

图1程序总体结构图

 

2、售票函数sell()结构图

显示所有车次的售票情况

输入车次scanf(“%s”,a)

输入买票数目scanf(“%d”,&m)

for(i=0;i

if(strcmp(ST[i].NO,a)==0)

真判断车次是否符合假

时间是否符合

真假

输出购买情况

再次显示售票情况

储存函数save()

图2售票函数sell结构图

 

3、退票函数leave()结构图

显示当前售票情况

输入车次scanf(“%s”,a)

输入退票数目scanf(“%d”,&m)

for(i=0;i

if(strcmp(ST[i].NO,a)==0)能否退票

真判断车次是否符合假

退票成功输入错误

显示退票结果

储存函数save()

图3退票函数leave结构图

4、储存函数save()结构图

fp=fopen(“myfile.txt”,"w+"))==NULL

真假

 

文件无法读取for(i=0;i

 

输入数据

返回return

关闭文件

储存成功

图4储存函数save结构图

三、核心技术的实现说明及相应程序段

下面对程序做以详细介绍:

(1)structbuses/*定义结构体*/

{

charnumber[10];/*各结构体名称*/

charstarttime[20];

charzaikeliang[20];

intsold;

intremainder;

}buses[N]={{"01","06:

40","50",0,50},/*对结构体输入数据*/

{"02","09:

30","40",0,40},

{"03","13:

00","40",0,40},

{"04","16:

00","40",0,40},

{"05","20:

00","50",0,50}

};

关于结构体:

在我的程序中需要使用结构体,将不同类型的数据(车次,发车时间,载客量,售出票和剩余车票)组合成一个有机的整体,以便于引用上面的程序中,指定了一个结构体structbuses,它向编译系统生命这是一个“结构体类型,它包括number,starttime,zaikeliang,sold,remainder”等不同类型的数据项。

(2)voidsave()/*存储函数*/

{

FILE*fp;

inti;

if((fp=fopen("myfile.txt","w+"))==NULL)/*fopen—文件打开*/

{printf("cannotopeninfile\n");

exit(0);

}

for(i=0;i

fwrite(&buses[i],sizeof(buses),1,fp);/*fwrite—把数据项写到指定文件*/

fclose(fp);/*fclose—文件关闭*/

printf("\n");

printf("||||***存储成功!

***||||\n");

printf("请选择相应的数字进行下一步操作!

\n");

}

用fopen()函数来实现打开文件,fopen函数的调用方式通常为:

FILE*fp;

fp=fopen(文件名,使用文件方式);

如上面的程序中:

fp=fopen("myfile.txt","w+");

在打开文件是,通知编译系统以下3个信息:

(1)要打开的文件名,

(2)使用文件的方式(这里为写);(3)让哪一个指针变量指向被打开的文件。

常用下面的方式打开一个文件:

if((fp=fopen("myfile.txt","w+"))==NULL)

{printf("cannotopeninfile\n");

exit(0);

}

四、参考文献

C程序设计(第三版)--谭浩强著清华大学出版社

五、个人总结

通过一周的C语言课设,我进一步熟悉了C语言的一些函数的使用,能够通过看书懂得用文件的打开和关闭函数。

另外,也学会用结构体解决一些分块儿完成的题目要求。

也知道了一些以前都不知道的函数,可以说是拓宽了我的知识面。

虽然在这期间遇到了一些问题(比如,不会使用文件指针等),不过,在上网查询和请教同学之后都解决了,总的来说在这一周的时间里我也学到了不少的东西。

六、源程序

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#include"conio.h"

#include"time.h"

#defineN5

structbuses/*定义结构体*/

{

charnumber[10];

charstarttime[20];

charzaikeliang[20];

intsold;

intremainder;

}buses[N]={{"01","06:

40","50",0,50},

{"02","09:

30","40",0,40},

{"03","13:

00","40",0,40},

{"04","16:

00","40",0,40},

{"05","20:

00","50",0,50}

};

/*声明各函数*/

voidsearch();

voidsave();

voidsell();

voidlocaltimes();

voidtuipiao();

intmenu();

 

intmenu()/*定义菜单*/

{intc;

printf("1.查询显示当前售票情况.\n");

printf("2.显示当前时间.\n");

printf("3.买票.\n");

printf("4.退票.\n");

printf("5.储存数据.\n");

printf("6.退出售票系统.\n");

do{

printf("\n请选择(1-6)继续:

");

scanf("%d",&c);

}while(c<1||c>6);

return(c);

}

 

voidsearch()/*查询函数*/

{inti;printf("请输入要查询的班次\n");

scanf("%d",&i);

i=i-1;

{

printf("\n\n***-------查询结果--------******\n");

printf("班次发车时间载客量已售票数余票\n");

printf("%3s%10s%10s%8d%8d\n",buses[i].number,buses[i].starttime,buses[i].zaikeliang,buses[i].sold,buses[i].remainder);

}

}

 

voidsell()/*售票*/

{

inti,m;

charb[15];

 

{

inti;

{

printf("\n\n***-------售票情况--------******\n");

printf("班次发车时间载客量已售票数余票\n");

for(i=0;i

printf("%3s%10s%10s%8d%8d\n",buses[i].number,buses[i].starttime,buses[i].zaikeliang,buses[i].sold,buses[i].remainder);

}

}

printf("请输入您要购买的班次(格式如:

02):

\n");

scanf("%s",b);

printf("请输入您要购买的票数(格式如:

5):

\n");

scanf("%d",&m);

for(i=0;i

if(strcmp(buses[i].number,b)==0)/*判断班次是否符合*/

{

buses[i].sold=buses[i].sold+m;

buses[i].remainder=buses[i].remainder-m;

printf("***---购买成功---***");

{

printf("\n\n***-------售票情况--------******\n");

printf("班次发车时间载客量已售票数余票\n");

for(i=0;i

printf("%3s%10s%10s%8d%8d\n",buses[i].number,buses[i].starttime,buses[i].zaikeliang,buses[i].sold,buses[i].remainder);

}

save();

}

}

 

voidtuipiao()/*退票*/

{

inti,m;

charb[15];

 

{

printf("\n\n***-------当前情况--------******\n");

printf("班次发车时间载客量已售票数余票\n");

for(i=0;i

printf("%3s%10s%10s%8d%8d\n",buses[i].number,buses[i].starttime,buses[i].zaikeliang,buses[i].sold,buses[i].remainder);

}

printf("请输入您要退的班次(格式如:

02):

\n");

scanf("%s",b);

printf("请输入您要退的张数(格式如:

3):

\n");

scanf("%d",&m);

for(i=0;i

if(strcmp(buses[i].number,b)==0)

if(buses[i].sold-m>=0)

{

buses[i].sold=buses[i].sold-m;

buses[i].remainder=buses[i].remainder+m;

printf("退票成功!

");

printf("\n\n***---------退票结果-----------******\n");

printf("班次||发车时间||载客量||已售票数||余票\n");

for(i=0;i

printf("%4s%10s%7s%8d%8d\n",buses[i].number,buses[i].starttime,buses[i].zaikeliang,buses[i].sold,buses[i].remainder);

save();

}

}

 

voidlocaltimes()/*提取当地时间*/

{

structtm*p;

time_tt;

t=time(NULL);

p=localtime(&t);

printf(asctime(p));

}

voidsave()/*存储函数*/

{

FILE*fp;

inti;

if((fp=fopen("myfile.txt","w+"))==NULL)/*fopen—文件打开*/

{printf("cannotopeninfile\n");

exit(0);

}

for(i=0;i

fwrite(&buses[i],sizeof(buses),1,fp);/*fwrite—把数据项写到指定文件*/

fclose(fp);/*fclose—文件关闭*/

printf("\n");

printf("||||***存储成功!

***||||\n");

printf("请选择相应的数字进行下一步操作!

\n");

}

 

voidmain()

{for(;;)

{

switch(menu())

{

case1:

search();break;

case2:

localtimes();break;

case3:

sell();break;

case4:

tuipiao();break;

case5:

save();break;

case6:

exit(0);/*打开文件失败返回*/

}

}

}

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

当前位置:首页 > PPT模板 > 艺术创意

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

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