版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
姓名:陈彬指引教师:刘文中容;通过调试典型例题或习题积累调试C程序经验;通过完毕辅导教材中编程题,逐渐培养学生编程能力、用计算机解决实际问题能力。详细来说:2、进一步理解和运用构造化程设计思想和办法;3、初步掌握开发一种小型实用系统基本办法;4、学会调试一种较长程序基本办法;6、掌握书写程设计开发文档能力(书写课程设计报告);正文(1)课程设计题目原文;航订票系统,使之能提供下列服务:航班信息录入功能(文献保存)信息浏览功能;查询航线(至少一种查询方式)。(2)题目分析(需求分析);任务:通过此系统可以实现如下功能:浏览:航班信息浏览功能需要提供显示操作;线状况(如,输入航班号,起飞到达都市,拟定航班与否满仓);此外要(2)程序:提供键盘式选取菜单以实现功能选取。规定:依照以上功能阐明,设计航班信息,订票信息存储构造,设计程序完毕功能。可以建立航班构造体,构造体成员涉及航班号、起点站、终点站、飞行时间、票总数、已售票数。(3)整体设计与模块划分;依照需求分析,该程序可分为如下四大模块:飞机订票系统(4)代码设计;涉及——各功能模块流程图;重要模块中核心某些代码分析;核心函数算法设(一)主函数(1)分析:主函数功能比较简朴,形式比较简洁,重要功能为:在系统中没有程序所要文献时,为程序建立一种所许文献;调用菜单函数。程序中各模块都要用到同一种文献,如果该文献不存在,则该程序就无法正常运营,增长第一种功能就是保证文献可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序可以以便回到主函数里,因此就建voidmenu(){intnw{puts("\t\t***********************MENU***************************\n\n");puts("\t\t\t\t1.enternewdata");puts("\t\t\t\t2.Browseall");puts("\t\t\t\t3.Search");puts("\t\t\t\t4.exit");puts("\n\n\t\t***************************************************\n");printfChoiceyournumber(1-4):[]\b\b");scanf("%d",&n);{w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:enter();break;case2:Browse();break;case3:Search();break;case4:exit(0);2、输出一种航班信息函数}}/**********************主函数*********************/main(){menu();}(二)公共函数(1)分析:各功能模块中分程序中交错较多,因而,本程序公共函有5个,这使得各功能模块函数显得简洁,这是程序一种特点。此处公共函数功能较为简朴,但她很实(2)程序:1、把航班信息输入到文献中函数。voidinput(i){structflightt;printf("\nflight_nostartstationendstationflytimeplan_ticketsell_ticket\n");scanf("%d%s%s%s%d%d",&t.flight_no,t.startstation,t.endstation,t.flytime,&t.plan_ticket,&t.sell_ticket);fp=fopen("flydata.txt","ab");if(!fp){printf("cannotopenthisfile\n");exit(0);}elsefwrite(&t,sizeof(structflight),1,fp);fclose(fp);}voidprintf_oneflight(inti){printf("\n%5d%20s%20s%10s%4d%4d\n",fly[i].flight_no,fly[i].startstation,fly[i].endstation,fly[i].flytime,fly[i].plan_ticket,fly[i].sell_ticket);}3、输出文献内容构造函数voidprintf_face(){printf("\n\tNO.startstationendstationflytimeplan_ticketsell_ticket\n");}4、载入函数实现文献内容载入程序,并返回飞机航班数值。intload(){FILE*fp;inti;if((fp=fopen("flydata.txt","rb"))==NULL){printf("\nCannotopenfile\n");exit(0);}for(i=0;!feof(fp);i++)fread(&fly[i],sizeof(structflight),1,fp);fclose(fp);return(i-1);}5、返回退出函数实现程序退出、返回。voidprintf_back(){printf("\n\n\tSuccessful.^_^\n\n");scanf("%d",&w);if(w==1)Browse();elsemenu();}(三)航班基本信息输入模块(1)分析:航班基本信息,对它们输入后,要存进原文献,采用fwrite函数就可以实现。但是,用该函数存进文献数据都是以二进制形式存在,不是普通所采用顾客输入完毕后,程序会询问与否继续输入,这个功能更具人性化,可以省去返进入这个函数麻烦!【流程图]输入信息始文献打开否输入信息输出错误信息输入信息将信息输出到磁盘与否继续(2)程序:voidenter(){inti,n;printf("Howmanyflightsdoyouwantinput?:[]\b\b");scanf("%d",&n);printf("\nEnterdatanow\n\n");for(i=0;i<n;i++){printf("\nInput%dthfloatrecord.\n",i+1);input(i);}printf_back();}[流程图]显示信息开始文献打开查找航班信息输出错误信息与否查找到删除操作输入信息与否继续voidBrowse(){inti,n;n=load();printf_face();for(i=0;i<n;i++){if(i%10==0){printf("\nPressanykeytocontiune...");getchar();puts("\n\n");}puts("\n\n");printf_oneflight(i);}printf("\tThereare%drecord.\n",n);printf("\nPressanykeytoback...\n");getchar();menu();}分析:基本信息查询按查询可供选取方式比较丰富,可按航班号查询。在查询小模块中采用了直接查找办法。本模块可以通过各种查询方式进行完善。这是本程序没有做[流程图]输出错误信输出错误信息开始文献打开查询方式与否继续航班号voidSearch(){intm,i,flight_no,flag=0;printf("Pleaseinputflight_no:\n");scanf("%d",&flight_no);m=load();for(i=0;i<m;i++){if(flight_no==fly[i].flight_no){flag=1;printf("\nTheflightmessageis:\n");printf_oneflight(i);}}if(flag==1)printf("Found!");printf("NotFound!");printf_back();}(5)运营与测试报告:在第一步编程过程中很顺利编写好了各模块,最后整合成了一种完整程序,但在调试过程中遇到了许多问题。如某些由于粗心导致分号,括号,字母输错例子诸多。但都不久改正。尚有函数调用错误fp=fopen("flydata.txt","ab");我在写时丢了fopen成果始终错误,并且发现不了,日后请教师才解决问题。尚有写程序中我经常忘掉头文献包括命令,以及函数声明,导致调试中浮现警告。这让我体会到只有耐心一行一行改错误才干把程序调试好。运营中遇到问题:例如,对数据写文献操作中,我把存在fly[N]中数据以fwrite(&fly[N,sizeof(structflight),1,fp)写入文献,成果发现文献中总是不能fwrite(&t,sizeof(structflight),1,fp)。在机票显示阶段就是这问题让程序浮现错误。不能对的读出输入飞机航班信息。程序整体上运营与题目规定很吻合,算法大多比较通用,各个函数模块对的性、完备性、对输入容错能力以及算法进一步改进在设计中均有表述,这道题使我熟悉了文献输入输出操作,真切感受到了fprintf和fwrite函数区别!回顾起本次课程设计,至今我仍感触颇多,从理论到实践,在整整半个月日子里,我学到诸多诸多东西,不但巩固了此前所学过知识,并且学到了诸多在课本上所没有学到过内容。通过这次课程设计使我懂得了理论与实际相结合是很重要,只有理论知识是远远不够,只有把所学理论知识与实践相结合起来,从理论中得出结论,才是真正知识,才干提高自己实际动手能力和独立思考能力。在设计过程遇到了各种各样问题,同步在设计过程中发现了自己局限性之处,对此前所学过知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把此前所学过知识重新温故,巩固了所学#include<stdio.h>#include<stdlib.h>#defineN50structflight{intflight_no;/*头文献包括命令*//*构造体存储航班信息构造*/charstartstation[20];charendstation[20];charflytime[10];intplan_ticket;intsell_ticket;}fly[N];/*定义构造体变量*/FILE*fp;voidBrowse();voidprintf_oneflight(inti);voidmenu();voidinput(i)/*把航班信息输入到文献*/{structflightt;printf("\nflight_nosell_ticket\n");startstationendstationflytimeplan_ticketscanf("%d%s%s%s%d%d",&t.flight_no,t.startstation,t.endstation,t.flytime,&t.plan_ticket,&t.sell_ticket);fp=fopen("flydata.txt","ab");if(!fp){printf("cannotopenthisfile\n");exit(0);}elsefwrite(&t,sizeof(structflight),1,fp);fclose(fp);}voidprintf_oneflight(inti)/*输出一种航班信息*/{printf("\n%5d%20s%20s%10s%4d%4d\n",fly[i].flight_no,fly[i].startstation,fly[i].endstation,fly[i].flytime,fly[i].plan_ticket,fly[i].sell_ticket);}voidprintf_face(){printf("\n\tNO.sell_ticket\n");}/*输出文献内容构造*/startstationendstationflytimeplan_ticketintload()/*载入函数实现文献内容载入程序,并返回飞机航班数值*/{FILE*fp;inti;if((fp=fopen("flydata.txt","rb"))==NULL){printf("\nCannotopenfile\n");exit(0);}for(i=0;!feof(fp);i++)fread(&fly[i],sizeof(structflight),1,fp);fclose(fp);return(i-1);}voidprintf_back()/*返回退出函数实现程序退出、返回*/{printf("\n\n\tSuccessful.^_^\n\n");printf("Whatdoyouwanttodo?\n\n\t1).Browseallnow\t2).back:[]\b\b");scanf("%d",&w);if(w==1)Browse();elsemenu();}voidenter()/*航班信息录入*/{inti,n;printf("Howmanyflightsdoyouwantinput?:[]\b\b");scanf("%d",&n);printf("\nEnterdatanow\n\n");for(i=0;i<n;i++){printf("\nInput%dthfloatrecord.\n",i+1);input(i);}printf_back();}voidBrowse(){inti,n;n=load();printf_face();for(i=0;i<n;i++){if(i%10==0){printf("\nPressanykeytocontiune...");getchar();puts("\n\n");}puts("\n\n");printf_oneflight(i);}printf("\tThereare%drecord.\n",n);printf("\nPressanykeytoback...\n");menu();}voidSearch()/*查询*/{intm,i,flight_no,flag=0;printf("Pleaseinputflight_no:\n");scanf("%d",&flight_no);m=load();for(i=0;i<m;i++){if(flight_no==fly[i].flight_no){flag=1;print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园林景观石材安装合同
- 新学期自律保证书范文
- 九年级化学上册 第五单元 定量研究化学反应 第一节 化学反应中的质量守恒同步教案 (新版)鲁教版
- 2024秋九年级语文上册 第二单元 写作 观点要明确教案 新人教版
- 2024-2025学年新教材高中政治 第三课 只有中国特色社会主义才能发展中国 2 中国特色社会主义的创立、发展和完善(2)教案 部编版必修1
- 2024八年级数学下册 第22章 四边形22.3三角形的中位线教案(新版)冀教版
- 2024-2025学年高中历史 第二单元 凡尔赛-华盛顿体系下的世界 第1课 巴黎和会(4)教学教案 新人教版选修3
- 2023六年级语文下册 第二单元 口语交际:同读一本书配套教案 新人教版
- 2023三年级数学上册 五 周长第3课时 长方形的周长说课稿 北师大版
- 2023七年级英语上册 Module 6 A trip to the zoo Unit 1 Does it eat meat教案 (新版)外研版
- 职业健康整改计划
- 国家职业技术技能标准 3-02-03-01 消防员(2022年版)
- GB/T 36242-2018燃气流量计体积修正仪
- GB/T 2818-2014井用潜水异步电动机
- 5 汪曾祺《跑警报》.电子教案教学课件
- 叙事疗法课件
- 国家开放大学电大《计算机应用基础(本)》终结性考试试题答案(格式已排好)任务一
- 店长交接表模板(最新)
- 阿米巴经营管理课件
- 牙列缺损的固定义齿修复课件
- 小学质量检测汇报材料范文推荐11篇
评论
0/150
提交评论