资源描述
1 引言
学生信息管理系统是一个教育单位不可缺乏部分。一个功效齐全、简单易用信息管理系统不仅能有效地减轻学校相关工作人员工作负担,它内容对于学校决议者和管理者来说全部至关关键。所以学生信息管理系统应该能够为用户提供充足信息和快捷查询手段。但一直以来大家使用传统人工方法管理文件档案、统计和查询数据,这种管理方法存在着很多缺点,如:效率低、保密性差,人工大量浪费;另外时间一长,将产生大量文件和数据,这对于查找、更新和维护全部带来了不少困难。伴随科学技术不停提升,计算机科学日渐成熟,其强大功效已为大家深刻认识,它已进入人类社会各个领域并发挥着来越关键作用。
作为计算机应用一部分,使用计算机对学校各类信息进行管理,含有手工管理所无法比拟优点。比如:检索快速、查询方便、效率高、可靠性好、存放量大、保密性好、寿命长、成本低等。这些优点能够极大地提升学校信息管理效率,也是一个单位科学化、正规化管理,和世界接轨关键条件。建立学生信息管理系统,采取计算机对学生信息进行管理,深入提升办学效益和现代化水平。帮助广大老师提升工作效率,实现学生信息管理工作步骤系统化、规范化和自动化。毋庸置疑,切实有效地把计算机管理引入学校学生成绩管理中,对于促进学校管理制度,提升学校教学质量和办学水平有着显著意义。
2 需求分析
本项目开发软件为学校学生信息管理系统软件,是鉴于现在学校学生人数剧增,学生信息呈爆炸性增加前提下,学校对学生信息管理自动化和正确化要求日益强烈背景下构思出来,该软件设计完成后可用于全部教育单位(包含学校,学院等等)学生信息管理。
现在社会上信息管理系统发展飞快,各个企机关全部引入了信息管理软件来管理自己日益增加多种信息,学生管理系统也是有了很大发展,商业化学生信息管理软件也不少。但本系统完全独立开发,努力争取使系统功效简练明了,但功效齐全且易于操作。
依据要求,关键功效包含(1)输入学生信息,(2) 查看学生信息,(3) 查询学生信息,(4) 删除学生信息,(5)修改学生信息。
系统输入设备由通常输入设备(即键盘、鼠标)组成,关键是从系统弹出对话框输入帐户数据信息。系统输出关键以对话框、编辑框和列表显示于屏幕。
2.1功效需求分析
依据数据库中存放数据对登录用户账号进行验证,再进行判定是否授予访问权限。管理员能够依据需要,对学生基础信息进行查看、添加、修改和删除,具体操作以下:
(1)添加学生信息功效关键包含对学生信息输入,包含待输入学生学号、姓名、年纪、性别、所在学院和专业名。
(2)查询学生信息功效就是对已经添加学生信息按学号进行查看,有利于管理者对学校学生信息了解。
(4)删除学生信息功效是将整个系统学生信息进行按学号进行删除。
(5)修改学生信息功效是输入要修改学生学号分别修改学号、姓名、年纪、性别、所在学院和专业名。
2.2性能需求分析
a)稳定性:软件应含有长久连续工作能力。
b)安全性:有良好用户身份认证体制和灵活密码更改模块。
c)实用性:用户界面做到直观、友好,业务人员只需经过简单培训即可操作。
d)可靠性:采取良好操作软件和数据库,确保数据一致性和完整性,并使软件免受病毒感染。
2.3业务步骤分析
经过业务步骤分析将业务步骤逻辑和实现各业务应用分离、协调步骤参与者相互关系、集成内部和外部资源和监控和分析步骤性能,实现对业务步骤整个生存周期控制。它负责解释步骤建模工具定义业务步骤逻辑,把任务分配给实施者,并依据任务实施返回结果决定下一步任务,控制并协调多种复杂工作步骤实施而且同时各个用户端反应,依据组织机构模型中所定义岗位分配策略获取实际实施者,并同时取得所需组织信息。本软件业务步骤是:用户登录软件前首先判定用户名和密码是否正确,假如不正确就停留在登录界面重新输入;假如输入信息正确就能够顺利进入服务器端进行软件管理。
2.3.1软件数据流图
数据流图(DFD)是一个描述数据流和加工图形表示。当数据输入到软件后,经过一系列变换(加工),最终输出新数据。所以它服务于两个目标:(1)指明数据在软件中移动时怎样被变换;(2)描述对数据流进行变换功效(和子功效)。DFD提供了附加信息,它们能够被用于信息域分析,并作为功效建模基础。在DFD中出现每个功效描述包含在“加工规约”(PSPEC)中。伴随这一过程行,本软件用户需求将会深入正确化、一致化、完全化。具体数据流图以下:
管理员权限信息
用户权限信息
用户基础信息
管理员信息
登录系统
管理员系统
学生信息系统
管理员
用户管理
图2.3 软件数据流图
2.3.2软件数据字典
数据字典最关键用途是作为分析阶段工具。在数据字典中建立一组严密一致定义很有利于改善分析员和用户之间通信,所以将消除很多可能误解。数据字典是相关数据信息集合,也就是对数据流图中包含全部元素定义集合。经过 上述软件功效分析和需求总结,考虑到未来功效上扩展,设计以下面所表示数据项和数据结构。
(1)学生信息
包含数据项有:学生姓名、学生学号、学生性别、学生年纪、所在学院、专业名称
(2)管理员信息
包含数据项有:账号名、登录密码
2.4数据需求分析
得到上面数据项和数据结构以后,就能够设计出能够满足用户需求多种实体,和它们之间关系。依据上面设计计划出实体有:学生实体、管理员实体。
A. 软件实体E-R图
密码
n
m
管理员
账号名
管理
学生
专业名
所在学院
姓名
性别
年纪
学号
图2.4软件E-R图
B. 软件各实体属性图以下所表示:
a) 学生信息实体属性
学生信息
学生学号
专业名
学生姓名
学生性别
年纪
所在学院
图2.5学生信息实体属性图
b) 管理员信息实体属性
管理员信息
登陆密码
帐号名
2.6管理员信息实体属性图
3 软件设计
很多学校经过多年发展,学校规模不停扩大,学生人数成倍增加,积累了大量学生信息,继续进行统一管理以防信息流失。所以,很多学校需要一个功效全方面学生信息管理系统来进行管理,以使管理学生信息工作在该系统配合下愈加高效和便捷。
3.1软件结构设计
学生信息管理
添加学生信息
查询学生信息
删除学生信息
修改学生
信息
信息
学生信息管理系统是一个对学生全方面管理程序。该系统充足考虑用户操作简便性,实现快捷操作。它有以下多个功效:输入学生信息、查看学生信息、查询学生信息、删除学生信息、修改学生信息。依据功效描述,学生信息管理系统能够分为4个模块,每一个模块有提供了更具体功效。学生信息管理系统功效模块图图3.1所表示。
图3.1 软件功效模块图
3.2软件数据库设计
从软件稳定性方面考虑,本软件使用SQL Server 数据库软件。结合需求分析中E-R图,设计了各数据表。
a)管理员信息表
表2.1管理员信息表(Login)
字段名称
数据类型
字段大小
必填字段
说明
ID
varchar
50
是
管理员帐号名,主键
PWD
smallint
50
是
登录密码
b)学生信息表
表2.2学生信息表(Student)
字段名称
数据类型
字段大小
必填字段
说明
STID
int
20
是
学生学号,主键
NAME
varchar
50
否
学生姓名
XUEYUAN
varchar
50
否
所在学院
ZHUANYE
varchar
50
否
专业名称
AGE
varchar
20
否
年纪
SEX
varchar
20
否
性别
4 软件实现
具体设计是软件开发时期第三个阶段,也是软件设计第二步。在概要设计已经确定了软件软件总体结构,具体设计关键是考虑“怎样实现”这个软件软件,给出各个模块具体过程性描述。所以,软件设计和实现以下。
4.1管理员登录模块
首先创建一个名为DefaultWindows窗体,并设置相关属性。在这个窗体中,需要提醒管理员输入帐号名和密码,当输入帐号名或是密码有错误时会提醒登录失败。为了实现这些功效,在窗体中放置一个Login控件,设计后窗体图4.1所表示:
图4.1管理员登录窗体
该模块关键代码以下:
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 _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Login1_Authenticate1(object sender, AuthenticateEventArgs e)
{
string id = this.Login1.UserName;
string pwd = this.Login1.Password;
SqlConnection con = db.createconnection();
con.Open();
SqlCommand cmd = new SqlCommand("select count(*) from Login where ID='" + id + "'and PWD='" + pwd + "'", con);
int count = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
if (count > 0)
{
Response.Redirect("main.aspx");
}
}
}
4.2信息查询模块
首先创建一个名为seekWindows窗体,并设置相关属性。在这个窗体中,需要提醒管理员输入学生学号进行查询,为了实现这一功效,在窗体中放置一个列表框控件、若干个文本框控件及按钮控件。设计后窗体图4.2所表示:
图4.2信息查询窗体
该模块关键代码以下:
public partial class seek : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
SqlConnection con = db.createconnection();//建立连接
SqlDataAdapter sda = new SqlDataAdapter("select * from STUDENT ", con);//
DataSet SET = new DataSet();
sda.Fill(SET);
this.DropDownList1.DataSource = SET;
this.DropDownList1.DataTextField = "STID";
this.DropDownList1.DataValueField = "STID";
this.DropDownList1.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("main.aspx");
}
}
4.3信息添加模块
首先创建一个名为addWindows窗体,并设置相关属性。在这个窗体中,需要提醒管理员输入学生各项信息,为了实现这一功效,在窗体中放置一个列表框控件、若干个文本框控件及按钮控件。设计后窗体图4.3所表示:
图4.3信息添加窗体
该模块关键代码以下:
(1)“添加”控件所对应事件代码:
public partial class add : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string stid;
string name;
string xueyuan;
string zhuanye;
string age;
string sex;
stid = this.TextBox1.Text.ToString();
name = this.TextBox2.Text.ToString();
xueyuan = this.TextBox3.Text.ToString();
zhuanye = this.TextBox4.Text.ToString();
age = this.TextBox5.Text.ToString();
sex = this.TextBox6.Text.ToString();
SqlConnection con = db.createconnection();
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "insert into Student values('" + stid + "','" + name + "','" + xueyuan + "','" + zhuanye + "','" + age + "','" + sex + "')";
cmd.ExecuteNonQuery();
con.Close();
Response.Write("<script language='javascript'>alert('添加成功!')</script>");
}
(2)“重置”控件所对应事件代码:
protected void Button2_Click(object sender, EventArgs e)
{
this.TextBox1.Text = "";
this.TextBox2.Text = "";
this.TextBox3.Text = "";
this.TextBox4.Text = "";
this.TextBox5.Text = "";
this.TextBox6.Text = "";
}
(1)“返回”控件所对应事件代码:
protected void Button3_Click(object sender, EventArgs e)
{
Response.Redirect("main.aspx");
}
}
4.4信息删除模块
首先创建一个名为deleteWindows窗体,并设置相关属性。在这个窗体中,需要提醒管理员依据学号删除学生信息,为了实现这一功效,在窗体中放置一个列表框控件、若干个文本框控件及按钮控件。设计后窗体图4.4所表示:
图4.4信息删除窗体
该模块关键代码以下:
public partial class delete : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
SqlConnection con = db.createconnection();//建立连接
SqlDataAdapter sda = new SqlDataAdapter("select * from STUDENT ", con);//
DataSet SET = new DataSet();
sda.Fill(SET);
this.DropDownList1.DataSource = SET;
this.DropDownList1.DataTextField = "STID";
this.DropDownList1.DataValueField = "STID";
this.DropDownList1.DataBind();
}
}
protected void DropDownList1_TextChanged(object sender, EventArgs e)
{
SqlConnection con = db.createconnection();//调用静态方法创建连接......................................1
con.Open();//连接数据
SqlDataAdapter sda = new SqlDataAdapter("select * from Student where STID=" + this.DropDownList1.SelectedValue + " ", con);
DataSet set = new DataSet();
sda.Fill(set);
this.GridView1.DataSource = set;//显示多行数据,而DataReader只显示一行数据
this.GridView1.DataBind();
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("main.aspx");
}
protected void Button1_Click(object sender, EventArgs e)
{
string stid;
stid = this.DropDownList1.SelectedValue;
SqlConnection con = db.createconnection();
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "delete from Student where STID='"+stid+"'";
cmd.ExecuteNonQuery();
con.Close();
Response.Write("<script language='javascript'>alert('删除成功!');location='delete.aspx';</script>");
}
}
4.5信息修改模块
首先创建一个名为updataWindows窗体,并设置相关属性。在这个窗体中,需要提醒管理员依据学号修改学生信息,为了实现这一功效,在窗体中放置一个列表框控件、若干个文本框控件及按钮控件。设计后窗体图4.5所表示:
图4.5信息修改窗体
该模块关键代码以下:
public partial class update : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Label2.Visible = false;
this.Label3.Visible = false;
this.Label4.Visible = false;
this.Label5.Visible = false;
this.Label6.Visible = false;
this.Label7.Visible = false;
this.TextBox1.Visible = false;
this.TextBox2.Visible = false;
this.TextBox3.Visible = false;
this.TextBox4.Visible = false;
this.TextBox5.Visible = false;
this.TextBox6.Visible = false;
this.Button3.Visible = false;
if (!this.IsPostBack)
{
SqlConnection con = db.createconnection();//建立连接
SqlDataAdapter sda = new SqlDataAdapter("select * from STUDENT ", con);//
DataSet SET = new DataSet();
sda.Fill(SET);
this.DropDownList1.DataSource = SET;
this.DropDownList1.DataTextField = "STID";
this.DropDownList1.DataValueField = "STID";
this.DropDownList1.DataBind();
}
}
protected void DropDownList1_TextChanged(object sender, EventArgs e)
{
SqlConnection con = db.createconnection();//调用静态方法创建连接......................................1
con.Open();//连接数据
SqlDataAdapter sda = new SqlDataAdapter("select * from Student where STID=" + this.DropDownList1.SelectedValue + " ", con);
DataSet set = new DataSet();
sda.Fill(set);
this.GridView1.DataSource = set;//显示多行数据,DataReader只显示一行数据
this.GridView1.DataBind();
this.Button3.Visible = true;
}
protected void Button3_Click(object sender, EventArgs e)
{
this.Label2.Visible = true;
this.Label3.Visible = true;
this.Label4.Visible = true;
this.Label5.Visible = true;
this.Label6.Visible = true;
this.Label7.Visible = true;
this.TextBox1.Visible = true;
this.TextBox2.Visible = true;
this.TextBox3.Visible = true;
this.TextBox4.Visible = true;
this.TextBox5.Visible = true;
this.TextBox6.Visible = true;
string stid;
stid = this.DropDownList1.SelectedValue;
SqlConnection con = db.createconnection();
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "delete from Student where STID='" + stid + "'";
cmd.ExecuteNonQuery();
con.Close();
}
protected void Button1_Click(object sender, EventArgs e)
{
string stid;
string name;
string xueyuan;
string zhuanye;
string age;
string sex;
stid = this.TextBox1.Text.ToString();
name = this.TextBox2.Text.ToString();
xueyuan = this.TextBox3.Text.ToString();
zhuanye = this.TextBox4.Text.ToString();
age = this.TextBox5.Text.ToString();
sex = this.TextBox6.Text.ToString();
SqlConnection con = db.createconnection();
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "insert into Student values('" + stid + "','" + name + "','" + xueyuan + "','" + zhuanye + "','" + age + "','" + sex + "')";
cmd.ExecuteNonQuery();
con.Close();
Response.Write("<script language='javascript'>alert('修改成功!')</script>");
Response.Redirect("update.aspx");
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("main.aspx");
}
}
5 软件测试
5.1 登录模块测试
当管理员输入帐号名和密码全部正确时会进入以下页面:
图5.1正确登录页面
当管理员输入账号和密码有误时,会出现以下提醒:
图5.2犯错提醒页面
5.2 信息查询测试
管理员输入学生学号进行查询,结果以下:
图5.3查询结果页面
5.3 信息添加测试
管理员依据提醒进行信息添加,添加成功后结果以下:
图5.4添加信息页面
添加成功后数据库中会添加对应信息:
图5.5数据库信息页面
5.4信息删除测试
管理员输入学生学号进行删除,结果以下:
图5.6删除信息页面
删除信息成功后,在数据库中会删除对应统计:
图5.7数据库信息页面
5.5信息修改测试
管理员输入学生学号进行修改,结果以下:
图5.8修改信息页面
当修改成功后,数据会保留至数据库中:
图5.9数据库信息页面
6 实习体会
课程设计是培养学生综合利用所学知识 ,发觉、提出、分析和处理实际问题,锻炼实践能力关键步骤,是对我们实际工作能力具体训练和考察过程。伴随科学技术发展日新月异,当今计算机应用在生活中能够说得是无处不在。
经过此次课程设计,收获颇多。首先,能够将自己学到理论知识借助工具应用到实践。平时真正锻炼机会极少,总是在满足于看懂程序,所以离自己会写程序还有一段距离。这次做课题以前也做过类似,所以没有出现无从下手局面,根据老师要求一步步计划出需求分析和软件总体设计,给自己搭建好一个框架,再对每个分类再进行细分,进行程序实现时也就没那么困难了。
其次,我又接触了另一个语言,拓宽了我知识,能够以不一样于以前方法制作软件。在编程上有了深入提升,对于编程格式和部分编程思想全部有了对应提升。在数据库方面,尤其巩固了sql语句,能够实现增删查改功效,能编写存放过程,触发器,并能正确将其应用到程序中;在对各个表分析过程中,充足利用E-R图,能够将多种关系冗余去除。
在试验过程中也碰到了部分困难,但经过和同学讨论,而且上网查询,最终全部将问题一一处理了,总而言之,只要勇于尝试,反复调试程序,总会将问题处理。
参 考 文 献
1 萨师瑄,王珊.数据库系统概论.北京:高等教育出版社,1999
2 夏邦贵.SQL Server 数据库开发入门和范例解析.机械工业出版社,.6
3 李昆.SQL Server 课程设计案例精编.北京:中国水利水电出版社,
4 张立厚.管理信息系统.广州:广东世界图书出版社,
5 张海藩.软件工程导论.北京:清华大学出版社,.12
6 谭浩强,张基温,唐永炎.C语言程序设计教程.北京:高等教育出版社,
7 齐治昌等.软件工程.第2版.北京:高等教育出版社,.4
8 谭浩强著.C程序设计.北京:清华大学出版社,
9 刘耀儒.新概念SQL Server 教程.第1版.北京科海集团企业,
10 丁宝康,董健全.数据库实用教程.第2版.北京:清华大学出版社,
展开阅读全文