版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书NoPAGE4PAGE沈阳大学1.设计的目的在一年的C语言的学习中,使得我掌握了许多的C语言的专业知识,为了能够提高自己的调试运行程序的能力,巩固自己知识,我设计了一个小型的程序,来给他人带来更多的方便。从而也增强了我的综合运用理论知识来分析和解决实际问题的能力,使我受到很大的帮助。我的选题是飞机订票系统的设置,在如今快速发展的时代,我们的交通工具也越来越趋向高速化,方便化,而飞机奔走两地又是十分的快捷的,随着更多的人的乘坐,我们就应该更方便的为客户服务,下面设置一个简单的飞机订票系统的C语言程序,可运用于小的管理软件。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足用户的需要。
2.设计方案论证2.1设计思路通过建立一个函数[1],确定航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额,完成飞机订票系统。主函数可以调用子函数[2],分别完成输入信息,保存信息,读取信息,输出信息,排序,查找信息,订票命令。在主函数中可以设置调用子函数[3],分别按相应的数字键,则分别可以执行某个功能模。主要功能模块即如图1所示:飞机订飞机订票系统输出信息读取信息保存信息输入信息排序查找信息订票命令图1飞机订票系统主要功能模块2.2设计方法根据所构想的功能及模块设计出与之相对算法并建立函数来实现功能[4]。①数据结构体的定义:将一个货物的信息作为一个结构体,由于利用链表所以在结构体中别忘记指向后继结点的指针。如下intcount;}p[1];read();for(j=0;j<(m-1);j++)for(i=0;i<(m-(1+j));i++)②通过主函数进行程序调用及连接以下函数[5]:read():读取航班信息功能函数,运用if,for,scanf,printf,scanf等进行课程名称信息查询;paixu():按航班信息输出功能函数,运用if,for,scanf,printf,scanf,printf等进行航班名称信息查询;search():按航班号查询信息功能函数,运用if,for,scanf,printf,scanf,printf等进行航班名称信息查询;dingpiao()订票功能函数,运用if,for,scanf,printf,scanf,printf等进行航班名称信息查询。(1)读取航班信息开始开始定义文件文件出错打印出错提示创建文件失败打印出错关闭文件关闭图2读取航班信息流程图(2)输出航班信息输出输出模块定义字符串变量航班号起始点终结点时间机票数打印信息开始结束图3输出航班信息流程图(3)查询航班信息定义文件定义文件输入航班号查找航班信息输出航班信息开始结束图4查找航班信息流程图(4)订票定义预订票数量定义预订票数量定义字符串变量输入所订机票数读取所订机票数输入有效机票不符合订票成功符合开始结束图4订票流程图
2.3源程序#include<stdio.h>//标准输入、:输出头文件#include<string.h>//包含字符串函数处理头文件#include<stdlib.h>//包含动态存储与释放函数头文件#defineN1000structair//定义结构体数组{intnum;charstart[20];charover[20];chartime[10];intcount;}s[N];inti;intm=0;#definePRINT“%-d%12s%12s%10s%12d\n”,s[i].num,s[i].start,s[i].over,s[i].time,s[i].count//定义输出格式voidinput();//输入航班信息voidprint();//输出航班信息voidsave();//保存航班信息voidread();//读取航班信息voidpaixu();//对所有航班按航班号排序voidsearch();//查找航班信息voiddingpiao();//订票信息voidmain(){intj;printf(“★您好,欢迎进入自动化飞机订票系统!★\n”);printf(“================================================================================\n”);do{printf(“**☆1.输入航班信息☆**\n\n”“**☆2.浏览航班信息☆**\n\n”“**☆3.查找航班信息-☆**\n\n”“**☆4.对航班按航班号排序☆**\n\n”“**☆5.订票信息—☆**\n\n”“**☆0.退出-☆**\n\n”“**☆☆**\n\n”“**☆**\n\n”“**☆☆**\n\n”);printf(“================================================================================\n”);printf(“请在0-5中选择以回车键结束:\n\n”);scanf(“%d”,&j);switch(j){case1:input();//调用输入模块break;case2:print();//调用打印模块break;case3:search();//调用查找模块break;case4:paixu();//调用排序模块break;case5:dingpiao();//调用订票模块break;case0:;break;}}while(j!=0);//判断结束printf(“谢谢使用,再见!\n”);}//主函数结束voidinput()//打印模块程序{printf(“请依次输入航班信息(航班号,起始站,终点站,起飞时间,机票数):\n\n”);//打印提示信息printf(“\n”);for(i=0;i<N;i++){inty;printf(“请输入航班号:\n”);scanf(“%d”,&s[i].num);//读取航班号printf(“请输入起始站:\n”);scanf(“%s”,s[i].start);//读取起始站printf(“请输入终点站:\n”);scanf(“%s”,s[i].over);//读取终点站printf(“请输入时间:\n”);scanf(“%s”,s[i].time);//读取时间printf(“请输入机票数(机票数为0结束输入):\n”,m);scanf(“%d”,&s[i].count);//读取机票数m++;printf(“第%d个信息已经输完是否继续?按1-9任意数字继续,按0结束”,m);scanf(“%d”,&y);if(y==0){save();//将结构体信息存盘print();//输出输入的航班信息break;}}}voidsave()//保存模块程序{FILE*fp,*fp1;//定义文件指针if((fp=fopen(“chen.dat”,”wb”))==NULL)//打开文件并判断是否出错{printf(“创建文件失败!\n\n”);//打印出错提示getchar();return;}if((fp1=fopen(“hao.dat”,”wb”))==NULL)//打开文件并判断是否出错{printf(“创建文件失败!\n\n”);//打印出错提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(structair),1,fp)==0)//向文件写入数据,并判断是否出错printf(“向文件输入数据失败!\n\n”);fprintf(fp1,”%d”,m);fclose(fp);//关闭文件fclose(fp1);//关闭文件}voidread()//从文件读取信息模块{FILE*fp,*fp1;//定义文件指针if((fp=fopen(“chen.dat”,”rb”))==NULL)//打开文件,并判断是否出错{printf(“出错,请检查文件是否存在,按任意键返回住菜单”);//打印出错提示getchar();}if((fp1=fopen(“hao.dat”,”rb”))==NULL)//打开文件并判断是否出错{printf(“创建文件失败!\n\n”);//打印出错提示getchar();return;}fscanf(fp1,”%d”,&m);fclose(fp1);//关闭文件for(i=0;i<m;i++){fread(&s[i],sizeof(structair),1,fp);//从文件中读取信息}fclose(fp);//关闭文件}voidprint()//打印模块{charw[10];read();//调用读取文件函数printf(“航班号起始站终点站时间机票数\n”);for(i=0;i<m;i++){printf(PRINT);//打印信息}printf(“请按任意键回车键结束返回上层菜单:\n”);scanf(“%s”,w);}voidpaixu()//对所有航班按航班号排序{intj;structpai{intno;charname1[20];charname2[20];chartime[20];intcount;}p[1];read();for(j=0;j<(m-1);j++)for(i=0;i<(m-(1+j));i++){if(s[i].num>s[i+1].num){p[0].no=s[i].num;//替换航班号strcpy(p[0].name1,s[i].start);//替换其始站strcpy(p[0].name2,s[i].over);//替换终点站strcpy(p[0].time,s[i].time);//替换时间p[0].count=s[i].count;//替换机票数s[i]=s[i+1];s[i+1].num=p[0].no;//替换航班号strcpy(s[i+1].start,p[0].name1);//替换其始站strcpy(s[i+1].over,p[0].name2);//替换终点站strcpy(s[i+1].time,p[0].time);//替换时间s[i+1].count=p[0].count;//替换机票数}}save();print();}voidsearch()//查询模块{charii[10];intno;do{printf(“请输入你要找的航班号:\n\n”);//打印查询方式菜单scanf(“%d”,&no);//航班号read();//调用读取函数for(i=0;i<m;i++){if(s[i].num==no)//按航班号判断输出条件{printf(“\n查找航班信息成功!\n”);printf(“航班号起始站终点站时间机票数\n”);printf(PRINT);//打印信息break;}}no=0;//将航班号赋值为0printf(“没有您需要的信息或查找完毕:\n\n”“是否继续查找?请键入yes或no以回车键结束\n”);scanf(“%s”,ii);}while(strcmp(ii,”yes”)==0);//判断结束}voiddingpiao()//订票模块{intn;chara[10];do{search();//调用查询模块printf(“请输入您要订的机票数以回车键结束:\n”);scanf(“%d”,&n);//读取所订机票数if(n<0){printf(“请输入有效的机票数!\n”);//判断机票数是否出错break;}if(s[i].count!=0&&s[i].count>=n)//判断是否出错{s[i].count=s[i].count-n;save();//调用保存函数printf(“订票成功!\n\n”);break;}if(s[i].count<n)//判断是否出错{printf(“请输入有效的机票数:\n”);break;}printf(“是否继续?请输入yes或no以回车键结束:\n”);//判断是否继续订票scanf(“%s”,a);}while(!strcmp(a,”yes”));//判断结束}
3.设计结果与分析①在MicrosoftVisualC++6.0环境中输入源程序,在没有提示错误的情况下编译,生执行文件.在输入1键回车后提示输入飞机的航班号、起始点、终止点、时间、票数,用户可以把要输入的信息按要求进行输入。图5运行程序进入主菜单界面运行主函数时,进行airfile()文件的读取,该函数是一个菜单函数,用Switch语句来读取飞机的航班的个信息。根据用户的选择数据,分别调用其他自定义函数,实现了函数的调用。②在输入2回车后提示输入飞机的航班号、起始点、终止点、时间、票数,用户可以把要输入的信息按要求进行输入。图6输入飞机航班界面是调用函数add()的结果,再add()函数中,首先用scanf函数接收用户输入并用prinf输出输入的航班信息.,用fopen函数进行打来文件判断是否出错,用fclose关闭文件,用fread进行读取文件。③在输入3按回车键,输入航班的航班号,起始站,终点站,时间,票数,再按0键结束程序,此时程序会显示出输入的所有的航班信息。图7结束输入指定的航班信息界面是调用函数add()的结果,再add()函数中,首先用scanf函数接收用户输入的航班信息,当输入的信息完成时,就输入0按回车键,就不再输入飞机的订票情况,,此时会显示所有输入进去的信息④按任意键返回上层菜单,并且输入3查找航班信息,输入你要查找的飞机的航班号,就会显示你要找的飞机的信息。图8查找航班信息先用intno定义输入的航班号,然后用printf输入你要找的航班号,再用read()读取函数来查找航班用search()查找航班信息,用for循环来进行飞机航班的查询,当查找信息完毕后,继续进行下一项。⑤当系统完成上一个功能,显示是否要继续查找时,输入no,就要再次返回上层菜单,这时你输入5按回车键,输入你要订的飞机航班号,就会查找并显示订票成功。图9进行订票用dingpiao()函数完成订票功能,用先调用search输入航班的票数,用scanf读取所订票数,再输入有效票数,用save()调用保存函数,看是否订票成功,再继续进行。4.设计体会我这次在C语言程序设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某高中副校长在11月升旗活动上的讲话
- 2023年中考地理模拟卷(四)
- 湛江-PEP-2024年10版小学三年级下册英语第5单元寒假试卷
- 《管理学原理》期末考试复习题库(含答案)
- 骨盆骨折护理常规
- 云南省大理市2024-2025学年高三年级上册规模化统一检测地理试题(含答案)
- 2023年群路密码机系列投资申请报告
- 2024年密封垫及类似接合衬垫项目资金筹措计划书代可行性研究报告
- 强化财政投融资体制促进积极财政政策的实施
- 耐高温自润滑聚酰亚胺复合材料
- 2024年湖北省人才发展集团有限公司社会招聘8人笔试模拟试题及答案解析
- 2024年道路运输企业安全生产管理人员考试试题题库
- 《巧用形状突重点》说课稿
- 幼儿园文学活动的设计与指导课件
- 卫生院24小时值班制度
- 开源软件漏洞分析方法研究
- 【8物(科)期中模拟】合肥市2023-2024学年八年级上学期期中模拟物理作业试卷
- 手工木工(高级)技能认定理论考试题库大全-下(判断题)
- 情商与智慧人生学习通超星期末考试答案章节答案2024年
- 第一、二单元语文园地巩固练习-2024-2025学年语文六年级上册统编版
- 探究与发现对勾函数图象和性质 教学设计-2023-2024学年高一上学期数学人教A版(2019)必修第一册
评论
0/150
提交评论