C语言课程信息管理系统课程设计报告_第1页
C语言课程信息管理系统课程设计报告_第2页
C语言课程信息管理系统课程设计报告_第3页
C语言课程信息管理系统课程设计报告_第4页
C语言课程信息管理系统课程设计报告_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计课程设计报告专 业:班 级:姓 名:指导教师:二零一二年十二月二十六日目录一、设计题目 2二、设计目的 2三、设计内容 23.1 需求分析23.2 概要设计33.3 详细设计63.5 编写过程中遇到的问题及解决办法 73.6 调试结果8163.6课程设计总结四、参考书目 17附录A程序源代码18一、设计题目:课程信息管理系统二、设计目的1、熟练掌握C语言课程中所学的理论知识;2、通过综合C语言的基本知识来解决实际问题;3、加强分析和解决问题的能力。三、设计内容3.1 需求分析设计对n门课程进行管理的课程信息管理系统,每门课程有课程编号,课程名称,课 程性质(B为必修,X为选修),

2、总学时,学分等。系统功能包括:1、系统以菜单方式工作,密码登陆。2、课程信息的录入功能(增加数据)。用数组数据类型赋初值的方法把课程信息送到各个 数组中(但注意要是合法数据),然后把它们输出显示。3、课程信息的删除(删除数据)。任意输入一门课程的编号,将它所有的信息从数组中删 除。4、课程信息的浏览功能(查找数据)。任意输入一门课程的编号,打印出所有相关数据。要求能多次查找。5、课程信息的删除(修改数据)。任意输入一门课程的编号,打印出所有相关信息后,可对某一项信息进行修改并保存。6、课程信息的计算并排序。计算所有课程的总学分及平均学分(aver ,单精度,输出一位小数) ,将包括所有数据的数

3、组元素按价格从高到低的顺序排序打印出来。3.2 概要设计程序流程图:模块分解:void pasd(); /声明密码函数声明部分(1)主函数模块void zhujie(); /声明zhujie()函数zhujie(); /调用zhujie()函数调用部分联系声明部分:pasd();联系void yewu();/调用密码函数声明业务函数(2)密码模块J调用部分:yewu(); /调用业务函数联系联系void inputcouinfo(void); /声明输入函数void updatecouinfo(void); /声明修改函数void addcouinfo(void); /声明添加函数声明部分/声

4、明查询函数声明排序函数void ordercouinfo(void); /(3)业务模块void delcouinfo(void); /声明删除函数rinputcouinfo(); /调用输入函数Y、case '1'findcouinfo();break; /调用课程信息查询调用部分 case '2':delcouinfo();break; 调用课程信息删除case '3':updatecouinfo();break; /调用课程信息修改case '4':ordercouinfo();break; /调用课程信息排序case &#

5、39;5':addcouinfo(); break; /调用课程信息添加数据结构的说明:#define n1 20/#define m1 5/char couinfon1m116;/char password="123456"/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;/业务模块:密码输入次数控制始开清屏函数syst

6、em("cls");/3.3详细设计密码模块:删除模块:定义变量数组 ch群 y16; char y116;(1)在调试函数的过程时,一般高级语言要求函数实参与形参个数与类型一致,但在言编译在该点检查不严格。沙现实参与形参类型不£10寸,编短祟吸力籥饵艮错<T Y与Y1是否相 二>皿“ 二期h、J-i因此,错误隐含了下来,给神序调试带来了困难 解决方法是:一开始,我自己仔细查找自己的程序的错误,但最终在老师的帮助下,找到 了程序的错误。并将其改正,使程序正常运行(2)当要求从键盘读入一字符串时,若选用输入的函数不当时,则容易造成错误,并很难发 现。解决

7、方法:自己认真并且反复检查以及老师的帮助。3.5 调试结果界面3.6 课程设计总结课程管理信息系统心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践 能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日 新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说 掌握程序开发技术是十分重要的,而 C语言又是最常见,功能最强大的一种高级语言,因 此做好C语言课程设计是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确, 自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很 多的东西,同

8、时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到 过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识 是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正 为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题, 可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的 过程中发现了自己的不足之处, 对一些前面学过的知识理解得不够深刻, 掌握得不够牢固, 通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。我做的是课程管理信息系统,虽然是很简单的一个小的程序,但对我

