1、C语言课程信息管理系统课程设计报告成C语言程序设计 主绩 课程设计报告专 业:班 级:姓 名:指导教师:二零一二年十二月 二十六日一、 设计题目 2二、 设计目的 2三、 设计内容 23.1需求分析 23.2概要设计 33.3详细设计 63.5编写过程中遇到的问题及解决办法 73.4调试结果 83.6课程设计总结 16四、 参考书目 17附录A程序源代码 18一、设计题目:课程信息管理系统二、设计目的1、 熟练掌握C语言课程中所学的理论知识;2、 通过综合C语言的基本知识来解决实际问题;3 、加强分析和解决问题的能力。三、设计内容3.1 需求分析设计对 n 门课程进行管理的课程信息管理系统,每
2、门课程有课程编号,课程名称,课程性质(B为必修,X为选修),总学时,学分等。系统功能包括:1 、系统以菜单方式工作,密码登陆。2、 课程信息的录入功能(增加数据) 。用数组数据类型赋初值的方法把课程信息送到各个 数组中(但注意要是合法数据) ,然后把它们输出显示。3、 课程信息的删除(删除数据) 。任意输入一门课程的编号,将它所有的信息从数组中删除。4、 课程信息的浏览功能(查找数据) 。任意输入一门课程的编号,打印出所有 相关数据 要求能多次查找。5、 课程信息的删除(修改数据) 。任意输入一门课程的编号,打印出所有相关信息后,可 对某一项信息进行修改并保存。6、 课程信息的计算并排序。计算
3、所有课程的总学分及平均学分( aver ,单精度,输出一 位小数),将包括所有数据的数组元素按价格从高到低的顺序排序打印出来。3.2 概要设计程序流程图:开始模块分解:(1)主函数模块void pasd(); /声明部分void zhujie(); / zhujie(); / 广调用部分声明密码函数声明zhujie()函数调用zhujie()函数pasd();联系/调用密码函数联系数据结构的说明:#defi ne n1 20/控制课程个数的存储空间#defi ne ml 5/控制课程属性个数的存储空间空间char cou infon 1m116; /定义全局数组char password=12
4、3456; /原密码int a, i,j,t=0,c=0, n=4,m=5; /定义全局变量密码模块:char p9;/定义密码数组pi=8/控制退格pi=13/回车控制strcmp(p,password)=0 /密码匹配字符串比较函数int n=3;/密码输入次数控制业务模块:system(cls); / 清屏函数3.3详细设计密码模块:束.删除模块:YY4结编写过:程中遇到的问1结在调试函数的过程时,3.二 疋乂变C量数严 输入一个X值注释char 舉6; char y116;N可题输入lY, Y1的值般高级语言要求函数实参与形参个删除该类型一致,但在(言编译在该点检查不严格。当出现实参与
5、形参类型不一致时,编译运行时,系统不报错 因此,错误隐含了下来,给程序调试带来了 解决方法是:了程序的错误。并将其改正,使程(2)当要求从键盘读入一字符 现。解决方法:自己认真并且困难。开始,我自己仔细查找自己的程序的错误,但最终在老师的帮助下,|找到 常运行,若选用输入的函数复检查以及老师的帮时,显易造成删除的并很难发3.5调试结果界面3.6课程设计总结课程管理信息系统心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能 力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新 月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十
6、一世纪的大学来说掌 握程序开发技术是十分重要的,而 C语言又是最常见,功能最强大的一种高级语言,因此 做好C语言课程设计是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很 多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到 过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识 是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正 为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题, 可以说得是困难
7、重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的 过程中发现了自己的不足之处, 对一些前面学过的知识理解得不够深刻, 掌握得不够牢固, 通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。我做的是课程管理信息系统,虽然是很简单的一个小的程序,但对我一个初学者来说却是 一个很大的困难。更加是第一次做这样的课程设计,所以第一天下午在机房做了一个下午 却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是 多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时 间还算是充裕,只好拿出书本重新复习一下。特别是函数调用和数组的部分
8、,几乎是一片 空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握 了,所以下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是 就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了 C语言编程的基本过程和方法。经过一波三折,终于开始正式编程。编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强迫 自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、 模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的 无法运行。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学
9、习 C语 言的一次实践作业,自己进步的证明。通过这次课程设计,使我对 C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己 在指法上还不行,经常按错字母,通过学习也有所改进;再有对 C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对 C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习 C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更 加注视实践操作,使自己便好地学好计算机。在课程设计过程中,收获知识,提高能力的同
10、时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!4.参考书目:1:谭浩强,C程序设计教程,北京,清华大学出版社,2007年2:康莉,零基础学C语言,北京,机械工业出版社,2010年3:方风波,C语言程序设计,北京,地质出版社,2006年附录A源程序代码#include #include #include #define n1 20 #define ml 5 char couinfon1m116; char d16, b6;/Cons
11、ole lnput/Output(控制台输入输岀)/ 控制课程个数的存储空间/ 控制课程属性个数的存储空间空间/定义全局数组char password=123456; / int a, i,j,t=0,c=0,n=4,m=5; / / 主函数模块void main()原密码 定义全局变量pasd();void pasd();/void zhujie();/zhujie();/调用密码函数声明密码函数 声明 zhujie() 函数 调用 zhujie() 函数void zhujie() n);printf( printf(*n);printf(*n);printf(* * * * * 欢迎进入课
12、程管理信息系统 * * * * *n);printf(*n);system*n);printf( *Welcometo the course informationmanagementprintf(*n);printf( * *n); *n); *n);printf( * *n);printf( * *n); *n); *n);printf( * printf(*printf(* * *n);printf(* *添加课程信息 * *删除课程信息 * * *n);printf(*printf(*printf( * *n);printf( * *n); *n); *n); printf( prin
13、tf(/ 密码模块 void pasd(void) * printf( * * 查询课程信息 *n);*n); * 修改课程信息 *n);printf( /void yewu(); int i;char p9; int n=3;定义密码函数/声明业务函数密码输入次数控制do printf(please enter password:n); / for(i=0;i0);/ 业务模块void yewu() / 定义业务函数声明输入函数声明添加函数 声明查询函数 声明排序函数 声明删除函数调用输入函数void inputcouinfo(void); / void addcouinfo(void);
14、/void findcouinfo(void); /void ordercouinfo(void); / void delcouinfo(void); /void updatecouinfo(void); / 声明修改函数 char d;system(cls);if (c=1)inputcouinfo(); /: 2 nt 课程信息printf(t 课程信息查询请输入 : 1 nt 课程信息删除请输入 修改请输入 : 3 nt 课程信息排序请输入 : 4 nt 课程信息添加请输入: 5n);printf( 您是否进行其他操作,否输入 0,否则输入其他 :); scanf(%d,&a);for
15、(i=0;i+)if(a!=0)printf( 请输入要操作的选项: ); scanf(%s,&d);switch(d)调用课程信息查询调用课程信息删除 调用课程信息修改 调用课程信息排序 调用课程信息添加case 1:findcouinfo();break; /函数case 2:delcouinfo();break; /函数case 3:updatecouinfo();break; / 函数case 4:ordercouinfo();break; / 函数case 5:addcouinfo(); break; / 函数default: break;/ 课程信息输入模块 void inputc
16、ouinfo(void) /定义课程信息输入函数printf(tttprintf(ttt*n);欢迎进入信息输入系统 !n);printf(ttt*n);printf(printf(tt请注意:性质为必修 (B) 或选修 (X)n);课程号名称 性质 总学时 学分 n);for (i=0;in;i+)printf( 输入课程编号 %d:,x+);for (j=0;jm;j+)scanf(%s,&couinfoij);for (i=0;in;i+)for (j=0;jm;j+)printf(%st,couinfoij);printf(n);int d,t,z;printf(ttt*n);prin
17、tf(ttt欢迎进入信息添加系统 !n);printf(ttt*n);for(d=1;d+)scanf(%d,&t);if(t!=0)z=n+;for (j=0;jm;j+)printf(tprintf(%st,couinfozj);else break;system(cls);课程查询请输入 : 1 nt 课程删除请输入 : 2 nt 课程修改请输入 : 3 nt课程排序请输入: 4 nt课程添加请输入: 5n);void findcouinfo(void)/课程信息查询函数char y16;int d,t,z;printf(ttt*n);printf(ttt欢迎进入信息查询系统 !n);p
18、rintf(ttt*n);for(d=1;d+)printf(n 是否进行查询, “否” 请输入 0n);scanf(%d,&t);if(t!=0)printf( 请输入要查询的课程号 :);scanf(%s,&y);printf(课程号名称性质总学时 学分 n);for(i=0;z=i,in1;i+)if(strcmp(y,couinfoi0)=0)for (j=0;jm;j+)printf(%st,couinfoij);break;if(z=n) printf(没有此课程号信息 n);else break ;system(cls);printf(t 课程查询请输入 : 课程添加请输入: 5
19、n);1 nt课程删除请输入 : 2 nt 课程修改请输入 : 3 nt课程排序请输入: 4 ntchar y116; int d,x,z;printf(ttt 欢迎进入信息删除系统 !n);printf(ttt*n);for(d=1;d+)printf( 是否进行删除信息,否请输入 : 0 进行输入其他数字: n); scanf(%d,&x);if(x!=0)printf( 请输入要删除的课程号: );scanf(%s,&y);scanf(%s,&y1);printf( 课程号 if (strcmp(y,y1)=0)printf( 请再次输入要删除的课程号: );名称 性质 总学时 学分 n
20、);for (i=0;in;i+)if (strcmp(y,couinfoi0)=0)z=i;printf( 要删除的课程信息是 n);for (j=0;jm;j+)printf(%st,couinfoij);t+;printf(n);for (i=z;in-t;i+)for (j=0;jm;j+)strcpy(couinfoij,couinfoi+1j);if(z=n) printf( 没有此课程号信息 n);else break;printf( 课程号 名称 性质 总学时 学分 n);for (i=0;in-t;i+)for (j=0;jm;j+)printf(%st,couinfoij)
21、; printf(n);system(cls);printf(t 课程查询请输入 : 1 nt 课程删除请输入 : 2 nt 课程修改请输入 : 3 nt 课程排序请输入 : 4 nt 课程添加请输入: 5n);/ 课程修改函数void updatecouinfo(void)char h16,h116,h216; int d,b,x,z,e,f;printf(ttt 欢迎进入信息修改系统 !n);for(d=1;d+)进行输入其他数字: n);printf( 是否进行信息修改,否请输入 : 0 scanf(%d,&x);if(x!=0)printf( 请输入要修改的课程号: );scanf(%
22、s,&h);printf( 请再次输入要修改的课程号: );scanf(%s,&h1);if (strcmp(h,h1)=0)for(i=0;z=i,in;i+)if (strcmp(h,couinfoi0)=0)printf( 要修改的课程信息是 n); for (j=0;jm;j+)printf(%st,couinfoij);printf(n printf(请输入你要修改第几项 n);scanf(%d,&b); 请输入你要修改的内容 n);scanf(%s,&h2);for(e=0;e+)printf(入其他 :);n);scanf(%d,&b);n);scanf(%s,&h2);else
23、 break;else break;strcpy(couinfoib-1,h2);for(j=0;jm;j+)printf(n);break;printf(%st,couinfoij);int fm1;float s=0;printf(ttt*n);printf(ttt欢迎进入学分排序系统 !n);printf(ttt*n);for (i=0;in-t;i+)for (j=0;jm;j+)printf(%st,couinfoij);printf(n); printf( 请按序输入课程学分 n);for(i=0;in-t;i+)scanf(%d,&fi);for(i=0;in-t;i+) s=s+fi;printf( 总学分是 %6.2f 平均学分是 %6.2fn,s,s/(n-t);for(i=0;in-t;i+)for(j=0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1