资源描述
摘要
随着我国教育事业的飞速发展发展,信息技术在教学上的应用会更加地广泛。学生成绩管理也将是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,能否实现这一步关系到学校办学整体效率的高低。因此,考虑到它的重要性,开发一套适和大众的、兼容性好的系统是很有必要的。
本系统基于VS2008开发工具,采用C#开发语言和SQL Server 2005数据库。此系统是提高教学管理的工作效率和全面实行计算机管理的重要途径,其基本功能包括:学生模块:个人信息修改、个人课程查询和个人成绩查询;教师模块:成绩录入、成绩统计、学生信息维护;管理员模块:学生教师信息添加和维护、课程信息维护、成绩信息维护。其中成绩统计和分析是本系统的特色,为教师提供各项有价值的数据。
关键词: 成绩系统;分析;C#;Microsoft SQL Server 2005
Abstract
With the rapid development of education in China, the application of information technology is widely used during the course of teaching. Therefore, the management of students’ achievement management is a vital process during the course of school management. School is a place to cultivate students’ human nature and transmit knowledge. And how to make students’ achievement management computerized is also of great importance. Realizing this process benefits the quality of efficiency of the school. Taking into consideration of its importance, it’s necessary to carry out a set of compatible system management which fits to the public.
This system is based on VS2008 development tools, using C# development language and SQL Server 2005 database. The application of this system is a vital approach to the improvement of teaching management and the implementation of computer management. This system is composed of three parts. The first part is student module, which includes the modification of personal information, the search of personal courses and the query of personal achievement; the second part is teacher module, which includes the input of score and statistics, and the maintenance of students’ information; the final part is administrator module, which contains the maintenance and the input of students’ and teachers’ information, the maintenance of course and score. Among those functions, the statistics and analysis of score are the major characteristics of this system, of which provide the teacher with a variety of valuable information.
Key words: achievement system; Analysis; C #; Microsoft SQL Server 2005
1. 绪论
本毕业论文是以学校学生管理信息系统建设中的成绩管理系统的开发为背景,论述了管理信息系统的概念、结构及系统开发的基本原理和方法,全文共分为绪论、系统分析、概要设计、详细设计、开发总结、致谢、参考文献等。
1.1系统开发的背景
随着计算机及网络技术的飞速发展,Internet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化得作用也越来越大,使人们从繁杂的事物中解放出来,从而提高了工作效率。
在如今信息全球化的背景下,科学管理的方法与信息数字的技术相互影响,相互促进,联系紧密。21世纪人类将全面进入信息时代,我们要摒弃过去对学生信息的手工管理方式,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理,因此我们开发本系统,依据开发要求主要应用于教育系统,完成对学生信息的数字化管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教师、学生的信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。
1.2系统开发的目标
本系统是将数字化的计算机技术和传统的管理工作相结合,按照学校的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的无手工化,提高工作效率和工作质量,现提出如下的系统开发目标:
(1)系统应具有实用性、可靠性和适用性,同时注意到先进性。
(2)对各个数据库进行动态管理,防止混乱。
(3)能够按照用户选择的不同的条件进行简单查询和复合查询。
(4)能够对成绩的查询结果进行分析,得到相关数据。
(5)方便用户的操作,尽量减少用户的操作。
1.3系统开发的意义
在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。
2. 系统总体分析与需求
2.1用户需求
一个学校的角色是学生、教师和系统管理员。学生和教师是系统用户,而管理员是系统管理者。
学生需要方便、快捷的查询的到属于自己的所有信息;教师可进行学生信息管理,课程信息管理,成绩管理,信息查询,成绩统计等工作;管理员可进行用户管理,组权限分配,信息查询修改等工作。
2.2平台需求
在操作系统方面,虽然现在Linux的发展速度非常的快,但是对于大多数的使用者来说,操作显然没有微软的WINDOWSNA那么的方便快捷。所以该系统将运行在Windows系统下面。
2.3运行环境
2.3.1开发工具
(1)Visual Studio 2008
在开发工具上,我选择Visual Studio 2008。Visual Studio 2008 是一套完整的开发工具,引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。
(2)SQL Server2005
本系统采用Microsoft SQL Server2005作为系统的数据库支撑,SQL Server2005是能够支持企业级关系型数据库的管理系统,它能与Windows操作系统紧密集成,具有方便易用的图形管理界面,其用户界面风格与Windows一样非常友好。SQL Server2005在存储大容量数据方面,在数据的安全性和完整性方面,在分布式处理等都是适合于企业级应用的。而其相对Oracle,DB/2等大型数据库来说,学习更为容易,应用成本也相对较低。采用SQL Server2005 +VS2008开发本系统是一个较为理想的组合。
2.3.2软件环境
操作系统:Windows XP 以上版本
数据库:Microsoft SQL Server 2005
开发工具:Visual Studio 2008
开发语言:C#
2.3.3硬件环境
处理器:Inter(R)on(R) CPU 1.60GHz
内 存: 512M RAM
2.4.系统功能需求分析
2.4.1基本操作功能
添加功能:管理员可以通过填写表格的形式输入学生相关信息。系统可以自动避免重复信息。教师可以通过选课情况添加学生的成绩信息。
修改功能:管理员可以对数据库中的信息进行修改。系统能够通过管理员给出的条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复信息。
删除功能:管理员可以对数据进行删除操作。系统能够通过管理员给出的条件查找出要删除的信息,并提示是否确定删除,如果确定删除,则把相关信息从数据库中删除掉。
2.4.2查询功能
为了方便用户查找信息,将所有信息按照需要进行分类。这样用户就能很方便的找到自己需要的信息
2.4.3 统计功能
教师可以选择不同的科目,查看各学科的成绩统计。
2.4.4分析功能
教师可以通过查询科目成绩,分析该科目的成绩情况。并能得到考试人数、平均分和及格率等相关数据。
2.5系统开发的可行性分析
可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。
2.5.1 经济可行性:
现如今,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:
(1)本系统的运行可以代替人工进行许多繁杂的劳动;
(2)本系统的运行可以节省许多资源;
(3)本系统的运行可以大大的提高学校的工作效率;
(4)本系统可以使敏感文档更加安全,等等。
所以,本系统在经济上是可行的。
2.5.2技术可行性:
本系统的开发利用Microsoft SQL Server2005作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。
使用C#面向对象的编程语言和Visual Studiont2008作为系统的开发工具,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
2.5.3运行上可行性:
本系统为一个小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,同时C#是面向对象的主流编程语言,Visual Studiont2008开发环境是目前最流行的windows平台应用程序开发环境,而且开发的系统界面简单易操作,因此,本系统在运行上是可行的。
3.系统概要设计
本系统的总体目标是建立一个先进、高效、安全、可靠的能被有效应用于学生成绩管理的信息化数据库管理系统。
本系统用户角色主要有两类:系统管理员与普通用户。其中系统管理员可进行用户管理。普通用户可分为学生,老师用户。
系统管理员:可进行用户管理,组权限分配,信息维护等工作。
教师:可进行学生信息管理,课程信息管理,成绩管理,信息查询,成绩统计等工作。
学生:可进行信息查询等操作。
3.1系统功能结构图
系统登录模块主要功能是将不同的用户分流到各自的窗体,同时并将登录用户的信息传递到该窗体,本系统的整体结构如图3-1所示。
学生成绩分析管理系统
管理员模块
教师模块
学生模块
信息管理
用户管理
成绩管理
信息查询
信息查询
查询学生信息
课程信息管理
修改个人信息
录入学生成绩
学生成绩分析
学生成绩查询
学生课程查询
修改个人信息
成绩信息管理
用户管理
添加新用户
修改学生信息
添加教师用户
添加学生用户
修改教师信息
删除成绩
修改成绩
添加成绩
删除课程
修改课程
添加课程
图3-1 系统结构功能图
3.2学生模块
学生模块有3个功能:修改个人信息、查询选课情况、查询成绩信息。学生模块功能如图3-2所示。
学生模块
查询选课情况
修改个人信息
查询成绩信息
修改密码
上传相片
图3 -2 学生模块功能图
3.3教师模块
教师模块有4个功能:修改个人信息、查询学生信息、录入成绩和分析成绩。教师模块功能如图3-3所示。
教师模块
修改个人信息
查询学生信息
录入成绩
分析成绩
图3 -3 教师模块功能图
3.4管理员模块
管理员模块
管理员模块有5个功能:添加用户、学生信息维护、教师信息维护、课程信息维护和成绩信息维护,如图3-4所示。
成绩信息维护
课程信息维护
教师信息维护
学生信息维护
添加用户
图3 -4 管理员模块功能图
3.5系统数据库设计
3.5.1数据库简介
在系统设计过程中,数据库的设计是系统的核心和基础,把系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。
数据库是长期储存在计算机内大量的有组织的,可以共享的数据的集合,这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
3.5.2数据库的主要特点和功能
SQL Server 是一个全面的、集成的、端到端的数据解决方案,它为组织中的用户提供了一个更安全可靠和更高效的平台用于企业数据和 BI 应用。
主要特点有:
(1)高可用性:SQL Server 2005的失败转移集群和数据库镜像技术确保企业向员工、
客户和合作伙伴提交高度可靠和可用的应用系统。
(2)管理工具:SQL Server 2005引进了一套集成的管理工具和管理应用编程接口
(APIs),以提供易用性、可管理性、及对大型SQL Server配置的支持。
(3)安全性增强: SQL Server 2005旨在通过数据库加密、更加安全的默认设置、加
强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。
(4)可伸缩性: SQL Server 2005可伸缩性的先进性包括表格分区、复制能力的增强
和64位支持。
(5)在线恢复: 使用SQL2005版服务器,数据库管理人员将可以在SQL服务器运行的
情况下,执行恢复操作。在线恢复改进了SQL服务器的可用性,因为只有正在被恢复的数据是无法使用的,而数据库的其他部分依然在线、可供使用。
(6)数据分割: 将加强本地表检索分割,这使得大型表和索引可以得到高效的管理。
3.5.3数据库设计的步骤
数据库的设计一般要经过:需求分析、概念设计、逻辑结构设计、物理结构设计和系统实施等步骤,如图3-5所示。
需求分析
概念设计
逻辑结构设计
物理结构设计
系统实施
图3-5 数据库设计步骤图
3.5.4数据库表的设计
表是数据库中用来存储数据的对象,是整个数据库系统的基础。SQL 2005允许一个数据库中包含多个表,用户可以在不同的表中存储不同的数据类型。通过在表之间建立关系,可以将不同表中的数据联系起来,以方便用户使用。
该系统只是用了一个数据库stu_system,库中包含了5个数据表,名称分别为student、admin、teacher、course和score。
表3-1 student表
(1) student表
列名
数据类型
说明
学号
char(6)
主键
姓名
varchar(8)
不允许空
性别
char(5)
不允许空
民族
char(5)
不允许空
籍贯
char(6)
不允许空
所在系
char(5)
不允许空
身份证号码
int
不允许空
出生年月
smalldatetime
不允许空
联系电话
int
不允许空
电子邮箱
varchar(20)
不允许空
家庭住址
varchar(50)
不允许空
个人相片
varchar(20)
密码
varchar(8)
不允许空
表3-2 admin表
(2)admin表
列名
数据类型
说明
管理员账号
char(6)
主键
管理员名字
varchar(8)
不允许空
行政部门
varchar(10)
不允许空
密码
varchar(8)
不允许空
相片
varchar(20)
(3)teacher表
表3-3 teacher表
列名
数据类型
说明
教师编号
char(6)
主键
教师名字
varchar(8)
不允许空
所在系别
varchar(8)
不允许空
职称
varchar(10)
不允许空
教研室
varchar(20)
不允许空
密码
varchar(8)
不允许空
相片
varchar(8)
(4)course表
表3-4 course表
列名
数据类型
说明
课程编号
char(6)
主键
课程名称
char(20)
不允许空
教师编号
char(6)
不允许空
教师名字
varchar(8)
不允许空
课程学分
Int
不允许空
课程类别
varchar(6)
不允许空
学期
varchar(8)
不允许空
学年
Int
不允许空
课程学时
Int
不允许空
开班数
Int
不允许空
(5)score表
表3-5 score表
列名
数据类型
说明
课程编号
char(6)
外键
学号
char(6)
外键
姓名
varchar(8)
不允许空
平时成绩
Int
考试成绩
Int
总评成绩
Int
4.详细设计与系统实现
本系统从窗体上划分可分为以下4大模块: 登录模块、学生模块、教师模块和管理员模块(本论文只对学生模块和管理员模块进行说明)。
首先我们可以通过系统流程图,全面的透析该系统。学生模块流程图,如图4-1所示;教师模块流程图,如图4-2所示;管理员模块流程图,如图4-3所示。
N
Y
修改个人信息
学生
身份验证
课程信息查询
成绩信息查询
显示结果
显示结果
学生表
退出
图4-1 学生模块流程图
N
Y
修改个人信息
教师
身份验证
学生成绩管理
学生成绩录入
显示结果
显示结果
教师表
退出
图4-2教师模块流程图
N
Y
用户管理
管理员
身份验证
信息管理
成绩表
学生表
退出
图4-3 管理员模块流程图
教师表
课程表
4.1 学生模块
4.1.1信息检测功能
进入学生模块后,首先系统会自动检测个学生的个人信息是否完整,如果存在缺失信息会提示用户添加,如图4-4所示;
图4-4 信息检测
相关代码:
if (textBox16 .Text != ""|| textBox9.Text!=””)
{
pictureBox7.ImageLocation = string.Format("{0}", photo);
}
else
{
MessageBox.Show("为了您更好地使用系统,请上传个人图片!", "温馨提示");
}
如果信息完整,进入学生模块界面将显示相关信息,如图4-5所示;
图4-5 信息显示
相关代码:
SqlConnection conn = new SqlConnection(Properties.Settings.Default.wslConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = string.Format("select * from admin where 管理员账号='{0}'", s);
try
{
conn.Open();
SqlDataReader r = cmd.ExecuteReader();
while (r.Read() == true)
{
name = r[1].ToString();
danwei = r[2].ToString();
photo = r[4].ToString();
textBox16.Text = r[4].ToString();
label3.Text = string.Format("管理员: {0}", name);
label4.Text = string.Format("行政部门: {0}", danwei);
}
r.Close();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
finally
{
conn.Close();
}
4.1.2修改个人信息
进入学生模块界面后,可对自己的个人信息进行修改,但是学号和系别是无法修改的,如图4-6所示。
图4-6 个人信息
相关代码:
SqlConnection conn = new SqlConnection(Properties.Settings.Default.wslConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = string.Format("select * from student where 学号='{0}'", s);
try
{
conn.Open();
SqlDataReader r = cmd.ExecuteReader();
while (r.Read() == true)
{
name = r[1].ToString();
danwei = r[5].ToString();
photo = r[11].ToString();
mima =r[12].ToString ();
xi =r[5].ToString ();
label3.Text = r[0].ToString().Trim(); //学号
label4.Text = r[1].ToString().Trim(); //姓名
textBox1.Text = r[0].ToString().Trim(); //学号
textBox7.Text = r[1].ToString().Trim(); //姓名
textBox2.Text = r[2].ToString().Trim(); //性别
textBox8.Text = r[3].ToString().Trim(); //名族
textBox4.Text = r[4].ToString().Trim(); //籍贯
textBox3.Text = r[5].ToString().Trim(); //所在系
textBox9.Text = r[6].ToString().Trim(); //身份证号码
dateTimePicker1.Text = r[7].ToString().Trim(); //出生年月
textBox6.Text = r[8].ToString().Trim(); //移动电话
textBox10.Text = r[9].ToString().Trim(); //电子邮箱
textBox5.Text = r[10].ToString().Trim(); //家庭地址
相片TextBox.Text = r[11].ToString();
label3.Text = string.Format("{0}同学", textBox7.Text);
label4.Text = string.Format("{0}", danwei);
pictureBox7.ImageLocation = string.Format("{0}", photo);
pictureBox6.ImageLocation = pictureBox7.ImageLocation;
}
r.Close();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
4.1.3课程查询
学生模块中的课程查询,不需要进行条件查询,系统会自动检测出该学生的选课信息,直接显示在界面,并且可查询到详细的信息,如图4-7所示。
图4-7课程查询
相关代码:
SqlConnection conn1 = new SqlConnection(Properties.Settings.Default.wslConnectionString);
adapter = new SqlDataAdapter("SELECT course.课程名称, course.教师名字, teacher.所在系别,course.课程类别, course.学期, course.学年, course.课程学时, course.开班数, teacher.相片 FROM course INNER JOIN teacher ON course.教师编号 = teacher.教师编号 WHERE teacher.所在系别 = '" + textBox3.Text.Trim() + "'", conn);
SqlCommandBuilder builder1 = new SqlCommandBuilder(adapter);
table = new DataTable();
adapter.Fill(table);
dataGridView1.DataSource = table;
dataGridView1.EndEdit();
dataGridView1.Columns[8].Visible = false;
if (e.RowIndex > -1)//加个判断
{
textBox14.Text=dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
textBox15.Text=ataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
textBox16.Text=ataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
textBox17.Text=ataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
textBox18.Text=ataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
textBox19.Text=ataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
textBox20.Text=ataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();
textBox21.Text=taGridView1.Rows[e.RowIndex].Cells[7].Value.ToString();
xtBox22.Text = dataGridView1.Rows[e.RowIndex].Cells[8].Value.ToString();
pictureBox2.ImageLocation = textBox22.Text;
dataGridView1.ReadOnly = true;
}
4.1.4 成绩查询
成绩查询和课程查询一样,系统会直接显示出你的各科成绩,并且可看到详细的各项信息,如图4-8所示。
图4-8成绩查询
相关代码:
SqlConnection conn2 = new SqlConnection(Properties.Settings.Default.wslConnectionString);
adapter = new SqlDataAdapter("SELECT course.课程名称, course.教师名字, score.学号, score.平时成绩, score.考试成绩, score.总评成绩 FROM score INNER JOIN course ON score.课程编号 = course.课程编号 AND score.课程编号 = course.课程编号 WHERE score.学号 = '" + textBox1.Text.Trim() + "'", conn);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
table = new DataTable();
adapter.Fill(table);
dataGridView2.DataSource = table;
dataGridView2.EndEdit();
if (e.RowIndex > -1)//加个判断
{
textBox23.Text=ataGridView2.Rows[e.RowIndex].Cells[0].Value.ToString();
textBox24.Text=ataGridView2.Rows[e.RowIndex].Cells[1].Value.ToString();
textBox25.Text=GridView2.Rows[e.RowIndex].Cells[2].Value.ToString();
textBox26.Text=ataGridView2.Rows[e.RowIndex].Cells[3].Value.ToString();
textBox27.Text=taGridView2.Rows[e.RowIndex].Cells[4].Value.ToString();
textBox28.Text=taGridView2.Rows[e.RowIndex].Cells[5].Value.ToString();
dataGridView2.ReadOnly = true;
}
4.2管理员模块
4.2.1个人信息检测
管理员登录后系统自动在主界面显示管理员的相关个人信息,如图4-9所示。
图4-9 信息检测
相关代码:
if (textBox16 .Text != "")
{
pictureBox7.ImageLocation = string.Format("{0}", photo);
}
else
{
MessageBox.Show("为了您更好地使用系统,请上传个人图片!", "温馨提示");
}
图4-10信息显示
登录成功后在管理员界面,系统会自动根据登录页面传递来的管理员账号调去其基本信息显示在该界面,如图4-10所示。
相关代码:
SqlConnection conn = new SqlConnection(Properties.Settings.Default.wslConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText =
string.Format("select * from admin where 管理员账号='{0}'", s);
try
{
conn.Open();
SqlDataReader r = cmd.ExecuteReader();
while (r.Read() == true)
{
name = r[1].ToString
展开阅读全文