武汉科技大学c语言课程设计方案
武汉科技大学
课程设计
学 号_
班 级 _
姓 名 _
指导教师:张雄希
200 9月 5日
武汉科技大学
课程设计
信息科学与技学院 自动化 学号
一、课程设计题目:汽车站售票系统
二、课程设计内容:
每天“火车站→植物园”有5个班次地汽车(假设),具体地数据如下:
班次发车时间载客量已售票数
01 06:40 50 0
02 09:30 40 0
03 13:00 40 0
04 16:00 40 0
05 20:00 50 0
为售票员开发一个小程序,以完成每天地“火车站→植物园”地售票业务.要求如下:
①能够售票和退票.
②某个班次已经过了开车时间,则该班次今天不再售票.
③可以随时显示售票现状,并以文件(myfile.txt)地形式保存当天各个车次地售票情况.
三、课程设计要求:
程序质量:
①贯彻模块化地程序设计思想,以主函数调用各个功能模块.
②用户界面友好,功能明确,操作方便.
③用户界面中地菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项.
目录
一、需求分析1
二、程序流程图2
三、核心技术地实现说明及相应程序段3
四、个人总结5
五、参考文献5
六、源程序5
一、需求分析
通过对任务书内容地详细了解和深入地思考得知,整个程序可以分为三大部分.定义变量,输入数据,输出数据.但是在整个程序地执行过程当中,随处都体现了方便乘客购票、退票、查询售票与车次地思想,并且结合结构体与文件地读写来储存数据,以实现售票地数据化管理. 用户界面友好,功能明确,操作方便.信息表达清楚明确.
定义变量:
声明结构体,定义变量,为变量赋初值,为下一步工作做好准备.
2.输入数据:
用户可以按自己意愿输入车次进行查询,进而根据售票情况进行自主地选择够票.
3.输出数据:
根据用户地需要输出车次、时间、售票情况等数据,以方便用户了解情况.程序结束后还有推出功能,增加了程序地可操控性.
二、程序流程图
三、核心技术地实现说明及相应程序段
下面对程序做以详细介绍:
(1)struct student /*定义结构体*/
{
char banci[10]; /*各结构体名称*/
char facheshijian[20];
char zaikeliang[20];
int maipiao;
int yupiao;
}ST[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}
};
(2)
void tuipiao() /*退票*/
{
int i,m;
char b[15];
{
printf("\n\n***-------当前情况--------******\n");
printf("班次 发车时间 载客量 已售票数 余票 \n");
for(i=0;i
printf("%3s %10s %10s %8d %8d\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);
}
printf("请输入您要退地班次(格式如:02):\n");
scanf("%s",b);
printf("请输入您要退地张数(格式如:3):\n");
scanf("%d",&m);
for(i=0;i
if(strcmp(ST[i].banci,b)==0)
if(ST[i].maipiao-m>=0) /*判断售票数*/
{
ST[i].maipiao=ST[i].maipiao-m;
ST[i].yupiao=ST[i].yupiao+m;
printf("退票成功!!");
printf("\n\n