C语言课程信息管理系统课程设计报告资料.pdf

上传人:tbuqq 文档编号:5196667 上传时间:2020-02-19 格式:PDF 页数:28 大小:920.65KB
返回 下载 相关 举报
C语言课程信息管理系统课程设计报告资料.pdf_第1页
第1页 / 共28页
C语言课程信息管理系统课程设计报告资料.pdf_第2页
第2页 / 共28页
C语言课程信息管理系统课程设计报告资料.pdf_第3页
第3页 / 共28页
C语言课程信息管理系统课程设计报告资料.pdf_第4页
第4页 / 共28页
C语言课程信息管理系统课程设计报告资料.pdf_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《C语言课程信息管理系统课程设计报告资料.pdf》由会员分享,可在线阅读,更多相关《C语言课程信息管理系统课程设计报告资料.pdf(28页珍藏版)》请在三一文库上搜索。

1、0 C语言程序设计 课程设计报告 专业: 班级: 姓名: 指导教师: 二零一二年十二月二十六日 成 绩 1 目录 一、设计题目2 二、设计目的2 三、设计内容2 3.1 需求分析 2 3.2 概要设计 3 3.3 详细设计 6 3.5 编写过程中遇到的问题及解决办法7 3.4 调试结果 8 3.6 课程设计总结 16 四、参考书目17 附录 A 程序源代码18 2 一、设计题目:课程信息管理系统 二、设计目的 1 、熟练掌握 C语言课程中所学的理论知识; 2 、通过综合 C语言的基本知识来解决实际问题; 3 、加强分析和解决问题的能力。 三、设计内容 3.1 需求分析 设计对 n 门课程进行管

2、理的课程信息管理系统,每门课程有课程编号,课 程名称,课程性质( B为必修, X为选修) ,总学时,学分等。系统功能包括: 1、系统以菜单方式工作,密码登陆。 2、课程信息的录入功能(增加数据) 。用数组数据类型赋初值的方法把课程信 息送到各个数组中(但注意要是合法数据),然后把它们输出显示。 3、课程信息的删除(删除数据) 。任意输入一门课程的编号,将它所有的信息 从数组中删除。 4、 课程信息的浏览功能 (查找数据)。 任意输入一门课程的编号, 打印出所有相 关数据。要求能多次查找。 5、课程信息的删除(修改数据) 。任意输入一门课程的编号,打印出所有相关 信息后,可对某一项信息进行修改并

3、保存。 6、课程信息的计算并排序。 计算所有课程的总学分及平均学分(aver ,单精度, 输出一位小数), 将包括所有数据的数组元素按价格从高到低的顺序排序打印出 来。 3 3.2 概要设计 程序流程图: 开始 根 据 菜 单 输 入 d 的 值 选 择 程 序 Quit()函数输入 c=1 查 询 课 程 信 息 课 程 信 息 的 录 入 退 出 删 除 课 程 信 息 修 改 课 程 信 息 输入 3 输入 2 输入 1 输入 4 输入 5 浏 览 课 程 信 息 课 程 学 分 排 序 保存 是否继续进行 结束 菜单 N Y 4 模块分解: void pasd(); /声明密码函数 声

4、明部分 (1)主函数模块void zhujie(); /声明 zhujie()函数 zhujie(); /调用 zhujie()函数 调用部分 pasd(); /调用密码函数 联系 联系 声明部分: void yewu(); /声明业务函数 (2)密码模块 调用部分: yewu(); /调用业务函数 联系 联系void inputcouinfo(void); /声明输入函数 void updatecouinfo(void); /声明修改函数 void addcouinfo(void); /声明添加函数 声明部分 void findcouinfo(void); /声明查询函数 void orde

5、rcouinfo(void); /声明排序函数 (3)业务模块void delcouinfo(void); /声明删除函数 inputcouinfo(); /调用输入函数 case 1:findcouinfo();break; /调用课程信息查询 调用部分case 2:delcouinfo();break; /调用课程信息删除 case 3:updatecouinfo();break; / 调用课程信息修改 case 4:ordercouinfo();break; / 调用课程信息排序 case 5:addcouinfo(); break; / 调用课程信息添加 5 数据结构的说明: #def

6、ine 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; /密码输入次数控制 业务模块: system(“cls“); /清屏函数 6 3.3 详细设计 密码模块: 注释 Y (是)N(否

7、) Y N 删除模块: 结束 定义数组密码 int n=3; int i; n 为控制输入密码次数 密码是否匹配 进 入 业 务 函 数 开始 7 注释 注释 Y N Y N 3.4 编写过程中遇到的问题及解决办法 (1)在调试函数的过程时, 一般高级语言要求函数实参与形参个数与类型一致, 但在 C 语言编译在该点检查不严格。当出现实参与形参类型不一致时,编译运 行时,系统不报错。因此,错误隐含了下来,给程序调试带来了困难。 解决方法是: 一开始,我自己仔细查找自己的程序的错误,但最终在老师的帮助 下,找到了程序的错误。并将其改正,使程序正常运行。 (2)当要求从键盘读入一字符串时,若选用输入

