沈阳航空航天大学C语言课程设计火车站售票系统.docx

上传人:b****6 文档编号:6033229 上传时间:2023-01-03 格式:DOCX 页数:16 大小:172.17KB
下载 相关 举报
沈阳航空航天大学C语言课程设计火车站售票系统.docx_第1页
第1页 / 共16页
沈阳航空航天大学C语言课程设计火车站售票系统.docx_第2页
第2页 / 共16页
沈阳航空航天大学C语言课程设计火车站售票系统.docx_第3页
第3页 / 共16页
沈阳航空航天大学C语言课程设计火车站售票系统.docx_第4页
第4页 / 共16页
沈阳航空航天大学C语言课程设计火车站售票系统.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

沈阳航空航天大学C语言课程设计火车站售票系统.docx

《沈阳航空航天大学C语言课程设计火车站售票系统.docx》由会员分享,可在线阅读,更多相关《沈阳航空航天大学C语言课程设计火车站售票系统.docx(16页珍藏版)》请在冰豆网上搜索。

沈阳航空航天大学C语言课程设计火车站售票系统.docx

沈阳航空航天大学C语言课程设计火车站售票系统

沈阳航空航天大学

课程设计

学号

班级

姓名

指导教师郭建新

2013年8月30日

沈阳航空航天大学

课程设计任务书

系:

材料科学与工程专业:

金属材料工程班级:

24110102

学号:

题目:

火车站售票系统

一、课程设计时间

2013~2014第1学期第1周,共计1周,20学时。

二、课程设计内容

用C语言编写软件完成以下任务:

每天“沈阳→大连”有5次的火车(假设),具体的数据如下:

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

D106:

405000

D209:

306000

A113:

008000

A216:

008000

L120:

005000

请你开发一个小程序,以完成每天的“沈阳→大连”的售票业务。

要求如下:

①能够售票和退票。

②某个车次已经过了开车时间,则该班次今天不再售票。

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

三、课程设计要求

程序质量:

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

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

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

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

课程设计说明书:

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

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

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、成绩

六、教师评语

 

 

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是存储函数(save)、卖票函数、退票函数、定售总金额、退出。

1.增强了程序的实用性,使系统用户界面友好、功能明确、操作方便,应采取直接用printf函数的方式在界面上输出可供用户选择的菜单。

据此应该能够很好的完成要求

2.售票系统要求存储当天各个车次售票情况,所以程序需要定义结构体变量存储售票情况。

系统的整体功能通过记录当天各个车次了解售票情况。

编程时采取模块化设计思想,设计主函数,通过主函数中的switch分支选择调用各子函数以实现该系统的各种功能。

然后设计相应的子函数来执行系统的各种功能,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

二、程序流程图

1程序总体结构图

输入k

k=1?

真假

查询当前

售票情况

k=2?

真假

售票

k=3?

真假

退票

k=4?

真假

保存当前车次售票情况

k=0?

真假

退出

图1程序总体结构图

2函数功能图

(1)退票函数tuipiao

图2.退票函数结构图

(2)卖票函数sell

图3.售票函数结构图

 

三、主要界面截图

图4.主界面截图

图5.查询界面截图

图6.售票界面截图

图7.退票界面截图

图8.保存界面截图

图9.退出界面截图

四、关键技术分析

核心技术的实现方法和程序段:

本函数由六个自定义函数和一个主函数组成,其中主函数以菜单形式调用其他函数来实现要求的所有功能。

主函数分别调用保存函数(save)、读取函数、卖票函数、退票函数、订票总金额、退出。

程序中较为核心的部分,具体分析如下:

1保存函数

通过使用fopen函数和fprintf函数进行文件的打开与数据的输入。

voidsave()//向文件里存

