资源描述
中国矿业大学徐海学院计算机系
专业方向课程设计论文
姓名: 管 景 峰
学号: 22080373
专业方向: 计算机网络
设计题目: 成绩管理系统
指导老师: 赵 芳
11 月
摘 要
成绩管理平台是建立在互联网基础上一个信息交流平台,面向全部网民提供服务。不管是查询成绩学生还是管理成绩老师,全部能够经过该平台进行信息方面交流。该平台是区分于传统成绩管理服务平台。
学生能够无偿查看网络上自己成绩信息;老师能够无偿管理网络上自己所带科目标成绩信息,挑选自己所带科目标学生成绩。
依据网络信息管理系统开发为背景,叙述了整个系统开发过程,系统结构及系统开发基础原理和方法。全系统共分序言、编程环境基础知识、需求分析 、系统设计、系统实施、系统运行及维护、开发总结等几章。具体叙述了需求分析、系统设计技术及应用、系统功效等内容
本系统在开发过程中,注意使其符合易于操作要求,并努力争取系统全方面性、通用性。伴随用户使用及对系统了解不停加深,对某一部分或几部分进行重新分析、设计、实施。在开发工具选择上,关键利用 C# 编程语言进行开发,使用 MS SQL Server 数据库,从而确保了数据完整性和一致性。
【关键词】成绩管理系统: Visual Stdio ;SQL Server
目 录
第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
第1章 引言
当今时代两个显著特点就是世界经济一体化和以计算机为代表信息技术快速发展。一个组织要在猛烈竞争中保持优势和不停发展,必需对快速改变环境灵敏地做出有效反应。成绩管理系统应用能够提供这种有效决议支持。成绩信息管理系统利用了优异、管理、信息处理技术来针对环境挑战,它实际是伴随计算机软件和网络技术不停地前进而前进,伴随环境不停地改变而改变。这么就有了新解答——成绩信息管理系统是逐步发展过程,使之愈加好地适应社会发展需求。学生能够无偿查看网络上成绩信息;老师能够无偿管理网络上成绩信息,挑选自己所带科目标学生成绩。
1.1开发和运行环境
成绩信息管理系统开发和运行环境以下:
开发环境:Windows XP
数据库工具:SQL SEVER
开发语言:C# 、 SQL
运行环境:Windows /XP/
1.2开发成绩信息管理系统目标
一直以来学生成绩管理是学校工作中一项关键内容,中国大中专院校学生成绩管理水平普遍不高。伴随办学规模扩大和招生人数增加,建立一个成绩维护系统是很必需。一般成绩管理已不能适应时代发展,因为它浪费了很多人力和物力。在当今信息时代这种传统管理方法肯定被以计算机为基础信息管理系统所替换。为了提升成绩管理效率,我选择了学生成绩管理系统作为毕业设计课题。
本系统在大多数成绩管理系统基础上,关键增加了老师对成绩操作,老师改完试卷后不用在往学院教务处办公室报送成绩,能够直接把成绩上传到网络上,学生也能够方便快速查询到自己成绩,考试后教务管理人员也无须总呆在学院办公室,她们全部不受时间,位置,空间限制,只要有上网条件,在家里就能够完成相关成绩录入,更新,管理,查询和删除。本系统将会改变以前靠手工管理学生成绩情况,提升工作效率。期望能为老师和学校工作带来便利。
1.3本课题研究意义,中国外研究现实状况、水平和发展趋势
伴随高校办学规模扩大和招生人数增加,学生成绩管理维护是学校管理中异常关键一个步骤,作为学校,除了育人,就是育知,学生成绩管理计算机化是整个学校教务管理中关键一部分,介于它关键性,学生成绩管理系统开发和应用就逐步提入议程,并占着越来越关键份量。
利用学生成绩管理维护系统能够减轻学院教学人员工作量,缩小开支,提升工作效率和正确率,能够节省时间,学生也能够立即知道自己考试成绩,投入新课程学习或复习这次没有考过课程。而学生成绩管理系统应用也为今天民办教育在未来市场竞争力有所提升。
在现代高科技飞跃发展,大家工作习惯改变,尤其是电脑大量普及,大家生活节奏越来越快,怎样提升工作效率是大家首先考虑问题。学生成绩管理是一个很繁琐和复杂一项工作,一个原因就是工作量大,不好管。对于一个学校而言,管理好学生成绩,是很关键。所以开发出一套学生成绩管理系统是很必需。
第2章 可行性分析
2.1技术可行性
本课题是采取C#,SQL Server 技术来进行研究和实现。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(b, "Table_2");
dataGridView1.DataSource = b.Tables["Table_2"];
}
catch (Exception c)
{
}
conn.Close();
textBox1.Text = textBox2.Text = textB
展开阅读全文