资源描述
专业方向专业课程设计报告
中国矿业大学徐海学院计算机系
专业方向课程设计论文
姓名: 管 景 峰
学号: 22080373
专业方向: 计算机网络
设计题目: 成绩管理系统
指导教师: 赵 芳
2011年 11 月
中国矿业大学徐海学院计算机系专业方向课程设计(论文)
摘 要
成绩管理平台是建立在互联网基础上的一种信息交流平台,面向所有网民提供服务。无论是查询成绩的学生还是管理成绩的教师,都可以通过该平台进行信息方面的交流。该平台是区别于传统的成绩管理的服务平台。
学生可以免费查看网络上自己的成绩信息;教师可以免费管理网络上自己所带科目的成绩信息,挑选自己所带科目的学生的成绩。
根据网络信息管理系统的开发为背景,论述了整个系统的开发过程,系统的结构及系统开发的基本原理和方法。全系统共分前言、编程环境基础知识、需求分析 、系统设计、系统实施、系统运行及维护、开发总结等几章。详细论述了需求分析、系统设计的技术及应用、系统的功能等内容
本系统在开发过程中,注意使其符合易于操作的要求,并力求系统的全面性、通用性。随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。在开发工具的选择上,主要利用 C# 编程语言进行开发,使用 MS SQL Server 2005 数据库,从而保证了数据的完整性与一致性。
【关键词】成绩管理系统: Visual Stdio2008 ;SQL Server 2005
目 录
第1章 引言 2
1.1开发与运行环境 2
1.2开发成绩信息管理系统的目的 2
1.3本课题的研究意义,国内外研究现状、水平和发展趋势 3
第2章 可行性分析 4
2.1技术可行性 4
2.2经济可行性 4
2.3操作可行性 4
第3章 系统的分析和设计 5
3.1 系统功能按角色分配 5
3.2 系统功能程序流程图 7
第4章 数据描述 8
4.1 数据库技术概述 8
4.2 系统逻辑模型 8
4.3 系统逻辑结构设计 9
第5章 系统的实现和调试系统 11
5.1 登录界面及功能 11
5.2 用户注册界面及功能 13
5.3 学生基本信息界面及功能 17
5.4 教师录入成绩界面及功能 22
5.5 学生选课界面及功能 23
第6章 运行与测试 24
第6.1节 系统运行 24
第6.2节 系统测试 24
总 结 28
参考文献 28
32
第1章 引言
当今时代的两个显著特点就是世界经济一体化和以计算机为代表的信息技术的快速发展。一个组织要在激烈的竞争中保持优势和不断发展,必须对迅速变化的环境灵敏地做出有效的反应。成绩管理系统的应用能够提供这种有效的决策支持。成绩信息管理系统运用了先进的、管理的、信息的处理技术来针对环境的挑战,它实际是随着计算机软件和网络技术不断地前进而前进,随着环境不断地变化而变化的。这样就有了新的解答——成绩信息管理系统是逐步发展的过程,使之更好地适应社会的发展需求。学生可以免费查看网络上的成绩信息;教师可以免费管理网络上的成绩信息,挑选自己所带科目的学生的成绩。
1.1开发与运行环境
成绩信息管理系统的开发与运行环境如下:
开发环境:Windows XP
数据库工具:SQL SEVER 2005
开发语言:C# 、 SQL
运行环境:Windows 2000/XP/2003
1.2开发成绩信息管理系统的目的
一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为毕业设计的课题。
本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可以完成有关成绩的录入,更新,管理,查询和删除。本系统将会改变以前靠手工管理学生成绩的状况,提高工作效率。希望能为老师和学校的工作带来便利。
1.3本课题的研究意义,国内外研究现状、水平和发展趋势
随着高校办学规模的扩大和招生人数的增加,学生成绩管理维护是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,介于它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。
运用学生成绩管理维护系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够节省时间,学生也能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。
在现代高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,怎样提高工作效率是人们首先考虑的问题。学生成绩管理是一个非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。对于一个学校而言,管理好学生的成绩,是非常重要的。因此开发出一套学生成绩管理系统是非常必要的。
第2章 可行性分析
2.1技术可行性
本课题是采用C#,SQL Server 2008技术来进行研究与实现。C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了 Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。
2.2经济可行性
本系统开发需求的成本较低,加上具有成熟的软硬件环境,所以在软硬件的支出上十分有限。而且目标系统并不是十分的复杂,开发的周期较短,人员经济支出有限。在为使用者带来便利的同时,也为系统的进一步推广创造了条件。最重要的一点是该软件的开发可以给我们对系统的开发有个全面的认识。因此经济可行性较高。
2.3操作可行性
系统基于C#的工作界面,使工作人员无论身处何地,无论通过局域网还是互联网,都能在客户端中直接工作。在操作使用上十分方便,所有的操作都是基于C#的操作方式,如:链接、按钮等等。所有的操作通过客户端完成,客户端不需要配置其他应用软件。人性化的界面设计,使一般用户无需培训即可使用。
第3章 系统的分析和设计
成绩信息管理系统的用户包括系统管理员、教师和学生。系统管理员负责对学生基本信息的添加、修改、删除和查询;教师负责对学生成绩信息的添加、删除、修改和查询;学生负责对自己成绩的查询和选课。
3.1 系统功能按角色分配
1、管理员用户:添加、修改、查询和删除教师信息、添加、修改、查询和删除学生信息,如图3.1所示:
图3.1管理员功能
2、学生用户:学生选课、成绩查询,如图3.2所示:
图3.2学生功能
3、教师用户:添加、修改、查询和删除学生成绩 ,如图3.3所示:
图3.3教师功能
4、未注册用户:注册学生用户、注册教师用户,如图3.4所示:
图3.4未注册用户功能
3.2 系统功能程序流程图
如图3.5所示:
图3.5系统程序流程图
第4章 数据描述
4.1 数据库技术概述
数据库技术是管理信息的一项重要技术,其发展大致经历了三个阶段:
①人工管理阶段:在 20 世纪 50 年代中期以前,数据的组织和管理完全靠程序员手工完成,数据是面向应用的,数据与程序不具有独立性,数据冗余大,管理效率很低。
②文件管理阶段:20 世纪 50 年代后期,出现了包含文件管理系统的操作系统,数据处理包括查询、修改、插入和删除等完全由文件系统统一管理,数据可以反复使用,但仍然是面向应用的。
③数据库管理阶段: 70年代初为解决多用户多应用共享数据的需要出现了数据库管理技术,它克服了文件系统的缺点,由数据库管理系统DBMS(Database management System)对所有数据实行统一、集中、独立管理。
数据库系统的特点表现为:
(1)数据结构化。
(2)数据的共享性高,冗余性低,易扩充。
(3)数据独立性高。
(4)数据由DBMS统一管理和控制。[2]
4.2 系统逻辑模型
数据库系统是基于某种数据模型的,是对现实世界进行抽象得到的。本系统对现实世界的超市进行抽象后采用P.P.S.Chen于1976年提出的实体-联系方法,即E-R图来描述现实世界的概念模型。
E-R图是直观表示概念模型的工具,它有四个基本成分:
□ :矩形框,表示实体类型(考虑问题的对象)。
◇ :菱形框,表示联系类型(实体间的联系)。
〇 :椭圆形框,表示实体类型和联系类型的属性。对于关键码的属性,在属性名下划一横线。
—:直线,联系类型与其涉及的实体类型之间以直线连接。
成绩管理系统E-R图如下:
m
1
学生成绩表
查询
查看
1
学生信息表
m
m
选课
1
管理
n
n
课程信息表
1
学生选课表
1
教师信息表
查询
图4.1成绩管理系统E-R图
4.3 系统逻辑结构设计
本系统的关系数据库主要包括教师表、学生表、学生信息表、注册用户表,学生选课表、学生成绩表
表的详细结构如下:
教师信息表数据:
学生选课表数据:
注册用户表数据:
学生信息表数据:
学生成绩表数据:
课程信息表数据:
第5章 系统的实现和调试系统
5.1 登录界面及功能
系统登录主要用于对进入成绩管理系统的用户进行安全性检查,以防非法用户进入该系统。登录界面如5.1所示:
图5.1登录界面
登录界面主要代码:
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
string constr = "server=.;database=student;integrated security=true";
SqlConnection thisconnection = new SqlConnection(constr);
thisconnection.Open();
if (radioButton1.Checked)
{
Program.type = "管理员登陆成功!";
string sql = "select * from Table_1 where 用户名='" + textBox1.Text.ToString() + "' and 密码='" + textBox2.Text.ToString() + "'and 用户类型='" + radioButton1.Text.ToString() + "'";
SqlCommand mycom = new SqlCommand(sql, thisconnection);
SqlDataReader da;
da = mycom.ExecuteReader();
while (da.Read())
{
i = 1;
MessageBox.Show("管理员登陆成功!");
Form5 f4 = new Form5();
f4.Show();
this.Hide();
}
}
if (radioButton2.Checked)
{
Program.type = "学生登陆成功!";
string sql = "select * from Table_1 where 用户名='" + textBox1.Text.ToString() + "' and 密码='" + textBox2.Text.ToString() + "'and 用户类型='" + radioButton2.Text.ToString() + "'";
SqlCommand mycom = new SqlCommand(sql, thisconnection);
SqlDataReader da;
da = mycom.ExecuteReader();
while (da.Read())
{
i = 1;
MessageBox.Show("学生登陆成功!");
Form4 f4 = new Form4();
f4.Show();
this.Hide();
}
}
if (radioButton3.Checked)
{
Program.type1 = textBox1 .Text .ToString ();
Program.type = "教师登陆成功!";
string sql = "select * from Table_1 where 用户名='" + textBox1.Text.ToString() + "' and 密码='" + textBox2.Text.ToString() + "'and 用户类型='" + radioButton3.Text.ToString() + "'";
SqlCommand mycom = new SqlCommand(sql, thisconnection);
SqlDataReader da;
da = mycom.ExecuteReader();
while (da.Read())
{
i = 1;
MessageBox.Show("教师登陆成功!");
Form4 f4 = new Form4();
f4.Show();
this.Hide();
}
}
if (i == 0)
MessageBox.Show("用户名、密码或用户类型错误!");
textBox1.Clear();
textBox2.Clear();
}
5.2 用户注册界面及功能
用户注册界面主要用于对从未进入成绩管理系统的新用户进行注册使用的。用户注册界面如5.2所示:
图5.2用户注册界面
用户注册界面主要代码:
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
SqlConnection mycon = new SqlConnection("server=.;database=student;integrated security=true");
mycon.Open();
if (radioButton1.Checked)
{
if ((textBox2.Text == textBox3.Text) && (textBox1.Text != " "))
{
string comstr = "select * from Table_1 where 用户名='" + textBox1.Text + "'";
SqlCommand mycom = new SqlCommand(comstr, mycon);
SqlDataReader da;
da = mycom.ExecuteReader();
while (da.Read())
{
i = 1;
MessageBox.Show("此账号已被注册!");
textBox1.Clear();
}
da.Close();
if (i == 0)
{
string comstr1 = "insert into Table_1 values('" + textBox1.Text + "','" + textBox2.Text + "','" + radioButton1.Text + "')";
mycom = new SqlCommand(comstr1, mycon);
mycom.ExecuteNonQuery();
MessageBox.Show("注册成功!");
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
else
{ }
}
else
{
MessageBox.Show("密码不一致或账号为空!请从新输入!");
}
}
if (radioButton2.Checked)
{
if ((textBox2.Text == textBox3.Text) && (textBox1.Text != " "))
{
string comstr = "select * from Table_1 where 用户名='" + textBox1.Text + "'";
SqlCommand mycom = new SqlCommand(comstr, mycon);
SqlDataReader da;
da = mycom.ExecuteReader();
while (da.Read())
{
i = 1;
MessageBox.Show("此账号已被注册!");
textBox1.Clear();
}
da.Close();
if (i == 0)
{
string comstr1 = "insert into Table_1 values('" + textBox1.Text + "','" + textBox2.Text + "','" + radioButton2.Text + "')";
mycom = new SqlCommand(comstr1, mycon);
mycom.ExecuteNonQuery();
MessageBox.Show("注册成功!");
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
else
{ }
}
else
{
MessageBox.Show("密码不一致或账号为空!请从新输入!");
}
}
}
5.3 学生基本信息界面及功能
学生基本信息界面主要用于管理员用户进行学生信息的添加、修改、删除和查询。学生基本信息界面如5.3所示:
图5.3学生基本信息界面
学生基本信息界面主要代码:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || comboBox1.Text == "" || textBox3.Text == "" )
{
MessageBox.Show("所有的信息不能为空!");
}
else
{
string constr1 = "insert into Table_2 values('" + textBox1.Text + "','" + textBox2.Text + "','" + comboBox1.Text + "','" + textBox3.Text + "')";
SqlConnection conn = new SqlConnection("server=.;database=student;integrated security=true");
conn.Open();
SqlCommand cmd = new SqlCommand(constr1, conn);
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("添加成功!");
}
catch (Exception ee)
{
MessageBox.Show("学好不能重复,表中已有记录!");
}
b.Clear();
string t = "select * from Table_2 ";
// DataSet b = new DataSet();
SqlDataAdapter a = new SqlDataAdapter(t, conn);
a.Fill(b, "Table_2");
dataGridView1.DataSource = b.Tables["Table_2"];
conn.Close();
textBox1.Text = textBox2.Text= comboBox1.Text = textBox3.Text = "";
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int j;
try
{
j = dataGridView1.SelectedRows[0].Index;
textBox1.Text = b.Tables[0].Rows[j][0].ToString();
textBox2.Text = b.Tables[0].Rows[j][1].ToString();
comboBox1.Text = b.Tables[0].Rows[j][2].ToString();
textBox3.Text = b.Tables[0].Rows[j][3].ToString();
}
catch (Exception ee)
{
}
}
private void button2_Click(object sender, EventArgs e)
{
//dataGridView1_CellClick ();
SqlConnection thisconnection = new SqlConnection("server=.;database=student;integrated security=true");
thisconnection.Open();
string constr5 = "update Table_2 set 学号='" + textBox1.Text.ToString() + "',姓名='" + textBox2.Text.ToString() + "',班级='" + textBox3.Text.ToString() + "',性别='" + comboBox1.Text.ToString() + "'where 学号 = '" + textBox1.Text.ToString() + " '";
SqlConnection conn = new SqlConnection("server=.;database=student;integrated security=true");
conn.Open();
SqlCommand cmd = new SqlCommand(constr5, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("修改成功!");
conn.Close();
string t = "select * from Table_2 ";
SqlConnection conn2 = new SqlConnection("server=.;database=student;integrated security=true");
conn.Open();
try
{
DataSet b = new DataSet();
SqlDataAdapter a = new SqlDataAdapter(t, conn2);
a.Fill(b, "Table_2");
dataGridView1.DataSource = b.Tables["Table_2"];
}
catch (Exception c)
{
}
conn.Close();
textBox1.Text = textBox2.Text = comboBox1.Text = textBox3.Text = "";
}
private void button3_Click(object sender, EventArgs e)
{
SqlConnection thisconnection = new SqlConnection("server=.;database=student;integrated security=true");
thisconnection.Open();
string constr1 = "delete from Table_2 where 学号='" + textBox1.Text + "'";
SqlConnection conn = new SqlConnection("server=.;database=student;integrated security=true");
conn.Open();
SqlCommand cmd = new SqlCommand(constr1, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("删除成功!");
conn.Close();
string t = "select * from Table_2";
SqlConnection conn2 = new SqlConnection("server=.;database=student;integrated security=true");
conn.Open();
try
{
DataSet b = new DataSet();
SqlDataAdapter a = new SqlDataAdapter(t, conn2);
a.Fill(
展开阅读全文