李志刚S07059会议室管理Word文档格式.docx
《李志刚S07059会议室管理Word文档格式.docx》由会员分享,可在线阅读,更多相关《李志刚S07059会议室管理Word文档格式.docx(31页珍藏版)》请在冰点文库上搜索。
![李志刚S07059会议室管理Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/69ad1c03-44b8-446f-ac11-729bbaa37f5a/69ad1c03-44b8-446f-ac11-729bbaa37f5a1.gif)
2.2类声明
图一整体的代码结构
图2会议室基类
图3小型会议类声明
图4中型会议室类声明
图5大型会议室类声明
#pragmaonce
//包含要使用类的头文件
#include"
MeetingRoom.h"
MeetingRoomBig.h"
MeetingRoomMiddle.h"
MeetingRoomSmall.h"
//会议室管理类
classMeetingRoomManage
{
public:
//管理类自身
//staticMeetingRoomManage*m_MeetingRoomManage;
//所有会议室的列表
CObArraym_roomList;
MeetingRoomManage();
~MeetingRoomManage();
/*
添加一个会议室
room一个会议室对象
reruan:
0表示更新失败1更新成功
*/
intaddRoom(MeetingRoomroom);
/*修改一个会议室信息
oldroom是要修改的会议室对象
size修改为size类型
intupdateRoom(MeetingRoomoldroom,char*size);
查找一个会议室
roomID会议室的编号
MeetingRoom*query(introomID);
更新所有的会议室信息
改变会议室相应类型所对应的最多容纳人数之后
size会议室的类型
maxPeo对应的最多容纳的人数
intupdateRoomAll(char*size,intmaxPeo);
/*
获取的该类的实例化对象
*/
/*staticMeetingRoomManage*MeetingRoomManage:
:
getInstance()
{
if(m_MeetingRoomManage==NULL)
{
m_MeetingRoomManage=newMeetingRoomManage();
returnm_MeetingRoomManage;
}
returnm_MeetingRoomManage;
}
};
//MeetingRoomManage*MeetingRoomManage:
m_MeetingRoomManage=NULL;
图6会议室管理类声明
图7计划类声明
图8计划管理类声明
图9文件操作类声明
3功能实现(三号字、黑体)
3.1菜单
1.主界面查询功能
2.使用计划
3.会议室一些功能
4.文件保存读取功能
3.2功能1
UML时序图
附录:
程序源代码
会议室类
stdafx.h"
MeetingRoom:
MeetingRoom()
}
MeetingRoom(introomID)
this->
roomID=roomID;
~MeetingRoom()
intMeetingRoom:
getRoomID(int&
roomID)
returnroomID=this->
roomID;
小型会议室类:
MeetingRoomSmall:
MeetingRoomSmall()
MeetingRoomSmall(introomID,char*size,intmaxPeople):
MeetingRoom(roomID)
size=size;
maxPeople=maxPeople;
~MeetingRoomSmall()
voidMeetingRoomSmall:
setSize(char*size)
getSize(char*&
size)
size=(this->
size);
setMaxPeople(intmax)
maxPeople=max;
getMaxPeople(int&
maxPeople)
maxPeople=this->
maxPeople;
中型会议室类
MeetingRoomMiddle:
MeetingRoomMiddle()
MeetingRoomMiddle(introomID,char*size,intmaxPeople)
~MeetingRoomMiddle()
voidMeetingRoomMiddle:
大型会议室类
MeetingRoomBig:
MeetingRoomBig()
MeetingRoomBig(introomID,char*size,intmaxPeople):
~MeetingRoomBig()
voidMeetingRoomBig:
MeetingRoomManage.h"
MeetingRoomManage:
MeetingRoomManage()
~MeetingRoomManage()
//deletem_MeetingRoomManage;
intMeetingRoomManage:
addRoom(MeetingRoomroom)
//添加一个对象到对象数组
if(this->
m_roomList.Add(&
room))
return1;
return0;
updateRoom(MeetingRoomoldroom,char*size)
oldroom.setSize(size);
return1;
MeetingRoom*MeetingRoomManage:
query(introomID)
//获取数组的长度
intcount=this->
m_roomList.GetSize();
//for循环查找
inti;
inttemp=0;
for(i=0;
i<
count;
i++)
((MeetingRoom*)(this->
m_roomList.GetAt(i)))->
getRoomID(temp);
if(roomID==temp)
return((MeetingRoom*)(this->
m_roomList.GetAt(i)));
returnNULL;
updateRoomAll(char*size,intmaxPeo)
chara[10];
char*temp=a;
i++)
{
//找到相应的类型则改变其最多容纳人数的属性
getSize(temp);
if(!
strcmp(size,temp))
((MeetingRoom*)(this->
setMaxPeople(maxPeo);
return1;
计划类:
Plan.h"
Plan:
Plan()
Plan(intm_planID,intm_roomID,char*m_date,intm_timeh,char*m_user)
m_roomID=m_roomID;
m_date=m_date;
m_timeh=m_timeh;
m_user=m_user;
~Plan()
voidPlan:
setM_planID(intm_planID)
m_planID=m_planID;
setM_roomID(intm_roomID)
setM_date(char*m_date)
setM_timeh(intm_timeh)
setM_user(char*m_user)
getM_planID(int&
m_planID)
m_planID=this->
m_planID;
getM_roomID(int&
m_roomID)
m_roomID=this->
m_roomID;
getM_date(char*&
m_date)
m_date=this->
m_date;
getM_timeh(int&
m_timeh)
m_timeh=this->
m_timeh;
getM_user(char*&
m_user)
m_user=this->
m_user;
计划管理类
PlanManage.h"
PlanManage:
PlanManage()
~PlanManage()
根据给定的日期和房间号,查询使用计划
voidPlanManage:
query_1(char*date,introomID)
//先清空数组
this->
query_1_List.RemoveAll();
//取得总共的计划条数
intcount=this->
m_planList.GetSize();
//存放plan记录
Plan*plan;
//fou循环查找符合条件的记录放到数组中
inti;
for(i=0;
plan=(Plan*)this->
m_planList.GetAt(i);
//取出一条计划
char*m_date;
plan->
getM_date(m_date);
//得到该计划的日期
intm_roomID;
getM_roomID(m_roomID);
//获取该计划的会议室编号
if(!
strcmp(m_date,date))//日期一样
{
if(m_roomID==roomID)//会议室编号一样
{
this->
query_1_List.Add(plan);
//符合俩个条件加入结果组
}
根据给定的日期和人数,查找可用的会议室
query_2(char*date,intmaxPeople)
query_2_List.RemoveAll();
//第一步现寻找所有符合计划的会议室
//所有会议室的个数
intcount=m_roomManage.m_roomList.GetSize();
MeetingRoom*room;
++i)
room=(MeetingRoom*)m_roomManage.m_roomList.GetAt(i);
//取出一个会议室
intm_maxPeople;
room->
getMaxPeople(m_maxPeople);
//获取会议室的最大容纳人数
if(m_maxPeople>
=maxPeople)
this->
query_2_List.Add(room);
}
//第二步把在给定日期内已经被预约的会议室去掉
//双层for循环
query_2_List.GetSize();
//存放会议室指针
MeetingRoom*room=(MeetingRoom*)this->
query_2_List.GetAt(i);
introomID;
room->
getRoomID(roomID);
Plan*plan;
//取得总共的计划条数
intcount=this->
//存放plan记录
intj;
//fou循环查找已经预约过的的会议室(在指定日期)
for(j=0;
j<
j++)
plan=(Plan*)this->
m_planList.GetAt(j);
char*m_date;
intm_roomID;
if(!
if(m_roomID==roomID)//已经在计划中的会议室编号去掉
{
this->
query_2_List.RemoveAt(i);
//去掉已经在计划中的会议室
}
添加使用计划
intPlanManage:
addPlan(Planplan)
plan.setM_planID(this->
m_planID);
if(this->
m_planList.Add(&
plan))
return0;
修改使用计划
//把旧的计划删掉把新的计划添加进去
updatePlan(PlanoldPlan,PlannewPlan)
Plan*plan;
//fou循环查找已经预约过的的会议室(在指定日期)
for(j=0;
intm_planID;
getM_planID(m_planID);
//得到该计划的ID
intm_old_planID;
oldPlan.getM_planID(m_old_planID);
//得到旧的计划的ID
if(m_planID==m_old_planID)//找到old计划
m_planList.RemoveAt(j);
//去掉旧的计划
newPlan);
//添加新的计划
return1;
文件类:
FileOp.h"
FileOp:
FileOp()
~FileOp()
intFileOp:
writeFile(CObArrayplanList,CObArrayroomList)
{
//即将推出的功能
//老师由于时间有限这个功能没有实现请原谅
readFile(CObArray&
planList,CObArray&
roomList)