8、的函数不当时,则容易造成错误, 并很难发现。解决方法:自己认真并且反复检查以及老师的帮助。 开始 定义变量数组char y16; char y116; int d,x,z; 输入一个X 值scanf(“%d“, X 值是否等于0 结束输入 Y,Y1 的值 Y 与 Y1 是否相 等 结束删除该课程 显示没有删除的课程 8 3.5 调试结果 界面 9 10 11 12 13 14 15 16 3.6 课程设计总结 课程管理信息系统心得 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题 ,锻 炼实践能力的重要环节 ,是对我们的实际工作能力的具体训练和考察过程.随着科 学技术发展的日

9、新月异, 当今计算机应用在生活中可以说得是无处不在。因此作 为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C 语言又是最常 见,功能最强大的一种高级语言,因此做好C 语言课程设计是十分必要的。回 顾起此次课程设计, 至今我们仍感慨颇多, 的确,自从拿到题目到完成整个编程, 从理论到实践, 在整整半个月的日子里, 可以学到很多很多的东西, 同时不仅可 以巩固了以前所学过的知识, 而且学到了很多在书本上所没有学到过的知识。通 过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远 远不够的, 只有把所学的理论知识与实践相结合起来,从理论中得出结论, 才能 真正为社会服务,

10、从而提高自己的实际动手能力和独立思考的能力。在设计的过 程中遇到问题, 可以说得是困难重重, 这毕竟第一次做的, 难免会遇到过各种各 样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识 理解得不够深刻, 掌握得不够牢固, 通过这次课程设计之后, 我们把前面所学过 的知识又重新温故了一遍。 我做的是课程管理信息系统, 虽然是很简单的一个小的程序, 但对我一个初学者 来说却是一个很大的困难。 更加是第一次做这样的课程设计,所以第一天下午在 机房做了一个下午却丝毫没有进展,最主要是不知从何开始, 这个时候才知道上 课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认

11、真的 听讲。可是现在一切都晚了, 还好时间还算是充裕, 只好拿出书本重新复习一下。 特别是函数调用和数组的部分,几乎是一片空白。 不过经过几天的努力, 大体上 把课本上的知识点看了一遍, 知识点也都基本是撑握了, 所以下一步就是开始正 式的编程序了。 不过毕竟是个新手, 还是不知如何下手, 于是就在网上下了一篇 类似的程序,经过仔细的研究,终于读懂了C 语言编程的基本过程和方法。经 过一波三折,终于开始正式编程。 17 编程是一件很枯燥很无聊的事情,但是出于完成作业, 得到学分的压力, 还 必须强迫自己坚持下去, 按照老师所说的模块化思想, 分部分的进行编写。 而且 编程是一件高精度、 模范化

12、的事情, 稍有疏乎都会影响全局, 也可能因为某一处 的小的错误而导致整个程序的无法运行。无论如何是自己的劳动成果, 是自己经 过努力得到的成绩,同时也是学习C 语言的一次实践作业,自己进步的证明。 通过这次课程设计,使我对C 语言有了更进一步的认识和了解,要想学好 它要重在实践, 要通过不断的上机操作才能更好地学习它,我也发现我的好多不 足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再 有对 C 语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉, 还有对 C 语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计 算机要重视实践操作,不仅仅是学习C 语

13、言,还是其它的语言,以及其它的计 算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作, 使自己便好地学好计算机。 在课程设计过程中,收获知识, 提高能力的同时,我也学到了很多人生的哲理,懂得怎么样 去制定计划, 怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情 绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难, 勇往直前! 四. 参考书目: 1谭浩强,C程序设计教程 ,北京,清华大学出版社,2007 年 2康莉, 零基础学C语言,北京,机械工业出版社,2010 年 3方风波,C语言程序设计 ,北京,地质出版社,2006 年

14、18 附录 A 源程序代码 #include #include /Console Input/Output(控制台输入输出 ) #include #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(); /声明 zhu

15、jie()函数 zhujie(); /调用 zhujie()函数 pasd(); /调用密码函数 void zhujie() printf(“ n“); printf(“ *n“); printf(“* * * * *n“); printf(“* * * * * 欢迎进入课程管理信息系统* * * * *n“); printf(“ * * * * *n“); printf(“*Welcome to the course information management system*n“); printf(“ *n“); printf(“* *n“); printf(“* *n“); printf

16、(“ * *n“); printf(“* * * *n“); printf(“* * 添加课程信息 * * 删 19 除课程信息 * *n“); printf(“* * * *n“); printf(“ * *n“); printf(“ * *n“); printf(“* *n“); printf(“* *n“); printf(“ * *n“); printf(“ * * * *n“); printf(“* * 查询课程信息 * * 修 改课程信息 * *n“); printf(“* * * *n“); printf(“ *n“); printf(“ n“); / 密码模块 void pas

17、d(void) /定义密码函数 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); /声明添加函数 void findcouinfo(void); /声明查询函数 void ordercouinfo(void); /声明排序函数 void delcouinfo

