学生选课系统.docx
《学生选课系统.docx》由会员分享,可在线阅读,更多相关《学生选课系统.docx(23页珍藏版)》请在冰豆网上搜索。
学生选课系统
1问题定义
“选课”是现在高校行政管理工作中一项很重要的课题。
而且是每个学期都必须要面对的问题。
选课工作做不好,学生不知道自己将要学习的课程,老师也不知道自己将要讲授的课程,教务处的排课计划、教室安排等其他调度工作也无从做起。
因此,如何解决高校教务管理中的选课工作便成为了如今各大高校面临的很实际的问题。
随着近几年高校的持续扩招,学生人数逐年增加。
为了满足广大学生的求学需要,各个高校的师资力量、硬件配置也随之增强。
这样一来,日常行政部门的工作也就越来越繁重,这一点在选课这块显得尤为突出。
而传统的手工操作,即费时又费力,而且容易出错,工作效率较低。
因此,拥有一套实用、高效、完善的在线选课系统就显得尤为重要,它可以提升高校的教育质量和教学管理质量,提高工作效率,降低行政成本。
大学期间总会有很多公共选修课,以往的选课方法是随堂报名。
这种方法虽然直接,但是造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。
原因是传统的选课方法没有预见性,大家没有事先协调好。
并且学生选课存在这样的特点:
公选课较多,学生人数众多,学生可根据自己的专业及兴趣选择公选课程进行学习,而且学生对课程的要求有较大差异。
使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,学生通过本系统可以了解课题相关信息,进行自主选题,能够满足不同学生对不同题目的不同要求,有利于发挥学生的长处,而且能够充分利用学校的各类教学资源。
使用本系统有三个角色,即管理员、学生和教师用户。
管理员的权限最高,包括设置系统登陆信息,用户基本信息、选课信息的录入、查看、修改、删除等,同时还具有查询各个模块的功能。
老师和学生可以实现基本信息查询和进行选课的相关操作,如添加选课信息,退选等。
2可行性研究
2.1项目概述
本系统实现学生选课的基本功能,包括学生退选课,查看自己的选课信息;教师查看选课学生的信息,提交成绩;管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课程等。
系统利用.Net平台技术进行开发,实现学生选课的动态管理,使得对信息的管理更加及时、高效,提高了效率。
同时还对系统的开发原理、功能特点和设计方案进行了介绍。
2.2可行性分析的前提
2.2.1项目的目标
本系统目标是实现选课系统所需的各种基本功能,包括学生选课、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。
2.2.2项目的环境
操作系统:
WindowsXP
建模工具:
RationalRose2003
数据库系统:
SQLServer2005
开发工具:
VisualStudio2010
Web服务器:
IIS+ASP.NET2.0平台
2.3可选的方案
2.3.1方案一
中等成本方案:
设计仅关于软件工程课程设计的管理系统
2.3.2方案二
高成本方案:
设计整个学校教学管理系统,利于学校教学质量的提高。
2.4所建议的系统
2.4.1系统说明
本系统实现学生选课的基本功能,包括学生退选课,查看自己的选课信息;教师查看选课学生的信息,提交成绩;管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课程等。
系统利用.Net平台技术进行开发,实现学生选课的动态管理,使得对信息的管理更加及时、高效,提高了效率。
同时还对系统的开发原理、功能特点和设计方案进行了介绍。
2.4.2高层数据流图
学生选课系统高层数据流图如图2.1所示
图2.1高层数据流图
2.5经济可行性
系统界面友好,操作简单,系统的配置要求不高,实现可行,因此经济可行。
该系统可以容易实现学生、老师与学校之间的联系,在Internet上实现完成部分教务工作,提高办事效率。
2.6技术可行性
随着互联网的蓬勃发展,越来越多的机构将科研管理与Internet融合到一起,以方便个高校管理。
在这样一个社会背景下,基于Windows和SQLServer2005,运用先进的ASP.NET技术、先进的C#语言,采用B/S模式开发的学生网上选课系统,将学生、老师、管理员、有机地结合在一起,有效地提高管理水平和效率。
2.7操作可行性
该选课系统既可以由管理员登录,录入开课信息,并且发布,也可以由学生登录,查看可选的课程信息,选择课程,该系统操作方便,简单有效。
3需求分析
3.1需求概述
学生选课系统主要满足来自三方面的需求,这三个方面分别是学生用户、教师用户和管理员用户,也即是三类用户角色。
(1)学生用户是主要的需求者,主要需求功能是查询可选课程、查看自己选课情况及进行选课、退课操作等;
(2)教师用户主要需求功能是查看自己所教授的课程、课程有哪些学生选修、以及利用本系统提交学生的成绩;
(3)管理员用户的功能需求较为复杂,包括对学生信息、教师信息、课程信息进行管理。
在学生信息管理子模块中,实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。
在教师管理子模块中,实现对教师信息的添加、修改、删除、查询等操作。
在课程管理子模块中,实现对课程信息的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除、查看某个课程的详细信息等。
本系统将管理员用户、教师用户、学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看、维护系统中的所有信息,如添加学生,添加课程,修改课程信息等;让教师拥有查看自己开设的课程的信息,以及提交所开设课程成绩的权限;让学生拥有选课和退选的权限;而修改密码模块的权限每个用户都可拥有,用以修改自己的密码信息。
通过进行严格的权限划分,可以更好地进行管理,也可更好地保护用户信息安全。
3.2需求模型
选课系统用例图如图3.1所示
图3.1用例图
系统类图如图3.2所示
图3.2类图
类图说明:
(1)BaseUser类是一个系统角色用户的基类,主要方法有两个:
modifyPWD()用于修改用户的密码;
loginCheck()用于用户登录验证。
(2)Admin类继承自BaseUser类。
(3)Student类继承自BaseUser类,主要方法有:
studentAdd()用于添加学生;
studentDel()用于删除学生;
studentUpdate()用于更新学生信息;
getStudents()用于获取学生列表。
(4)Teacher类继承自BaseUser类,主要方法有:
teacherAdd()用于添加教师;
teacherDel()用于删除教师;
teacherUpdate()用于更新教师信息;
getTeachers()用于获取教师列表。
(5)Course类是一个课程类,主要方法有:
courseAdd()用于添加课程;
courseDel()用于删除课程;
courseUpdate()用于修改课程信息;
getCourses()用于获取课程列表。
(6)Elect类是一个选课表类,主要方法有:
elect()选修课程;
electDel()退选课程;
getElectInfo()获取选课信息;
haveSubmit()检测是否已提交过成绩;
submitScore()提交成绩。
3.2.1数据模型
学生选课系统总体E-R图如图3.3所示
图3.3总体E-R图
3.2.2功能模型
学生选课系统细化数据流图如图3.4所示
D5重新登录
图3.4细化数据流图
3.2.3行为模型
学生选课操作状态图如图3.5所示
图3.5状态图
3.2.4数据字典
管理员模块数据字典
学生模块数据字典
教师模块数据字典
4总体设计
4.1系统体系结构
该体系结构说明了各个模块的功能
图4.1系统体系结构图
4.2模块详细说明
表4-1学生选课IPO表
IPO表
系统:
学生选课系统
模块:
学生选课
编号:
1.1
作者:
董小童
日期:
3.12
被调用:
选课系统
调用:
学生选课模块
输入:
所选课程
输出:
选课表
处理:
人数未满可选
选课
人数已满不可选
局部数据元素:
注释:
4.3数据库设计
学生表Student的详细数据字段:
表4-2Student学生用户表
序号
字段名
字段类型
说明
备注
1
stuID
nvarchar(20)notnull
学生学号
关键字
2
stuPwd
nvarchar(20)notnul
学生密码
3
stuName
nvarchar(20)notnul
学生姓名
4
stuDepart
Int
学生系院号
5
stuGrade
int
学生年级
6
stuClass
int
学生班级
5详细设计
5.1人机界面设计
学生选课模块界面图如图5.1所示
图5.1学生选课界面图
5.2过程设计
学生选课模块流程设计如图5.2所示
学生模块详细代码如下:
//www.w3.org/1999/xhtml">
学生选课
topID="Top1"runat="server"/>
|
16pt;">可选修课程
|
GridViewID="GridView1"runat="server"AutoGenerateColumns="False"BackColor="White" Width="100%"BorderColor="#999999"BorderStyle="None"BorderWidth="1px"CellPadding="3" DataSourceID="SqlDataSource1"GridLines="Vertical"OnRowCommand="GridView1_RowCommand" Font-Size="10pt"DataKeyNames="courceID,teaID">
BoundFieldDataField="courceID"HeaderText="courceID"ReadOnly="True"Visible="False" SortExpression="courceID"/> BoundFieldDataField="teaID"Visible="False"HeaderText="teaID"ReadOnly="True" SortExpression="teaID"/> BoundFieldDataField="courceName"HeaderText="课程名称"SortExpression="courceName">
BoundField> BoundFieldDataField="teaName"HeaderText="教师姓名"SortExpression="teaName">
BoundField> BoundFieldDataField="courceTime"HeaderText="上课时间"SortExpression="courceTime">
BoundField> BoundFieldDataField="courceAddress"HeaderText="上课地点"SortExpression="courceAddress">
BoundField> HyperLinkFieldDataNavigateUrlFields="courceID,teaID"DataNavigateUrlFormatString="courseDetail.aspx? courceID={0}&teaID={1}" HeaderText="详细..."Text="详细..."/> ButtonFieldHeaderText="选修"CommandName="select"Text="选修">
ButtonField>
GridView> SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings: ConnectionString%>" SelectCommand="SELECTCource.courceID,Cource.teaID,Cource.courceName,Teacher.teaName,Cource.courceTime,Cource.courceAddressFROMCourceINNERJOINTeacherONCource.teaID=Teacher.teaIDWHERENOTEXISTS(SELECT*FROMElectWHERE(courceID=Cource.courceIDandteaID=Cource.teaIDandstuID=@stuID))">
SessionParameterName="stuID"SessionField="userID"/>
SqlDataSource>
|
Labelrunat="server"ID="errormess"ForeColor="Red"Font-Size="Smaller">
Label> |
24px;text-align:
center">
16pt;">您已经选修的课程
|
GridViewID="GridView2"runat="server"AutoGenerateColumns="False"BackColor="White" Width="100%"BorderColor="#999999"BorderStyle="None"BorderWidth="1px"CellPadding="3" DataSourceID="SqlDataSource2"GridLines="Vertical"OnRowCommand="GridView2_RowCommand" DataKeyNames="stuID,courceID,teaID">
BoundFieldDataField="stuID"HeaderText="stuID"ReadOnly="True"SortExpression="stuID" Visible="False"/> BoundFieldDataField="courceID"HeaderText="courceID"ReadOnly="True"SortExpression="courceID"Visible="False"/> BoundFieldDataField="teaID"HeaderText="teaID"ReadOnly="True"SortExpression="teaID"Visible="False"/> BoundFieldDataField="courceName"HeaderText="课程名称"SortExpression="courceName"> BoundFieldDataField="teaName"HeaderText="教师姓名"SortExpression="teaName">
BoundField> BoundFieldDataField="courceTime"HeaderText="上课时间"SortExpression="courceTime"> BoundFieldDataField="courceAddress"HeaderText="上课地点"SortExpression="courceAddress"> ButtonFieldHeaderText="退选"CommandName="shanchu"Text="退选
GridView> SqlDataSourceID="SqlDataSource2"runat="server"ConnectionString="<%$ConnectionStrings: ConnectionString%>"SelectCommand="SELECTElect.stuID,Elect.courceID,Elect.teaID, SessionParameterName="stuID"SessionField="userID"/>
SqlDataSource> 21px"align="center"> HyperLinkID="HyperLink1"runat="server"NavigateUrl="~/ModifyPwd.aspx"Font-Size="10pt">修改密码
HyperLink> HyperLinkID="HyperLink2"runat="server"Font-Size="10pt"NavigateUrl="javascript: window.close()">退出系统
HyperLink>
|