9、一个初学者来说却是 一个很大的困难。更加是第一次做这样的课程设计,所以第一天下午在机房做了一个下午 却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是 多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时 间还算是充裕,只好拿出书本重新复习一下。特别是函数调用和数组的部分,几乎是一片 空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握 了,所以下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是 就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。经过一波三折,终于

10、开始正式编程编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强迫自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、 模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的 无法运行。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。通过这次课程设计,使我对 C语言有了更进一步的认识和了解,要想学好它要重在实 践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己 在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太

11、了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更 加注视实践操作,使自己便好地学好计算机。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么 样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不 良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不 畏艰难,勇往直前!四.参考书目:1谭浩强,C程序设计教程,北京,清华大学出版社,2007

12、年2康莉,零基础学C语言,北京,机械工业出版社,2010年3方风波,C语言程序设计,北京,地质出版社,2006年附录A源程序代码#include <stdio.h>#include <conio.h>#include <string.h>#define n1 20/#define m1 5/char couinfon1m116;/char d16, b6;char password="123456"/int a, i,j,t=0,c=0,n=4,m=5;/ 主函数模块void main()void pasd();void zhujie()

13、;zhujie();/Console Input/Output(控制台输入输出 )控制课程个数的存储空间控制课程属性个数的存储空间空间定义全局数组原密码定义全局变量/声明密码函数声明zhujie() 函数调用zhujie() 函数pasd();/调用密码函数void zhujie()printf(" n");printf("*n");printf("*n");printf("* * * * *欢迎进入课程管理信息系统* * * *n");printf(" *n");printf(" *

14、weicome to the course informationmanagement system*n");printf("*n");printf(" * *n"); *n");printf("*删除课程信息printf("* *n"); *n");printf("printf("printf("printf("printf("printf(" *n");*n");*n");*添加课程信息* *n&quo

15、t;);printf(" * *n");*修改课程信息*printf(" *printf(" * *n");printf(" * *n");*查询课程信息*printf(" * * *n");printf("*n");printf(" n");)/密码模块void pasd(void)/定义密码函数(void yewu();/声明业务函数int i;char p9;int n=3;/doprintf("please enter password:n&quo

16、t;); /for(i=0;i<6;i+)pi=getch();if (pi=8)/i=i-2;printf("b b");else密码输入次数控制输入密码控制退格printf("*");if(pi=13) break;/回车控制p6='0'/ 密 码 匹 配if(strcmp(p,password)=0)strcmp(p,password)/printf("n");c=1;调用业务函数yewu();/break;elseprintf("please enter password again:n&quo

17、t;);n-;while(n>0);声明输入函数声明添加函数声明查询函数声明排序函数声明删除函数/ 业务模块void yewu()/定义业务函数void inputcouinfo(void); /void addcouinfo(void);/void findcouinfo(void);/void ordercouinfo(void);/void delcouinfo(void);/声明修改函数void updatecouinfo(void); /char d;system("cls");if (c=1)inputcouinfo();/调用输入函数printf(&qu

18、ot;t 课程信息查询请输入 : 1 nt 课程信息删除请输入 : 2 nt 课程信息修改请输入 : 3 nt 课程信息排序请输入 : 4 nt 课程信息添加请输入: 5n");printf(" 您是否进行其他操作, 否输入0, 否则输入其他:");scanf("%d",&a);for (i=0;i+)if(a!=0)printf(" 请输入要操作的选项: ");scanf("%s",&d);switch(d)case'1':findcouinfo();break;/ 调用

19、课程信息查询函数case'2':delcouinfo();break;/ 调用课程信息删除函数case'3':updatecouinfo();break;/ 调用课程信息修改函数case/ 调用课程信息排序函数case/ 调用课程信息添加函数default: break;/ 课程信息输入模块void inputcouinfo(void)/'4':ordercouinfo();break;'5':addcouinfo();定义课程信息输入函数int x=1;break;printf("ttt*n");printf

20、("n是否进行添加, “否”请输入 0, 进行输入其他printf("ttt*n");printf(" 请注意:性质为必修(B) 或选修 (X)n");printf("tt 课程号 名称 性质 总学时 学分 n");for (i=0;i<n;i+)printf(" 输入课程编号%d:",x+);for (j=0;j<m;j+)scanf("%s",&couinfoij);printf(" 课程号 名称 性质 总学时 学分 n");for (i=0

21、;i<n;i+)for (j=0;j<m;j+)printf("%st",couinfoij);printf("n");课程信息添加函void addcouinfo(void)/数int d,t,z;printf("ttt*n");printf("ttt欢迎进入信息添加系统 !n");printf("ttt*n");for(d=1;d+)n");scanf("%d",&t);if(t!=0)printf("请输入要添加的第d个课程信息:

22、n”,d);printf("课程号 名称 性质 总学时 学分 n");z=n+;for (j=0;j<m;j+)scanf("%s",&couinfozj);printf("%st",couinfozj);else break;system("cls");printf("t 课程查询请输入 : 1 nt 课程删除请输入: 2 nt 课程修改请输入 : 3 nt课程排序请输入 : 4 nt 课程添加请输入: 5n");/课程信息查询函void findcouinfo(void)数ch

23、ar y16;int d,t,z;printf("ttt*n");printf("ttt 欢迎进入信息查询系统!n");printf("ttt*n");for(d=1;d+)printf("n 是否进行查询, “否” 请输入 0n");scanf("%d",&t);if(t!=0)printf(" 请输入要查询的课程号:");scanf("%s",&y);printf("课程号 名称 性质 总学时 学分 n");for(

24、i=0;z=i,i<n1;i+)if(strcmp(y,couinfoi0)=0)for (j=0;j<m;j+)printf("%st",couinfoij);break;if(z=n) printf(" 没有此课程号信息 n");else break ;system("cls");printf("t 课程查询请输入 : 1 nt 课程删除请输入: 2 nt 课程修改请输入 : 3 nt课程排序请输入 : 4 nt 课程添加请输入: 5n");void delcouinfo(void)/课程信息删除函

25、数char y16;char y116;int d,x,z;printf("ttt*n");printf("ttt 欢迎进入信息删除系统!n");printf("ttt*n");for(d=1;d+)printf(" 是否进行删除信息,否请输入 : 0 进行输入其他数字: n");scanf("%d",&x);if(x!=0)printf("请输入要删除的课程号: ");scanf("%s",&y);printf("请再次输入要删

26、除的课程号: ");scanf("%s",&y1);printf("课程号 名称 性质 总学时 学分 n");if (strcmp(y,y1)=0)for (i=0;i<n;i+)if (strcmp(y,couinfoi0)=0)z=i;printf(" 要删除的课程信息是n");for (j=0;j<m;j+)printf("%st",couinfoij);t+;printf("n");for (i=z;i<n-t;i+)for (j=0;j<m;j

27、+)strcpy(couinfoij,couinfoi+1j);if(z=n) printf(" 没有此课程号信息n");else break;printf(" 课程号名称 性质 总学时 学分 n");for (i=0;i<n-t;i+)for (j=0;j<m;j+)printf("%st",couinfoij);printf("n");system("cls");printf("t 课程查询请输入: 1 nt 课程删除请输入 : 2 nt 课程修改请输入 : 3 nt课

28、程排序请输入 : 4 nt 课程添加请输入: 5n");/ 课程修改函数void updatecouinfo(void)char h16,h116,h216;int d,b,x,z,e,f;printf("ttt*n");printf("ttt 欢迎进入信息修改系统!n");printf("ttt*n");for(d=1;d+)n");printf(" 是否进行信息修改,否请输入 : 0 进行输入其他数字:scanf("%d",&x);if(x!=0)printf("

29、请输入要修改的课程号: ");scanf("%s",&h);printf("请再次输入要修改的课程号: ");scanf("%s",&h1);if (strcmp(h,h1)=0)for(i=0;z=i,i<n;i+)if (strcmp(h,couinfoi0)=0)printf(" 要修改的课程信息是n");for (j=0;j<m;j+)printf("%st",couinfoij);printf("n请 输 入 你 要 修 改 第 几 项n");scanf("%d",&b);printf("请输入你要修改的内容n");scanf("%s",&h2);strcpy(couinfoib-1,h2);for(e=0;e+)否请输入 0 ,否则输入其他:");scanf("%d",&f);if(f!=0)printf("n 请输入你要修改第几项 n");scanf("%d",&b);printf(&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论