课程设计报告-课程信息管理系统.docx_第1页
课程设计报告-课程信息管理系统.docx_第2页
课程设计报告-课程信息管理系统.docx_第3页
课程设计报告-课程信息管理系统.docx_第4页
课程设计报告-课程信息管理系统.docx_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告学 院: 信息科学与工程学院 专 业: 计算机科学与技术 班 级: 计班 学 号:20121200000 20121200000 20121200000 学生姓名: 郑 李 李 指导教师: 李 课程名称: 程序设计基础 设计名称: 课程信息管理系统 一、 设计内容及要求本系统以个人课程信息为背景,设计和实现了一个小型个人课程信息管理系统。主要有以下功能:1.系统以菜单方式运行工作,界面清晰直观,便于用户操作。2.系统需使用个人密码登陆,较好的保护了用户隐私。3.课程信息查看,查看当前所有课程信息。4.课程信息录入,包括课程名称、性质、教师、时间以及教室。5.课程信息查找,分别按课程名称、时间或性质查找相关课程。6.课程信息修改,核对后可对指定课程的指定项目进行修改。7.课程信息删除,核对后可删除指定课程信息。8.个人密码修改,验证原密码后可设置新密码。二、 设计思路系统概览1.数据结构设计 结构体:用结构体接收课程信息。 文件:用文件储存数据。 2.模块接口设计Void sign() Void login() Void rpw() Void open() Void reorder() Void save() Void inpt() Void look() Int find() Void find2() Void find3() Void del(int i) Void revise(int i) 打印欢迎界面登录模块密码修改打开文件并读取信息按时间对信息排序将内存中信息保存到文件添加信息查看所有信息按名称查找信息按时间查找信息按性质查找信息删除指定信息修改指定信息3.流程图开始switch输入1输入 3输入2输入4输入5输入6查看课程信息表添加课程信息修改课程信息删除课程信息修改密码查找课程信息输入 0结束按时间按名称按性质三、 设计结果及分析.(相关测试图片已删除)1.初始密码的设置测试误输入、设置初始密码为0002.第二次登录测试错误密码,输入000后登陆成功,出现主菜单3.修改密码测试错误密码输入正确密码、测试误输入、设置密码为147重新登录,测试新密码147登录成功4.查看课程信息能正确输出当前课程信息,排列整齐5.添加课程信息添加并保存查看所有课程,已成功添加,并且排序正常添加并放弃保存查看所有课程,未造成影响6.查找课程信息测试按名称查找高数,查找成功并输出正常按时间查找周五,查找成功并输出正常按性质查找必修,查找成功并输出正常7.修改课程信息成功找到对应课程信息并输出,尝试修改教室位置修改成功,返回主菜单,提示是否保存,尝试保存查看所有课程,已成功修改 若放弃保存,查看所有课程,未造成影响8.删除课程信息尝试删除大物,成功找到并输出信息,取消删除查看所有课程,未造成影响再次尝试删除并确定 查看所有课程,已成功删除9.退出系统测试退出系统,成功输出提示信息并退出10.其他测试测试过程中在每个需要读入字符的地方都做了连续输入回车、随机输入单个字符,随机输入字符串的测试,系统运行稳定,提示正常。主要是因为在要读入字符的部分加入了while(getchar()!=n);以读掉无用字符、字符串。加入了while(getchar()=n);以读掉连续回车或之前操作中输入的回车。四、 总结通过本次课程设计,使我对程序设计基础这门课程有了更深入的理解。程序设计基础是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。再总体解决大的问题。这样做起来不仅有条理也使问题得到了轻松的解决。在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。虽然这只是一次的极简单的课程制作,可是平心而论,也耗费了我不少的心血,这就让我不得不佩服开发技术的前辈,才意识到老一辈对我们社会的付出,为了人们的生活更美好,他们为我们社会所付出多少心血啊!对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!通过这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题!五、附录(源代码)#include #include #include FILE *fp;int count; struct lessonchar name10;char nature10;char teacher10;int time;char room10;lesson21;void sign()puts();puts( t);puts( t );puts( t );puts( t 欢迎使用本课程信息管理系统! );puts( t );puts( t );puts( t 第五组设计人员: );puts( t ); puts( t 郑晨阳 );puts( t 李丛渊 );puts( t 李振鹏 );puts( t );puts( t );puts( t);void login()char pws20,pwt20;fp=fopen(password,rb);if(fp=NULL)puts(您是第一次登录本系统,请设置您的密码);fp=fopen(password,wb+);while(1)dogets(pws);while(pws0=0);puts(请再次输入以确认您的密码);gets(pwt);if(strcmp(pwt,pws)!=0)puts(您两次输入的密码不一致!请重新输入);elsefputs(pws,fp);fclose(fp);puts(已成功设置您的密码,请牢记);getchar();system(CLS);break;elsefgets(pws,20,fp);puts(请输入密码);while(1)gets(pwt);if(strcmp(pwt,pws)!=0)puts(您输入的密码不正确!请重新输入);elsesystem(CLS);puts(登录成功!);break;fclose(fp);void rpw()char pws20,pwt20;fp=fopen(password,rb);if(fp=NULL)puts(运行出错!);elsefgets(pws,20,fp);puts(请输入原密码);while(1)dogets(pwt);while(pwt0=0);if(strcmp(pwt,pws)!=0)system(CLS);puts(您输入的密码不正确!);return 0;elsesystem(CLS);puts(请输入新密码);while(1)dogets(pws);while(pws0=0);puts(请再次输入以确认您的密码);gets(pwt);if(strcmp(pwt,pws)!=0)puts(您两次输入的密码不一致!请重新输入);elsefp=fopen(password,wb+);fputs(pws,fp);fclose(fp);puts(已成功设置您的密码,请牢记);getchar();system(CLS);return 0;break;void open()if(fp=fopen(lessonlist,rb)=NULL) printf(当前没有课程信息,请添加!n);return 0;while(fread(&lessoncount+,sizeof(struct lesson),1,fp)=1);count-;fclose(fp);void reorder()int i,j;for(i=0;icount-1;i+)for(j=0;jlessonj+1.time)lesson20=lessonj;lessonj=lessonj+1;lessonj+1=lesson20;void save()int i;fp=fopen(lessonlist,wb);for(i=0;icount;i+)fwrite(&lessoni,sizeof(struct lesson),1,fp);fclose(fp);printf(保存成功!n);void inpt() int i=count,j=0,m,n;puts();while(1) m=n=0;puts(输入课程名称:);scanf(%s,);while(1)puts(选择课程性质:);puts(1:必修);puts(2:选修);scanf(%d,&j);while(getchar()!=n);if(j=1) strcpy(lessoncount.nature,必修);break;if(j=2)strcpy(lessoncount.nature,选修);break;puts(输入教师姓名:);scanf(%s,lessoncount.teacher);puts(输入上课时间:);while(m7)puts(周几?(请直接输入一位数字));scanf(%d,&m);while(getchar()!=n);while(n9)puts(第几节课?(请直接输入一位数字));scanf(%d,&n);while(getchar()!=n);lessoncount.time=m*10+n;puts(输入教室位置:);scanf(%s,lessoncount.room);count+;getchar();while(1) puts(是否继续添加?(y/n);while(j=getchar()=n);while(getchar()!=n);if(j=n|j=N|j=y|j=Y)break;if(j=n|j=N)break;while(1) puts(添加成功,是否保存?(y/n);while(j=getchar()=n);while(getchar()!=n);if(j=n|j=N|j=y|j=Y)break;system(CLS);if(j=y|j=Y)reorder();save();elsecount=i;void look() int i,m,n;system(CLS);puts(-); puts(课程tt性质tt教师tt时间tt教室n); for(i=0;icount;i+)m=lessoni.time/10;n=lessoni.time%10;printf(%stt%stt%stt周%d第%d节t%sn,,lessoni.nature,lessoni.teacher,m,n,lessoni.room);int find() char clas20,j; int i,m,n;while(1)printf(请输入课程名称:);scanf(%s,clas);for(i=0;icount;i+) if(strcmp(clas,)=0) system(CLS);puts(-);puts(课程tt性质tt教师tt时间tt教室n);m=lessoni.time/10;n=lessoni.time%10;printf(%stt%stt%stt周%d第%d节t%sn,,lessoni.nature,lessoni.teacher,m,n,lessoni.room);return i; while(1) puts(没有找到此课程,是否继续查询?(y/n);while(j=getchar()=n);while(getchar()!=n);if(j=n|j=N|j=y|j=Y)break;if(j=n|j=N)system(CLS);return 0;void find2()int i,j=-1,m,n,p,a20;while(j7)puts(要查询周几的课程?(请直接输入一位数字));scanf(%d,&j);while(getchar()!=n);for(i=0,p=0,a0=-1;icount;i+)if(lessoni.time/10=j)ap+=i;system(CLS);if(a0=-1)puts(当天没有课程!);elseputs(-);puts(课程tt性质tt教师tt时间tt教室n);for(i=0;ip;i+)m=lessonai.time/10;n=lessonai.time%10;printf(%stt%stt%stt周%d第%d节t%sn,,lessonai.nature,lessonai.teacher,m,n,lessonai.room);void find3()int i,j,p,m,n,a20;char b5; while(1)puts(选择要查询的课程性质:);puts(1:必修);puts(2:选修);scanf(%d,&j);while(getchar()!=n);if(j=1) strcpy(b,必修);break;if(j=2)strcpy(b,选修);break;for(i=0,p=0,a0=-1;icount;i+)if(strcmp(b,lessoni.nature)=0)ap+=i;system(CLS);if(a0=-1)puts(没有查找到相关课程!);elseputs(-);puts(课程tt性质tt教师tt时间tt教室n);for(i=0;ip;i+)m=lessonai.time/10;n=lessonai.time%10;printf(%stt%stt%stt周%d第%d节t%sn,,lessonai.nature,lessonai.teacher,m,n,lessonai.room);void del(int i)char j;while(1) puts(确定要删除吗?(y/n);while(j=getchar()=n);while(getchar()!=n);if(j=n|j=N|j=y|j=Y)break;system(CLS);if(j=n|j=N)return 0;count-; for(i;i0&j6)k=1;while(getchar()!=n);switch(j)case 1:puts(请输入新的课程名称:);scanf(%s,);break;case 2:while(1)puts(选择课程性质:);puts(1:必修);puts(2:选修);scanf(%d,&j);if(j=1) strcpy(lessoni.nature,必修);break;else if(j=2)strcpy(lessoni.nature,选修);break;else while(getchar()!=n);break;case 3:puts(请输入新的课程教师:);scanf(%s,lessoni.teacher);break;case 4:puts(输入新的上课时间:);while(m7)puts(周几?(请直接输入一位数字));scanf(%d,&m);while(n12)puts(第几节课?(请直接输入一位数字));scanf(%d,&n);lessoni.time=m*10+n;break;case 5:puts(输入教室位置:);scanf(%s,lessoni.room);break;case 0:if(k=1)while(1) puts(是否保存修改?(y/n);while(p=getchar()=n);while(getchar()!=n);if(p=n|p=N|p=y|p=Y)break;system(CLS);if(p=y|p=Y)reorder();save();return 0;elselessoni=lesson20;system(CLS);return 0;elsesystem(CLS);return 0;system(CLS);puts(-);printf(课程tt性质tt教师tt时间tt教室n);m=lessoni.time/10;n=lessoni.time%10;printf(%stt%stt%stt周%d第%d节t%sn,,lessoni.nature,lessoni.teacher

温馨提示

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

评论

0/150

提交评论