1 / 18
文档名称:

会议室预定系统报告.docx

格式:docx   大小:348KB   页数:18页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

会议室预定系统报告.docx

上传人:kunpengchaoyue 2022/10/8 文件大小:348 KB

下载得到文件列表

会议室预定系统报告.docx

文档介绍

文档介绍:该【会议室预定系统报告 】是由【kunpengchaoyue】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【会议室预定系统报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。1
百度文库-让每个人平等地提升自我
计算机与通信工程学院
实验报告
(软件实验用)
百度文库-让每个人平等地提升自我
一、实验目的
掌握对复杂系统的建模和编码能力,能在正确建模的基础上编写Java程序实现系统功能。
二、实验内容
实现会议室预定系统的建模和编码。
三、实验平台
Windows操作系统,
四、设计流程
1、系统分析
2
7
会议室预定系统的参与者为公司员工、A/V设备中心;用例图如下所示:
7
百度文库-让每个人平等地提升自我
2、系统设计
系统的UML图如下图所示:
5
6
员工预定会议室的顺序流图如下图所示:
0
7
7
Employee
Surevy
MeetingRoom
Meeting
Device
7
7
登录斗:
预定会议室,填写调杳表
——:查找合适的会议室
--显示合适的会议室清单
III
III
选择一个会议室预定,扌指定日期和时间
预定会议室
检查需要配送将会议添加到的设备^,更新会议室中设备使用表
3、数据字典