18、(void); /声明删除函数 void updatecouinfo(void); /声明修改函数 char d; system(“cls“); if (c=1) inputcouinfo(); /调用输入函数 printf(“t课程信息查询请输入: 1 nt课程信息删除请输入: 2 nt课程信息修改请输入: 3 nt课程信息排序请输入: 4 nt课程信息添加请输入:5n“); printf(“您是否进行其他操作,否输入0,否则输入其他 :“); scanf(“%d“, for (i=0;i+) 21 if(a!=0) printf(“请输入要操作的选项:“); scanf(“%s“, swi

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

20、“); printf(“ttt 欢迎进入信息输入系统!n“); printf(“ttt *n“); printf(“请注意:性质为必修(B) 或选修 (X)n“); printf(“tt课程号名称性质总学时学分 n“); for (i=0;in;i+) printf(“输入课程编号 %d:“,x+); for (j=0;jm;j+) scanf(“%s“, printf(“课程号名称性质总学时学分n“); for (i=0;in;i+) for (j=0;jm;j+) 22 printf(“%st“,couinfoij); printf(“n“); void addcouinfo(void)

21、/课程信息添加函数 int d,t,z; printf(“ttt*n“); printf(“ttt欢迎进入信息添加系统!n“); printf(“ttt*n“); for(d=1;d+) printf(“n是否进行添加, “否”请输入 0, 进行输入其他 n“); scanf(“%d“, if(t!=0) printf(“请输入要添加的第%d个课程信息 :n“,d); printf(“课程号名称性质总学时学分 n“); z=n+; for (j=0;jm;j+) scanf(“%s“, printf(“%st“,couinfozj); else break; system(“cls“); pr

22、intf(“t课程查询请输入: 1 nt课程删除请输入 : 2 nt课程修改请输入 : 3 nt课程排序请 输入 : 4 nt课程添加请输入:5n“); void findcouinfo(void) /课程信息查询函数 char y16; int d,t,z; printf(“ttt*n“); printf(“ttt欢迎进入信息查询系统!n“); printf(“ttt*n“); 23 for(d=1;d+) printf(“n是否进行查询, “否”请输入 0n“); scanf(“%d“, if(t!=0) printf(“请输入要查询的课程号:“); scanf(“%s“, printf(

23、“课程号名称性质总学时学分 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课程查询请输入: 1 nt课程删除请输入 : 2 nt课程修改请输入 : 3 nt课程排序请 输入 : 4 nt课程添加请输入:5n“); void delcouinfo(void) /课程信息删除函数 char y16; char y116

24、; int d,x,z; printf(“ttt*n“); printf(“ttt欢迎进入信息删除系统!n“); printf(“ttt*n“); for(d=1;d+) printf(“是否进行删除信息,否请输入: 0 进行输入其他数字:n“); scanf(“%d“, if(x!=0) 24 printf(“请输入要删除的课程号:“); scanf(“%s“, printf(“请再次输入要删除的课程号:“); scanf(“%s“, printf(“课程号名称性质总学时学分 n“); if (strcmp(y,y1)=0) for (i=0;in;i+) if (strcmp(y,coui

25、nfoi0)=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); printf(“n“); s

26、ystem(“cls“); 25 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“); printf(“ttt欢迎进入信息修改系统!n“); printf(“ttt*n“); for(d=1;d+) printf(“是否进行信息修改,否请输入: 0 进行输入其他数字:n“); scanf(“%d“, if(x!=0)

27、printf(“请输入要修改的课程号:“); scanf(“%s“, printf(“请再次输入要修改的课程号:“); scanf(“%s“, 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请输入你要修改第几项n“);scanf(“%d“, printf(“请输入你要修改的内容n“);scanf(“%s“, strcpy(couinfoib-1,h2); for(e=

28、0;e+) printf(“您是否进行其他修改,否请输 入 0 ,否则输入其他:“); scanf(“%d“, if(f!=0) printf(“n请输入你要修改 26 第几项 n“);scanf(“%d“, printf(“请输入你要修改的内容 n“);scanf(“%s“, else break; strcpy(couinfoib-1,h2); for(j=0;jm;j+) printf(“%st“,couinfoij); printf(“n“); break; if(z=n-t) printf(“没有此课程号信息n“); else break; system(“cls“); printf

29、(“t课程查询请输入: 1 nt课程删除请输入 : 2 nt课程修改请输入 : 3 nt课程排序请 输入 : 4 nt课程添加请输入:5n“); / 排序模块 void ordercouinfo(void) /按学分排序 int fm1; int x,z,max; 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“); f

30、or(i=0;in-t;i+) 27 scanf(“%d“, 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,max=0;jn-t;j+) if(maxfj) max=fj,x=j; fx=0; for(z=0;zm;z+) printf(“%st“,couinfoxz); printf(“n“); printf(“t课程查询请输入: 1 nt课程删除请输入 : 2 nt课程修改请输入 : 3 nt课程排序请 输入 : 4 nt课程添加请输入:5n“);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1