课程管理系统设计_第1页
课程管理系统设计_第2页
课程管理系统设计_第3页
课程管理系统设计_第4页
课程管理系统设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

word文档可自由复制编辑学院面向对象程序设计课程设计报告题目:课程管理系统设计专业班级:学生组长:小组成员:指导教师:分数:2014年6月10日

任务书学号姓名专业班级学号姓名学号姓名课程设计题目课程管理系统设计课程设计任课程设计内容假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息,学生可以按要求(如学分不得少于60)自由选课。任务流程分析任务要求,设计方案;画出系统功能模块图;提出方案的可行性、优缺点,进行完善;安排小组成员的分工协作计划,对系统软件模块进行划分;完成软件设计,进行汇总调试;按规定格式,撰写并打印设计报告。进度计划查阅资料,确定及完善设计方案画出系统功能图安排小组成员的分工协作进行软件设计调试程序撰写、打印设计报告指导教师评语指导教师签字:年月日目录总体设计...............................................................................................................41、设计任务目的...................................................................................................

42、设计任务要求

..................................................................................................

43、设计任务意义..................................................................................................

44、设计方案选取与论证

.......................................................................................55、模块划分与任务安排.......................................................................................

6二、软件设计

..............................................................................................................

61、课程信息录入模块的软件设计.......................................................................72、课程信息浏览模块的软件设计.......................................................................

.73、课程信息查询模块的软件设计....................................................................

8三、系统实现及调试过程..........................................................................................

9四、结论.....................................................................................................................

12五、致谢

....................................................................................................................

13六、参考文献

............................................................................................................

13附录一、程序代码....................................................................................................

14附录二、成绩评定表..................................................................................................23一、总体设计1、设计任务目的1.

巩固和加深学生对C语言课程的基本知识的理解和掌握

2.

掌握C语言编程和程序调试的基本技能

3.

利用C语言进行基本的软件设计

掌握书写程序设计说明文档的能力

提高运用C语言解决实际问题的能力设计任务要求试设计一选修课程系统,使之能提供以下功能:系统以菜单方式工作;课程信息录入功能(课程信息用文件保存)——输入;课程信息浏览功能——输出;查询功能:(至少一种查询方式)——算法;按学分查询;按课程性质查询;学生选修课程(可选项)。设计任务意义通过课程设计的实践环节的教学,可以加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时也可以通过查询相关资料,培养学生自学能力、接受新知识的能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,并可培养学生实际上机调试程序的能力。“理论与实践”相结合,使学生得到很好的锻炼,为以后学习、工作打下坚实的基础。设计方案选取与论证系统的主要使用对象是需要选课的学生。学生在选课是首先要录入各个课程的详细信息,。系统还需要随学生选课的变化来浏览和查询学生的总体选课情况课程信息。退出选课系统课程信息查询退出选课系统课程信息查询系统功能模块图

由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有录入、浏览、查询学生选课信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。5、模块划分与任务安排根据小组成员情况,对系统软件模块进行划分,安排小组成员的分工协作计划。分配情况如下:课程信息录入模块;PPT演讲查询选课信息模块;论文撰写浏览选课信息模块;PPT制作软件设计软件设计主函数流程图main()主函数流程图主函数设计地比较简洁,只是提供一个主菜单,switch语句将整个程序分为三个大的功能。管理员的功能一共有三个功能:录入,浏览,查询,运用字符串处理函数处理密码的问题,用一个switch语句实现函数的调用。1.课程信息录入模块的软件设计()

课程信息录入模块课程信息录入模块:以附加的方式打开文件course.txt,调用insert函数并通过printf输入语句输入需要的课程数,根据课程数录入课程的详细信息。

课程信息浏览模块的软件设计()课程信息浏览模块课程信息浏览模块:主要用管理员中的“浏览选课信息”,调用的是browser函数,以只读的方式打开文件course.txt,,将所有的课程信息输出,即将course.txt文件里面的内容全部输出。3.课程信息查询模块的软件设计()关闭文件,然后输入指令关闭文件,然后输入指令返回主菜单退出系统返回主菜单退出系统课程信息查询模块课程信息查询模块主要用于管理员功能中的“查询选课信息”,查询模块共分为两个查询方法:按课程性质查找和按学分查找。在“课程信息查询模块”程序最后的switch语句中,每一个case语句就是一种查询方法。调用search函数以只读的方式打开文件course.txt,然后选择按学分或者课程性质查询。系统实现及调试过程通过使用这个学生课程管理系统软件,可以轻松的管理学生课程信息,你可以对学生课程信息按照现实界面进行信息录入,浏览,查询,等功能。调试中的问题和解决办法:问题:文件在打开和保存时有问题。

解决方法:调整文件的打开方式,从原来的单纯的w+修改为添加一个if语句,当没有文件时执行w+的操作,否则执行r+,避免了原存储文件被覆盖的问题。调试过程:首先运行程序,出现程序的主菜单,按“1”进入录入选课信息操作,如图所示:若输入的选课门数:2。然后自行进行选课的录入过程,录入选课信息结束。如图所示:按“2”进行选课信息的浏览功能,所图所示:按3进行选课信息的查询操作,选择1按学分查询,即可查询该学分的选课课程信息,如图所示:按1返回主菜单后,按3进行选课信息的查询操作,选择2按课程性质查询,即可查询该条件的选课课程信息,如图所示:结论1、对C语言的编程实践有所认识。

2、在遇到程序调试不通过时,会通过缩小范围的分析来锁定问题所在。

3、

通过这次实验,熟悉了从自然语言转换成C++语言再转换为流程图的过程。4、

在程序中设定合适的全局变量,可以简化程序的编写难度。

