学生成绩管理系统蔡伟攀.docx
《学生成绩管理系统蔡伟攀.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统蔡伟攀.docx(17页珍藏版)》请在冰豆网上搜索。
![学生成绩管理系统蔡伟攀.docx](https://file1.bdocx.com/fileroot1/2023-1/26/9797180a-9b06-439a-94c3-da916b632a48/9797180a-9b06-439a-94c3-da916b632a481.gif)
学生成绩管理系统蔡伟攀
专业课程设计
(软件)报告
学生成绩管理系统
姓 名:
学 号:
118501106
班 级:
1182051
专 业:
信息管理与信息系统
2014年06月24日
摘要
要求:
利用visualc#作为前台开发工具,SQLServer后台数据库管理,实现一学生成绩管理系统。
实现具体功能:
1、系统管理(身份的分类、录入、修改、删除);
2、学生信息管理(学生信息的录入、修改、删除、查询);
3、成绩管理(成绩的录入、修改、删除、查询);
4、课程管理(课程信息的录入、修改、删除、查询)。
课题的目的或意义
数据库课程设计课程实验是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节,通过实验达到深化理解和灵活掌握教学内容的目的,以及提高学生分析问题、解决问题的应用能力。
同时,使学生的工作规范和科学作风得到培养。
通过该课程的学习,要求学生能独立分析问题,设计算法,实现程序的各项功能,得到正确的可执行程序,学会调试程序,对设计过程进行系统的总结。
设计工作的主要内容、过程,采用的方法及取得的成果。
学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。
该系统用.net语言编写,用Access数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。
用JDBC驱动实现前台.net与后台SQL数据库的连接。
结论或实现的功能。
1、系统管理(身份的分类、录入、修改、删除);
2、学生信息管理(学生信息的录入、修改、删除、查询);
3、成绩管理(成绩的录入、修改、删除、查询);
4、课程管理(课程信息的录入、修改、删除、查询)。
关键字
ASP.NET;ACCESS数据库;选课系统
第一章需求分析
1.1需求分析
管理员需要控制整个系统的开启关闭,要审核各个教师提交的课程信息并且发布系统公告,以及录入学生信息。
教师需要上传课程信息,查看选修自己课程的学生名单以及这些学生的缺勤登记情况,查看上课信息,给选修自己课程的学生打分。
学生需要注册,需要查看所有课程信息及教师信息,选择课程,查看上课信息,查看自己出勤记录和考核成绩,给教师评分和留言。
第二章系统设计
2.1系统分析
在本系统中,有三类用户:
系统管理员,教师和学生。
三以及录入学生信息种不同的用户所具有的操作权限以及操作内容均不一样。
本选课系统给予教师很大的自主权,系统管理员只负责向系统中添加教学楼教室信息和和管理系统开放时间。
系统管理员不参与开设课程、选择课程等,一切均由教师、学生等录网站自行完成。
系统管理员设置一个选课时间段,在到达时间段以前,教师可以开设课程;到达时间段以后,学生可以登陆网站选择课程。
教师用户登陆网站后可以开设课程,为自己的课程编辑课程简要信息,由管理员统计安排上课地点,这样就避免了系统中出现时间地点冲突的情况。
每门课程可以是必修或则选修,教师可以在上课时间进入本系统查看学生名单并进行点名操作,这样就可以省去教师打算点名却没有名单的尴尬,并可以在课程结束后给予分数。
对于学生用户,为了减少管理员的信息录入工作量,本系统采用学生注册的方式添加学生信息,每个学生可以在系统规定时间内选择自己喜欢的课程,并查看相关课程的信息,如授课教师,上课时间和上课地点等。
学生还可以登录系统查看已经被点名几次,这样有助物提高学生的到课率。
课程结束后学生可登录网站查询成绩。
2.2、系统架构
系统角色架构如图:
图1系统角色架构图
管理员功能架构如图:
图2管理员功能架构图
主页面如下:
图3管理员所有功能主页面
教师功能架构如图:
图4教师功能架构图
主页面如下:
图5教师所有功能主页面
学生功能架构如图:
图6学生功能架构图
主页面如下:
图7学生所有功能主页面
2.3数据库设计
2.3.1管理员信息表
名称
字段名称
数据类型
是否主键
能否为空
编号
Aid
自动编号
是
否
帐号
Aname
文本
否
否
密码
Apwd
文本
否
否
2.3.2教师信息表
名称
字段名称
数据类型
主键
能否为空
编号
Tid
自动编号
是
是
姓名
Tname
文本
否
是
密码
Tpwd
文本
否
是
所在系
Tclass
文本
否
是
2.3.3学生信息表
名称
字段名称
数据类型
主键
能否为空
编号
Classid
自动编号
是
是
课程名称
Cname
文本
否
是
授课教师
Cteacher
文本
否
是
开始周
CweekBegTime
文本
否
是
结束周
CweekEndTime
文本
否
是
星期
Cdate
文本
否
是
节次
Ctime
文本
否
是
学院
CClass
文本
否
是
专业
Czhuanye
文本
否
是
2.3.4学生成绩信息表
名称
字段名称
数据类型
主键
能否为空
编号
Sid
自动编号
是
是
课程
Skecheng
文本
否
是
成绩
Sscore
文本
否
是
学生姓名
Sstudentname
文本
否
是
专业
Szhuanye
文本
否
是
学院
Sxibie
文本
否
是
2.3.5系统公告信息表
名称
字段名称
数据类型
主键
能否为空
编号
Nid
自动编号
是
是
标题
Nname
文本
否
是
内容
Ncount
备注
否
是
发布时间
Ntime
日期/时间
否
是
第三章详细设计
3.1管理员功能实现
管事员功能虽然实现并不复杂,但是系统整体功能中较为重要的一块,这一块的功能设计,使得教师模块的使用更为方便简单,而且使得整个系统的信息查看和系统运行之后的信息更新都极为简便,下面将简要介绍各主要模块的功能实现。
3.1.1登陆
由于三种角色都用到登录功能,这里就以管理员的登录实现为例,介绍一下登录的实现。
//连接数据库并判定用户名和密码
OleDbConnectioncon=db.con();
con.Open();
OleDbCommandcmd=newOleDbCommand("select*fromAdminwhereAname='"+this.TextBox1.Text+"'andApwd='"+this.TextBox2.Text+"'",con);
OleDbDataReadersdr=cmd.ExecuteReader();
if(sdr.Read())
{
Session["aname"]=sdr["Aname"].ToString();//将管理员姓名写入Session,在母版页显示中会使用到
Response.Write("alert('登录成功欢迎使用本选课系统');location.href='../Admin/Index.aspx'");
}
else//登录的用户名或密码不符弹出提示信息
{Response.Write("alert('用户名户密码错误请重新登录');location.href='../Admin/AdminLogin.aspx'");
}
注释:
数据连接字段在App_Code文件夹下的db.cs中定义的,内容如下
publicclassdb
{
publicdb()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
publicstaticOleDbConnectioncon()
{
stringstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="
+System.Web.HttpContext.Current.Server.MapPath("../database/xuanke.mdb");
OleDbConnectioncon=newOleDbConnection(str);
returncon;
}
}
在登录控件的使用中还使用到了数据验证控件RequiredFieldValidator用以验证输入是否为空,用CompareValidator控件验证两次密码输入是否相同
运行图:
图8管理员登录页面
3.1.2所有课程信息查询
本功能是实现查看所有已通过审核和未通过审核的课程信息,它下面有两个子功能,一个是查看尚需审核的课程信息,另一个是查看已通过审核的课程信息,主要方法是将GridView控件绑定JiaoyanshiClass数据表,并根据是否通过审核来控件将要显示的数据。
以查询已审核课程的页面为例:
GridViewID="GridView1"runat="server"AutoGenerateColumns="False"DataKeyNames="Classid"
DataSourceID="AccessDataSource1"AllowPaging="True"Width="100%"
CellPadding="4"GridLines="None"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged"Font-Size="14px"
ForeColor="#333333">
……………..(中间代码省略)
Gridview>//这里是GridView1控件与数据源AccessDataSource1的绑定,数据源的连接字段如下
AccessDataSourceID="AccessDataSource1"runat="server"ConflictDetection="CompareAllValues"
DataFile="~/database/xuanke.mdb"DeleteCommand="DELETEFROM[JiaoyanshiClass]WHERE[Classid]=?
AND[Cname]=?
AND[Cteacher]=?
AND[CweekBegTime]=?
AND[Cdate]=?
AND[Ctime]=?
AND[CweekEndTime]=?
AND[CClass]=?
AND[Czhuanye]=?
AND[Cshifouxuanxiu]=?
AND[Cshencha]=?
"
………//InsertCommand、UpdateCommand等的代码省略
AccessDataSource>
运行图:
图9查询所有课程
3.1.3用户信息维护
本页的功能为实现管理员密码的更改,查看所有教师及学生的信息,包括登录密码,以便在有教师或者学生忘记密码时可以联系管理员以取回密码。
运行图:
图10用户信息维护
3.1.4发布系统公告
在系统运行期间需要通知全体教师或学生相关信息时,可使用本功能。
鉴于选课过程中极少出现有教师或学生向管理员提交信息的情况,所以本系统并未将信息发布功能做成论坛的形式,而是做成单方面的信息传递形式。
运行图:
图11发布系统公告
3.1.5开启关闭系统
由于选课活动只在特定的时间段进行,为保证系统的安全的数据的有效性,特别规定系统的开启关闭时间,时间信息存储在名为opentime的数据表中,学生只能在规定时间内访问系统和进行选课操作,而管理员和教师因为在选课操作之前就要进行数据维护操作,所以此时间设定对管理员和教师无效。
运行图:
图12系统开启关闭时间设定
3.2教师管理功能实现
教师管理功能模块看似功能简单,却是整个系统中最为复杂的一个模块,因为在教师管理的各个功能模块中有相当多的数据操作,且操作的数据多不在一个数据表中,因此需要将多个数据连接控件互用,有时还不得不用到一些在页面中并不需要显示的而为数据的绑定而不得不用的控件。
教师的主要管理功能简要介绍如下:
3.2.1上课课程信息
此模块用于教师上传所授课程信息,所传课程由Dropdownlist控件绑定Allcourses数据表,由于Allcourses中的课程数据都是由管理员上传的,因此教师只能选择管理员上传过的课程,考虑到有跨学科的课程开设,因此一个系的教师可以开设其它系的相关课程供学生选修。
在上传课程的同时要上传该课程的开始周,结束周,上课星期及第几节课,因为登录教师只能上传本人所授课程,因此授课教师项是由Session取的登录教师的姓名定下而不可选择的。
值得一提的是在选择上传的课程时为了避免课程下拉列表将所有课程列出来造成选择操作的不便,在DropdownList控件绑定数据源时由上一DropdownList控件选定项作为下一项的数据筛选条件,并设置DropdwonList控件Autopostback属性为true从而实现了级联的下拉列表,省去了手工输写代码的工作。
运行图:
图13教师上传课程信息
3.2.2查看所授课程信息
教师上传之后的课程信息会写入JiaoyanshiClass数据表中等待管理员的审核,本页实现的查询操作可以查看本教师所上传的所有课程以及该课程是否已通过审核,让教师对自己所授课程情况可以随时了解到。
运行图:
图14查询所授课程信息
3.2.3学生成绩录入
在课程结束时,教师需要给选修自己设定的选修课的学生和自己开设的必修课的学生打分,此页即是为了实现打分操作的。
开始写的时候本来是想用studentclass表中数据来限定教师可以选择打分的课程和学生的,但这样却不能给学习该教师开设的必修课程打分,因此在选择列表的数据源上做了改变,先设定课程范围,课程下拉列表的数据从JiaoyanshiClass中选取并用Session值限定显示登录教师所授课程,这样必修课也会显示出来。
但同时这样会造成学生下拉列表的内容增加,造成教师选择打分学生的困难,该问题尚待解决。
运行图:
图15学生成绩录入
3.3学生选课功能实现
在模块下,学生查看成绩等相关操作,相对来讲,该模块是整个系统中较为简单的,因为数据操作范围较小,而且学生的权限有限,因此功能并不很多,与管理员模块和教师模块相同的的登录注册及查看公告的功能这里就不再作说明了,其它的主要功能如下:
3.3.1我的成绩
教师对学生所修课程打分后,分数会写入Score表,如上文数据库设计中显示的,该表记录了学生所修课程的专业,课程名,学生姓名及分数,学生的成绩查询同样是从该表中获取的。
查询条件即学生登录名的Session(sname)值,因此只会显示登录学生的所有课程成绩。
运行图:
图16学生查询自己成绩
3.3.2查看公告和个人信息管理
和教师模块的相关功能相似,请参照上文。
3.4系统风格设计
在系统设计之初系统风格是比较混乱也没概念的,因为当时主要为实现功能,因此没有较多的图片,多为数据控件和标签。
系统调试后期为提高系统的美观,决定将系统的颜色基调定为蓝色,因此选课的主页面和各模块的母版线条都是蓝色,各种按钮也多为本人自己使用PhotoshopCS4软件制作的,为了有较好的视觉效果,很多都用到了颜色,从而使图片与页面的融合更为自然。
3.5系统安全
为防止用户端直接键入登录后的页面地址进行非法访问,在各个功能模块的母板中都写入了Session的判定语句,若Session值为空,则弹出对话框要求其登录并跳转到登录页面。
Session的判定语句同样可以防止客户端在长时间为进行操作Session过时后别人进行非法的操作。
功能实现代码如下:
if(Session["sname"]!
=null)
{
this.Label1.Text="你好:
"+Session["sname"].ToString()+"同学,欢迎使用本选课系统";
}
else
{Response.Write("alert('请求超时,请重新登录!
');location.href='StudentLogin.aspx'");}
管理员母版页和教师母版页的判定语句与此相似。
第四章运行与调试
4.1运行与调试过程中的错误
在本系统设计与运行调试过程中遇到了不少错误,在此简单列举其中的一二。
4.2系统无法调试的错误
系统在进行调试时会显示错误及提醒信息,但是却在调试中途会出现以下情况:
在询问同学之后还是未能解决,相信是软件方面的错误,因此每次查看错误信息都要在浏览器显示的错误信息中查找,造成工作的不便。
4.3DropdownList控件多次数据绑定时出错
在为DropdownList控件绑定数据源时,因为数据结构方面的欠考虑,经常需要更改数据源信息,而在设计页面中直接重新更改绑定的数据源时,控件的数据源信息并没有完全删除,因此会造成某些项目无定义的错误,情况如图所示:
图17多次数据绑定时出现的错误
4.4学生成绩录入时验证控件的错误
在学生成绩录入时由于要限制的输入的分数在0-100之间,但在使用RangeValidator控件时,设置了MaximumValue="100"MinimumValue="0",而在操作过程中,无论输入的分数是否在0到100之间都会出现错误提示,经过多次查看代码及求助唐振华同学之后发现是因为控件把输入的分数当作字符串来进行判断的,因此每次都会出错,在把控件的Type属性设置为Integer后此错误便得到了解决。
4.5系统尚需完善的部分
由于本人的水平所限及时间比较紧迫,因此系统还有许多需要完善的部分,如教师注册的安全性问题,不能每个客户端都可以以教师身份注册,可考虑添加一个邀请码用于限制教师的注册权限.由于母版下子页面的大小不同,会造成某些页面显示时的变形,如教师所授课程查询的页面就有此问题,影响系统的美观.还有一个是在系统设计之初对系统的风格设置欠考虑,因此在后来的调试中做了许多的繁琐的体力劳动。
第五章结论
通过最后一段时间的毕业设计,我对WEB服务器、数据库软件Access、c#、html等系列知识都有了一定的了解。
使用MicrosoftVisualStudio2008开发系统的能力也有了很大提高。
虽然在此之前对于MicrosoftVisualStudio2008和Access数据库知识的虽然有所了解,但很长一段时间没有使用过了,所以开始时碰到许多困难。
在整个设计阶段感受最为深刻的是掌握学习的方式和解决问题的方法。
首先是解决问题的方式,虽然面临的信息很多,但是如何从大量的信息中筛选出所需的信息,有用的信息,才是解决问题的关键,另外一个就是解决问题的方法,就像我在解决设计中的很多问题一样,一开始总是在看书,和书上的进行比对,虽然书本上的大部分都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这旧要求我们一定要通过实践才能找到解决问题的方案,XX在问题解决过程中也是个不可缺少的办法,网络资源十分丰富,要养成充分利用网络资源的好习惯。
在整个毕业设计的过程中,我深刻的体会到了这一点的重要性,也牢记主了这一点,在今后的学习和研究中我也会继续将这种方法延续下去。
第六章参考文献
[1]金旭亮,ASP.NET程序设计教程,北京:
高等教育出版社,2009.2
[2]李勇平ASP.NET2.0(C#)基础教程,北京:
清华大学出版社,2008.1
[3]周存杰VisualC#.NET网络核心编程,北京:
清华大学出版社,2002.11
[4]王珊,萨师煊,数据库系统概论[M],北京:
高等教育出版社,2006.5