《《C语言课程设计报告范例》》由会员分享,可在线阅读,更多相关《《C语言课程设计报告范例》(17页珍藏版)》请在金锄头文库上搜索。
1、C语言课程设计报告范例X学院语言课程设计报告课程名称:C语言课程设计课程编号:报告题目:学生姓名:学号:专业成绩:任课教师:评阅日期:C语言课程设计报告一、C语言课程设计的目的语言的教学是学生根据课堂讲授内容,学生做相应的白主练习,消化课堂所讲解的内容;经过调试典型例题或习题积累调试C程序的经验;经过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。具体来说:1进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握
2、书写程设计开发文档的能力(书写课程设计报告);二、课程设计报告正文()课程设计题目的原文;假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务:航班信息录入功能(文件保存)完成航班信息浏览功能;查询航线(至少一种查询方式)。题目的分析(需求分析);任务:经过此系统能够实现如下功能:录入:能够录入航班情况(数据能够存储在一个数据文件中)浏览:航班信息浏览功能需要提供显示操作;查询:可提供按照航班号、起点站、终点站、飞行时间、查询,能够查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择
3、菜单以实现功能选择。要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。能够建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。(2) 整体设计与模块划分;根据需求分析,该程序可分为以下四大模块:飞机订票输入模块显示模块查询模块退出模块(3) 代码设计;A. 包括一一各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析;等等;主函数(1)分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统中没有程序所要的文件时,为程序建立一个所许的文件;调用菜单函数。程序中的各模块都要用到同一个文件,如果该文件不存在,则该
4、程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开!原来只要在主函数里调用各功能模块就行了,可是为了让程序能够方便的回到主函数里,因此就建立了一个菜单函数。菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个swtc语句来选择用户所要用到的函数。(2)程序:voidnu()(intn,;dput(t*ENU*n);puts(tttt1ntendata);put(tt.Bowseal);puts(ttt3.erh);put(t4.exit);t(nnt*);pntf(Choc
5、eyournumbe(1-4):);san(%d”,&n);if(n4)w=1;gear();ele=0;ile(w=1);swtc(n)cae:nte();break;cas2:Browe();e;case3:Search();bek;case:xit(0);主函数*/*ma()(en();公共函数(1)分析:各功能模块中的分程序中的交错的较多,因而,本程序的公共函有个,这使得各功能模块函数显得简洁,这是程序的一个特点。此处的公共函数的功能较为简单,但她很实用。(2)程序:1、把航班信息输入到文件中的函数。voidinp(i)(structfightt;pintf(fih_notatstti
6、onendsationytmen_tctsel_tiketn);scanf(%sd%”,&t.figo,ststaton,.endsation,t.ytime,&t.lan_ticke,&tsl_icet);fpoen(flyat.txt”,b”);if(!fp)(pitf(canntopnhifle);xit(0);lsefwite(&t,if(stuctft),1,p);flse(p);2、输出一个航班信息函数oidprintfonefight(inti)(printf(5%202s%10%4d%4dn”,fi.flight_no,fyistartstion,fl.endsation,fl
7、yi.lytim,flyi.pla_ticket,lysel_ticke);、输出文件内容结构函数voidprintf_fae()(prntf(ntNO.startstatonendstaionflyimepla_tcktselticktn);、载入函数实现文件内容载入程序,并返回飞机航班数值。ntld()FI*p;inti;i((fpfoen(lya.txt”,rb))=UL)(rit(Cnnoopnfiln);exi(0);or(i=;!eo(fp);i+)read(&ly,sizeof(srutfligt),1,f);fcose(fp);rturn(-1);5、返回退出函数实现程序退出、
8、返回。voidprntf_back()(tw;pintf(ntSuccesfulAAn);printf(Wtouwanttodo?n).Bwsealln).back:b);ca(%d,&w);if(w=1)Bowse();elsmenu();航班基本信息输入模块航班信息录入函数:(1)分析:航班的基本信息,对它们输入后,要存进原文件,采用fwre函数就能够实现。可是,用该函数存进文件的数据都是以二进制的形式存在的,不是一般所采用的形式,能够改用fpritf函数来实现该功能。不过本程序采用的是fwie函数。再用户输入完成后,程序会询问是否继续输入,这个功能更具人性化,能够省去返回到主函数在进入这
9、个函数的麻烦!流程图输入信息voidene()in,n;prtf(owmanlighsoyouwatnput?:bb);sanf(%”,&n);prin(nerdatanwn);fr(i=0;n;i+)rif(nnput%dthfatreor.n,i+1);nput(i);printf_ack();B. 航班信息浏览模块流程图显示信息Mia显示航班信息:杳找航班信vodBse()inti,n;loa();prif_fe();for(i0;i;i)if(%10=0)prf(nrsanyketocoiue.);getchar();puts(n);uts(nn);print_efiht();rint
10、f(tTherare%drcord.n,n);rintf(nPresnykyob.);tchr();menu();航班信息查询模块分析:基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。在查询小模块中采用了直接查找的方法。本模块能够经过多种查询方式进行完善。这是本程序没有做的地方。流程图程序:oiSeah()(intm,i,fligto,ag=0;rintf(Pleaeiutfigh_n:n);scaf(%”,&fligh_);m=load();for(;im;+)(if(flight_no=flilight_)(fag1;printf(Thflightmessageis:n);it
11、onelght(i);if(flag=1)ntf(ound!);elseprnf(NFund!);infback();(5)运行与测试报告:在第一步编程过程中很顺利的编写好了各模块,最后整合成了一个完整的程序,但在调试过程中遇到了许多问题。如一些由于粗心导致分号,括号,字母输错的例子很多。但都很快改正。还有函数调用错误pfp(flata.txt”,ab”);我在写时丢了fon结果一直错误,而且发现不了,后来请老师才解决问题。还有写程序中我经常忘记头文件包含命令,以及函数声明,导致调试中出现警告。这让我体会到只有耐心的一行一行的改错误才能把程序调试好。运行中遇到问题:例如,对数据的写文件操作中,
12、我把存在flyN中的数据以fwrite(&lyN,szef(strctfliht),1,p)写入文件,结果发现文件中总是不能出现数据。以至程序不能运行后面部分。后来才发现取得地址错了应改成fwrite(&t,izo(strtght),1,fp)。在机票显示阶段就是这问题让程序出现错误。不能正确读出输入的飞机航班信息。三、总结程序整体上运行与题目要求很吻合,算法大多比较通用,各个函数模块的正确性、完备性、对输入的容错能力以及算法的进一步改进在设计中都有表述,这道题使我熟悉了文件的输入输出操作,真切的感受到了fprf和wre函数的区别!回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个
13、月的日子里,我学到很多很多的东西,不但巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。经过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高白己的实际动手能力和独立思考的能力。在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了白己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,经过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。四、程序代码:#incude/*头文件包含命令*#incldetlib.h#defieN5strtflht/*结构体存放航班信息的结构/(intflihno;carststation20;caendtati