C语言课程信息管理系统课设报告.doc
《C语言课程信息管理系统课设报告.doc》由会员分享,可在线阅读,更多相关《C语言课程信息管理系统课设报告.doc(31页珍藏版)》请在咨信网上搜索。
. 成 绩 《C语言程序设计》 课程设计报告 专 业: 班 级: 姓 名: 指导教师: 二零一二年十二月 二十六日 目 录 一、设计题目……………………………………………………………2 二、设计目的……………………………………………………………2 三、设计内容……………………………………………………………2 3。1需求分析……………………………………………………………2 3.2 概要设计…………………………………………………………3 3.3 详细设计…………………………………………………………6 3.5 编写过程中遇到的问题及解决办法……………………………7 3.4 调试结果…………………………………………………………8 3。6课程设计总结……………………………………………………16 四、参考书目…………………………………………………………17 附录A 程序源代码…………………………………………………18 一、设计题目:课程信息管理系统 二、设计目的 1、熟练掌握C语言课程中所学的理论知识; 2、通过综合C语言的基本知识来解决实际问题; 3、加强分析和解决问题的能力。 三、设计内容 3.1 需求分析 设计对n门课程进行管理的课程信息管理系统,每门课程有课程编号,课程名称,课程性质(B为必修,X为选修),总学时,学分等。系统功能包括: 1、系统以菜单方式工作,密码登陆。 2、课程信息的录入功能(增加数据)。用数组数据类型赋初值的方法把课程信息送到各个数组中(但注意要是合法数据),然后把它们输出显示。 3、课程信息的删除(删除数据)。任意输入一门课程的编号,将它所有的信息从数组中删除. 4、课程信息的浏览功能(查找数据)。任意输入一门课程的编号,打印出所有 相关数据。要求能多次查找. 5、课程信息的删除(修改数据)。任意输入一门课程的编号,打印出所有相关信息后,可对某一项信息进行修改并保存。 6、课程信息的计算并排序.计算所有课程的总学分及平均学分(aver,单精度,输出一位小数),将包括所有数据的数组元素按价格从高到低的顺序排序打印出来. 3。2 概要设计 程序流程图: 开始 根据菜单输入d的值选择程序 Quit()函数 输入c==1 查询课程信息 课程信息的录入 退 出 删除课程信息 修改课程信息 输入3 输入2 输入1 输入4 输入5 浏览课程信息 课程学分排序 保存 是否继续进行 结束 菜单 N Y 模块分解: void pasd(); //声明密码函数 声明部分 (1)主函数模块 void zhujie(); //声明zhujie()函数 zhujie(); //调用zhujie()函数 调用部分 pasd(); //调用密码函数 联系 联系 声明部分:void yewu(); //声明业务函数 (2)密码模块 调用部分:yewu(); //调用业务函数 联系 联系 void inputcouinfo(void); //声明输入函数 void updatecouinfo(void); //声明修改函数 void addcouinfo(void); //声明添加函数 声明部分 void findcouinfo(void); //声明查询函数 void ordercouinfo(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; //调用课程信息添加 数据结构的说明: #define n1 20 //控制课程个数的存储空间 #define m1 5 //控制课程属性个数的存储空间空间 char couinfo[n1][m1][16]; //定义全局数组 char password[]={"123456”}; //原密码 int a, i,j,t=0,c=0,n=4,m=5; //定义全局变量 密码模块: char p[9]; //定义密码数组 p[i]==8 //控制退格 p[i]==13 //回车控制 strcmp(p,password)==0 //密码匹配 字符串比较函数 int n=3; //密码输入次数控制 业务模块: system(”cls”); //清屏函数 3.3 详细设计 密码模块: 定义数组密码 int n=3;n=3; n=3; int n=3; int i; 密码是否匹配 n为控制输入密码次数 注释 进 入 业 务 函 数 Y (是) N(否) Y N 结束 始 开 始 删除模块: char y[16]; char y1[16]; int d,x,z; 定义变量数组 开 始 scanf("%d",&x); 输入一个X值 注释 X值是否等于0 注释 Y与Y1是否相等 输入Y,Y1的值 结 束 Y N 显示没有删除的课程 删除该课程 结 束 Y N 3。4 编写过程中遇到的问题及解决办法 (1)在调试函数的过程时,一般高级语言要求函数实参与形参个数与类型一致,但在C语言编译在该点检查不严格。当出现实参与形参类型不一致时,编译运行时,系统不报错.因此,错误隐含了下来,给程序调试带来了困难。 解决方法是:一开始,我自己仔细查找自己的程序的错误,但最终在老师的帮助下,找到了程序的错误。并将其改正,使程序正常运行。 (2)当要求从键盘读入一字符串时,若选用输入的函数不当时,则容易造成错误,并很难发现.解决方法:自己认真并且反复检查以及老师的帮助。 3.5 调试结果 界面 3.6 课程设计总结 课程管理信息系统心得 课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在.因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识.通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 我做的是课程管理信息系统,虽然是很简单的一个小的程序,但对我一个初学者来说却是一个很大的困难。更加是第一次做这样的课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。特别是函数调用和数组的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法. 经过一波三折,终于开始正式编程。 编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强迫自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。 通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前! 四。参考书目: [1] 谭浩强,《C程序设计教程》,北京,清华大学出版社,2007年 [2] 康莉,《零基础学C语言》,北京,机械工业出版社,2010年 [3] 方风波,《C语言程序设计》,北京,地质出版社,2006年 附录A 源程序代码 #include <stdio.h> #include 〈conio.h〉 //Console Input/Output(控制台输入输出) #include 〈string.h> #define n1 20 //控制课程个数的存储空间 #define m1 5 //控制课程属性个数的存储空间空间 char couinfo[n1][m1][16]; //定义全局数组 char d[16], b[6]; char password[]={"123456"}; //原密码 int a, i,j,t=0,c=0,n=4,m=5; //定义全局变量 //主函数模块 void main() { void pasd(); //声明密码函数 void zhujie(); //声明zhujie()函数 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("★* ★ ★★ ★ *\n”); printf("★* ★ **************** ★★ **************** ★ *\n"); printf("★* ★ * 添加课程信息 * ★★ * 删除课程信息 * ★ *\n"); printf("★* ★ **************** ★★ **************** ★ *\n”); printf(”★* ★ ★★ ★ *\n"); printf(”★* ★ ★★ ★ *\n"); printf(”★*★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★*\n”); printf("★* ★ ★★ ★ *\n"); printf(”★* ★ ★★ ★ *\n”); printf("★* ★ **************** ★★ **************** ★ *\n”); printf("★** ★ * 查询课程信息 * ★★ * 修改课程信息 * ★ **\n”); printf("★***★ **************** ★★ **************** ★***\n”); printf(”★******************************************************************************\n"); printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n”); } //密码模块 void pasd(void) //定义密码函数 { void yewu(); //声明业务函数 int i; char p[9]; int n=3; //密码输入次数控制 do { printf(”please enter password:\n"); //输入密码 for(i=0;i〈6;i++) { p[i]=getch(); if (p[i]==8) //控制退格 { i=i-2; printf("\b \b"); } else { printf(”*"); if(p[i]==13) break; //回车控制 } p[6]=’\0'; } if(strcmp(p,password)==0) //密码匹配strcmp(p,password) { //printf(”\n"); c=1; yewu(); //调用业务函数 break; } else { printf(”please enter password again:\n”); 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("\t课程信息查询请输入: 1 \n\t课程信息删除请输入: 2 \n\t课程信息修改请输入: 3 \n\t课程信息排序请输入: 4 \n\t课程信息添加请输入:5\n"); printf("您是否进行其他操作,否输入0,否则输入其他:"); scanf(”%d",&a); for (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 inputcouinfo(void) //定义课程信息输入函数 { int x=1; printf(”\t\t\t **********************\n”); printf(”\t\t\t 欢迎进入信息输入系统!!\n"); printf("\t\t\t **********************\n"); printf("请注意:性质为必修(B)或选修(X)\n"); printf(”\t\t课程号 名称 性质 总学时 学分\n"); for (i=0;i〈n;i++) { printf(”输入课程编号%d:",x++); for (j=0;j〈m;j++) { scanf(”%s",&couinfo[i][j]); } } printf(”课程号 名称 性质 总学时 学分\n"); for (i=0;i〈n;i++) { for (j=0;j〈m;j++) { printf("%s\t",couinfo[i][j]); } printf("\n”); } } void addcouinfo(void) //课程信息添加函数 { int d,t,z; printf(”\t\t\t**********************\n”); printf("\t\t\t欢迎进入信息添加系统!!\n”); printf(”\t\t\t**********************\n”); for(d=1;;d++) { printf("\n是否进行添加,“否” 请输入0,进行输入其他\n”); scanf(”%d",&t); if(t!=0) { printf(”请输入要添加的第%d个课程信息:\n",d); printf("课程号 名称 性质 总学时 学分\n”); z=n++; for (j=0;j<m;j++) { scanf("%s”,&couinfo[z][j]); printf(”%s\t”,couinfo[z][j]); } } else break; } system("cls”); printf(”\t课程查询请输入: 1 \n\t课程删除请输入: 2 \n\t课程修改请输入: 3 \n\t课程排序请输入: 4 \n\t课程添加请输入:5\n”); } void findcouinfo(void) //课程信息查询函数 { char y[16]; int d,t,z; printf(”\t\t\t**********************\n"); printf("\t\t\t欢迎进入信息查询系统!!\n"); printf(”\t\t\t**********************\n"); for(d=1;;d++) { printf(”\n是否进行查询,“否” 请输入0\n"); scanf(”%d",&t); if(t!=0) { printf("请输入要查询的课程号:"); scanf("%s”,&y); printf(”课程号 名称 性质 总学时 学分\n”); for(i=0;z=i,i〈n1;i++) { if(strcmp(y,couinfo[i][0])==0) { for (j=0;j〈m;j++) { printf("%s\t”,couinfo[i][j]); } break; } } if(z==n) printf("没有此课程号信息\n”); } else break ; } system(”cls"); printf("\t课程查询请输入: 1 \n\t课程删除请输入: 2 \n\t课程修改请输入: 3 \n\t课程排序请输入: 4 \n\t课程添加请输入:5\n”); } void delcouinfo(void) //课程信息删除函数 { char y[16]; char y1[16]; int d,x,z; printf("\t\t\t**********************\n”); printf(”\t\t\t欢迎进入信息删除系统!!\n"); printf("\t\t\t**********************\n”); for(d=1;;d++) { printf(”是否进行删除信息,否请输入: 0 进行输入其他数字:\n"); scanf("%d”,&x); if(x!=0) { printf(”请输入要删除的课程号:”); scanf("%s”,&y); printf(”请再次输入要删除的课程号:"); scanf(”%s”,&y1); printf("课程号 名称 性质 总学时 学分\n"); if (strcmp(y,y1)==0) { for (i=0;i〈n;i++) { if (strcmp(y,couinfo[i][0])==0) { z=i; printf("要删除的课程信息是\n”); for (j=0;j〈m;j++) { printf(”%s\t”,couinfo[i][j]); } t++; } printf(”\n"); } for (i=z;i〈n-t;i++) { for (j=0;j〈m;j++) { strcpy(couinfo[i][j],couinfo[i+1][j]); } } if(z==n) printf(”没有此课程号信息\n"); } } else break; printf("课程号 名称 性质 总学时 学分\n"); for (i=0;i〈n-t;i++) { for (j=0;j<m;j++) { printf(”%s\t”,couinfo[i][j]); } printf("\n”); } } system(”cls"); printf("\t课程查询请输入: 1 \n\t课程删除请输入: 2 \n\t课程修改请输入: 3 \n\t课程排序请输入: 4 \n\t课程添加请输入:5\n"); } //课程修改函数 void updatecouinfo(void) { char h[16],h1[16],h2[16]; int d,b,x,z,e,f; printf("\t\t\t**********************\n”); printf("\t\t\t欢迎进入信息修改系统!!\n”); printf(”\t\t\t**********************\n"); for(d=1;;d++) { printf(”是否进行信息修改,否请输入: 0 进行输入其他数字:\n"); scanf(”%d”,&x); if(x!=0) { printf("请输入要修改的课程号:"); scanf("%s",&h); printf(”请再次输入要修改的课程号:"); scanf("%s",&h1); if (strcmp(h,h1)==0) { for(i=0;z=i,i〈n;i++) { if (strcmp(h,couinfo[i][0])==0) { printf(”要修改的课程信息是\n"); for (j=0;j<m;j++) { printf(”%s\t",couinfo[i][j]);} printf("\n请输入你要修改第几项\n”);scanf(”%d",&b); p- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程 信息管理 系统 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文