web系统开发学生宿舍管理系统(共21页).doc
精选优质文档-倾情为你奉上贵州大学计算机科学与信息学院Web系统开发期末考查报告组 员 顾杰、赵远海 姓 名 赵远海 学 号 班 级 软工131 完成 时间 2016-6-10 学生宿舍管理系统 -Web系统开发需求分析:1. 背景高校学生宿舍管理系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。旧的手工纪录的宿舍管理方式已经不能适应高速发展的信息化时代,新的宿舍管理系统开发出来之后,学校的现有的宿舍信息管理将有很大的改观,由过去的人工方式转变为计算机方式,由效率低、数据冗余、易产生错误转变为检索迅速、查找方便、可靠性高、存储量大。这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。2. 目的对软件工程的全过程有感性的认识和初步的经验。熟悉对数据库和A的使用方法及B/S系统认识。编制软件、编写软件开发文档和实验报告。3.功能需求 3.1系统需求:系统管理员必须先从登录界面进入系统,在登录页面输入用户名和密码,通过身份验证后,才可以进入系统的首页。如果未能通过系统的身份验证,系统自动给出登录错误的提示信息。(2)通过身份验证的系统管理员进入系统首页。在首页中可以通过房间编号、所在楼名和房间类型对宿舍的房间信息进行查询。可以选择相应的房间信息来更新该房间的信息。同时,还可以对房间信息进行单一的或批量的删除操作。当然,添加房间信息的功能还是必不可少的。(3)系统管理员能够对学生进行入住宿舍信息的登记,也使用学生学号、学生姓名、所在宿舍楼名和房间的编号对宿舍信息进行查询,并且可以对学生的换宿舍房间和退出宿舍房间进行操作。(4)系统管理员通过学生学号、学生姓名和缴费类别查询学生的缴费信息,可以选择相应的缴费信息来更新。同时,还可以对学生缴费的信息进行删除操作,以及登记新的宿舍的缴费信息。(5)系统管理员还能够通过学生学号、学生姓名和学生的专业查询学生的信息。同样,具有删除和修改的功能。(6)在系统设置的菜单中,能够设置学生的专业信息和修改登录的密码。 3.2 用户界面需求学生宿舍管理系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。尽可能的为用户的添加、查询等功能操作提供方便。3.3开发语言和开发语言 本学生宿舍管理系统的用的开发环境与开发语言为Microsoft Visual Studio 2013和Microsoft SQL Server 2008.4试验内容和要求完成学生宿舍管理软件的开发全过程,从分析一直到软件完成。该软件的基本需求是:1. 数据输入:从键盘输入各类基本信息。宿舍的基本信息:地点、位置、楼层、面积、标准人数、内部设置、收费标准、类别等;班级基本信息:专业、年级、人数、辅导员、班长等;学生基本信息:年龄、性别等。2. 能对基本信息进行插入、删除、修改等操作。3. 完成宿舍的学生住宿分配,可以自动分配或手动分配。4. 数据查询:按宿舍、专业、年级、班级、学生等进行分类查询,能进行精确和模糊查询5设计过程51用户要求设计一款依据贵州大学的大学学生宿舍管理系统,要求操作简单、界面清晰明了。52系统功能模块在整体设计中,我们将宿舍管理系统分为七个大的模块:楼房管理模块、住宿管理模块、班级管理模块、房间管理模块、信息查询功能模块、数据统计功能模块和迁出记录功能模块。每个模块将实现不同的功能。各个模块包含的内容如下图示:学生宿舍管理系统 数据统计迁出记录住宿管理房间管理楼房管理班级管理信息查询房间统计班级信息修改班级录入房间删除房间信息修改房间录入修改楼房删除楼房添加楼房查看某学生是否迁出查看迁出学生信息学生人数统计房间查询学生信息查询办理迁出办理人员入住住宿情况查看班级删除 学生宿舍管理系统功能模块图53管理系统模块该管理系统模块包括:添加编辑、按输入信息查找编辑和全库浏览三个部分。 5.3.1 添加编辑:对数据表格进行信息添加编辑。 5.3.2 按信息查找编辑:通过输入的信息对表格进行查找,也可以对查找出来的信息进行修改和删除。 5.3.3 全库浏览:直接查看整个表格信息。 5.3 系统E-R图 入住分配宿舍宿舍号楼号面积标准人数等级收费标准层数学生学号姓名性别年龄班级所在专业年级人数辅导员班长 1 N N 1 图5.2 系统ER图5.4统所需表格综和以上分析,要实现是那个面的所有功能模块,共需要设计7个表格,他们分别是:楼房基本情况表、宿舍基本情况表、宿舍等级表、班级基本情况表、学生基本情况表、迁出记录表和管理员表。楼房基本信息表:详细登记学校楼房基本信息create table building/宿舍楼表(buildingid int not null primary key,/宿舍楼ID administrator varchar(10),/宿舍楼楼管 flooramount char(80),/宿舍楼层 areaamount int,/宿舍楼面积 buildingsex char(2)/性别);宿舍基本信息表:详细登记学校宿舍基本信息 create table dormitory/宿舍表 (dormitoryid int not null primary key,宿舍ID buildingid int not null,/楼号ID kindid int,/宿舍等级 telephonenum int,/宿舍电话 dormitorysex char(2),/宿舍性别 stayingamount int/已住人数 );宿舍等级表:记录等级信息和相关的宿舍费用create table dormitorykind/宿舍等级(kindid int not null primary key,/宿舍等级ID standardamount char(10),/标准人数 standardfee int/费用);班级基本信息表:详细登记学校班级基本情况create table class/班级(classid int not null primary key,/班级号 classname varchar(10) not null,/班级名 studentamount int,/学生数目 classmoniter char(10),/班长 instructor char(10),/导员 major char(10)/专业 );学生基本信息表:详细登记学校学生基本情况create table studdent/学生表.(studentid int not null primary key,/学生学号 studentname varchar(10) not null, /学生姓名 buildingid int,/宿舍楼号 dormitoryid int,/房间号 bedid int,/床铺号 studentsex char(2) not null,/学生性别 studentage int,/学生年龄 stayingtime char(10),/ classid char(10),/班级 major char(10),/ telephone int,/学生电话 intime datetime/入住时间);迁出记录表:记录迁出出信息create table out/迁出记录表(studentid int not null primary key,/学生学号 studentname varchar(10) not null, /学生姓名 outtime datetime not null,/迁出时间 reason char(50)/迁出原因);管理员表:记录登陆管理员的账号和密码,create table admin/管理员表( adminname char(10) not null primary key,/管理员账户名 adminpsw char(10) not null/管理员密码);六 、功能模块实现代码和运行截图:登录页:输入正确的用户与密码,进入系统。住宿情况查看:住宿情况查看功能代码: protected void Button2_Click(object sender, EventArgs e) SqlConnection scn = new SqlConnection(ConfigurationManager.ConnectionStrings"ConnectionString".ConnectionString); scn.Open(); SqlCommand scm = new SqlCommand("weizhuman", scn); scm.CommandType = CommandType.StoredProcedure; SqlParameter spa = null; spa = scm.Parameters.Add(new SqlParameter("buildingid", SqlDbType.Int); spa.Direction=ParameterDirection.Input; spa.Value=DropDownList1.Text; SqlDataAdapter sda=new SqlDataAdapter (scm); DataSet ds=new DataSet(); sda.Fill(ds); GridView1.DataSource=ds; GridView1.DataBind(); protected void Button1_Click(object sender, EventArgs e) SqlConnection scn = new SqlConnection(ConfigurationManager.ConnectionStrings"ConnectionString".ConnectionString); scn.Open(); SqlCommand scm = new SqlCommand("yizhuman", scn); scm.CommandType = CommandType.StoredProcedure; SqlParameter spa = null; spa = scm.Parameters.Add(new SqlParameter("buildingid", SqlDbType.Int); spa.Direction = ParameterDirection.Input; spa.Value = DropDownList1.Text; SqlDataAdapter sda = new SqlDataAdapter(scm); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind();办理入住:办理入住功能代码:try SqlConnection scn = new SqlConnection(ConfigurationManager.ConnectionStrings"ConnectionString".ConnectionString); scn.Open(); SqlCommand scm = new SqlCommand("dbo.StoredProcedure1", scn); scm.CommandType = CommandType.StoredProcedure; SqlParameter sprocParams = null; sprocParams = scm.Parameters.Add(new SqlParameter("studentid", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = TextBox1.Text; sprocParams = scm.Parameters.Add(new SqlParameter("studentname", SqlDbType.VarChar, 10); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = TextBox2.Text; sprocParams = scm.Parameters.Add(new SqlParameter("buildingid", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = DropDownList1.Text; sprocParams = scm.Parameters.Add(new SqlParameter("dormitoryid", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = DropDownList2.Text; sprocParams = scm.Parameters.Add(new SqlParameter("bedid", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = TextBox7.Text; sprocParams = scm.Parameters.Add(new SqlParameter("studentsex", SqlDbType.Char, 2); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = DropDownList4.Text; sprocParams = scm.Parameters.Add(new SqlParameter("studentage", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = TextBox4.Text; sprocParams = scm.Parameters.Add(new SqlParameter("stayingtime", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = TextBox3.Text; sprocParams = scm.Parameters.Add(new SqlParameter("classname", SqlDbType.Char, 10); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = DropDownList5.Text; sprocParams = scm.Parameters.Add(new SqlParameter("intime", SqlDbType.Char, 10); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = TextBox5.Text; sprocParams = scm.Parameters.Add(new SqlParameter("classid", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = DropDownList6.Text; if (scm.ExecuteNonQuery() > 0) Label2.Text = "录入成功_" else Label2.Text = "录入失败!" catch (Exception) Label2.Text = "录入失败!" 办理迁出:办理迁出功能代码: public void qianchu() SqlConnection scnn = new SqlConnection(ConfigurationManager.ConnectionStrings"ConnectionString".ConnectionString); scnn.Open(); SqlCommand scmm = new SqlCommand("goout", scnn); scmm.CommandType = CommandType.StoredProcedure; SqlParameter param1 = null; param1 = scmm.Parameters.Add(new SqlParameter("studentid", SqlDbType.Int); param1.Direction = ParameterDirection.Input; param1.Value = DropDownList1.Text; param1 = scmm.Parameters.Add(new SqlParameter("studentname", SqlDbType.NChar, 10); param1.Direction = ParameterDirection.Input; param1.Value = DropDownList2.Text; param1 = scmm.Parameters.Add(new SqlParameter("outtime", SqlDbType.NChar, 10); param1.Direction = ParameterDirection.Input; param1.Value = TextBox4.Text; param1 = scmm.Parameters.Add(new SqlParameter("reason", SqlDbType.VarChar, 50); param1.Direction = ParameterDirection.Input; param1.Value = TextBox3.Text; scmm.ExecuteNonQuery(); Label2.Text += "成功放入到out表中"学生信息查询:查询某一栋楼的全部学生:学生信息查询功能代码:SqlConnection scn = new SqlConnection(ConfigurationManager.ConnectionStrings"ConnectionString".ConnectionString); scn.Open(); SqlCommand scm = new SqlCommand("xuehao", scn); scm.CommandType = CommandType.StoredProcedure; SqlParameter sprocParams = null; sprocParams = scm.Parameters.Add(new SqlParameter("studentid", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = TextBox2.Text; SqlDataAdapter sda = new SqlDataAdapter(scm); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind();学生信息查询:以专业进行查询学生信息查询:以班级进行查询学生信息查询:以宿舍进行查询学生信息查询:以学号进行查询学生信息查询:以姓名进行查询查询房间信息:以楼号与宿舍号进行查询房间信息查询: SqlConnection scn = new SqlConnection(ConfigurationManager.ConnectionStrings"ConnectionString".ConnectionString); scn.Open(); SqlCommand scm = new SqlCommand("peoplenum", scn); scm.CommandType = CommandType.StoredProcedure; SqlParameter sprocParams = null; sprocParams = scm.Parameters.Add(new SqlParameter("peoplenum", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = TextBox3.Text; sprocParams = scm.Parameters.Add(new SqlParameter("buildingid", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = DropDownList4.Text; SqlDataAdapter sda = new SqlDataAdapter(scm); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind();房间信息查询:以楼栋性别(所住是男、女)与楼号、空缺人数进行查询人数统计:可以以楼号、楼号+班级、班级、专业等进行统计人数统计功能代码: SqlConnection scn = new SqlConnection(ConfigurationManager.ConnectionStrings"ConnectionString".ConnectionString); scn.Open(); SqlCommand scm = new SqlCommand("classcount", scn); scm.CommandType = CommandType.StoredProcedure; SqlParameter sprocParams = null; sprocParams = scm.Parameters.Add(new SqlParameter("buildingid", SqlDbType.Int); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = DropDownList1.Text; sprocParams = scm.Parameters.Add(new SqlParameter("classname", SqlDbType.Char,10); sprocParams.Direction = ParameterDirection.Input; sprocParams.Value = DropDownList2.Text; SqlDataAdapter sda = new SqlDataAdapter(scm); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind();房间数量统计:统计每栋楼的房间数房间数量统计功能代码: SqlConnection scn = new SqlConnection(ConfigurationManager.ConnectionStrings"ConnectionString".ConnectionString); scn.Open(); SqlCommand scm = new SqlCommand("dormitorycount", scn); scm.CommandType = CommandType.StoredProcedure; SqlParameter nwparam = null; nwparam = scm.Parameters.Add(new SqlParameter("buildingid", SqlDbType.Int); nwparam.Direction = ParameterDirection.Input; nwparam.Value = DropDownList1.Text; SqlDataAdapter sda = new SqlDataAdapter(scm); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind();查看所有迁出记录:迁出记录:以学号、姓名进行查看。七、 程序设计中遇到的问题和解决方法 (1)在连接数据库时我用sqldatasource控件绑定数据源再绑定了gridview,可是关机重启后,再运行就错误,找不到数据库文件。 解决方法:通过询问同学和网上查询然后更新绑定数据库的代码,发现是连接字符串出现问题然后我将绝对位置改成相对位置DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|ZY.mdf;Integrated Security=True;User Instance=True,其中|DataDirectory|代表的是App_Data在文件夹里添加你要用的数据库。 (2)在学生入住录入的时候,一直显示录入失败 解决方案:通过查看代码,发现录入按钮没有数据库的连接代码无法连接数据库,加上就可以了。 (3)在设计时总是没办法将控件放到自己想要的位置,通过插入表格也总是出现混乱。 解决方案:八、总结: 通过这次基于c#的web学生宿舍管理系统的开发,我对web系统的设计有了一定的认识、了解和掌握。该系统是一功能比较完备的学生宿舍管理系统,它集各种功用于一身,可以对学生宿舍管理的的各种操作,如对学生的信息入住的录入等。建立学生宿舍管理系统,采用统一的方式对学生住宿进行管理,极大的方便了管理员的管理工作。在编程的过程中我们两个人不断探讨和摸索,每人分别完成一部分程序,最后完成了该系统的设计。专心-专注-专业