学生信息系统报告.docx
《学生信息系统报告.docx》由会员分享,可在线阅读,更多相关《学生信息系统报告.docx(34页珍藏版)》请在冰豆网上搜索。
学生信息系统报告
中原工学院软件学院
二级实践课题设计任务书
姓名
常强
软件项目<.NET)专业124班
题目
学生信息管理系统
设
计
任
务
本系统以管理学生信息为中心,能够实现对学生信息进行分类别管理。
同时学生也可以登录到本系统对自己的个人信息进行查询。
学生信息管理可以分为教师信息管理和管理员信息管理。
系统功能主要包括:
●成绩管理
●课程管理
●学生管理
●选课
●密码修改
时
间
进
度
第1周:
<2018年9月2日~2018年9月6日):
系统需求分析,进行界面设计;设计系统的数据库结构进行分析、设计,列出数据库数据表,之后以列出的关系模型为依据进行
第2周:
<2018年9月9日~2018年9月13日):
对系统进行详细的分析设计,根据不同的功能模块,对其进行相应的编码及测试;
第3周:
<2018年9月16日~2018年9月19日):
对系统进行测试和纠错,进一步完善其功能,之后进行报告总结。
原主
始要
资参
料考
与文
献
《C#课程设计案例精编》王振江王添添著
指导教师签字:
年月日
摘要
本文给出了学生信息管理系统的开发背景、需求分析与设计以及主要功能模块的实现等内容。
描述了学生信息系统的背景、现状、研究内容和意义;给出了系统的需求分析及概要设计,内容包括体系结构设计及系统数据库设计;给出了系统详细设计,内容包括系统主要功能模块的界面设计及实现;最后给出系统运行及测试的结果。
关键词:
学生信息管理;学生登录;教师登录;管理员登录等。
摘要2
第1章绪论4
1.1课题背景4
1.2学生信息管理管理系统的现状4
1.3课题研究内容5
第2章需求分析6
2.1业务分析6
2.2功能需求分析6
2.3系统环境需求7
2.3.1开发环境需求7
2.3.2运行环境需求7
第3章概要设计8
3.1数据库概要设计8
3.1.1实体及其属性8
3.1.2E-R模型8
3.2系统管理模块设计9
第4章详细设计11
4.1数据库的详细设计11
4.2系统详细设计14
4.2.1管理员信息管理14
4.2.2教师信息管理22
4.2.3学生信息管理25
第5章运行与测试29
第6章结束语……………………………………………………………………………………30
附录系统相关代码32
第1章绪论
1.1课题背景
学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。
推行学校信息管理系统的应用是进一步推进学生学籍管理规范化、电子化、控制辍学和提高义务教育水平的重要举措
本系统主要应用于学校学生信息管理,总体任务是实现学生信息系统化、规范化和自动化,其主要任务是计算学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到了学生选课、针对这些要求设计了学生信息管理系统。
随着学校的规模不断过大,学生数量急剧增加,有关学生的各种信息量也成倍增加。
面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。
通过这样的系统可以做到信息的规范化管理、科学性统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
1.2学生信息管理管理系统的现状
学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。
特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教案管理、学生管理、后勤管理等方面都带来不少的冲击。
其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。
随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。
这种传统的手工管理模式必然被以计算机为物质基础的信息管理方法所取代。
1.3课题研究内容
该课题以学生信息管理为出发点,实现了以下功能:
Ø学生管理
Ø教师管理
Ø管理员信息管理
Ø课程信息管理
Ø信息维护管理
Ø成绩管理
Ø选课管理
第2章需求分析
2.1业务分析
该系统以学生信息管理为中心,学生信息可以分为基本信息、课程信息和选课信息。
系统能够实现对学生信息进行分类别管理,同时学生也可以登录到本系统对自己的个人信息进行查询。
2.2功能需求分析
经业务分析,并结合系统用户的需求,系统需要实现以下功能:
<1)管理员:
主要功能有:
教师管理、学生管理、课程管理、密码修改等功能。
其中,教师管理可以对教师信息进行维护,可以实现对教师基本信息的查询,修改和删除,还可以添加教师。
学生管理又分为学生信息维护,和新学生的添加,其中学生信息维护,可以实现对学生基本信息的查询,删除及修改。
课程管理又分为课程维护与排课,课程维护可以实现对所有已开设课程进行查询,也可以对课程信息进行修改、添加、删除。
排课功能可以实现对已开设课程对教师进行排课管理,通过排课实现学生对课程进行选择。
<2)教师:
主要功能有:
教师基本信息的查询、学生选课管理、学生成绩管理、密码修改。
其中,学生选课管理可以查询该教师所教课程学生的选课情况。
学生成绩管理,可以查询该教师所教课程学生的成绩,和学生成绩的录入。
<3)学生:
主要功能:
基本信息查询、成绩查询、选课管理、密码修改。
其中,选课查询可以实现,该学生哪一学年与哪一学期选课结果。
正选,可以实现学生选课,和历史已选课程的查询,当然该学生也可以对已选课程进行退选。
2.3系统环境需求
2.3.1开发环境需求
硬件需求:
CPUPIII500以上的PC服务器,内存1GB以上,硬盘8GB以上。
操作系统:
WindowsXP
软件需求:
MicrosoftVisualStudio2005开发环境,SQLServer2005数据库
2.3.2运行环境需求
硬件需求:
CPUPIII500以上的PC服务器,内存1CB以上,硬盘8GB以上。
操作系统:
WindowsXP;软件需求:
.NETFrameworkv2.0。
第3章概要设计
3.1数据库概要设计
对于学生信息管理系统的数据库设计,本文将从以下几个方面进行描述:
首先是概念模型描述,包括对系统的实体属性分析及系统的E-R图,然后是系统的逻辑结构设计,即给出系统的数据库设计表结构及描述。
3.1.1实体及其属性
整个系统各实体可用以下关系来表示<其中主键已用下划线标识):
1.学生个人信息表:
<学号,姓名,性别,出生年月,班级,专业,院系,密码,入学时间)
2.教师表<教师编号,姓名,性别,年龄,院系,密码>
3.课程表<课程号,课程名,课程学时,学分,类别,考查方式,上课时间,上课地点,教师编号<不为空),学期)
4.选课表<课程号,学号,教师编号,课程名)
5.管理员表<账号,姓名,密码,
6.成绩表<学号,课程号,成绩,学期)
3.1.2E-R模型
在分析过系统各实体之间的联系后可得出系统的整体概念模型,用E-R图表示出来,学生实体E-R图如图3.1所示
图3.1学生实体E-R图
教师实体E-R图如图3.2所示:
图3.2教师实体E-R图
课程表实体E-R图如图3.3所示:
图3.3课程实体E-R图
选课表实体E-R图如图3.4所示:
图3.4选课实体E-R图
管理员实体E-R图如图3.5所示
图3.5管理员实体E-R图
成绩实体E-R图如图3.6所示:
图3.6成绩实体E-R图
3.2系统管理模块设计
系统网站导航图如图3.7所示。
该图将此系统的大致信息展示了出来,系统是分相应权限的,只有具有相应权限的人员才能进入相应的功能模块。
图1.7系统功能模块图
第4章详细设计
为了方便用户的操作,系统采用了模块化设计的思想,通过各模块的不同组合以实现不同的增、删、改、查功能。
最终,使该系统能够具有规范化的格式、完整的信息量和易于查询等的特点。
4.1数据库的详细设计
依据数据库的概要设计,最后总结出数据库结构的主要数据表包括:
成绩表,教师表,课程表,选课表,学生课,院系专业表,管理员表等。
以下将给出系统数据库设计的逻辑模型,即各数据表的结构。
4.1学生表
学生表存储学生的相关信息,表结构如表4.1所示
表4.1学生表结构
列名
说明
数据类型
长度
允许空
是否为主键
学号
学号
varchar
10
否
是
姓名
姓名
varchar
20
否
否
性别
性别
char
4
否
否
年龄
年龄
Int
否
否
出生年月
出生年月
datetime
否
否
院系
院系
varchar
20
否
否
专业
专业
varchar
20
否
否
班级
班级
char
10
否
否
密码
密码
varchar
10
否
否
学制
学制
Varchar
10
否
否
4.2教师表
教师表存储教师的相关信息,表结构如表4.2所示
表4.2教师表结构
列名
说明
数据类型
长度
允许空
是否为主键
教师编号
教师编号
varchar
10
否
是
姓名
姓名
varchar
10
是
否
性别
性别
char
10
否
否
院系
院系
varchar
50
否
否
密码
密码
varchar
50
否
否
4.3课程表
课程表存储学生课程的相关信息,表结构如表4.3所示
表4.3课程表结构
列名
说明
数据类型
长度
允许空
是否为主键
课程号
课程号
varchar
10
否
否
课程名
课程名
varchar
10
否
否
课程学时
课程学时
varchar
50
否
否
学分
学分
varchar
10
否
否
类别
类别
varchar
10
否
否
考查方式
考查方式
varchar
10
否
否
上课时间
上课时间按
varchar
50
否
否
上课地点
上课地点
varchar
50
否
否
学期
学期
varchar
50
否
否
4.4选课表
选课表存储学生选课的相关信息,表结构如表4.4所示
表4.4选课表结构
列名
说明
数据类型
长度
允许空
是否为主键
学号
学号
varchar
10
否
否
课程号
课程号
varchar
10
否
否
学期
学期
nvarchar
50
否
否
4.5管理员表
管理员表存储管理员的相关信息,表结构如表4.5所示
表4.5管理员表结构
列名
说明
数据类型
长度
允许空
是否为主键
账号
账号
varchar
10
否
是
姓名
姓名
varchar
20
否
否
密码
密码
varchar
50
否
否
4.6排课表
排课表存储排课的相关信息,表结构如表4.6所示
表4.6排课表结构
列名
说明
数据类型
长度
允许空
是否为主键
课程号
课程号
varchar
50
否
否
学期
学期
Varchar
50
否
否
教师编号
教师编号
varchar
10
否
否
4.7成绩表
成绩表存储学生成绩的相关信息,表结构如表4.7所示
表4.7成绩表结构
列名
说明
数据类型
长度
允许空
是否为主键
学号
学号
varchar
10
否
否
学期
学期
varchar
50
否
否
课程号
课程号
varchar
50
否
否
成绩
成绩
varchar
10
是
否
4.2系统详细设计
以下是系统各主要功能模块的界面设计及实现。
进入网站的用户必须先登录,登录页面如图4.1所
图4.1登陆页面
4.2.1管理员信息管理
在系统登陆界面中登陆管理员账号,将进入管理员登陆界面,系统都提供了教师管理、学生管理、课程管理,密码修改等功能,显示结果如图4.2所示
图4.2管理员登陆界面
在该页面点击“教师管理”的按钮,将进入教师添加页面和教师信息维护和添加页面界面,如图4.3和4.4所示
图4.3.1教师管理
图4.3.2教师添加
图4.3.3教师信息修改
在该页面中点击“学生管理”的按钮如图4.3.4,将进入用户添加和学生信息维护界面,分别如图4.5,4.6所示
图4.3.4学生管理页面
图4.5显示全部学生信息界面
在“管理员登陆界面”中点击“课程管理”,会出现相应功能,如下图4.6显示:
图4.6课程管理页面
图4.7密码修改页面
第5章运行与测试
在编码的过程中,需要通过不断的对系统进行调试,才能对其功能做出完善性的补充。
所以测试在此期间起了相当大的作用。
以下给出用户登录及管理员登录的若干主要测试用例。
如表5.1所示
序号
功能模块
测试功能点
操作步骤及数据
期望结果
实际结果
分析
处理方式
1.
登录
输入正确用户名密码
在登录页面输入用户名及密码,点击“登录”按钮
正常登录,显示相应功能页面
正确
2.
输入正确的用户名和错误的密码
在登录页面输入用户名及密码,点击“登录”按钮
不能正常登录,系统给出提示
系统给出提示:
“密码错误,请重新输入”
3.
用户名或密码空白
在登录页面不输入用户名及密码,直接点击“登录”按钮
系统给出提示
系统给出提示“请输入用户名及密码”
4.
学生信息管理
教师信息添加
在学生信息添加页面输入学生信息,点击“保存”按钮
将教师数据插入数据库
学生信息添加不成功
“申请日期”字段数据正确性未判断
增加学生端脚本验证该控件的数据合法性
5.
学生信息修改
在学生信息管理页面选择某条用户信息,点击“修改”按钮,输入客户信息,点击“保存”按钮
修改数据库中相应学生信息记录
提示“受理日期”数据不合法
未判断“受理日期”
增加学生端脚本验证该控件的数据应在“受理日期”之后
6.
学生成绩管理
在“学生成绩管理”中增加一条学生成绩数据
在学生信息管理中的学生类别中出现该类别
正确
第6章结束语
在这次设计课题的过程中,通过组员的共同努力完成了程序设计,但从中也发现了自己的的不足,需要弥补,使我受益匪浅。
它教会了我们一个程序员必须要有扎实的基础,要有严谨的态度,更需要有耐心。
因为即使一个微小的错误就会导致程序无法运行,所以我们必须小心、认真书写代码,防止自己去犯一些完全没有必要的小错误,然后再浪费大量时间去查找错误,再去修改,既耗时又费力。
通过为期三周的课程设计,对《C#程序设计》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们软件项目专业的学习中占据着十分重要的地位。
同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践,而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
在做课题的过程中,多次遇到数据库连接错误的问题,这也再次证明了我们学数据库学的很不扎实。
所以在以后的学习中也找到了学习的重点。
课题设计不仅可以巩固知识,还可以将知识充分运用到实际操作中,让我们真正的了解C#,是一次宝贵的经验。
忙碌的三个星期的课题时间结束了,回顾上学期,我发现我的《C#程序设计》和《数据库系统概论》只掌握了书本上的知识,而对于编写程序的能力有很大的漏洞,所以这次的课题对我来说是个很大的挑战。
虽然我的编程水平不高,但是通过组员的共同努力,参考文献,请教老师和同学,程序也基本上算是完成了。
记得做一级课题的时候,面对课题不知所措,觉得课题非常困难,我难以完成,对课题存在了很大的畏惧心理,所以一级课题完成的不尽人意。
在刚开始做二级课题时,就想要认认真真的完成它。
虽然在做的过程中有很多不会和不熟练的地方,但经过努力,一个课题下来,这些已经可以熟练掌握了。
做完这次二级课题,我知道并不是只单纯地学习书本知识就可以学好编程语言,我们如果要想学好这门课,必须多动手编写代码,通过修改运行出来的错,可以更好的知道自己不足并加以改正,牢固掌握这种类型的知识。
附录系统相关代码
登陆页面:
publicvoidbutton1_Click(objectsender,EventArgse>
{
if(radioButton1.Checked>
{
SqlConnectionconn=newSqlConnection(>。
conn.ConnectionString="Server=1V47Y484QXASMMP。
database=student。
integratedsecurity=true"。
conn.Open(>。
SqlCommandcmd=newSqlCommand(>。
cmd.Connection=conn。
cmd.CommandText="Select*from学生表where学号=@学号"。
cmd.Parameters.Add(newSqlParameter("@学号",textBox1.Text>>。
SqlDataReaderdr=cmd.ExecuteReader(>。
if(dr.Read(>>
{
if(dr["密码"].ToString(>==textBox2.Text>
{
学生信息frm=new学生信息(>。
frm.Text=textBox1.Text。
textBox1.Clear(>。
textBox2.Clear(>。
frm.Show(>。
}
else
{
MessageBox.Show("账号或密码有误!
!
!
">。
}
}
else
{
MessageBox.Show("没有这个用户名">。
}
dr.Close(>。
conn.Close(>。
}
elseif(radioButton2.Checked>
{
SqlConnectionconn=newSqlConnection(>。
conn.ConnectionString="Server=1V47Y484QXASMMP。
database=student。
integratedsecurity=true"。
conn.Open(>。
SqlCommandcmd=newSqlCommand(>。
cmd.Connection=conn。
cmd.CommandText="Select*from教师表where教师编号=@教师编号"。
cmd.Parameters.Add(newSqlParameter("@教师编号",textBox1.Text>>。
SqlDataReaderdr=cmd.ExecuteReader(>。
if(dr.Read(>>
{
if(dr["密码"].ToString(>==textBox2.Text>
{
教师信息frm=new教师信息(>。
frm.Text=textBox1.Text。
textBox1.Clear(>。
textBox2.Clear(>。
frm.Show(>。
}
else
{
MessageBox.Show("账号或密码有误!
!
!
">。
}
}
else
{
MessageBox.Show("没有这个用户名">。
}
dr.Close(>。
conn.Close(>。
}
elseif(radioButton3.Checked>
{
SqlConnectionconn=newSqlConnection(>。
conn.ConnectionString="Server=1V47Y484QXASMMP。
database=student。
integratedsecurity=true"。
conn.Open(>。
SqlCommandcmd=newSqlCommand(>。
cmd.Connection=conn。
cmd.CommandText="Select*from管理员where账号=@账号"。
cmd.Parameters.Add(newSqlParameter("@账号",textBox1.Text>>。
SqlDataReaderdr=cmd.ExecuteReader(>。
if(dr.Read(>>
{
if(dr["密码"].ToString(>==textBox2.Text>
{
管理员frm=new管理员(>。
frm.Text=textBox1.Text。
textBox1.Clear(>。
textBox2.Clear(>。
frm.Show(>。
}
else
{
MessageBox.Show("账号或密码有误!
!
!
">。
}
}
else
{
MessageBox.Show("没有这个用户名">。
}
dr.Close(>。
conn.Close(>。
}
}
privatevoidbutton2_Click(objectsender,EventArgse>
{
this.Close(>。
}
学生管理:
privatevoidbutton6_Click(objectsender,EventArgse>
{
this.Close(>。
}
privatevoidbutton1_Click(objectsender,EventArgse>
{
SqlConnectionconn=newSqlConnection(>。
conn.ConnectionString="server=1V47Y484QXASMMP。
database=student。
integratedsecurity=true"。
try
{
stringstrsql="select*from学生表orderby班级"。
SqlDa