宿舍管理系统的分析与设计.docx
《宿舍管理系统的分析与设计.docx》由会员分享,可在线阅读,更多相关《宿舍管理系统的分析与设计.docx(22页珍藏版)》请在冰豆网上搜索。
宿舍管理系统的分析与设计
《宿舍管理系统的分析与设计》
一、开发背景
90年代中期,由于Internet的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。
学校信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。
引入Internet后,形成了新型的浏览器/服务器(Browser/Server)结构,而传统的客户机/服务器(Client/Server)结构在这方面就远不及B/S结构。
宿舍管理信息系统是在适应市场需求的客观前提下,为了广大高校管理自己的宿舍而开发的。
该系统的是终目的是要将自己的宿舍相关信息放到网络上,以方便学生与管理员查阅。
二、需求分析
经过调研及分析,宿舍管理信息系统主要完成以下功能:
(1)学生信息维护:
主要完成新生入住宿舍的编号、登记、住宿等操作。
(2)宿舍信息维护:
主要是完成宿舍信息的添加、修改和删除等操作,只有是系统中的合法用户才有资格进行宿舍信息的查询活动。
(3)入住/迁出处理:
主要完成新生的入住和迁出活动,记录学生住宿情况并及时反映.
(4)用户查询记录:
让每位用户能及时了解宿舍住宿情况.
(5)宿舍信息检索:
用户能够根据不同的信息(如宿舍号、学号等)对宿舍的的住宿情况进行查找,以便快速的找到宿舍信息。
三、业务流程图
四.数据流图与数据字典
1.数据流程图
2、数据字典
(1)数据流编号:
D01
数据流名称:
新生入住单
简述:
新生入住各证件的信息
数据流来源:
学生
数据流去向:
楼管
数据项组成:
学号+姓名+性别+学院+班级+宿舍号
数据流量:
约1张/人
高峰流量:
约1张/人
(2)数据流编号:
D02
数据流名称:
出入物品申请表
简述:
审核物品的出入情况
数据流来源:
学生
数据流去向:
楼管
数据项组成:
学号+姓名+宿舍号+物品名称+审核人+日期+
备注
数据流量:
约1张/物品
高峰流量:
约1张/物品
(3)数据流编号:
D03
数据流名称:
不合格物品回单
简述:
未通过审核的物品反馈
数据流来源:
物品信息审核模块
数据流去向:
学生
数据项组成:
学号+姓名+宿舍号+物品名称+审核人+日期+
备注
数据流量:
约1张/物品
高峰流量:
约1张/物品
(4)数据流编号:
D04
数据流名称:
合格物品回单
简述:
通过审核的物品反馈
数据流来源:
物品信息审核模块
数据流去向:
学生
数据项组成:
学号+姓名+宿舍号+物品名称
数据流量:
约1张/物品
高峰流量:
约1张/物品
(5)数据流编号:
D05
数据流名称:
学生离宿舍信息登记表
简述:
毕业生离校的登记情况
数据流来源:
毕业生
数据流去向:
楼管
数据项组成:
学号+姓名+性别+学院+班级+宿舍号
数据流量:
约1张/人
高峰流量:
约1张/人
(6)数据流编号:
D06
数据流名称:
毕业生宿舍物品清单
简述:
检查毕业生宿舍物品的损害情况
数据流来源:
楼管
数据流去向:
楼管
数据项组成:
宿舍号+宿舍物品名称+宿舍物品价格+每一
种宿舍的数量+被损害物品名称+被损害物品的数量+需赔偿学生
学号
数据流量:
约1张/宿舍
高峰流量:
约1张/宿舍
五、系统功能设计
系统管理功能:
系统用户的新增、修改和删除的功能,并可实现数据库处理。
学生管理功能:
提供住宿学生信息的登记、浏览和修改。
住宿管理功能:
可以进行学生入住、换寝室、退宿和期末的某班的整体注销的管理。
查询管理功能:
提供对宿舍所有信息的查询,如:
寝室情况查询、学生情况查询、来访情况查询、设备情况查询等
寝室管理功能:
提供寝室日常的管理信息,如设备管理、各类情况的记录及电费管理。
其他特殊功能:
具有不同权限的使用区别、门卫登记、各类数据的统计以及报表的打印功能。
六、数据库设计
1、E-R图
2、关系模式的3NF设计
宿舍管理部分的关系模型:
学生数据信息(学号,姓名,性别,联系电话,宿舍号,系别,班级,籍贯)
管理员信息(姓名,性别,职务,联系电话,家庭地址)
寝室配置信息(铁床,方桌子,铁柜子,书架,电灯)
来访登记信息(姓名,证件类型,证件号码,访问人员,到达时间,离去时间)
宿舍(楼号,寝室号,学生学号,学生姓名,电话号码)
维修人员(姓名,工作证号,联系方式)
物品入住信息(学号,进楼物品,进物品时间,管理员,备注)
物品出楼信息(学号,出楼物品,出物品时间,管理员,备注)
楼房表(楼房号,楼层数,房间数,应住人数,备注)
学期注册表(学号,姓名,寝室,注册日期)
七、系统实施
用户登录界面
查询宿舍信息界面
新生离校与新生入学注册界面
学生情况查询界面
添加宿舍界面
学生信息查询界面
2、系统的主要源代码:
(usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespacesusheguanli
{
publicpartialclasstjss:
Form
{
privateSqlDataAdapterthisAdapter;
privateDataSetMydataset;
privateBindingManagerBasebManager;
publictjss()
{
InitializeComponent();
SqlConnectionMyConn=newSqlConnection("Server=.;database=house;integratedsecurity=true");
thisAdapter=newSqlDataAdapter("SELECT*fromHostelInfo",MyConn);
SqlCommandBuilderMybud=newSqlCommandBuilder(thisAdapter);
Mydataset=newDataSet();
thisAdapter.Fill(Mydataset,"HostelInfo");
}
privatevoidtjss_Load(objectsender,EventArgse)
{
dataGrid1.SetDataBinding(Mydataset,"StudentsInfo");
txtRoomId.DataBindings.Add("text",Mydataset,"StudentsInfo.HI_No");
txtNo.DataBindings.Add("text",Mydataset,"StudentsInfo.HI_Yinzhurenshu");
cmbSex.DataBindings.Add("text",Mydataset,"StudentsInfo.HI_Sex");
txtTel.DataBindings.Add("text",Mydataset,"StudentsInfo.HI_Tel");
bManager=this.BindingContext[Mydataset,"StudentsInfo"];
}
privatevoidbtnExit_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbtnAdd_Click(objectsender,EventArgse)
{
if(this.btnAdd.Text=="添加")
{
this.txtNo.Text="";
this.txtRoomId.Text="";
this.txtTel.Text="";
this.cmbSex.Text="请选择";
this.txtNo.Focus();
return;
}
else
{
if(this.txtNo.Text!
=""||this.txtRoomId.Text!
=""||this.txtTel.Text!
=""||this.cmbSex.Text!
="请选择")
{
try
{
DataTableMydt=Mydataset.Tables["StudentsInfo"];
DataRowMyRow=Mydt.NewRow();
MyRow["HI_No"]=txtRoomId.Text.Trim();
MyRow["HI_Yinzhurenshu"]=txtNo.Text.Trim();
MyRow["HI_Sex"]=cmbSex.Text.Trim();
MyRow["HI_Tel"]=txtTel.Text.Trim();
//dt.Rows.Add(newRow);
thisAdapter.Update(Mydataset,"StudentsInfo");
Mydt.AcceptChanges();
SqlConnectionMyConn=newSqlConnection("Server=.;database=house;integratedsecurity=true");
MyConn.Open();
SqlCommandMycomm=newSqlCommand("insertintoStudentsInfo(HI_No,HI_Yinzhurenshu,HI_Sex,HI_Tel,)values('"+this.txtNo.Text+"','"+this.txtRoomId.Text+"','"+this.cmbSex.Text+"',"+this.txtTel.Text+"')",MyConn);
SqlDataReaderMyDR=Mycomm.ExecuteReader();
MessageBox.Show("信息成功添加到数据库","恭喜");
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
this.Close();
return;
}
}
else
{
MessageBox.Show("寝室信息不能为空!
");
}
}
}
privatevoidbtnModify_Click(objectsender,EventArgse)
{
try
{
SqlConnectionMyConn=newSqlConnection("Server=.;database=house;integratedsecurity=true");
SqlDataAdapterMyda=newSqlDataAdapter("updateStudentsInfosetHI_No='"+this.txtRoomId.Text.Trim()+"',HI_Yinzhurenshu='"+this.txtNo.Text.Trim()+"',HI_Sex='"+this.cmbSex.Text.Trim()+"',HI_Tel='"+this.txtTel.Text.Trim()+"'whereHI_No='"+this.txtRoomId.Text.Trim()+"'",MyConn);
DataSetMyds=newDataSet();
Myda.Fill(Myds,"StudentsInfo");
MessageBox.Show("恭喜,修改成功");
DataSetMydataset=newDataSet();
}
catch(ExceptionErr)
{
//MessageBox.Show("数据保存失败,请确认所有信息输入完整且正确!
","提示");
MessageBox.Show("增加数据集记录操作失败:
"+Err.Message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
}
privatevoidbtnDel_Click(objectsender,EventArgse)
{
DialogResultresult=MessageBox.Show("你是否真的要删除该项","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Stop);
if(result==DialogResult.Yes)
{
try
{
DataTableMydataTable=Mydataset.Tables["StudentsInfo"];
intDel=dataGrid1.CurrentRowIndex;
MydataTable.Rows[Del].Delete();
intNrows=thisAdapter.Update(Mydataset,"StudentsInfo");
Mydataset.AcceptChanges();
dataGrid1.SetDataBinding(Mydataset,"StudentsInfo");
}
catch(Exceptione1)
{
MessageBox.Show(e1.Message);
}
}
}
privatevoiddataGrid1_Navigate(objectsender,NavigateEventArgsne)
{
}
}
}
八、系统开发总结
1.此次课程设计使我熟悉了系统设计的整体步骤。
其中,让我感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题。
2.加深了我对数据库系统概论相关知识和SQLSERVER相关功能的理解。
例如对建立基本表、视图、索引等,都比以前更加的熟练。
并在解决遇到的各种问题的过程中,学到了很多新的知识。
比如在导入\导出数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺序问题。
一般是先导入主键表,后导入外键表,这样可以避免很多的错误。
3.进一步掌握了相关的SQL语句方面的知识。
不但纠正了以前的错误认识和理解,而且学会了建立存储过程和触发器。
通过查阅资料,我还明白了存储过程是编译后放在服务器端的程序,它可以被别的模块调用,且不需要重新编译,这样就大大减轻了客户端的负担,且有效的提高了系统执行的效率。
九、主要参考文献
【1】陆正武,张志立.《Java项目开发实践》北京中国铁道出版社,2005年7月.
【2】王克宏.《Java技术教程》.北京清华大学出版社,2005年1月.
【3】王彬,赵唯,付江宁等.《Oraclc9i入门与提高》,北京清华大学出版社,2000.
【4】LaurenceVanbelsuwe.《Java从入门到提高》,北京科学出版社,2000.
【5】文宏.《Oraclc9i轻松实战20天》,北京清华大学出版社,2002.
【6】李南一.《Javascript入门到精通》,北京中国水利出版社,2003.
【7】耿祥一,张跃平.《Jsp使用教程》.北京清华大学出版社,2003.
【8】JohnSmiley.《JAVA陈旭设计教程》北京外文出版社,2002.
【9】BruceEckel,ThinkinJava[M],PresidentMindViewJnc,2003,9.
【10】(美)JefferyD.Ullman,JcnniferWidom.《DatabaseSystems,TheCompeleticBook》,2003,8.
【11】BrianJcpsan,《Java数据库编程指南》,北京电子工业出版社,2003,3.