宿舍管理系统毕业设计
宿舍管理系统总体设计说明书
学生宿舍管理系统
管理信息系统设计阶段的主要目的,是将系统分析阶段所提出的,反映了本系统使用情况的信息需要的逻辑方案,转化成可以实施的,基于计算机以及通信信息的物理方案,并考虑到企业的经济、技术和运行环境等方面的因素,确定系统的总体结构和系统各组成部分的技术方案,合理的选择计算机的各项软硬件配置,提出系统的实施计划,确保总体目标的实现。
系统设计是基于系统分析的基础上,由抽象到具体的过程,同时,还必须考虑到系统实现的内外环境和主客观条件。
通常,这一阶段工作的主要考虑以下几个方面:
1)系统分析的成果。系统设计,从工作流程的角度来看,是系统分析工作的继续,因此,系统设计人员必须严格按照系统分析阶段的成果-------“系统说明书”,所规定的目标、任务和逻辑功能开展设计工作。
2)现行技术。主要指可供选用的计算机硬件技术、软件技术、数据管理技术以及数据通信技术和计算机网络技术。
3)现行信息管理和信息技术的标准、规范和相关的法律制度。
4)用户需求。系统的直接使用者是用户,进行系统设计时应充分尊重和理解用户的要求,特别是用户在操作使用方面的要求,应尽可能使用户感到满意。
5)系统运行环境。新系统的目标应与现行的管理方法相匹配,与组织机构的改革和发展相适应。在系统设计中,应尽量满足以下要求:
1)系统性;
2)可扩展性;
3)可靠性;
4)经济性。
系统设计阶段的活动主要包括:⑴系统总体布局方案的确定;⑵软件系统总体结构的设计;⑶计算机硬件方案的选择和设计;⑷数据存储的总体设计。
一、软件模块结构设计
在系统需求分析阶段,已经弄清了系统的各种需求,解决了要让所开发的系统“做什么”的问题,并已在系统需求说明书中详尽地阐明了需求,在系统设计阶段,要着手解决“怎么做”的问题。
现有的系统设计的方法和工具有如下几种:
l、结构化设计方法:规定了一系列模块的分解协调原则和技术,结构化设计的基础是模块化,即将整个系统分解成相对独立的若干模块,通过对模块的设计和模块之间关系的协调实现整个软件系统的功能。
2、系统流程图:是系统的描述工具。它用图形符号描述了所有的输入/输出和与之有关的处理,同时,也包括了对所有文件的建立过程。
3、HIPO(分层和输入一处理一输出)技术:采用图形方法表达一个系统的输入和输出功能,以及模块的层次。
4、控制结构图:用于描述模块的层次结构和模块之间的控制通讯联系的工具。
1
学生宿舍管理系统
鉴于应用HIPO技术可以进行系统设计和评价。在系统实施之前对已设计的系统进行加工和修改:以及HIPO图清晰易懂,可以使用户、管理人员和其他系统建设者很方便地理解系统的程序结构:同时也有利于程序的编写和系统的维护。所以,我们在对宿舍管理系统进行总体结构设计时,选用了HIPO技术。
1.1HIPO技术
HIPO(HierarchyplusInput/Process/Output)技术:用图形的方法表达一个系统的输入输出功能以及模块层次。
HIPO技术包括两个方面:
1)HIPO分层图:表示自顶向下分解所得的模块层次;
2)IPO图(输入-处理-输出图):此图描述分层图中一个模块的输入、处理和输出内容。
1.2HIPO分层图
HIPO分层图用一个长方形代表一个模块,方块内可写上标识此模块的处理功能名或模块名。模块之间的调用关系用两模块间的联结线表示。采用自顶向下扩展的方法先画综合性强、层次较少的模块结构,然后再根据需要一步一步扩充,直到每个模块的处理功能和规模符合系统分解的原则。
根据系统分析结果,得出学生宿舍管理系统的HIPO图(如图2所示)
图1模块结构
学生宿舍管理系统
图2学生宿舍管理系统HIPO图
学生宿舍管理系统的设计
数据库课程设计报告
专业学生姓名班级学号指导教师完成日期
1课程设计目的及要求设计目的:
1)简化宿舍管理人员手工记录数据的繁琐;
2)提高记录查询速度,缩短查询时间;
3)实现数据的安全存储。
设计要求:
1)要求用户必须输入正确的密码才能进入系统;
2)实现按宿舍号、学生学号的查询。
3)实现分别按宿舍号、学生学号的统计。
2课程设计的主要内容2.1经济可行性分析
系统的经济可行性分析是指对组织的经济状况和投资能力进行分析,对系统的建设运营和维护费用进行估算,对系统建成后可能取得的社会及经济效益进行估计。
由于本系统作为毕业设计,所以在资金上没有太多的需求,只是需要系统开发者投入较多的时间,去进行研究和分析,以及思考问题的所在。
2.2技术可行性分析
学生公寓管理系统使用SQLSever2000以及Java6.0进行开发,由于Netbeans6.0的可视化模块比较强大,所以在系统的设计过程中不会有太大问题,同该系统使用MacroSoft的SQLserver2000对后台的数据进行操作,使得数据完整性得以保证,同时数据操作简单化。通过上述分析得出该系统在技术上是可行的。
2.3操作可行性分析
本系统直观易懂,使用非常方便,管理员经过简单的培训就可以熟练的使用,因此系统的操作没有什么太大困难。
3数据库设计3.1概念设计
学生
学号
性别
姓名
年龄
所属学院
入住
寝室号
居住性别
寝室人数
寝室
N
楼号
房间数
包含
1
管理
宿舍楼
N
1
管理员
性别
姓名
员工号
楼号
N
1
楼号
寝室号
楼号
3.1.1
3.1.2
数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所收获得的主要成果。
数据字典通常包括以下5个部分:
A.数据项:数据项是不可再分的数据单位。
B.数据结构:数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干数据项和数据结构混合组成。
C.数据流:数据流是数据结构在系统内传输的路径。
D.数据存储:数据存储是数据及其结构停留或保存的地方,也是数据流的来源和去向之一。
E.处理过程:处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典是关于数据库中数据的描述,即对元数据的描述。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。
a.数据项编号:E01
数据项:管理员信息表
描述:宿舍管理员的相关信息
定义:管理员信息表=员工姓名+性别+员工号+管理的楼号
b.数据项编号:E02
数据项:宿舍楼信息表
描述:宿舍楼的相关信息
定义:宿舍楼信息表=宿舍楼号+宿舍数目
c.数据项编号:E03
数据项:寝室信息表
描述:学生寝室的相关信息
定义:寝室信息表=寝室号+居住性别+寝室人数+楼号
d.数据项编号:E04
数据项:学生信息表
描述:学生的个人信息
定义:学生信息表=学号+性别+姓名+年龄+所属学院+居住楼号+寝室号
3.2逻辑设计分析后达到三范式后建立以下4个表:
MANAGER_INFO表管理员信息
FLOOR_INFO表宿舍楼信息
ROOM_INFO表寝室信息
STUDENT_INFO表学生信息
一、管理员信息表(MANAGER_INFO)
管理员信息表字段名数据类型长度说明描述不空,主键管理员姓名不空性别不空编号不空楼号
二、宿舍楼信息表(FLOOR_INFO)
宿舍楼信息字段名数据类型长度说明描述不空楼号roo不空房间数
三、寝室信息表(ROOM_INFO)
寝室信息字段名数据类型长度说明描述qnu不空,主键寝室号qsexChar10不空居住性别qcountInt4不空寝室人数不空楼号
四、学生信息表(STUDENT_INFO)
学生信息字段名数据类型长度说明描述snu不空,主键学号sna不空姓名ssexChar10不空性别sageInt4不空年龄scollegeChar10不空所属学院不空楼号qnu不空寝室号
3.3物理设计数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
1、CREATEDATABASEdata_base
ON(
NAME=data_base_Data,
’C:Progra_base_’,
SIZE=10MB,
MAXSIZE=50MB,
)
LOGON(
NAME=data_base_Log,
’C:Progra_base_’,
SIZE=10MB,
MAXSIZE=20MB,
)
2、CREATETABLEMANAGER_INFO
((10)notnullpri,
(10)notnull,
(4)notnull,
(4)notnull
)
Go
3、CREATETABLEFLOOT_INFO
((4)notnullpri,
roo(4)notnull
)
Go
4、CREATETABLEROOM_INFO
(qnu(4)notnullpri,
qsexint(10)notnull,
qcountint(4)notnull,
(4)notnull
)
Go
5、CREATETABLESTUDENT_INFO
(snu(4)notnullpri,
sna(10)notnull,
ssexchar(10)notnull,
sageint(4)notnull,
scollegechar(10)notnull,
(4)notnull,
qnu(4)notnull
)
4程序模块设计4.1登录界面模块设计功能需求:实现密码正确时才可使用此系统。
用户界面设计:
程序代码设计和分析:
程序主界面由6个部分怎么组成,菜单栏5个按钮分别三“按学号查询”、“按宿舍号查询”、“按学院统计”、“按宿舍号统计”、“帮助”,分别对应各自的功能。初始状态下5个按钮都是无效的,只有输入正确的口令,功能才被激活。口令出错时会出现“您输入的密码不正确”这样的提示窗口。如果三次输入错误,用户会被禁用。
运行结果:
口令正确,窗口如下:
口令错误,窗口如下:
口令三次错误,用户被禁用,窗口如下:
4.2按宿舍号、学生学号的查询模块设计功能需求:实现分别按宿舍号、学生学号查询学生的相关信息。
用户界面设计:
程序代码设计和分析:
由于按学号查询跟按宿舍号查询功能类似,所以以学号举例。查询之前首先需要建立与SQL的连接。
连接成功以后,使用Stringsql="selectfro_INFO"+t;进行查询,使用n(“”);在命令行中输出。
运行结果:
按宿舍号查询结果如下:
按学号查询结果如下:
4.3按宿舍号、学生学号的统计模块设计功能需求:实现分别按宿舍号、学院进行统计。
用户界面设计:
程序代码设计和分析:
在文本框中输入学院代号,1表示博雅学院,2表示化生学院,3表示机械学院,
设置一个变量x表示相应学院的住宿生人数。然后使用java命令行输出表达式在DOS界面进行设计。
运行结果:
按宿舍号统计住宿生,结果如下:
按学院统计住宿生,结果如下:
5小结这次数据库课程设计收获颇丰。由于很多知识书本上没有,所以使得我学要在网络上寻找相应的内容,提高了我的知识查询能力。
在java程序与sql数据库连接上花了不少时间。首先安装了SQLSever2000JDBC驱动程序,接着有对电脑本来的SQLSever2000打上SP3补丁,安装SP3驱动程序。另外,还得在java的目录下粘贴,,文件。最后在DOS环境中使用“netstat–an”查看端口1433是否打开,打开后才可以进行数据库的连接。
1433端口是java和sql数据库进行连接的主要端口,该端口打开后也就意味着计算机给网络中的不法分子提供了一个入侵漏洞,计算机受到不断入侵会把用户的进行拦截,以至于用户不能打开DOS界面。
附录附录1源程序清单.;
.;
.;
nPane;
.;
publicclassZuextendsFra
{
staticinti=0;
staticint;
Labela1,a2;
TextFieldtext1;
Buttonbutton1,,,,,;Fontf;
Zu(Strings)
{
super(s);
setLayout(null);
f=ne("黑体",,20);
("按学号查询");
("按宿舍号查询");
("按学院统计");
("按宿舍号统计");
("帮助");
ionListener(this);
ionListener(this);
ionListener(this);
ionListener(this);
ionListener(this);
nds(10,30,120,25);
nds(140,30,140,25);
nds(290,30,120,25);
nds(420,30,80,25);
nds(510,30,80,25);
add;add;add;add;add;
a1=ne("数据库课程设计",);
a2=ne("输入口令:");
nds(180,100,300,40);
kground;t(f);
nds(180,200,90,25);
kground;
text1=ne(18);
nds(280,200,200,25);
button1=ne("确认");
nds(300,250,70,30);
ionListener(this);
add(a1);add(a2);add(text1);add(button1);
setBackground;
setBounds(100,100,600,400);
setVisible(true);
validate;
addWindo(ne
{publicvoid(Windo)
{(0);}
});
}
publicvoidactionPerfor(ActionEvente)
{
Strings=ne("0851401102");
if(rce==button1)
{
(i==0(!(t.equals(""))))
{
if(t.equals(s))
{
ssageDialog(this,"口令正确,欢迎使用","成功登录对话框",ATION_MESSAGE);
i=1;
}
else{
+;
ssageDialog(this,"您输入的密码不正确","警告对话框",G_MESSAGE);
t(null);
}
}
if
{
ssageDialog(this,"您已被禁用","错误对话框",_MESSAGE);
}
}
if(i==1)
{
if(rce==)
{
Sho("按学号查询信息");
ible(true);
}
elseif(rce==)
{
For;
le("按宿舍号查询信息");
ible(true);
}
elseif(rce==)
{
For;
le("按学院统计");
ible(true);
}
elseif(rce==)
{
For;
le("按宿舍号统计");
ible(true);
}
elseif(rce==)
{
Helph1=ne("帮助信息");
ible(true);
}
}
}
}
classJavaConnectSQLServer{
publicstaticConnectiongetConnection
{
Connectionconn=null;
try{
e("verDriver");
}catch(ClassNotFoundExceptione){