标准的模航空系统程序分析方案.docx
- 文档编号:29459148
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:30
- 大小:125.16KB
标准的模航空系统程序分析方案.docx
《标准的模航空系统程序分析方案.docx》由会员分享,可在线阅读,更多相关《标准的模航空系统程序分析方案.docx(30页珍藏版)》请在冰豆网上搜索。
标准的模航空系统程序分析方案
飞机订票系统设计任务书
飞机订票每个航班有一航班号、确定的航线<起始站、终点站)、确定的飞行时间<星期几)和一定的成员订额。
提供以下功能:
1、航班信息录入功能<航班信息用文件保存):
―――由黄子健完成
2、航班信息浏览功能:
―――由章东火完成
3、查询航班 :
3.1按航班号查询―――由余姗完成
3.2按终点站查询―――由章东火完成
4、承办订票和退票业务
―――由黄子健余姗完成
时间安排表:
内容
学时
地点
备注
设计动员,布置任务
0.5天
Z1406
18周周一上午
写任务书
0.5天
寝室
18周周一下午
查看资料和已有的类似软件,分析课题应完成的功能,写程序
1.5天
机房图书馆
18周周二
18周周三上午
总体详细设计:
调试写代码
3.0天
机房图书馆
18周周四
18周周五
18周周六
小组组装调试测试修改错误
3.0天
机房寝室
18周周二
19周周三
19周周四
机上验收程序运行效果
1.0
Z1309
19周周五
书写《课程设计报告》
1.0
寝室
目录
1、任务书·················································1
2、前言<需求分析)·········································3
3、概要设计···············································3
4、程序设计功能流程图·····································5
5、详细设计和执行结果·····································6
6、参考资料···············································11
7、心得体会···············································11
8、附录<源程序清单)······································21
前言
1、C语言课程设计的目的:
高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
2、题目
飞机订票系统设计
假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。
每个航班有一航班号、确
定的航线<起始站、终点站)、确定的飞行时间<星期几)和一定的成员订额。
通过该系统来实现机票的订购问题。
1、要求:
试设计一个飞机订票系统,使之能提供下列功能:
1航班信息录入功能(航班信息用文件保存>
2航班信息浏览功能
3查询航线:
(至少一种查询方式>
按航班号查询按终点站查询
4承办订票和退票业务
2、分析:
由于题目要求飞机的订票系统需用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:
在过程中需有浏览、插入、修改、查找、删除航班信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。
概要设计
根据题目要求,可以将系统分为六个模块:
1)系统以菜单方式工作模块;
2)航班信息录入模块;
3)航班信息浏览模块;
4)按航班号和终点站查询模块;
5)按订票和退票模块;
6)加载模块。
系统总体结构
订票系统voidbookticket(>流程图
详细设计
按航班号查找模块:
voidsearch_ID(>
{
inti,m=0。
structplanes。
system("cls">。
printf("\n\nEntertheID:
">。
scanf("%s",s.ID>。
/*输入航班号/
puts("\n--------------------------------------------------------------------">。
printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n">。
for(i=0。
i i++> { if(strcmp(s.ID,ti[i].ID>==0> { m++。 if((m! =0>&&(m%10==0>>/*目的是分屏显示*/ { printf("\n\nPressanykeytocontiune...">。 getchar(>。 puts("\n\n">。 } printf_one(i>。 printf("\n">。 /*调用显示一个记录的函数*/ } } puts("\n--------------------------------------------------------------------">。 getchar(>。 /*按任意健*/ getchar(>。 menu1(>。 } 订票模块: intsearch(>/*查找模块*/ { inti,k。 structplanes。 k=-1。 system("cls">。 printf("\n\n请输入要订票的航班号: ">。 scanf("%s",s.ID>。 /*输入要到达的地方*/ for(i=0。 i i++>/*查找要修改的数据*/ { if(strcmp(s.ID,ti[i].ID>==0> { k=i。 /*找到要修改的记录*/ printf_one(k>。 break。 /*调用显示一个记录的函数*/ } } if(k==-1> { printf("\n\nNOexist! ">。 return-1。 } else returnk。 } voidbook(> { inti。 system("cls">。 printf("欢迎进入售票窗口! \n">。 i=search(>。 if(i! =-1> { if(ti[i].num>=ti[i].max> { printf("\n该趟航班票已售完! ">。 } else { ti[i].num++。 printf("\n订票成功! \n">。 } } else printf("该航班不存在! \n">。 getchar(>。 getchar(>。 /*按任意健*/ menu(>。 } 菜单模块 voidmenu(> { intn,w1。 do { system("cls">。 /*清屏*//*清屏*/ puts("\t\t\t\t飞机售票管理系统! \n\n">。 puts("\t\t*********************MENU*********************\n\n">。 puts("\t\t\t\t1.输入新航班">。 puts("\t\t\t\t2.浏览">。 puts("\t\t\t\t3.航班操作">。 puts("\t\t\t\t4.订票">。 puts("\t\t\t\t5.退票">。 puts("\t\t\t\t6.保存">。 puts("\t\t\t\t7.载入">。 puts("\t\t\t\t8.退出">。 puts("\n\n\t\t**********************************************\n">。 printf("Choiceyournumber(1-8>: []\b\b">。 scanf("%d",&n>。 if(n<1||n>8>/*对选择的数字作判断*/ { w1=1。 printf("yourchoiceisnotbetween1and8,Pleaseinputentertochoiceagain: ">。 getchar(>。 getchar(>。 } elsew1=0。 }while(w1==1>。 /*选择功能*/ switch(n> { case1: enter(>。 break。 /*输入模块*/ case2: browse(>。 break。 /*浏览模块*/ case3: menu1(>。 break。 /*查找模块*/ case4: book(>。 break。 /*订票模块*/ case5: back(>。 break。 /*退票模块*/ case6: save(>。 break。 /*保存模块*/ case7: load(>。 break。 /*加载模块*/ case8: exit(0>。 } } voidmenu1(> { intn,w1。 do { system("cls">。 /*清屏*/ puts("\t\t\t\t飞机售票操作! \n\n">。 puts("\t\t*********************MENU*********************\n\n">。 puts("\t\t\t\t1.按照时间排序">。 puts("\t\t\t\t2.按照航班号查找航班">。 puts("\t\t\t\t3.按照终点站查找航班">。 puts("\t\t\t\t4.返回主菜单">。 puts("\n\n\t\t**********************************************\n">。 printf("Choiceyournumber(1-4>: []\b\b">。 scanf("%d",&n>。 if(n<1||n>4>/*对选择的数字作判断*/ { w1=1。 printf("yourchoiceisnotbetween1and4,Pleaseinputagain: ">。 getchar(>。 getchar(>。 } elsew1=0。 }while(w1==1>。 /*选择功能*/ switch(n> { case1: order(>。 break。 case2: search_ID(>。 break。 case3: serch_end(>。 break。 case4: menu(>。 break。 } } 执行结果: 按航班号查找: 订票: 参考资料: 《C程序设计教程》<第三版)谭浩强著清华大学出版社 心得体会: 经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。 通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,并与同组成员共同完成设计、编写、调试和测试应用程序及编写文档的任务。 附录: 源程序清单: #include #include #include #defineN1000 typedefstructplane { charID[10]。 /*航班代号*/ charBePlace[10]。 /*飞机起飞地点*/ charEnPlace[10]。 /*飞机降落终点*/ chardata[15]。 /*飞机起飞时间*/ intmax。 intprice。 intnum。 }PLANE。 PLANEti[N]。 intn。 voidmenu(>。 voidmenu1(>。 voidinput(inti> { printf("请输入航班代号: \n">。 scanf("%s",ti[i].ID>。 printf("请输入起飞地点: \n">。 scanf("%s",ti[i].BePlace>。 printf("请输入降落地点: \n">。 scanf("%s",ti[i].EnPlace>。 printf("请输入起飞时间: \n">。 scanf("%s",ti[i].data>。 printf("请输入航班的最大载客人数: \n">。 scanf("%d",&ti[i].max>。 printf("请输入航班的票价: \n">。 scanf("%d",&ti[i].price>。 ti[i].num=0。 } voidenter(> { inti。 system("cls">。 printf("请输入航班的数目(0-%d>? : ",N>。 scanf("%d",&n>。 /*要输入的记录个数*/ printf("\n请输入数据\n\n">。 for(i=0。 i i++> { printf("\n请输入第%d航班记录.\n",i+1>。 input(i>。 /*调用输入函数*/ } getchar(>。 menu(>。 } voidprintf_one(inti>/*显示一个记录的函数*/ { printf("%11s%6s%10s%6s%6d%6d%6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num>。 } voidbrowse(> { inti。 system("cls">。 puts("\n--------------------------------------------------------------------">。 printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n">。 for(i=0。 i i++> { printf_one(i>。 printf("\n">。 } getchar(>。 getchar(>。 menu(>。 } voidorder(>/*排序模块(按平均成绩>*/ { inti,j。 structplanes。 system("cls">。 for(i=0。 i i++>/*冒泡法排序*/ { for(j=i+1。 j j++> if(strcmp(ti[i].data,ti[j].data>>0> { s=ti[i]。 ti[i]=ti[j]。 ti[j]=s。 } } browse(>。 } voidsearch_ID(> { inti,m=0。 structplanes。 system("cls">。 printf("\n\nEntertheID: ">。 scanf("%s",s.ID>。 /*输入航班号*/ puts("\n--------------------------------------------------------------------">。 printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n">。 for(i=0。 i i++> { if(strcmp(s.ID,ti[i].ID>==0> { m++。 if((m! =0>&&(m%10==0>>/*目的是分屏显示*/ { printf("\n\nPressanykeytocontiune...">。 getchar(>。 puts("\n\n">。 } printf_one(i>。 printf("\n">。 /*调用显示一个记录的函数*/ } } puts("\n--------------------------------------------------------------------">。 getchar(>。 /*按任意健*/ getchar(>。 menu1(>。 } voidserch_end(> { inti,m=0。 structplanes。 system("cls">。 /*清屏*/ printf("\n\nEntertheendPlace: ">。 scanf("%s",s.EnPlace>。 /*输入要到达的地方*/ puts("\n--------------------------------------------------------------------">。 printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n">。 for(i=0。 i i++> { if(strcmp(ti[i].EnPlace,s.EnPlace>==0> { m++。 if((m! =0>&&(m%10==0>>/*目的是分屏显示*/ { printf("\n\nPressanykeytocontiune...">。 getchar(>。 puts("\n\n">。 } printf_one(i>。 printf("\n">。 /*调用显示一个记录的函数*/ } } puts("\n--------------------------------------------------------------------">。 getchar(>。 /*按任意健*/ getchar(>。 menu1(>。 } voidmenu1(> { intn,w1。 do { system("cls">。 /*清屏*/ puts("\t\t\t\t飞机售票操作! \n\n">。 puts("\t\t*********************MENU*********************\n\n">。 puts("\t\t\t\t1.按照时间排序">。 puts("\t\t\t\t2.按照航班号查找航班">。 puts("\t\t\t\t3.按照终点站查找航班">。 puts("\t\t\t\t4.返回主菜单">。 puts("\n\n\t\t**********************************************\n">。 printf("Choiceyournumber(1-4>: []\b\b">。 scanf("%d",&n>。 if(n<1||n>4>/*对选择的数字作判断*/ { w1=1。 printf("yourchoiceisnotbetween1and4,Pleaseinputagain: ">。 getchar(>。 getchar(>。 } elsew1=0。 }while(w1==1>。 /*选择功能*/ switch(n> { case1: order(>。 break。 case2: search_ID(>。 break。 case3: serch_end(>。 break。 case4: menu(>。 break。 } } intsearch(>/*查找模块*/ { inti,k。 structplanes。 k=-1。 system("cls">。 printf("\n\n请输入要订票的航班号: ">。 scanf("%s",s.ID>。 /*输入要到达的地方*/ for(i=0。 i i++>/*查找要修改的数据*/ { if(strcmp(s.ID,ti[i].ID>==0> { k=i。 /*找到要修改的记录*/ printf_one(k>。 break。 /*调用显示一个记录的函数*/ } } if(k==-1> { printf("\n\nNOexist! ">。 return-1。 } else returnk。 } voidbook(> { inti。 system("cls">。 printf("欢迎进入售票窗口! \n">。 i=search(>。 if(i! =-1> { if(ti[i].num>=ti[i].max> { printf("\n该趟航班票已售完! ">。 } else { ti[i].num++。 printf("\n订票成功! \n">。 } } else printf("该航班不存在! \n">。 getchar(>。 getchar(>。 /*按任意健*/ menu(>。 } voidback(> { inti,k=-1。 structplanes。 system("cls">。 printf("欢迎进入退票窗口! \n">。 printf("\n\n输入航班代号: ">。 scanf("%s",s.ID>。 /*输入要到达的地方*/ for(i=0。 i i++>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 标准 航空 系统 程序 分析 方案
![提示](https://static.bdocx.com/images/bang_tan.gif)