(完整word版)学生选课系统实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武夷学院
课程设计报告
课程名称:C语言程序设计
设计题目:学生选课管理系统
学生班级:2014级计算机科学与技术2班学生姓名:=
指导教师:
完成日期:2015-1-9
数学与计算机学院
课程设计项目研究报告
目录
第 1 章项目简介 (03)
1.1 项目名称 (03)
1.2 开发人员 (03)
1.3 指导教师 (03)
第 2 章项目研究意义 (03)
2.1 课程设计概述 (03)
2.2 需求分析 (03)
2.3 研究意义 (04)
第 3 章采用的技术 (04)
3.1 课程设计的方案设计论证 (04)
3.2 流程描述或代码描述 (05)
3.3 部分重要算法设计06第4 章课程设计项目进度表 (07)
第5 章课程设计任务分配表 (08)
第6 章达到的效果 (08)
6.1 程序设计思想 (08)
6.2 程序最终实现结果 (09)
第7 章源程序 (11)
第8 章附录 (14)
8.1 学生选课登记管理系统 (14)
第9 章设计心得 (15)
第10 章参考文献 (15)
第 1 章项目简介
1.1 项目名称
学生选课管理系统
1.2 开发人员
2014计算机科学与技术刘雪涓王芬岚王小倩王林峰丁义勋
1.3 指导教师
程仁贵
第 2 章项目研究意义
2.1 课程设计概述
学生选课管理系统是学生管理的一个重要环节,程序是在Microsoft VC++上执行的。该程序为学生提供选修课程。1.假定有n门的课程,每门课程都有编号、课程名称、课程性质、(专业选修课、公关课)、总学时、总学分、理论学时、已选修本课程学生人数等信息;每门课最多允许60个学生选修。2.选修信息文件,用来保存每个学生选修课程的信息,每条记录包括:学生的学号、所选修的课程编号和课程名称。3.系统以菜单的方式工作(需要输入功能号码,进入功能模块程序。)4.用函数分别实现动态链表的建立、动态链表输出等功能。5.界面友好,程序中加入必要的注释。6.学生选修一门课后,要同时更新课程信息和选修信息文件。
.2.2 需求分析
当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用与信息系统的环境。计算机的最到好处的是利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。
数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。
2.3 研究意义
该系统的实际实现学生选课信息关系的系统化,规范化和自动化。学生选课系统要求处理的开发性,方便老师上传学生成绩,学生上网选课和查询选课信息及成绩。采用这样的系统即可以小范围的处理信息有可疑根据业务规则和数据处理逻辑的集中在服务器上统一管理,客户端无需进行复杂的计算,也不会因为复杂的操作而影响到其他用户。所以具有较强的可靠性,稳定性。在功能方面,可实现学生选课注册。可对学生成绩档案进行管理,成绩表单生成简便。安全有效的进行用户区分和管理档案数据也更加具有保密性和安全性。使用起来稳定,操作性能好,惭怍方法又易于掌握,系统安全性强,所以该系统很值得研究开发。
………………..
第 3 章采用的技术
3.1 课程设计的方案设计论证
1.简洁明了的程序菜单。程序主要采用了六组层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。
2.人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地进行程序的操作。
3.智能化的模块设计。程序的智能化主要体现在减少了许多人工操作。如功能模块操作结束后,均会返回主菜单进行下一模板的运行,并提示是否再进行类似的操作,这样给用户带来了操作的方便,大大提高了学生选课的效率。
本程序达到了C语言课程设计题目的所有要求。即本程序(1)系统一菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存输入(3)课程信息浏览功
能——输出(4)查询功能(至少一种查询方式)——算法(5)按学分查询(6)某门课程学生选修情况(可选项)的功能要求。
与此同时,程序各模块开发设计依据了程序的具体实际的使用情景,而有所改进,使其更具有实用性。
3.2 流程描述或伪代码描述
.3.3部分重要算法设计:
【1】
void overview(); //浏览函数,负责浏览整个课程信息
void seek(); //查询函数,负责查询课程信息
void choose_course();//选课函数,负责让用户选课
void out(type temp);
void input();
int main()
{
int n,i;
if((fp1=fopen("course_information.txt","wb"))==NULL)
{printf("创建文件失败!\n");exit(0);}
printf("请输入要存储的课程数目:\n");
【2】
while((scanf("%d",&n))!=EOF)
{
if(n==1)
overview();
if(n==2)
seek();
if(n==3)
choose_course();
if(n==0)
exit(0);
printf("\n\n如想继续操作,只要按规则输入你要进行的操作即可!\n规则:如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3!\n");
【3】
void overview()
{
rewind(fp1);
course temp;
printf("整个课程信息如下:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
out(temp);
}
void seek()
{
int judge,credit=0,kind=0;
char a='N';
course temp;
printf("如想按学分查询,请输入1;如想按课程性质,请输入2:\n");
scanf("%d",&judge);