选课系统报告文档格式.docx
《选课系统报告文档格式.docx》由会员分享,可在线阅读,更多相关《选课系统报告文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
![选课系统报告文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/27/450c4572-48c4-4ba8-89c7-eb9731e4f646/450c4572-48c4-4ba8-89c7-eb9731e4f6461.gif)
随着近几年高校的持续扩招,学生人数逐年增加。
为了满足广大学生的求学需要,各个高校的师资力量、硬件配置也随之增强。
这样一来,日常行政部门的工作也就越来越繁重,这一点在选课这块显得尤为突出。
而传统的手工操作,即费时又费力,而且容易出错,工作效率较低。
因此,拥有一套实用、高效、完善的在线选课系统就显得尤为重要,它可以提升高校的教育质量和教学管理质量,提高工作效率,降低行政成本。
大学期间总会有很多公共选修课,以往的选课方法是随堂报名。
这种方法虽然直接,但是造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。
原因是传统的选课方法没有预见性,大家没有事先协调好。
并且学生选课存在这样的特点:
公选课较多,学生人数众多,学生可根据自己的专业及兴趣选择公选课程进行学习,而且学生对课程的要求有较大差异。
使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,学生通过本系统可以了解课题相关信息,进行自主选题,能够满足不同学生对不同题目的不同要求,有利于发挥学生的长处,而且能够充分利用学校的各类教学资源。
3.总体目标及要求
目前我们学校的研究生选课还未实行网络化,为了方便网上操作,提高工作效率,请同学们设计一个选课系统,学生选课系统实施后,应能够达到以下目标:
1.学生选课管理信息化,可随时掌握学生的选课情况。
2.提供快速、准确的学生选课的最新信息。
3.界面友好美观,操作简单易行,查询灵活方便。
4.教师更快速的查看相关课程信息及学生选课情况。
5.教务更方便的管理学生选课。
6.系统维护方便可靠,有较高的安全性,满足实用性、先进性的要求。
要求如下:
1.本系统有三类用户,分别为:
1)研究生办公室老师,具有提供课表,查询选课人数等权限。
若选课人数不足5人,则删除这门课。
要求学生重选。
2)研究生,具有选课的权限。
若有必修课没选,则要提示学生,必选。
学位课必须选够18学分,若不够,要给出提示,重选。
3)导师,具有查看自己的学生所选课目的权限。
若不是自己的学生,则无权查看。
还可以查看自己所教科目的选课学生名单,无权查看其他科目。
2.同学们可以根据自己的理解添加系统功能,如成绩的录入等,可以有自己的创意。
第二章需求分析
1.功能需求
研究生办公室人员需要能够录入课程,包括课程的性质,导师等信息;
能够查询选课情况,对于选课小于5的课程任意删除,能够管理用户,更改用户信息,删除用户;
更改自己密码;
查看本系统的相关信息。
研究生能够选修课程,对于自己已经选择的科目管理员删除后需要给予提示,提示用户重新选课,查看自己选课的成绩,查看课表,更改用户密码等。
导师能够查询自己学生的选课情况;
能够查看自己所带科目的学生情况;
能够录入自己科目的成绩;
能够更改密码;
查看本系统相关信息。
2.性能需求
2.1精度
此系统的输入数据大多数为字符串类型,也有表示成绩的浮点数,精度为小数点后1位
2.2时间特征要求
响应时间要求:
对于管理人员输入的用户信息应该在人们所能接受的等待时间来确定,通常为1-2s。
更新处理时间要求:
用户输入数据后,对于该操作人员输入的数据处理时间应该是毫秒级的。
数据的转换和传输时间的要求也应该在人们的接受的等待时间内。
2.3灵活性
因为本系统开发是使用实现,这种开发技术具有美观灵活方便的特性。
对于数据精度方面,应在数据库中加以限制;
实现实体完整性,用户自定义完整性约束。
在设计界面结构和数据结构是应留有对以后扩充系统功能的余地,如可以在每个数据字段上设计多个自定义字段。
3.数据管理能力需求
从整个系统来看,对数据的管理有:
管理员表;
课程表;
课程性质表;
学院表;
学生课程表;
学生表;
教师表;
用户表;
留言表。
对于表的设计使用3NF,对于数据的管理要做到减少程序的复杂性,对于那些容易变动的数据来说要设计开发表(用作信息频繁修改),受控表(不能对其修改数据的数据表)。
这两种表都应考虑到数据的扩充。
4.可行性分析
(1)经济上的可行性
系统界面友好,操作简单,系统的配置要求不高,实现可行,因此经济可行。
该系统可以容易实现学生、老师与学校之间的联系,在Internet上实现完成部分教务工作,提高办事效率。
(2)技术上的可行性
随着互联网的蓬勃发展,越来越多的机构将科研管理与Internet融合到一起,以方便个高校管理。
在这样一个社会背景下,基于Windows和SQLServer2008,运用先进的ASP.NET技术、先进的C#语言,采用B/S模式开发的学生网上选课系统,将学生、老师、管理员、有机地结合在一起,有效地提高管理水平和效率。
随着科学技术的不断提高,计算机科学日渐成熟,基于以上的技术在现今比较容易实现。
(3)操作上的可行性
该系统操作方便,简单。
5.软硬件需求
开发环境
编程语言:
C#语言
编程工具:
MicrosoftVisualStudio2008
运行环境
操作系统:
Windows98/xp及以上操作系统
数据库:
SQLserver2008及以上
服务器:
网络服务器:
IIS
数据库服务器:
第三章概要设计
1.总体设计
图1
2.功能设计
一、登录模块
用户输入信息,实现数据库中用户查询,完成登录功能
二、注册模块
根据用户输入信息,在数据库中查询学生信息是否存在,进行注册,对于重名用户提示用户名已被注册
三、课程录入模块
研究生办公室人员填写课程,插入数据库中
四、选课查询模块
查询每门课程的学生选择情况,根据自己需要删除某些课程,对于删除的课程需要对用户进行提示,以便用户重选课程,以满足18个学分
五、用户管理模块
对数据库中用户进行管理,拥有管理的基本功能。
六、查看学生模块
导师可以查看自己学生的选课情况,查看选课情况是否符合自己的方向要求,方便教学
七、查看选课模块
导师可以查看选择自己课程的同学。
八、成绩录入模块
导师可以通过这个模块,录入选自己课程的学生成绩,以便学生查询
九、选课信息模块
学生可以查看自己的选课信息,分必修选修查看
十、成绩查询模块
学生能够查询自己选课的课程成绩,及时了解成绩以便知道自己学习情况及是否需要重考
十一、留言模块
用户可以通过这个平台,给开发商留言,以便开发者更进系统
3.接口设计
3.1登录接口
学生与教师登录页面如图1,用户填上用户名与密码,选择用户类型,即可登录进入相应的页面,此登录页面也可链接到注册页面,管理员入口,联系我们页面。
图1
管理员入口如图2,提供管理员登陆通道。
图2
3.2用户注册接口
用户注册页面提供用户注册功能,用户需要提供正确的学工号,并且保证用户名没有被使用才能登录,系统在数据库中查询对应的记录是否被使用来确定能否登录,如图3。
图3
3.3管理员主页面
管理员登录主页面如图4,管理员可以通过导航栏选择进入对应的模块,对应的功能。
图4
3.4课程录入接口
管理员可以通过课程录入页面添加课程,如图5。
图5
3.5选课查询接口
管理员通过选课查询接口查询选择对应课程的人数,对于人数过少(比如少于5人),或者出现意外情况准备删除的课程进行删除,如图6。
图6
3.6用户管理接口
管理员具有管理用户的权限,管理员可以删除编辑用户信息,如图7。
图7
3.7选课接口
学生拥有选课功能,学生在需要选的课前面打勾,提交后系统根据必修课是否选择,学分是否满足18分判断选择是否合格,如图8。
图8
3.8查看成绩接口
学生能够查看自己选择科目的分数,可以根据课程类型查询。
如图9。
图9
3.9查看学生接口
导师能够查看自己学生的选课情况,如图10。
图10
3.10查看选课接口
导师可以查看选择自己所教授课程的学生学号及姓名,如图11。
图11
3.11成绩录入接口
导师能够录入选择自己教授课程的同学的成绩,如图12。
图12
3.12联系我们接口
任意登录到登录页面的用户能够通过联系我们接口来联系开发者,以便开发者更新系统,留言显示如图13,用户通过留言功能页面留言,如图14。
图13
图14
第三章详细设计
1.数据库设计
(1)管理员表
管理员表中的字段有:
管理员名(Adminname)、密码(password)。
具体如下:
(2)学生表
学生表中的字段有:
学生号(Sno)、学生名(Sname)、性别(Ssex)、年龄(Ssage)、院系(SDepno)、导师号(Tno)。
表1
(3)教师表
教师表中的字段有:
教师号(Tno)、教师名(Tname)、性别(Tsex)、年龄(Tage)、院系(TDepno)。
表2
(4)用户表
用户表中的字段有:
用户名(Username)、密码(Password)、身份(Status)、学工号(No)。
表3
(5)院系表
院系表中的字段有:
院系号(Dno)、院系名(Dname)。
表4
(6)课程表
课程表中的字段有:
课程号(Cno)、教师号(Tno)、课程名(Cname)、课程属性(Property)、学分(Credit)。
表5
(7)课程类型表
课程类型表中的字段有:
属性号(Pid),属性名(Pname)。
表6
(8)学生课程表
学生课程表中的字段有:
学生号(Sno)、课程号(Cno)、成绩(Grade)。
表7
(9)留言表
留言表中的字段有:
留言号(ContentID)、留言题目(Tittle)、内容(Body)、用户名(UserName)、留言时间(CreatTime)。
表8
2.详细设计
部分核心代码如下:
(1)登录:
if(RadioButton1.Checked==true)
{
status=1;
//1表示学生
}
else
status=2;
//2表示教师
SqlConnectioncon=newSqlConnection("
IntegratedSecurity=true;
server=.\\sqlexpress;
database=caicaidb"
);
stringstrSql="
select*from[User]whereUsername='
"
+userName+"
'
andPassword='
+passWord+"
andStatus='
+status+"
;
SqlCommandcom=newSqlCommand(strSql,con);
con.Open();
objectnum=com.ExecuteScalar();
//获得表的第一行第一列值object类型
if(num==null)
Response.Write("
<
scriptlanguage=javascript>
alert(\"
输入错误!
!
\"
/script>
return;
//将sno保存到session中
stringstrSqll="
selectNofrom[User]whereUsername='
+tbUserName.Text+"
com.CommandText=strSqll;
SqlDataReadersdrr=com.ExecuteReader();
if(sdrr.Read())
strings=sdrr["
No"
].ToString();
Session["
]=s;
sdrr.Close();
strSql="
selectStatusfrom[User]whereUsername='
com.CommandText=strSql;
SqlDataReadersdr=com.ExecuteReader();
if(sdr.Read())
strings=sdr["
Status"
UserName"
]=tbUserName.Text;
UserPassword"
]=tbPassword.Text;
con.Close();
(2)注册:
objectnum1=com1.ExecuteScalar();
//获得表的第一行第一列值object类型num
stringstrSql2="
select*from[Teacher]whereTno='
+txtno.Text+"
SqlCommandcom2=newSqlCommand(strSql2,con);
objectnum2=com2.ExecuteScalar();
///判断学号工号是否正确,在student或者teacher表中是否存在
if(num1!
=null||num2!
=null)
///表中用户名存在记录的话提示
stringstrSql3="
+txtName.Text+"
SqlCommandcom3=newSqlCommand(strSql3,con);
objectnum3=com3.ExecuteScalar();
if(num3!
=null)//用户名存在
用户名已存在!
else//用户名不存在
stringstrSql4="
select*from[User]whereNo='
SqlCommandcom4=newSqlCommand(strSql4,con);
objectnum4=com4.ExecuteScalar();
if(num4!
=null)//学工号存在
学工号已被注册!
}///
///表中不存在记录,则提示注册成功,并返回登录页面
else//学工号也不存在
stringname=txtName.Text;
stringpassword=txtPassword.Text;
intstatues;
if(RadioButton1.Checked==true)statues=1;
elsestatues=2;
insertinto[User]values('
+name+"
'
+password+"
+statues+"
+no+"
)"
com.ExecuteNonQuery();
//执行目录操作通过执行INSERT在不使用DataSet的情况下更改数据库中的数据。
//返回登录界面
Response.Redirect("
Default.aspx"
else//学工号不正确
学工号错误!
(3)课程录入
insertintoCourse(Cno,Tno,Cname,Property,Credit)values('
+courseno+"
+teacherno+"
+coursenname+"
+property+"
+coursecredit+"
try
添加成功!
catch
添加失败!
finally
}
(4)选课查询:
asp:
SqlDataSourceID="
SqlDataSource1"
runat="
server"
ConnectionString="
%$ConnectionStrings:
caicaidbConnectionString%>
DeleteCommand="
DELETEFROM[S_C]WHERE[Cno]=@Cno;
DELETEFROM[Course]WHERE[Cno]=@Cno"
SelectCommand="
SELECTCourse.Cno,Course.Cname,COUNT(Course.Cno)ASExpr1FROMS_CINNERJOINCourseONS_C.Cno=Course.CnoGROUPBYCourse.Cname,Course.Cno"
>
<
DeleteParameters>
ParameterName="
Cno"
/>
(5)查看学生:
privatevoidInitData()
selectSno,SnamefromStudentwhereTno='
+Session["
]+"
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=com;
DataSetds=newDataSet();
da.Fill(ds);
DropDownList1.DataSource=ds;
DropDownList1.DataTextField="
Sname"
DropDownList1.DataValueField="
Sno"
DropDownList1.DataBind();
}
(6)选课功能
privatevoidband()
stringstrsql="
select*fromCourse"
SqlDataAdapteradapter=newSqlDataAdapter(strsql,con);
DataSetmyset1=newDataSet();
adapter.Fill(myset1,"
Course"
GridView1.DataSource=myset1;
GridView1.DataBind();
//将所有的选择控件checkbox置空
for(inti=0;
i<
=GridView1.Rows.Count-1;
i++)
CheckBoxcheck=(CheckBox)G