员工(Employee):该公司的员工,由员工姓名、头衔、部门、电话号码四个属性组成。调查表(Survey):员工预定会议室时须填写的一份表格,它包含对所预定会议室的有关要求,通过这个信息来查询合适的会议室,这个表包括一下内容:安排者的信息,参会人数,日期及时间要求,所需设备清单。
会议室(MeetingRoom):举行会议的地点,每个会议室坐落在公司的不同建筑物内,这些会议室在座位容量以及安装的视听(A/V)设备方面各不相同。
会议(Meeting):在特定的日期、时间、会议室而举行的活动,需要先预定会议室。会议记录了安排者的相关信息、会议的时间、主题、参会人数及会议室地点。
设备(Device):一种视听设施,每个会议室拥有不同的设备,每一个会议需要一定的设备。
关联
百度文库-让每个人平等地提升白我
7
填写:用户登录系统后,如果选择预定会议室,则需要先填写一个关于会议室参数的在线调查表。
查找:通过这个调查表来查找合适的会议室。
包含:一个会议室可以举行若干个会议。
属性员工•姓名:员工的姓名,:员工的头衔,String类型员工•部门:员工所在的部门,:员工的电话号码,String类型调查表•安排者:会议安排者的信息,:会议的参会人数,int类型调查表•最早日期:会议可以接受的最早日期,String类型调查表•最晚日期:会议可以接受的最晚日期,String类型调查表•使用时间:使用会议室的时间,以半小时为单位,int类型调查表•最早开始时间:会议可接受的最早开始时间,String类型调查表•最晚终止时间:会议可接受的最晚终止时间,String类型会议室•地址:会议室所在位置,:会议室可以容纳的座位容量,int类型会议•安排者:会议安排者的信息,Employee类型会议•日期:举行会议的日期,String类型,格式为“2011-06-06”会议•时间:举行会议的时间,String类型,格式为“09:00----11:00”:会议的主题,String类型会议•参会人数:参加会议的人数,:设备的名称,String类型
方法
方法:attendMeeting所属的类:Employee首部:Meeting]]attendMeeting()描述:该方法返回这个员工所有的准备出席的会议的集合。
方法:researchMeetingRoom所属的类:Survey首部:ArrayListvMeetingRoom>researchMeetingRoom()描述:该方法根据该调查表的信息,按照对会议室的要求逐个查找会议室集合,返回合适的会议室的集合,如果没有合适的会议室,则返回的集合为空。
百度文库-让每个人平等地提升白我
方法:add
所属的类:Meeting
首部:voidadd()
描述:该方法根据该会议的信息,将这个会议添加到该会议地址所确定的会议室的会议表中,同时修改会议室安排表中的相关信息。
方法:drop
所属的类:Meeting
首部:voiddrop()
描述:该方法根据该会议的信息,将该会议地址所确定的会议室的会议表中的该会议删除,同时修改该会议室安排表中的相关信息。
12
方法:lackDevices所属的类:Meeting首部:voidlackDevices(MeetingRoommr,intmonth)
描述:该方法为确认会议室预定时,根据当前会议的有关信息,将会议地址所确定的会议室的已安装设备与该会议所需设备进行比较,以确定需要A/V设备中心配送的设备清单,并更新设备使用表的信息。
4、数据表、数据层类及配置文件设置
CRRS集合
主要定义了3个静态的数据集合
ArrayList<Employee>employeeFile:存储员工的集合
ArrayList<MeetingRoom>meetingRoomFile:存储会议室信息及其会议安排int[][]deviceUseFile:存储12个月A/V设备中心配送的各种设备的次数
5、图形用户界面设计
本文中主要设计了8个窗体,现简要介绍如下:
登陆窗体:有三个面板,标题面板、输入信息面板、以及按钮组合面板,用户点击按钮后就会根据输入的信息来处理这个事件,并进入到与使用者相应的界面。
员工操作主窗体:设计了两个面板,上面的面板存放按钮,下面的用于存放调查表。
调查表:与调查表类一致,使得员工可以输入相应的会议室参数。该类中定义了如下几个重要方法:
needDevices()这个方法返回调查表中填写的所需会议室设备清单;getSurvey()这个方法返回由调查表所对应的Survey对象
显示可用的会议室窗体:调查表完成后即可显示可用的会议室清单,这个窗口主要由一个JList对象及操作按钮组成。
选择日期及时间窗体:在显示可用的会议室窗体中选择一个会议室后,仍然有不同
13
18
}
14
百度文库-让每个人平等地提升白我
的日期及时间均满足用户的需求,这时设计选择日期及时间窗体,使得用户自主选择时间。
查询窗体:用户输入特定日期、时间及会议室地址即可查询出谁在指定的日期和时间预定了特定的会议室。
取消会议窗体:根据用户的信息查询出用户准备参加的所有会议,用一个JList对象显示出来,选择其中一个,点击取消会议按钮,通过事件处理将此会议删除。
设备报表窗体:设备中心登陆后就可看到这个窗体,它指明12个月周期内特定设备被使用了多少次。这个窗体运用JTable来实现报表,列名为12个月份,行名为每一个特定的设备,表里面的值为设备使用的次数。
五、程序清单
sEmpty())
continue;
for(Meetingpartmt:()){
if().getName().equals(getName()))
(partmt);
}
}
return(newMeeting[1]);
}
()))){
quals
partDateFlag=true;
for(intd=k;d<=t-useTime;d++){
for(intl=d;l<d+useTime;l++){
if[l]==0){
if(l==d+useTime-1){a[d]=1;
timeFlag=true;
}
}
elsebreak;
}
}
}
15
}
8
百度文库-让每个人平等地提升白我
if(timeFlag==true){
()));
(a);
(newArrange);}
if(partDateFlag==false){
for(intd=k;d<=t-useTime;d++)
a[d]=1;
()));
(a);
(newArrange);}
}
if()==false){
(meetingsArrange);
());
());
(mr);
}
}
elseif(al==null){
int[]a=newint[20];
ArrangenewArrange=newArrange();
ArrayList<Arrange〉recordnewArrayList<Arrange>();for(intd=k;d<=t-useTime;d++)
a[d]=1;
for(intl=i;l<=j;l++){
StringBufferppp;
StringfirstS="0"+l;
Integernum=newInteger(l);
StringlaterS=();
if(l<10)ppp=newStringBuffer(firstS);
elseppp=newStringBuffer(laterS);
()));
(a);
(newArrange);
}
());
());
(record);
16
}
8
百度文库-让每个人平等地提升白我
(mr);
}
}
returnmeetingRooms;
}
ubstring(0,5));
intj=(getTime().substring(9,14));
for(MeetingRoommr:{
if().equals(getAddress())){
().add(this);
if().isEmpty()){
ArrangepartArrange=newArrange();
(getAddress());
for(intk=i;k<j;k++){
[k]=1;
}
}
else{
booleandateFlag=false;
for(Arrangearrange:()){
if().equals(getDate())){
dateFlag=true;
for(intk=i;k<j;k++){
[k]=1;
}
}
elseif(dateFlag==false){
ArrangepartArrange=newArrange();(getAddress());
for(intk=i;k<j;k++){
[k]=1;
}
}
}
}
}
}
}