5、运用函数可以减少编写时的代码量,也使程序条理清晰。

6、通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。随着实验的成功与报告的完成,有点微微的成就感使人难忘。伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。对C语言的学习,我会加倍努力。致谢经过几天的课程设计,我学会了很多东西。这次课程设计的成功完成离不开同学和老师的帮助。当自己在编程中遇到困难的时候,有同学们共同商量,相互协助,献计献策,使我能够比较分析各种方案,找出解决问题的方法;当在课程设计过程中遇到模棱两可的问题,同学们能过各抒己见,尊重他人见解,使我能够综合各种观点,取长补短,虚心借鉴,是程序做得更尽人意;当遇到我们都无法解决的问题时,有辅导老师耐心讲解,详细地指出了程序中的错误,不仅帮我解决了当前编程中的问题,而且使我加深了对C语言的认识,为以后的学习铺平了道路。感谢他们,他们不仅是我收获了更多的知识,丰富了学习经验,而且使我养成了“严谨治学”的学习态度,使我拥有了面对困难的勇气,并且体会到了浓浓的师生情,体会到了同窗之间难以忘怀的友谊。这必定是我人生中一笔宝贵的财富,再次感谢他们!六、参考文献【1】

C语言程序设计实例精粹

【2】

C语言课程设计案例精编

【3】

C语言实战105例

【4】

《C程序设计(第三版)》

谭浩强

清华大学出版

【5】

《C语言程序设计——实验指导

课程设计

习题解答》

高涛

陆丽娜

西安交通大出版附录(程序代码)#include<stdio.h>#include<stdlib.h>#include<string.h>structcourse{ intnum; charname[20]; charkind[10]; inttime; intttime; intetime; intmark; intterm;};structstudent{ intsnum; intcnum; charcname[20];};/*课程信息录入*/voidinsert(){ voidmain(); FILE*fp; structcoursec; intcount; inti; if((fp=fopen("course.txt","a+"))==NULL) { printf("cannotopenfile\n"); } printf("\n请输入课程门数:\n"); scanf("%d",&count); printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n"); for(i=0;i<count;i++) { scanf("%d%s%s%d%d%d%d%d",&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term); fprintf(fp,"%d%s%s%d%d%d%d%d\n",c.num,,c.kind,c.time,c.ttime,c.etime,c.mark,c.term); } fclose(fp); main();}/*课程信息浏览*/voidbrowser(){ voidmain(); FILE*fp; structcoursec; inta; if((fp=fopen("course.txt","r"))==NULL) { printf("\nCannotopencourse!\n"); } printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n"); for(;!feof(fp);) { fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term); printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,c.kind,c.time,c.ttime,c.etime,c.mark,c.term); } fclose(fp); printf("\n1-返回主菜单;2-退出选课系统\n"); scanf("%d",&a); if(a==1) main(); else exit(0);}/*课程信息查询*/voidsearch(){ voidmain(); FILE*fp; structcoursec; intscore; charkind[10]; inta; intb; printf("1.按学分查询,2.按课程性质查询.\n"); printf("请选择查询方式,输入选项数字:"); scanf("%d",&b); if(b==1) { printf("\n请输入您要查询的学分:\n"); scanf("%d",&score); if((fp=fopen("course.txt","r"))==NULL) { printf("\nCannotopencourse!\n"); } printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n"); for(;!feof(fp);) { fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term); if(c.mark==score) printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,c.kind,c.time,c.ttime,c.etime,c.mark,c.term); } } elseif(b==2){ printf("\n请输入您要查询的课程性质:\n"); scanf("%s",&kind); if((fp=fopen("course.txt","r"))==NULL) { printf("\nCannotopencourse!\n"); } printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n"); for(;!feof(fp);) { fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term); if(strcmp(c.kind,kind)==0) printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,c.kind,c.time,c.ttime,c.etime,c.mark,c.term); } } else{ printf("输入错误!"); exit(1); } fclose(fp); printf("\n1-返回主菜单;2-退出选课系统\n"); scanf("%d",&a); if(a==1) main(); else exit(0);}/*统计选课情况*/voidxuanke_information(){ voidmain(); inttotal=0; inta; FILE*fp; structstudents; if((fp=fopen("student.txt","r"))==NULL) { printf("\nCannotopenstudent!\n"); } printf("学号课程编号课程名称\n"); for(;!feof(fp);) { fscanf(fp,"%d%d%s\n",&s.snum,&um,&ame); total++; printf("%7d%9d%13s\n",s.snum,um,ame); } printf("\n选课学生总人数为:%d人",total); fclose(fp); printf("\n1-返回主菜单;2-退出选课系统\n"); scanf("%d",&a); if(a==1) main(); else exit(0);}/*学生选修课程*/voidxuan_ke(){ voidmain();structstudents; structcoursec; inta; FILE*fp; printf("\n请输入您的学号及您要选择的课程编号:"); scanf("%d%d",&s.snum,&um); if((fp=fopen("course.txt","r"))==NULL) { printf("\nCannotopencourse!\n"); } for(;!feof(fp);) { fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term); if(um==c.num) break; } fclose(fp); if((fp=fopen("student.txt","a+"))==NULL) { printf("\nCannotopenstudent!\n"); } fprintf(fp,"%d%d%s\n",s.snum,um,); fclose(fp); printf("\n1-返回主菜单;2-退出选课系统\n"); scanf("%d",&a); if(a==1) main(); else exit(0);}/*主菜单*/voidmain(){ intn,w=0; printf("********************************************************************************\n"); printf("学生选课系统菜单\n"); printf("********************************************************************************\n"); printf("1-录入选课信息\n"); printf("2-浏览选课信息\n")

温馨提示

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

评论

0/150

提交评论