学生选课管理系统本科论文.docx
《学生选课管理系统本科论文.docx》由会员分享,可在线阅读,更多相关《学生选课管理系统本科论文.docx(52页珍藏版)》请在冰豆网上搜索。
学生选课管理系统本科论文
摘要
随着课程改革的不断深入,学校规模不断扩大、课程项目不断增多,为了解决学生选课管理上的复杂的人工操作,减轻重复工作,故设计了选课系统。
学校规模的扩大使得学校对每年新生入学、毕业生离校及本校各种分流机制造成的学生信息产生变动,如学籍变动、个人信息修改。
为了适应课程的改革,学校在每个学期都要开设一定的课程提供给学生,让学生根据自己的情况来选择,根据学生选择结果给出课程表。
本校根据教学实际,为了使教师有效地管理学生信息,设计学生信息管理系统,由此形成学生成绩管理系统,本文就此设计思路进行阐述。
随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的课程信息管理系统来提高管理工作的效率。
基于校园网的学生选课管理系统,在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。
它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性.
关键词:
选课系统;学生信息管理系统;数据流图
Abstract
Withthedeepeningofthecurriculumreform,increasingtheschoolcontinuestoexpandthescale,courseproject,inordertosolvethecomplexmanualoperationofstudentmanagement,reduceduplicationofwork,sothedesignofthecourseselectionsystem.Theschoolscaleexpansionsothattheschoolofnewstudentseachyear,theschoolleaversandvariousdistributionmechanismofstudentinformationchanges,suchasthestudentstatuschanges,personalinformationchanges.Inordertoadapttothereformofcurriculum,theschoolshouldsetupsomecoursesavailabletostudentsineachsemester,studentsaccordingtotheirownsituationtochoose,accordingtotheirchoiceresultsaregivencurriculum.Theschoolaccordingtotheteachingpractice,inordertoenableteacherstoeffectivelymanagestudentinformation,studentinformationmanagementsystemdesign,therebyformingastudentachievementmanagementsystem,thispaperdescribedthedesignideas.
Withthecontinuousexpansionofschoolsize,thenumberofprofessional,class,studentsincreaseddramatically,theamountofinformationonavarietyofelectivestudentsalsomultiplied,andnowmanycollegestudentscoursemanagementstillstaysinthecomplexmanualoperation,toomuchrepeatedwork,heavyworkload,lowefficiency,therefore,itisurgenttodevelopcurriculuminformationmanagementsystembasedonInternettoimprovemanagementefficiency.Studentcoursemanagementsystembasedoncampusnetwork,isofgreatpracticalsignificanceinstandardizingmanagement,studentelectivesciencestatisticsandrapidinquiry.Itimprovestheopennessofinformation,hasgreatlyimprovedtheaccuracyofstudents,teachersofthelatestinformationquery.
Keywords:
coursesystem,;studentinformationmanagementsystem;dataflowdiagram
目录
1概述………………………………………………………………………………….1
1.1学生选修课的介绍…………………………………………………………...1
1.2管理者在本系统的功能……………………………………………………...1
1.3对功能的规定………………………………………………………………...1
1.4系统开发的意义……………………………………………………………...2
1.5系统开发的背景……………………………………………………………...2
2总体设计……………………………………………………………………….……3
2.1总体设计描述………………………………………………………………....3
2.2总体设计模块………………………………………………………………...4
3详细设计…………………………………………………………………………….5
3.1主函数,头文件及结构体声明………………………………………………5
3.2管理员功能模块……………………………………………………………...6
3.3学生功能菜单………………………………………………………………...8
3.4创建链表模块………………………………………………………………..10
3.5浏览模块……………………………………………………………………..12
3.6查询模块……………………………………………………………………..17
3.7插入链表模块………………………………………………………………..17
3.8添加模块……………………………………………………………………17
3.9删除模块…………………………………………………………………….18
3.10选修课程模块……………………………………………………………...19
3.11读取﹑保存文件模块....................................................................................21
4系统测试……………………………………………………………………………26
4.1进入界面……………………………………………………………………..23
4.2进入管理者系统26
4.3进入学生菜单26
5结论………………………………………………………………………………...30
参考文献34
致谢32
1概述
1.1学生选修课的介绍
现代的社会是信息化的社会,信息无所不在。
在生产领域、流通领域、各个部门每天都和信息打交道,如何处理如此多的信息成为了一个重要的课题。
学生在学期开始选课是教学活动中的一个重要环节,该环节如果能管理好,它不仅能加快学生的选课速度,也提高了整个活动的效率。
大学一般都有上千名学生,每学期开始学生都要选课,因而产生了大量的课程信息。
考虑到用户使用的方便和处理的信息量系统要完成录入,保存,查询,修改和删除课程信息的各种过程,能打印出课程信息表。
系统的主要使用对象是需要选课的学生,学生在选课是要察看各个课程的详细信息,还要选择一些感兴趣的课程,需要生成课表,在发现课程有冲突后能够修改先前选择的信息。
需要随学生选课的变化,计算相应的总学分。
在全部选定后,打印报表。
系统还需要管理员来查看和修改学生的总体选课情况课程信息和学生信息。
选课系统开发的目标是实现学生选课信息关系的系统化、规范化和自动化
为保证系统安全高效地运行,本系统把用户划分为2类:
管理者和学生。
不同的用户在系统中的作用和权限也有所不同,所以它所需要完成的功能也就不同。
1.2管理者和学生在本系统的功能
管理者:
查询学生选课情况、自己任课情况、获取自己所担任课程分班表、录入及修改成绩等。
学生:
查询本人信息、教师任课信息、选课、选课信息查询、成绩查询。
1.3对功能的规定
1)可实现学生选课注册。
2)方便实现学生选课信息查询。
3)可对学生成绩档案进行管理,成绩表单生成简便。
4)安全有效的用户区分,管理。
5)档案数据的高安全性,保密性。
6)有帮助文档
1.4系统开发的意义
学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
因此,开发这样一套软件成为很有必要的事情
1.5系统开发的背景
目前,我国的高等教育事业蓬勃发展,高校的规模不断扩大,同时,高校的教学改革也在全面推行,学分制在各高校全面启动。
学分制——允许学生在计划的指导下,根据自己的条件、能力、志趣,有选择地支配自己的学习。
因此,学生的选课就成为推行学分制的重要管理任务。
以往的选课均是在计划模式下进行:
每位教师将所开的课程名称,个人简介,课程限选人数,限选专业等信息交给教务处,教务处再将这些信息统一成册,分发给各个班级班长,由班长将本班的选课情况统计并返回教务处。
这是一个相当长的周期,并且耗费大量的人力、物力,对选择结果没有控制。
学生选课系统能够让学生们在网络上自主选择选修课程,教务处的工作人员则通过网络来处理学生的选课信息。
这个系统实现了对信息数据的浏览、查询、编辑和管理等基本数据库操作,采取模块化的编写思想,提高了可读性,同时提高了开发效率,从而实现了校园无纸化办公,提高选课的效率,减轻选课操作的工作量,从而提高教学管理的效率
2总体设计
2.1总体系统描述
系统能够提供友好的用户界面,使操作人员的工作量最大限度的减少;系统具有良好的运行效率,能够得到提高管理效率的目的;系统应有良好的可扩充性,可以容易的加入其它的系统的应用;平台的设计具有一定的超前性,灵活性,能够适应学校管理的变化;软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系。
设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能。
学生选修课程系统分为10个模块,分别为界面模块,管理者浏览模块,管理者查询模块,管理者添加模块,管理者删除模块,学生浏览模块,学生查询模块,学生选择模块,学生浏览选修课模块,学生删除模块。
显示模块显示选择菜单输入0-1可以进入各个不同的菜单程序模块。
添加模块是用于对学生选修课程的输入。
查询模块用于查询课程信息,按照系统提示你可以查看课程信息,看所有输删除模块是用于对输入的课程信息的删除,当一个输入的课程信息有错误时,可以进行删除。
学生选修课程系统是实现对学生学籍信息如学号、姓名、性别、年龄、籍贯等实现输入、查询有关信息、、输出、添加新生信息等功能的系统。
功能总体结构如下图所示:
浏览模块:
该模块能够查询所输入的课程信息。
输入模块:
该模块是实现对课程信息的录入并保存到文件中。
查询模块:
实现按单个或全部查询课程信息。
删除模块:
该模块实现按单个或全部来删除错误的课程信息从而更好的帮助学生选课或学生进行删除课程。
选择选修课程模块:
该模块来帮助学生进行选修课程的选择。
学生浏览所选课程模块:
该模块可以使学生来查询自己所选的课程
2.2总体设计模板
(1)管理员信息:
管理员名称、管理员密码。
课程信息:
课程号、课程名称、课程类别、开课系﹑选课信息:
课程号、学生学号、成绩
(2)在管理员菜单中管理员可以进行对选修课程的输入和删除,从而使得学生可以去进入学生菜单去选择选修的课程
(3)学生可以在学生菜单中先进行对课程的浏览,再进入选择模块进行对课程的选择,当学生想查看自己的选修课程信息时进入查询模块就可以查询到自己所选的课程和课程信息。
若对所选的课程不满意可以进入删除模块进行删除
(4)当输入1到3以外的数字时进入不到任何界面,该程序采用多个main()函数模块分别来实现程序的运行,通过使用数组功能来实现数据的录入,使用strcpy()函数来实现录入信息的复制,整个结构从整体来看使用了选择结构,break..case..的合理利用.
图3.1主模块
3详细设计
3.1主函数,头文件及结构体声明
主函数设计地比较简洁,只是提供一个主菜单,switch语句将整个程序分为两个大的功能模块:
进入管理者界面和进入学生界面。
当输入1时进入管理员菜单,当输入2时进入学生菜单,当输入3时退出程序
图3.2主函数模块流程图
[程序]
intmain()
{
intn,w=1;
do
{
system("cls");puts("\n\n\t\t*****************MENU******************\n\n");
puts("\t\t\t\t1.以管理员身份登录\n");
puts("\t\t\t\t2.以学生身份登录\n");
puts("\t\t\t\t3.退出");
puts("\n\n\t\t*******************************************\n");
printf("Chioseyournumber(1-3):
[]\b\b");
scanf("%d",&n);
switch(n)
{
case1:
Mangers();break;
case2:
Students();break;
case3:
w=0;break;
default:
;
}
}
while(w==1);
return0;}
3.2管理员功能模块
管理员的功能一共有四个功能:
浏览,查询,添加,删除课程,运用字符串处理函数处理密码的问题,用一个switch语句实现函数的调用。
当进入登陆界面后输入管理员密码1进入管理员菜单,来进行对课程的输入和删除
图3.3管理员功能模块流程图
[程序]
voidMangers()
{
intn,w=1,flag=0,i=3;
chars[8];
charpassword[7]="1";
do
{
printf("\n\nEnterpassword:
");
scanf("%s",s);
if(!
strcmp(s,password))//进行密码匹配验证
{
flag=1;
break;
}
else
{
printf("\n\nError!
Youonlyhave%dtimes!
Enteragain:
\n",i-1);
i--;
}
}
while(i>0);
if(!
flag)
{
printf("youhaveEnter3times!
");//输入密码超过了3次!
!
exit(0);//自动退出
}
do
{
system("cls");
puts("\n\n\t\t*********************管理员菜单***********************\n\n");
puts("\t\t\t\t1---浏览课程\n");
puts("\t\t\t\t2---查询课程\n");
puts("\t\t\t\t3---添加课程\n");
puts("\t\t\t\t4---删除课程\n");
puts("\t\t\t\t5---返回主菜单");
puts("\n\n\t\t******************************************************\n");
printf("Chioseyournumber(1-5):
[]\b\b");
scanf("%d",&n);
switch(n)
{
case1:
prin();break;
case2:
search();break;
case3:
insert();savefile();break;
case4:
del();savefile();break;
case5:
return;
default:
;
}
}
while(w==1);
}
voidStudents()
{
intn,w=1;
do
{
system("cls");
puts("\n\n\t\t*********************学生菜单***********************\n\n");
puts("\t\t\t\t1---浏览所有课程\n");
puts("\t\t\t\t2---查询课程信息\n");
puts("\t\t\t\t3---选择选修课程\n");
puts("\t\t\t\t4---浏览我选修的课程\n");
puts("\t\t\t\t5---删除错选课程\n");
puts("\t\t\t\t6---返回主菜单");
puts("\n\n\t\t****************************************************\n");
printf("Chioseyournumber(1-6):
[]\b\b");
scanf("%d",&n);
switch(n)
{
case1:
prin();break;
case2:
search();break;
case3:
choose();break;
case4:
prin1();break;
case5:
del();savefile1();break;
case6:
return;
default:
;
}
}
while(w==1);
3.3学生功能菜单
学生功能菜单包括六个功能:
浏览课程,查询课程,选修课程,浏览我所选修的课程,添加选修课程,删除错选的课程,也是用到switch语句来调用函数。
图3.4学生功能模块流程图
[程序]
voidStudents()//学生登录菜单
{
intn,w=1;
do
{
system("cls");
puts("\n\n\t\t************学生菜单**************\n\n");
puts("\t\t\t\t1---浏览所有课程\n");
puts("\t\t\t\t2---查询课程信息\n");
puts("\t\t\t\t3---选择选修课程\n");
puts("\t\t\t\t4---浏览我选修的课程\n");
puts("\t\t\t\t5---删除错选课程\n");
puts("\t\t\t\t6---返回主菜单");
puts("\n\n\t\t***********************************\n");
printf("Chioseyournumber(1-6):
[]\b\b");
scanf("%d",&n);
switch(n)
{
case1:
prin();break;
case2:
search();break;
case3:
choose();break;
case4:
prin1();break;
case5:
del();savefile1();break;
case6:
return;
default:
;}
}
while(w==1);}
3.4创建链表模块
(1)从标准输入文件输入字符串到string字符数组,再用fputs函数把此字符串送入file1.txt文件中。
(2)由于fputs函数不会在输出一个字符串之后加上一个“\n”字符,为了在从磁盘中取出数据时能区分各字符串,要在存入时使用fputs函数输出一个“\n”。
(3)由于输入循环的控制条件是字符串的长度不为0,所以结束输入操作的方法是在最后一行只输入一个Enter键功能说明 ,录入课程信息代码。
图3.5创建链表模块流程图
[程序]
SUB*create_form()//创建链表
{
SUB*head,*tail,*p;
intnum,stime,ttime;
intetime,score,term;
charname[20],kind[10];
intsize=sizeof(SUB);
head=tail=NULL;
printf("输入选修课程信息:
\n");
scanf("%d%s%s%d%d%d%d%d",&num,name,kind,&stime,&ttime,&etime,&score,&term);
while(num!
=0)
{
p=(SUB*)malloc(size);
p->num=num;
strcpy(p->name,name);
strcpy(p->kind,kind);
p->stime=stime;
p->ttime=ttime;
p->etime=etime;
p->score=score;
p->term=term;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d%s%s%d%d%d%d%d",&num,name,kind,&stime,&ttime,&etime,&score,&term);
}
tail->next=NULL;
returnhead;
}
3.5浏览模块
浏览模块主要用管理员中的“浏览课程”和学生功能中的“浏览所有所有课程”,将所有的课程信息输出,即将all_sub.txt文件里面的内容全部输出。
在浏览界面中不能进行删除或添加课程,只能够来看课程的信息或选择的课程信息。