{

FILE*fp;

inti;

if((fp=fopen("d:

\\myfile.txt","w+"))==NULL)

{

printf("cannotopenthisfile\n");

return;

}

for(i=0;i

fprintf(fp,"%2s%5s%3s%3d%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

fclose(fp);

printf("\n");

printf("******数据保存成功!

******\n");

printf("请输入相应的数字继续操作\n");

}

2查询函数

通过比较函数strcmp进行班次的选择,在通过for函数与printf函数来实现结果的输出。

voidchecheng()//查询售票情况

{

inti;

chara[50];

printf("请输入所需查询的班次\n");

scanf("%s",a);

for(i=0;i

{if(strcmp(stu[i].banci,a)==NULL)

{printf("\n******查询售票结果******\n");

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

printf("%2s%5s\t%3s%3d\t\t%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

}

}

}

3售票系统:

定义数组存储从获得的数字,为了能够多次输入,我们可以构造像for(i=0;i

本函数结束,退出。

voidsell()//售票fprintf()fscanf()

{

inti,n;

chara[50];

{

inti;

{

printf("\n******沈阳-大连火车售票系统******\n");

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

for(i=0;i

printf("%2s%5s%3s%3d%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

}

}

printf("请输入您要购买的班次\n");

scanf("%s",a);

printf("请输入您要购买的票数\n");

scanf("%d",&n);

for(i=0;i

if(strcmp(stu[i].banci,a)==NULL)

{stu[i].shoupiao=stu[i].shoupiao+n;

stu[i].yupiao=stu[i].yupiao-n;

printf("******购票成功******\n");

{printf("\n******沈阳-大连火车售票系统******\n");

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

for(i=0;i

printf("%2s%5s%3s%3d%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

}

save();

}

}

4退票系统

退票功能的实现与购票功能的原理相同。

5.读取文件

通过fopen函数和指针的运用来实现文件的读取。

voidread()

{

FILE*fp;

inti=0;

if((fp=fopen("d:

\\myfile.txt","w+"))==NULL)

{

printf("文件打开失败!

\n");

return;

}

else

{

for(i=0;!

feof(fp);i++)

fread(&stu[i],sizeof(structstud),1,fp);

}

fclose(fp);

}

五、个人总结

这是我大学以来第一次的课设,通过这次课设,更加锻炼了我的能力,也使我对C语言有了更加深刻的理解。

在这五天中,拿着课题的我,不断思考着,要通过怎样的方法去实现它的功能。

通过不断的查阅资料,使我更加开阔了我的眼界,在编译过程中,问题不断的出现,每一个细节问题,都将成为成功的绊脚石,每一次的修改过后新的问题又不断的出现,通过这次课设使我了解了细节决定成败,C语言的编译过程中需要大量的细心和耐心。

希望在以后的生活中,对待每一件事情,都像在做课设过程中那样要有细心和耐心。

六、参考文献

谭浩强.C程序设计.北京:

清华大学出版社,2005

七、源程序

#include//声明需要的库文件

#include

#include

#include

#include

#defineSIZE5//符号常量。

voidchecheng();//这里对所有定义的函数进行申明

voidsave();

voidsell();

voidtuipiao();

voidtopic();

voidmenu();

voidread();

structstud//这里定义结构体类型和变量,用于存放信息

{

charbanci[30];

chartime[30];

charchengzailiang[30];

intshoupiao;

intyupiao;

}

stu[SIZE]={

{"D1","06:

40","500",0,500},

{"D2","09:

30","600",0,600},

{"A1","13:

00","800",0,800},

{"A2","16:

00","800",0,800},

{"L1","20:

00","500",0,500}

};

voidmain()

{

intk;

topic();

getchar();

while

(1)

{

menu();

scanf("%d",&k);

switch(k)

{

case1:

checheng();break;

case2:

sell();break;

case3:

tuipiao();break;

case4:

save();break;

case0:

return;

}

}

}

voidtopic()

{

printf("****************************************************\n");

printf("**********************************************\n");

printf("****\n");

printf("**HUOCHEZHANSHOUPIAOXITONG**\n");

printf("**HUANYINGJIRU**\n");

printf("****\n");

printf("**********************************************\n");

printf("****************************************************\n");

printf("Allrightsarepro.byWQ.,2013.8.27\n");

printf("****************************************************\n");

}

voidmenu()

{

printf("*****************************************************");

printf("\n1查询当前售票情况");

printf("\n2购票");

printf("\n3退票");

printf("\n4保存数据");

printf("\n0退出");

printf("\n选择0~5继续");

}

voidchecheng()//查询售票情况

{

inti;

chara[50];

printf("请输入所需查询的班次\n");

scanf("%s",a);

for(i=0;i

{if(strcmp(stu[i].banci,a)==NULL)

{printf("\n******查询售票结果******\n");

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

printf("%2s%5s\t%3s%3d\t\t%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

}

}

}

voidsave()//向文件里存

{

FILE*fp;

inti;

if((fp=fopen("d:

\\myfile.txt","w+"))==NULL)

{

printf("cannotopenthisfile\n");

return;

}

for(i=0;i

fprintf(fp,"%2s%5s%3s%3d%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

fclose(fp);

printf("\n");

printf("******数据保存成功!

******\n");

printf("请输入相应的数字继续操作\n");

}

voidsell()//售票fprintf()fscanf()

{

inti,n;

chara[50];

{

inti;

{

printf("\n******沈阳-大连火车售票系统******\n");

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

for(i=0;i

printf("%2s%5s%3s%3d%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

}

}

printf("请输入您要购买的班次\n");

scanf("%s",a);

printf("请输入您要购买的票数\n");

scanf("%d",&n);

for(i=0;i

if(strcmp(stu[i].banci,a)==NULL)

{stu[i].shoupiao=stu[i].shoupiao+n;

stu[i].yupiao=stu[i].yupiao-n;

printf("******购票成功******\n");

{printf("\n******沈阳-大连火车售票系统******\n");

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

for(i=0;i

printf("%2s%5s%3s%3d%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

}

save();

}

}

voidtuipiao()//退票

{

inti,n;

chara[50];

{

printf("\n******沈阳-大连火车售票系统******\n");

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

for(i=0;i

printf("%2s%5s%3s%3d%3d\n",stu[i].banci,stu[i].time,stu[i].chengzailiang,stu[i].shoupiao,stu[i].yupiao);

}

printf("请输入您要退的班次\n");

scanf("%s",a);

printf("请输入您要退的票数\n");

scanf("%d",&n);

for(i=0;i

if(strcmp(stu[i].banci,a)==NULL)

{stu[i].shoupiao=stu[i].shoupiao-n;

stu[i].yupiao=stu[i].yupiao+n;

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

当前位置:首页 > 自然科学

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

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