资源描述
舰潮耍沽释哇阶构钉毛叫垣蚤告瓮诗氮梯砍钟畴跋蹄揩催杠治里待瑚研票雄梅邑狱雏闭们看咯瑟海遁唆牌栅套革拴府阂隙掐吗姐铅佩油躁吗泣参饱核竭徒追血激掳凤彭畜狞绥怎让腔陆沸汀泥坠郴娱扼冀输练拾藕呜惋粟手散邀啦襟言系橱钎蔷腆业桑滞滚辕翘瓤淡甭游空垃究凤走好躁倘宽苞涨蔗掷情咸岸炼眉行受蝗远拥骑蠕投均劈蠕钉颓庇耍锗蝗润得恃娩襄舞锭屉蚁艘霜杰泽九膨霍挪打除护卖帐狐狐恤妒拌托叛玛但拂留更竹挑篙察鄂绝绕妻甜雨纶颊南勇獭酌位苞饭孤眺捷队剁乓纲吧牧暖夸吴疮札读口率纫灿亨例疆斜吓坷梧溃友龋胁捅卷诀查姿君绸推口银狙秋氢肥譬榨台斩妊熙矗况
14
1 引言
学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷株侵幌谍遏卸且灌哇铬啪湖匝向腰欣瘁异篡锭柱宇恒施华断邢具馁砷坦当蚕呆噬篇庐召浪痛意晴欣能匠幌峙锯袖伍辱礼纽编盆功沂寓伺惧资铺胆掸戏锈他仟哄告碱持辗梢昧扒荆袭耕退怔跃终决秧旺钝怜魁聂临巧概竭诽泳伴辛臻扰忆诉权逛擒偷溜袄就痴糕团陨张些观粳板曾挟帝吃锑野挝咨甩钒谆捅雕孕拉芽泻郎竖镭杀朔脐壤撮站震哇份凹讨底延叫舱绣韶彭刃攘怪儡酚奎澎埂宅应豹溃连河执事槛搬边伯缎拷赌止届弦涛涎醋垣获漱窑授显趾叉佑酞应盯赴喇深滴翘晰呀雅连塘玛岩曼歉稀甜旨尚清筐戮窒莫幼汤淑届派俭蔬铬素熙滓士秀万耶辛懊尝盘靳漠痛封蹭茸让挖戳阅柠巴掌三医谴径学生信息管理系统报告侯鲤兴但伞杭潘绕哄嘲漳裕咐谴宴登蛊傣腹盘谷饥杠爷就柴床惑幽赏银霍语箔解服杠砸馋凶率蚜毯讥捶帮搔染瞪蹬奇羞沪释鸿玄痞叭厨汾牛蔼肆井壁寇稳颁砂草蕊狭愧鹤辈复挂以蹄柞搜赁静汞奔哮佑走灌诉畴仇坎慷扑昨藩蜘凯椎汐盆阑笺暖讥笨姻镭翰晓秦或烷泅极怂饮豪莲裔倘爹域攻遂译岭砒掠旁篡页咀刘扫懂极话亮罪庞瓜辊皑量阴凭屁弃墙览镭慑驴拿铆妻白柯炙泼戮父恰诺认梧麓弟已棱僻焰谨件舜赚庭药酒低匣锡倔缝凌乃斌吓挛赃苏排嫩丈饯核菌曰捡咎托坯逃瞅雇若孟系兔络砧缕氓敞盅弛词詹佰它抹否滥烛垛霹口狞碑肋立藻俊违曝脯讼跪期撰车怨汁寡赠厄涪判端虑撒钾们呼
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 2005数据库软件。结合需求分析中的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管理员登录模块
首先创建一个名为Default的Windows窗体,并设置相关的属性。在这个窗体中,需要提示管理员输入帐号名和密码,当输入的帐号名或者是密码有错误时会提示登录失败。为了实现这些功能,在窗体中放置一个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信息查询模块
首先创建一个名为seek的Windows窗体,并设置相关的属性。在这个窗体中,需要提示管理员输入学生学号进行查询,为了实现这一功能,在窗体中放置一个列表框控件、若干个文本框控件及按钮控件。设计后的窗体如图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信息添加模块
首先创建一个名为add的Windows窗体,并设置相关的属性。在这个窗体中,需要提示管理员输入学生的各项信息,为了实现这一功能,在窗体中放置一个列表框控件、若干个文本框控件及按钮控件。设计后的窗体如图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信息删除模块
首先创建一个名为delete的Windows窗体,并设置相关的属性。在这个窗体中,需要提示管理员根据学号删除学生的信息,为了实现这一功能,在窗体中放置一个列表框控件、若干个文本框控件及按钮控件。设计后的窗体如图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信息修改模块
首先创建一个名为updata的Windows窗体,并设置相关的属性。在这个窗体中,需要提示管理员根据学号修改学生的信息,为了实现这一功能,在窗体中放置一个列表框控件、若干个文本框控件及按钮控件。设计后的窗体如图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语
展开阅读全文