六安职业技术学院
SQL Server课程设计报告
(2010学年)
学生管理系统
专业班级 系统维护
学生姓名
指导教师 王 红
完成日期 20xx年12月
二○一○年十二月
目 录
前 言
------------------------------------- --------------------------- SQL SERVER技术简介 ------------------------------- 第一章 相关开发软件的简介 --------------------------------
2.1 任务目标 ---------------------------------- 第二章 系统分析 ------------------------------
3.1 系统功能概述 --------------------------------
3.2 系统功能结构图 -------------------------------
3.3 系统流程图分析 -------------------------------
3.4 文件架构图 --------------------------------- 第三章 系统总体设计 -------------------------------
4.1 数据库概要说明 -------------------------------
4.2 数据库概念设计(E-R图) ---------------------------
4.3 数据库逻辑设计 ------------------------------- 第四章 数据库设计 ------------------------------
5.1 登录与主程序界面的设计 ---------------------------
5.2 基础数据管理 -------------------------------- 第五章 系统详细设计
2
前言
对当今大学的学生的管理,由于数据的庞大,各种信息的管理包括学生的成绩的管理学籍的管理等等,查询和管理学生的信息将是一件很辛苦的事,如果还按照原来的管理模式将会浪费很大的人力物力,这种管理学生信息的方法存在着缺点,和当今快节奏的社会,使得效率不高,另外一方面,随着时间的增长,大量数据的增多,这会给查找学生信息带来很大的不便,而且还很容易出现差错,所以在当今需要一个管理学生的软件是一件很重要的。
以前,各个学校的学生管理基本上是靠人工来完成的,由于各个学校规模和人数的增大,有关学生数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。但用这些管理的方法效率低,易出错,还浪费大量的人力物力。
选择学校的学生管理系统的设计主要有这些原因
一:熟悉学校的一些基本情况这样对系统的设计有很多的方便
二:因为是对自己本校的系统设计所以在遇到一些不懂和不会的地方可以随时的向老师请教这会使得系统的设计更好。
总之,本系统使用的SQL Server 2005的企业管理器和Visual Basic 的开发语言。详细介绍了学生管理系统从技术及运行环境、系统分析、数据库设计、总体设计和详细设计的全部过程。对其中的问题,产生的原因进行了分析,对开发过程中的感受、进一步得出结论并提出具有现实意义的意见和建议。实现一个管理信息系统的方法。
3
第一章 相关开发软件的简介
SQL SERVER 2005技术的简介:
随着科学技术河经济的飞速发展,人们掌握的信息量急剧增加,更充分地开发和利用这些信息资源,就必须有一种新技术能对大量的信息进行识别,存储,处理与传播。SQL server 2005是单一进程,多线程的关系型数据库,是一个全面的,集成的,端到端的数据解决方案,为企业的用户提供了一个安全的,可靠的河高效的平台,是用于企业数据管理和商业智能平台的构建。SQL server 2005数据库是所涉及的对象以及数据的集合。不仅反映数据本身的内容,而且反映对象以及数据之间的联系。
在Mircrosoft SQL Server 2000系统中,数据库的管理采取了先进的动态管理机制,数据库的大小可以随着数据量的变化而缩小或者扩大。另外,用户数据都是非常重要的和保密的,这些数据存储在Mircrosoft SQL Server 2000系统中有绝对的安全性保障,有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。未经授权的用户既不能执行相应的操作,也不能访问数据库中的相应数据。SQL语言具有许多特点:
? SQL是一种一体化的语言。它包括了数据定义语言(DLL)、数据操作语言(DML)和数据控
制语言(DCL),可以完成数据库活动的全部工作。SQL为许多任务提供了命令,包括:查询数据,数据更新,在表中插入记录,在表中修改记录,在表中删除记录,建立,修改和删除数据对象,控制对数据和数据对象的存取,保证数据库一致性和完整性,以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
? SQL语言是一种非过程化的语言。使用SQL语言的时候,用户只需告诉系统要干什么就
可以了,至于怎样去干,处理时候的具体细节不需用户去考虑。
4
第二章 系统的分析
系统开发的背景:
随着经济和科技的快速发展,现代化水平的不断提高,人们的生活节奏也发生了很大的变化,如果还按照原来的管理模式,不仅会浪费大量的人力物力而且使得效率也大大的降低。
对于我们这些学习信息技术的同学来说,如何最大限度的利用所学的知识去设计系统如图书管理系统、学生管理系统等。把所花的大力气搜集来的数据变成对学校未来发展有价值的信息。我想这是我们每个同学都应该有的想法。这一星期的实训给我们提供了一个很好的实践机会。
现在很多全国的大学校园对学生的管理都采用了现代化的管理计算机统一管理。这就需要一个适合管理学生信息的管理软件,我想这回给学校的管理带来很大的方便。在这种情况下,用各种开发工具开发出来的学生学生智能管理系统应运而生,并且蓬勃的发展起来。这为学校的学生信息的管理带来了很大的方便,最重要的是给学校节省了大量的人力、物力。
在这样的情况下我们组设计了学生信息管理的系统,希望我们的设计没有白费,能有一个很好的成果。
开发目标
在系统需求分析的基础上,建立宿舍卫生检查管理信息系统,采用计算机对宿舍卫生检查进行管理,进一步提高学校的现代化管理水平。本系统的目标是要将传统的宿舍卫生检查管理转换为数字信息化的宿舍卫生检查管理,实现宿舍卫生检查管理工作流程的系统化、规范化和自动化。
根据需求分析及用户需求,该系统应达到以下目标:
? 界面设计友好、美观
? 数据存储安全、可靠
? 信息分类清晰、准确
? 保证数据查询的灵活性
? 操作简单易用、易维护性
? 占用资源少、对硬件要求低
5
功能的概述:
学生管理信息系统能够完成对学生成绩,学籍等等的管理,对学生的相关信息都有一个很好的管理。所以系统的组成有以下几个模块构成:
(1)学生信息管理系统 (2)添加学生信息 (3)添加课程信息 (4)添加教师信息 (5)修改学生信息 (6)修改课程信息
(7)修改教师信息 (8)学生成绩查询 (9)学生专业查询 (10)添加管理员
2.系统功能结构图
对上述各项功能进行集中、分块、结构后,得到系统功能结构图。学生管理系统的系统功能结构如图1-1所示
图1-1学生管理系统功能结构图
3.系统流程图分析
根据宿舍卫生检查管理信息系统的功能和用户的需求,绘制出了学生管理系统的流程图如图1-2所示
6
图1-2学生管理系统的流程图
4.文件架构图
为了使用户理解本程序,这里给出了文件架构图,用来表明Visual Basic程序中各个窗体的作用及其相互之间的关系。
主文件架构图如图1-3所示。各个模块的文件架构图如图1-4所示。
图1-3主文件架构图
7
图1-4 各个功能模块的文件架构图
第四章 数据库设计
1 数据库概要说明
用户的需求具体体现在各种信息的提供修改、查询、添加和退出,这就要求数据库结构能充分满足各种信息的输入和输出。实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据。本系统采用的是SQL server 2005数据库,系统数据库命名为“xsgl”,数据库用来存储宿舍信息、宿舍检查信息、用户信息以及奖罚信息等,在该数据库中包含4张表,下面给出数据表的概要说明和主要数据表的结构定义。
为了使读者更好地了解系统后台数据库中的数据表,本人设计了一个对照表。数据表的对照表如图1-5表所示
8
2 数据库概念设计
在本系统中我采用“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。但ER模型只能说明实体间语义的联系,不能进一步说明详细的数据结构,它只是数据库设计的第一步。根据以上对系统所作的需求分析,系统设计,规划出本系统中使用的数据实体。那么本系统的E-R图如下:
(1)用户表
本系统中该实体包括用户名、密码属性,实体的E-R图如图1-6所示
图1-6 用户表实体的E-R图
(2)学生表
本系统中该实体包括sno、sname、sex、native、birthday、dno、spno、classno、entime、home、tel属性,实体的E-R图如图1-7所示
图1-7 学生表实体的E-R图
(3)学生成绩表
9
本系统中该实体包括score、sno、tcid属性,实体的E-R图如图1-8所示
图1-8 学生表实体的E-R图
(4)课程表
本系统中该实体包括cno、spno、cname、experiment、lecture、 semester、credit、year属性,实体的E-R图如图1-9所示
图1-9 课程表实体的E-R图
(5)教师表
本系统中该实体包括tno、tname、sex、birthday、dno、home、zipcode、 tel、email属性,实体的E-R图如图1-10所示
图1-10 学籍表实体的E-R图
10
(6)专业表
本系统中该实体包括spno、zname、dno属性
(7)系表:本系统中该实体包括dno、dname属性
第五章 系统详细设计
1登录与主程序界面的设计
登录代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; 11
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string yhm = this.TextBox1.Text;
string mm = this.TextBox2.Text.ToString().Trim();
//建立并打开连接
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user id=sa;pwd=123456";
con.Open();
DataTable table = new DataTable();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select * from 用户表 where 用户名='" + yhm + "' and
密码='" + mm + "'";
com.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = com;
da.Fill(table);
if (table.Rows.Count > 0)
{
HttpContext.Current.Response.Write("<script language='javascript'
type='text/javascript'>alert('你输入的用户名和密码正确!
')</script>");
Response.Redirect("Default2.aspx");
}
else
HttpContext.Current.Response.Write("<script
language='javascript' type='text/javascript'>alert('你输入的用户名或
密码不正确!')</script>");
}
}
2. 基础数据管理
(1)添加数据信息
12
添加教师信息
提交代码:
using System;
using System.Data;
using System.Configuration; using System.Collections; using System.Web;
using System.Web.Security; using System.Web.UI;
using System.Web.UI.WebControls; 13
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class tjjs : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string tno = this.TextBox1.Text.ToString().Trim();
string tname = this.TextBox2.Text.ToString().Trim();
string sex = this.TextBox3.Text.ToString().Trim();
string birthday = this.TextBox4.Text.ToString().Trim();
string tel = this.TextBox5.Text.ToString().Trim();
string email = this.TextBox6.Text.ToString().Trim();
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user
id=sa;pwd=123456";
con.Open();
DataTable table = new DataTable();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "insert into 教师表(tno,tname,sex,birthday,tel,email) values('" + tno + "','" + tname + "','" + sex + "','" + birthday + "','" + tel + "','" + email + "')";
com.ExecuteNonQuery();
HttpContext.Current.Response.Write("<script language='javascript' type='text/javascript'>alert('添加成功!')</script>");
}
}
(1) 删除课程信息
代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
14
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string cno = this.TextBox1.Text.ToString().Trim();
string spno = this.TextBox2.Text.ToString().Trim();
string cname= this.TextBox3.Text.ToString().Trim();
string experiment = this.TextBox4.Text.ToString().Trim();
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user id=sa;pwd=123456";
con.Open();
DataTable table = new DataTable();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "update 课程表 set spno='" + spno + "', cname='" + cname + "' where cno='" + cno + "'";
com.ExecuteNonQuery();
HttpContext.Current.Response.Write("<script language='javascript' type='text/javascript'>alert('修改成功!')</script>");
}
protected void Button3_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "")
HttpContext.Current.Response.Write("<script language='javascript' type='text/javascript'>alert('请输入要查询的课程的课程号!')</script>"); else
{
//建立连接
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user id=sa;pwd=123456";
con.Open();
//获取数据
15
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select * from 课程表 where cno='" +
TextBox1.Text.ToString().Trim() + "'";
com.ExecuteNonQuery();
DataTable table = new DataTable();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = com;
da.Fill(table);
if (table.Rows.Count > 0)
{
this.TextBox2.Text = table.Rows[0][1].ToString();
this.TextBox3.Text = table.Rows[0][2].ToString();
this.TextBox4.Text = table.Rows[0][3].ToString();
}
else
HttpContext.Current.Response.Write("<script
language='javascript' type='text/javascript'>alert('你输入的学生的学号不存在!^_^')</script>");
}
}
protected void Button2_Click(object sender, EventArgs e)
{
string cno = this.TextBox1.Text.ToString().Trim();
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user id=sa;pwd=123456";
con.Open();
DataTable table = new DataTable();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "delete 课程表 where cno='" + cno + "'";
com.ExecuteNonQuery();
HttpContext.Current.Response.Write("<script language='javascript' type='text/javascript'>alert('删除成功!')</script>");
}
}
16
(2) 修改信息
修改课程信息
代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Default3 : System.Web.UI.Page 17
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string cno = this.TextBox1.Text.ToString().Trim();
string spno = this.TextBox2.Text.ToString().Trim();
string cname= this.TextBox3.Text.ToString().Trim();
string experiment = this.TextBox4.Text.ToString().Trim();
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user id=sa;pwd=123456";
con.Open();
DataTable table = new DataTable();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "update 课程表 set spno='" + spno + "', cname='" + cname + "' where cno='" + cno + "'";
com.ExecuteNonQuery();
HttpContext.Current.Response.Write("<script language='javascript' type='text/javascript'>alert('修改成功!')</script>");
}
protected void Button3_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "")
HttpContext.Current.Response.Write("<script language='javascript' type='text/javascript'>alert('请输入要查询的课程的课程号!')</script>"); else
{
//建立连接
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user id=sa;pwd=123456";
con.Open();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select * from 课程表 where cno='" +
TextBox1.Text.ToString().Trim() + "'";
com.ExecuteNonQuery();
DataTable table = new DataTable();
18
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = com;
da.Fill(table);
if (table.Rows.Count > 0)
{
this.TextBox2.Text = table.Rows[0][1].ToString();
this.TextBox3.Text = table.Rows[0][2].ToString();
this.TextBox4.Text = table.Rows[0][3].ToString();
}
else
HttpContext.Current.Response.Write("<script
language='javascript' type='text/javascript'>alert('你输入的学生的学号不存在!^_^')</script>");
}
}
protected void Button2_Click(object sender, EventArgs e)
{
string cno = this.TextBox1.Text.ToString().Trim();
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user id=sa;pwd=123456";
con.Open();
DataTable table = new DataTable();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "delete 课程表 where cno='" + cno + "'";
com.ExecuteNonQuery();
HttpContext.Current.Response.Write("<script language='javascript' type='text/javascript'>alert('删除成功!')</script>");
}
}
19
(3) 添加用户
代码如下:
using System;
using System.Data;
using System.Configuration; 20
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string 用户名 = this.TextBox1.Text.ToString().Trim();
string 密码 = this.TextBox2.Text.ToString().Trim();
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user
id=sa;pwd=123456";
con.Open();
DataTable table = new DataTable();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "insert into 用户表(用户名,密码) values('" + 用户名 + "','" + 密码 + "')";
com.ExecuteNonQuery();
HttpContext.Current.Response.Write("<script language='javascript'
type='text/javascript'>alert('添加成功!')</script>");
}
}
21
(4) 查询学生信息
代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class xscx : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e)
{
}
22
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "")
HttpContext.Current.Response.Write("<script language='javascript' type='text/javascript'>alert('请输入要查询的学生的学号!^_^')</script>"); else
{
//建立连接
SqlConnection con = new SqlConnection();
con.ConnectionString = "data source=.;initial catalog=xsgl;user id=sa;pwd=123456";
con.Open();
//获取数据
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select * from 学生表 where sno='" +
TextBox1.Text.ToString().Trim() + "'";
com.ExecuteNonQuery();
DataTable table = new DataTable();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = com;
da.Fill(table);
if (table.Rows.Count > 0)
{
this.TextBox2.Text = table.Rows[0][1].ToString();
this.TextBox3.Text = table.Rows[0][2].ToString();
this.TextBox4.Text = table.Rows[0][3].ToString();
}
else
HttpContext.Current.Response.Write("<script
language='javascript' type='text/javascript'>alert('你输入的学生的学号不存在!^_^')</script>");
}
}
}
23
第六章 结束语
经过一个星期的设计和开发,学生管理系统设计基本完成,达到我们预期的效果。能够完成管理主界面与登录程序设计,系统管理模块,基础数据管理模块,方便进行数据添加、数据查询、数据修改。由于时间限制该系统必然会存在一些缺陷和不足。相信学生管理系统是一套学校在管理中必不可少的管理软件,通过开发这个系统,从以前的理论上升到实践,真正做到学有所用,虽然在设计中我遇到了不少问题,而且往往一个小小的错误都会使我花很多的时间和精力去寻找和修正,但在老师的帮助和自己的努力下,我最终还是一一克服了。
通过这次设计,使我学到了很多东西,受益非浅,我感觉理论到实践是一个艰难的过程,必须勤动手,才能发现问题,使自己得到真正的提高。经过了这次的设计使我学到了很多知识,给我今后在工作和学习上也提供了不少宝贵的经验。并且通过这次设计也使我也发现了自己在学习上的不足,主要是动手能力的不足,我会努力在以后的工作道路上继续充实自我,完善自我。但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
24