C语言专业课程设计方案报告范例.doc
《C语言专业课程设计方案报告范例.doc》由会员分享,可在线阅读,更多相关《C语言专业课程设计方案报告范例.doc(19页珍藏版)》请在咨信网上搜索。
XX学院 C语言课程设计汇报 课程名称: C语言课程设计 课程编号: 汇报题目: 学生姓名: 学 号: 专 业 成 绩: 任课老师: 评阅日期: C语言课程设计汇报 一、 C语言课程设计目标 C语言教学是学生依据课堂讲授内容,学生做对应自主练习,消化课堂所讲解内容;经过调试经典例题或习题积累调试C程序经验;经过完成教导教材中编程题,逐步培养学生编程能力、用计算机处理实际问题能力。具体来说: 1. 深入掌握和利用C语言进行程设计能力; 2、 深入了解和利用结构化程设计思想和方法; 3、 初步掌握开发一个小型实用系统基础方法; 4、 学会调试一个较长程序基础方法; 5、 学会利用步骤图或N-S图表示算法; 6、 掌握书写程设计开发文档能力(书写课程设计汇报); 二、课程设计汇报正文 (1)课程设计题目标原文; 假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务: l 航班信息录入功效(文件保留) l 完成航班信息浏览功效; l 查询航线(最少一个查询方法)。 (2)题目标分析(需求分析); 任务:经过此系统能够实现以下功效: 录入: 能够录入航班情况(数据能够存放在一个数据文件中) 浏览:航班信息浏览功效需要提供显示操作; 查询:可提供根据航班号、起点站、终点站、飞行时间、查询,能够查询某个航线情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功效选择。 要求:依据以上功效说明,设计航班信息,订票信息存放结构,设计程序完成功效。能够建立航班结构体,结构体组员包含航班号、起点站、终点站、飞行时间、预售票总数、已售票数。 (3)整体设计和模块划分; 依据需求分析,该程序可分为以下四大模块: 输入模块 显示模块 查询模块 退出模块 飞机订票系统 (4)代码设计; 包含——各功效模块步骤图;关键模块中关键部分代码分析;关键函数算法设计和分析;等等; A.主函数 (1)分析:主函数功效比较简单,形式比较简练,关键功效为:在系统中没有程序所要文件时,为程序建立一个所许文件;调用菜单函数。程序中各模块全部要用到同一个文件,假如该文件不存在,则该程序就无法正常运行,增加第一个功效就是确保文件可用切可打开!原来只要在主函数里调用各功效模块就行了,不过为了让程序能够方便回到主函数里,所以就建立了一个菜单函数。 菜单函数功效是替主函数调用个功效模块函数,所以设计基础思绪很简单,即:用一个输入来接收用户选择,加以个循环来让输入错误用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到函数。 (2)程序: void menu() { int n,w; do { puts("\t\t***********************MENU***************************\n\n"); puts("\t\t\t\t 1.enter new data"); puts("\t\t\t\t 2.Browse all"); puts("\t\t\t\t 3.Search"); puts("\t\t\t\t 4.exit"); puts("\n\n\t\t ***************************************************\n"); printf("Choice your number(1-4): [ ]\b\b"); scanf("%d",&n); if(n<1||n>4) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:enter();break; case 2:Browse();break; case 3:Search();break; case 4:exit(0); } } /**********************主函数*********************/ main() { menu(); } B.公共函数 (1)分析:各功效模块中分程序中交错较多,所以,本程序公共函有5个,这使得各功效模块函数显得简练,这是程序一个特点。此处公共函数功效较为简单,但她很实用。 (2)程序: 1、把航班信息输入到文件中函数。 void input(i) { struct flight t; printf("\nflight_no startstation endstation flytime plan_ticket sell_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("can not open this file\n");exit(0);} else fwrite(&t,sizeof(struct flight),1,fp); fclose(fp); } 2、输出一个 航班信息函数 void printf_oneflight(int i) { 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、输出文件内容结构函数 void printf_face() { printf("\n\tNO. startstation endstation flytime plan_ticket sell_ticket\n"); } 4、载入函数实现文件内容载入程序,并返回飞机航班数值。 int load() { FILE *fp; int i; if((fp=fopen("flydata.txt","rb"))==NULL) { printf("\nCan not open file\n"); exit(0); } for(i=0;!feof(fp);i++) fread(&fly[i],sizeof(struct flight),1,fp); fclose(fp); return(i-1); } 5、返回退出函数实现程序退出、返回。 void printf_back() { int w; printf("\n\n\tSuccessful.^_^\n\n"); printf("What do you want to do?\n\n\t1).Browse all now\t2).back:[]\b\b"); scanf("%d",&w); if(w==1) Browse(); else menu(); } C.航班基础信息输入模块 航班信息录入函数: (1)分析:航班基础信息,对它们输入后,要存进原文件,采取fwrite函数就能够实现。不过,用该函数存进文件数据全部是以二进制形式存在,不是通常所采取形式,能够改用fprintf函数来实现该功效。不过本程序采取是fwrite函数。再用户输入完成后,程序会问询是否继续输入,这个功效更具人性化,能够省去返回到主函数在进入这个函数麻烦! [步骤图]输入信息 文件打开否 输入信息 是否继续 将信息输出到磁盘 调用printf_back()函数 结束 开始 输犯错误信息 (2)程序: void enter() { int i,n; printf("How many flights do you want input? :[ ]\b\b"); scanf("%d",&n); printf("\n Enter data now\n\n"); for(i=0;i<n;i++) { printf("\n Input %dth float record.\n",i+1); input(i); } printf_back(); } D. 航班信息浏览模块 [步骤图]显示信息 开始 文件打开 查找航班信息 是否查找到 输入信息 是否继续 结束 输犯错误信息 删除操作 显示航班信息: void Browse() { int i,n; n=load(); printf_face(); for(i=0;i<n;i++) { if(i%10==0) { printf("\nPress any key to contiune ..."); getchar(); puts("\n\n"); } puts("\n\n"); printf_oneflight(i); } printf("\tThere are %d record.\n",n); printf("\nPress any key to back ...\n"); getchar(); menu(); } E. 航班信息查询模块 分析:基础信息查询按查询可供选择方法比较丰富,可按航班号查询。在查询小模块中采取了直接查找方法。本模块能够经过多个查询方法进行完善。这是本程序没有做地方。 [步骤图] 开始 文件打开 查询方法 是否继续 结束 输犯错误信息 航班号 此处能够完善其它查询方法 程序: void Search() { int m,i,flight_no,flag=0; printf("Please input flight_no:\n"); scanf("%d",&flight_no); m=load(); for(i=0;i<m;i++) { if(flight_no==fly[i].flight_no) { flag=1; printf("\nThe flight message is:\n"); printf_oneflight(i); } } if(flag==1) printf("Found!"); else printf("Not Found!"); printf_back(); } (5)运行和测试汇报: 在第一步编程过程中很顺利编写好了各模块,最终整合成了一个完整程序,但在调试过程中碰到了很多问题。如部分因为粗心造成分号,括号,字母输错例子很多。但全部很快更正。还有函数调用错误fp=fopen("flydata.txt","ab");我在写时丢了fopen结果一直错误,而且发觉不了,以后请老师才处理问题。还有写程序中我常常忘记头文件包含命令,和函数申明,造成调试中出现警告。这让我体会到只有耐心一行一行改错误才能把程序调试好。 运行中碰到问题:比如,对数据写文件操作中,我把存在fly[N]中数据以fwrite(&fly[N,sizeof(struct flight),1,fp)写入文件,结果发觉文件中总是不能出现数据。以至程序不能运行后面部分。以后才发觉取得地址错了应改成fwrite(&t,sizeof(struct flight),1,fp)。在机票显示阶段就是这问题让程序出现错误。不能正确读出输入飞机航班信息。 三、总结 程序整体上运行和题目要求很吻合,算法大多比较通用,各个函数模块正确性、完备性、对输入容错能力和算法深入改善在设计中全部有表述,这道题使我熟悉了文件输入输出操作,真切感受到了fprintf和fwrite函数区分! 回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个月日子里,我学到很多很多东西,不仅巩固了以前所学过知识,而且学到了很多在书本上所没有学到过内容。经过这次课程设计使我知道了理论和实际相结合是很关键,只有理论知识是远远不够,只有把所学理论知识和实践相结合起来,从理论中得出结论,才是真正知识,才能提升自己实际动手能力和独立思索能力。在设计过程碰到了多种多样问题,同时在设计过程中发觉了自己不足之处,对以前所学过知识了解得不够深刻,掌握得不够牢靠,经过这次课程设计,把以前所学过知识重新温故,巩固了所学知识。 四、程序代码: #include<stdio.h> /*头文件包含命令*/ #include<stdlib.h> #define N 50 struct flight /*结构体存放航班信息结构*/ { int flight_no; char startstation[20]; char endstation[20]; char flytime[10]; int plan_ticket; int sell_ticket; }fly[N];/*定义结构体变量*/ FILE* fp; void Browse(); void printf_oneflight(int i); void menu(); void input(i) /* 把航班信息输入到文件*/ { struct flight t; printf("\nflight_no startstation endstation flytime plan_ticket sell_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("can not open this file\n");exit(0);} else fwrite(&t,sizeof(struct flight),1,fp); fclose(fp); } void printf_oneflight(int i) /*输出一个 航班信息*/ { 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); } void printf_face() /*输出文件内容结构*/ { printf("\n\tNO. startstation endstation flytime plan_ticket sell_ticket\n"); } int load()/*载入函数实现文件内容载入程序,并返回飞机航班数值*/ { FILE *fp; int i; if((fp=fopen("flydata.txt","rb"))==NULL) { printf("\nCan not open file\n"); exit(0); } for(i=0;!feof(fp);i++) fread(&fly[i],sizeof(struct flight),1,fp); fclose(fp); return(i-1); } void printf_back() /*返回退出函数实现程序退出、返回*/ { int w; printf("\n\n\tSuccessful.^_^\n\n"); printf("What do you want to do?\n\n\t1).Browse all now\t2).back:[]\b\b"); scanf("%d",&w); if(w==1) Browse(); else menu(); } void enter()/*航班信息录入*/ { int i,n; printf("How many flights do you want input? :[ ]\b\b"); scanf("%d",&n); printf("\n Enter data now\n\n"); for(i=0;i<n;i++) { printf("\n Input %dth float record.\n",i+1); input(i); } printf_back(); } void Browse() { int i,n; n=load(); printf_face(); for(i=0;i<n;i++) { if(i%10==0) { printf("\nPress any key to contiune ..."); getchar(); puts("\n\n"); } puts("\n\n"); printf_oneflight(i); } printf("\tThere are %d record.\n",n); printf("\nPress any key to back ...\n"); getchar(); /*没有返回植*/ menu(); } void Search()/*查询*/ { int m,i,flight_no,flag=0; printf("Please input flight_no:\n"); scanf("%d",&flight_no); m=load(); for(i=0;i<m;i++) { if(flight_no==fly[i].flight_no) { flag=1; printf("\nThe flight message is:\n"); printf_oneflight(i); } } if(flag==1) printf("Found!"); else printf("Not Found!"); printf_back(); } void menu() { int n,w; do { puts("\t\t***********************MENU***************************\n\n"); puts("\t\t\t\t 1.enter new data"); puts("\t\t\t\t 2.Browse all"); puts("\t\t\t\t 3.Search"); puts("\t\t\t\t 4.exit"); puts("\n\n\t\t *******************************************************\n"); printf("Choice your number(1-4): [ ]\b\b"); scanf("%d",&n); if(n<1||n>4) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:enter();break; case 2:Browse();break; case 3:Search();break; case 4:exit(0); } } /*********************************主函数***********************************/ main() { menu();/*菜单函数功效是替主函数调用个功效模块函数*/ }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业课程 设计方案 报告 范例
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文