数据库课程设计报告宿舍管理系统1.docx
- 文档编号:23110139
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:24
- 大小:869.33KB
数据库课程设计报告宿舍管理系统1.docx
《数据库课程设计报告宿舍管理系统1.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告宿舍管理系统1.docx(24页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告宿舍管理系统1
《数据库原理》课程设计报告
专业:
计算机科学与技术
班级:
0490701
学号:
07100203
姓名:
刘玲丽
合作伙伴:
张佳男、盛风杰
题目名称:
.寝室智能管理系统
完成日期:
2009.6
重庆邮电大学计算机学院实验中心
目录
一系统定义2
二需求分析2
三系统设计5
3.1数据字典5
3.2E-R图6
3.3数据流图8
四系统实现9
4.1用户管理9
4.2费用管理10
4.3日常管理11
4.4人员管理13
4.5物品管理14
4.6系统设置15
五详细设计18
六设计总结20
一系统定义
本寝室智能管理系统为寝室管理员实现电子化管理寝室的数据库系统,其具体涉及的内容包括:
1.寝室信息
2.学生信息管理
3.物品出入及外来人员信息
4.登记信息
5.水电费信息
6.清洁分信息
7.重要事务及奖惩措施公告
用户包括公寓管理员、协管人员、学生。
各自的权限有所不同:
管理员:
一切权限;
协管人员:
学生的一切权限,信息预览中添加删除更改公告栏内容;
学生:
信息查询,信息提交。
二需求分析
一、目的与任务:
寝室智能管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(ManagementInformationSystem)。
它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。
能有效的帮助学校和老师掌握学生的情况,方便校方管理及学生的日常寝室生活。
通过该系统,管理员用户可以查看学生的基本资料寝室信息等各方面的资料,能够方便的了解学生寝室生活情况。
该管理系统为用户提供了信息录入,数据查询、输出各种信息等。
学生用户可查询寝室一些相关事宜。
另外,协管人员用户还可以对公告栏信息进行添加,更新和删除。
寝室智能管理系统力求给用户方便快捷的途径去管理这些繁琐的数据。
二、系统功能需求分析
用户的需求具体体现在各种信息的输入、修改和查询,并能够提供一定的安全保障。
因此,系统必须实现的功能如下:
1.用户识别登陆功能(模块):
对三种层次的用户的给予不同的数据管理权限:
a)最高权限用户(管理员):
拥有对数据的增加、删除、查询、保存,以及数据的维护。
b)一般的用户(协管人员):
拥有对除去有关费用的数据的所有查询权限,例如查询寝室信息、出入日志、等。
c)最低权限用户(学生):
拥有向系统提交个人基本信息的权限,例如寝室修补情况,在论坛BBS上发帖和回复。
拥有部分查询功能,如水电费,清洁分。
2.费用管理模块:
对寝室水电费情况提供添加费用和查询费用的功能,并根据登陆的学生用户锁定期寝室号列出其寝室的水电费情况。
此模块对协管人员不可见。
3.日常管理模块:
管理员及协管人员均可录入和查看清洁分,在报修信息栏中可以标记记录是否被处理。
根据登陆的学生用户锁定期寝室号,用户可以提交其寝室的报修请求及查看其寝室的清洁分情况。
4.人员管理模块:
包含查看寝室人员,添加进入人员以及处理进入人员。
查看寝室人员栏中可以查看各个寝室的室长及所有室员,管理员及协管人员可进行编辑。
添加进入人员栏可添加进入人姓名及缘由。
处理进入人员可以显示添加进入人员时录入的信息及标记该人员是否离开。
5物品管理模块:
包含添加物品出入信息和查看物品出入信息。
此模块与人员管理模块类似。
6.系统设置模块:
包含添加公告栏和编辑公告。
管理员及协管人员均有权限进行寝室楼栋重要通知的录入和修改。
确认后公告将显示在桌面栏,对所有用户可见。
管理员还有论坛管理的权限。
确认后帖子将显示在论坛BBS栏,对所有的用户可见并可以回复。
三、功能模块图
.寝室智能管理系统
登录模块
系统设置模块
物品管理模块
人员管理模块
费用管理模块
日常管理模块
退出
登陆
添加公告
查看物品出入信息
添加物品出入信息
处理进入人员
添加进入人员
查看寝室人员
查看费用
添加费用
报修信息
查看清洁分
打清洁分
论坛管理
编辑公告
回复
删除
添加
标记为处理
标记为离开
图1-1功能模块图
三系统设计
3.1数据字典
名字:
论坛信息
别名:
描述:
存储发表的帖子
定义:
论坛信息=帖子名+帖子内容+发表时间+用户名
位置:
名字:
论坛回复
别名:
描述:
存储回复的帖子
定义:
论坛回复=帖子名+帖子内容+回复时间+用户名
位置:
名字:
出入信息
别名:
描述:
记录外来人员出入的信息
定义:
出入信息=进入时间+进入原因+管理员+离开时间
位置:
名字:
清洁信息
别名:
描述:
记录寝室清洁卫生信息
定义:
清洁信息=寝室号+周数+日期+洁净分+物品摆放分
位置:
名字:
寝室信息
别名:
描述:
存储寝室的信息
定义:
寝室信息=室长+电话
位置:
名字:
缴费信息
别名:
描述:
记录寝室缴水电费的信息
定义:
缴费信息=水费+电费+日期+是否缴费+寝室号
位置:
名字:
公告信息
别名:
描述:
公开消息
定义:
公告信息=公告名+公告内容+时间+管理员
位置:
名字:
物品出入信息
别名:
描述:
记录物品的出入信息
定义:
物品出入信息=学生学号+物品名+时间
位置:
名字:
维修信息
别名:
描述:
存储维修信息
定义:
维修信息=寝室号+提出维修时间+是否维修+维修内容
位置:
名字:
用户信息
别名:
描述:
存储用户信息
定义:
用户信息=用户号+密码+用户名+权限等级+寝室号
位置:
3.2E-R图
姓名
图1-2E-R图
3.3数据流图
图1-3数据流图
四系统实现
(因为本次系统是三人组队完成,我负责的是人员管理和物品管理两个模块)
4.1用户管理
4.1.1权限设置
本系统一共有三个权限:
最高——寝室管理员
其次——协管人员
最低——学生
为了实现不同权限用户的区分,我们在user表里面给每个用户分配了一个权限值level.其中level=1代表最高寝室管理员权限,level=2代表协管人员,level=3代表学生。
登录时,通过判断用户的level值就可以知道用户的登录身份,从而为用户分配可以操作的页面。
如果用户访问某张页面的权限不够,系统将阻止其访问。
4.1.2用户密码加密
本系统采用md5加密技术。
每个用户的密码通过md5加密后再保存到数据表里面,防止明文保持密码的不安全。
4.1.3修改密码
用户提供正确的原密码后就可以修改密码
具体SQL语句:
查看原密码是否正确:
selectUserPassfromuserwhereUserNo=‘学号’
修改密码:
updateusersetUserPass=md5‘新密码’whereUserNo=‘学号’
登陆界面
进入系统界面:
4.2费用管理
4.2.1添加费用
此模块实现的功能是添加每个寝室某个月的水电费。
管理员填写寝室号、月份、水费电费,然后写入到数据表pay里面。
若本月水电费已经添加系统会拒绝重复添加。
SQL查询语句:
//检查是否已交
select*fromPaywhereDate=‘当前月份’andDorId=.寝室号
//添加
insertintoPayvalues(NULL,‘水费’,‘电费’,‘当前月份’,‘未交’,寝室号)
4.2.2查看费用
此模块中管理员和学生可以查看已经添加了的水电费
SQL查询语句:
select*frompaywhereDorId=‘寝室号’andDate=‘月份’
4.3日常管理
4.3.1打清洁分
此模块管理员或协管人员可以给某个寝室添加某一周的清洁分。
要求管理员输入寝室号、周数、洁净分和物品摆放分。
SQL查询语句:
insertintocleanvalues(NULL,"寝室号","周数","学期","洁净分","物品摆放分")
4.3.2查看清洁分
此模块管理员和学生可以查看已经打了的清洁分。
如果某个寝室清洁分没有添加,系统会自动提示管理员添加。
SQL查询语句:
select*fromcleanwhereDorId=‘寝室号’andDate=‘学期’orderby周数desc
4.3.3报修信息
此模块学生可以添加报修信息。
如寝室灯坏了等信息。
SQL查询语句:
学生添加:
insertintoupkeep(DorId,Content)values(‘寝室号’,‘报修说明’')
4.4人员管理
4.4.1查看寝室人员
此模块专供管理员查看、编辑寝室人员信息。
SQL查询语句:
查看寝室人员:
select*fromuserwhereDorId=‘寝室号’
改变室长:
updatedormitorysetLeader='"用户ID"'whereId=寝室号
改变学生姓名:
updateusersetUserName=‘姓名’whereUserNo=‘学号’
删除学生:
deletefromuserwhereUserNo=‘学号’
添加学生:
insertintouser(UserNo,UserName,DorId)values(‘姓名’,‘学号’,‘寝室号’)
4.4.2添加进入人员
此模块的作用是记录进入寝室的非本栋人员的信息,以便将来查询寝室来往人员信息
SQL查询语句:
添加进入人员
insertintochuru(Info,Admin)values(‘进入人员姓名和缘由’,‘管理员用户名’)
4.4.3处理进入人员信息
当进入人员离开时,管理员应当把进入人员信息记录中的是否离开标记标记为离开并记录离开时间。
SQL查询语句:
updatechurusetAwayTime=‘当前时间’whereId=‘记录ID’
4.5物品管理
4.5.1添加物品出入信息
当有学生把贵重物品如电脑主机,笔记本等拿出寝室的时候,为了安全考虑记录此学生的学号和物品信息,以便将来查询。
如果学生提供的学号不存在系统将拒绝添加。
SQL查询语句:
检查学生是否存在:
selectUserNofromuserwhereUserNo=‘学号’;
添加物品信息:
insertintothing(UserNo,Thing)values(‘学号’,‘物品信息’);
查看物品出入信息:
select*fromthingorderbyTimedesc;
4.6系统设置
4.6.1添加公告
当管理员有事情通知的时候可以添加一个公告,公告将在用户登录后的首页显示出来。
SQL查询语句:
添加:
insertintopublic(Title,Content,Admin)values(‘标题’,‘内容’,‘用户名’)
查看:
select*frompublicorderbyTimedesc
编辑:
updatepublicsetTitle=‘标题’,Content=‘内容’,Admin=‘用户名’,whereId=‘公告ID’
删除:
deletefrompublicwhereId=$_GET[‘id’]
4.6.2论坛管理
此模块管理员可以管理BBS论坛里的所有帖子
SQL查询语句
查看所有帖子:
select*frombbsorderbyIDdesc
删除帖子:
删除主题:
deletefrombbswhereID=$_GET[‘id’]
删除回复:
deletefrombbs_reswheresyid=$_GET[‘id’]
添加帖子
insertintobbs(‘title’,‘content’,‘UserNo’)values(‘标题’,‘内容’,‘用户名’)
回复帖子:
insertintobbs_res(‘title’,‘content’,‘UserNo’,‘syid’)values(‘回复标题’,‘回复内容’,‘用户名’,‘帖子ID’)
五详细设计
人员管理
查看寝室人员:
$sql="selectcount(Id)asnumsfromdormitoryorderbyIdasc";
$res=$db->query($sql);
$obj=$db->fetch_object($res);
$num=$obj->nums;
$max=12;
$page=$_GET["page"]?
((is_numeric(intval($page))?
($_GET["page"]<=1?
1:
$_GET["page"]):
1)):
1;
$sql="select*fromdormitoryorderbyIdasclimit".($page-1)*$max.",".$max."";
$rs=$db->query($sql);
while($obj=$db->fetch_object($rs)){
$dorId=$obj->Id;
if($obj->Leader){
$sql_r="selectUserNamefromuserwhereUserNo=".$obj->Leader;
$rs_r=$db->query($sql_r);
$obj_r=$db->fetch_object($rs_r);
echo$obj_r->UserName;
}
$sql_r="select*fromuserwhereDorId=".$dorId;
$rs_r=$db->query($sql_r);
while($obj_r=$db->fetch_object($rs_r)){
echo$obj_r->UserName." 、";}
}
添加进入人员:
if($_POST["Submit"]){
$info="姓名:
".$_POST["name"]."\n缘由:
".$_POST["info"];
$sql="insertintochuru(Info,Admin)values
values('".$info."','".$_SESSION["userNo"]."')";
//echo$sql;
//echo$sql;
$db->query($sql);
echo"";
}
处理进入人员:
$aMonth=array(
"Jan"=>"1","Feb"=>"2","Mar"=>"3","Apr"=>"4","May"=>"5",
"Jun"=>"6","Jul"=>"7","Aug"=>"8","Sep"=>"9","Oct"=>"10",
"Nov"=>"11","Dec"=>"12");
$date=date('Y')."-".$aMonth[date('M')]."-".date("d");
$sql="updatechurusetAwayTime='".$date."'whereId=".$_GET["id"];
echo$sql;
$db->query($sql);
物品管理:
添加物品出入信息:
if($_POST["Submit"]){
$sql="selectUserNofromuserwhereUserNo='".$_POST["id"]."'";
$res=$db->query($sql);
if(!
$db->fetch_object($res)){
echo"";
}else{
$sql="insertintothing(UserNo,Thing)values('".$_POST
["id"]."','".$_POST["thing"]."')";
//echo$sql;
$db->query($sql);
echo"";
}
}
查看物品出入信息:
$sql="selectcount(Id)asnumsfromthing";
$res=$db->query($sql);
$obj=$db->fetch_object($res);
$num=$obj->nums;
$max=12;
$page=$_GET["page"]?
((is_numeric(intval($page))?
($_GET["page"]<=1?
1:
$_GET["page"]):
1)):
1;
$sql="select*fromthingorderbyTimedesclimit".($page-1)*$max.",".$max."";
$rs=$db->query($sql);
while($obj=$db->fetch_object($rs)){
$sql_r="selectUserNamefromuserwhereUserNo='".$obj->UserNo."'";
$rs_r=$db->query($sql_r);
$obj_r=$db->fetch_object($rs_r);
echo$obj_r->UserName;
}
六设计总结
通过这个系统的开发,我们了解了做一个数据库开发的全过程。
从系统的需求分析、概念设计、后台数据库的设计、前台的开发及软件的布署工作,我们经历了一个相对比较完整的过程。
在整个设计过程中,我们遇到了很多的问题,虽然在处理问题的时候我们不能说是做的最好,但是我们每个人都有不同程度的收获。
由于现有知识水平的欠缺以及设计时间较短,加上我们团队的三个人都是第一次做数据库的设计,所以该系统还有许多不完善的地方,比如功能实现不够完善、用户界面不够美观、出错处理不够等等多方面问题。
这些都有待进一步提高。
但是,我们团队通过边学习边讨论,一步一步将整个系统逐步实现,值得一提的是为了让自己的整个系统的设计过程更具有专业性,达到了预期的效果,我们参考了很多书籍,也向精通人士请教。
而且,通过整个项目的全过程,团队成员更是学到了团队协助,相互体谅、相互尊重,我相信这将对我们以后的学习和生活有着非常积极的指导意义。
在这次课程设计中,让我学到了很多在课堂和书本上学不到的知识,我在这次课程设计中最大的收获有以下几个方面:
一、领略到了数据库设计在计算机领域的重要性。
数据库作为一个永久存储形式在应用中发挥着重要的作用。
在数据库设计中,我明白了数据库设计中不是范式越高越好的。
我们要根据我们的应用来决定,一切应该以需求为首要选择。
二、对变成环境、一些控件的使用和界面的美化方面更加熟悉。
因为《.寝室智能管理系统》中涉及到很多控件的使用,只有很好的使用这些控件才可以给出一个很好的界面呈现在用户的面前。
这样更有利于数据库和用户之间的交流。
这里就要涉及一些平时不太常见的控件的使用问题。
为了更好的在系统中利用这些控件,我上网查询了一些关于控件使用的资料。
我们的系统控件是用JavaScript实现的。
但是在界面的美化方面,我们没有做得很好。
参考文献:
《数据库系统概论》第五版
《PHP+MySQL动态网站开发》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 宿舍 管理 系统