1、 2.2 类声明图一 整体的代码结构图2 会议室基类图3 小型会议类声明图4 中型会议室类声明图5 大型会议室类声明#pragma once/包含要使用类的头文件#include MeetingRoom.hMeetingRoomBig.hMeetingRoomMiddle.hMeetingRoomSmall.h/会议室管理类class MeetingRoomManagepublic: /管理类自身 /static MeetingRoomManage* m_MeetingRoomManage; /所有会议室的列表 CObArray m_roomList; MeetingRoomManage();
2、 MeetingRoomManage(); /* 添加一个会议室 room 一个会议室对象 reruan :0 表示更新失败 1 更新成功 */ int addRoom(MeetingRoom room); /*修改一个会议室信息 oldroom 是要修改的会议室对象 size 修改为size类型 int updateRoom(MeetingRoom oldroom, char * size); 查找一个会议室 roomID 会议室的编号 MeetingRoom* query(int roomID); 更新所有的会议室信息 改变会议室相应类型所对应的最多容纳人数之后 size 会议室的类型 m
3、axPeo 对应的最多容纳的人数 int updateRoomAll(char * size, int maxPeo); /* 获取的该类的实例化对象 */ /*static MeetingRoomManage* MeetingRoomManage:getInstance() if (m_MeetingRoomManage = NULL) m_MeetingRoomManage = new MeetingRoomManage(); return m_MeetingRoomManage; return m_MeetingRoomManage; ;/ MeetingRoomManage *Meet
4、ingRoomManage:m_MeetingRoomManage = NULL;图6 会议室管理类声明图7 计划类声明图8 计划管理类声明图9 文件操作类声明3 功能实现(三号字、黑体) 3.1 菜单 1. 主界面 查询功能2.使用计划3. 会议室一些功能4. 文件保存读取功能 3.2 功能1UML时序图附录:程序源代码会议室类stdafx.hMeetingRoom:MeetingRoom()MeetingRoom(int roomID) this-roomID = roomID;MeetingRoom()int MeetingRoom:getRoomID(int & roomID) ret
5、urn roomID = this-roomID;小型会议室类:MeetingRoomSmall:MeetingRoomSmall()MeetingRoomSmall(int roomID, char * size, int maxPeople):MeetingRoom(roomID)size = size;maxPeople = maxPeople;MeetingRoomSmall()void MeetingRoomSmall:setSize(char * size)getSize(char * &size) size = (this-size);setMaxPeople(int max)m
6、axPeople = max;getMaxPeople(int &maxPeople) maxPeople = this-maxPeople;中型会议室类MeetingRoomMiddle:MeetingRoomMiddle()MeetingRoomMiddle(int roomID, char * size, int maxPeople)MeetingRoomMiddle()void MeetingRoomMiddle:大型会议室类MeetingRoomBig:MeetingRoomBig()MeetingRoomBig(int roomID, char * size, int maxPeo
7、ple) :MeetingRoomBig()void MeetingRoomBig:MeetingRoomManage.hMeetingRoomManage:MeetingRoomManage()MeetingRoomManage() /delete m_MeetingRoomManage;int MeetingRoomManage:addRoom(MeetingRoom room) /添加一个对象到对象数组 if(this-m_roomList.Add(&room) return 1; return 0;updateRoom(MeetingRoom oldroom, char * size)
8、 oldroom.setSize(size); return 1;MeetingRoom* MeetingRoomManage:query(int roomID) /获取数组的长度 int count = this-m_roomList.GetSize(); /for 循环查找 int i; int temp = 0; for (i = 0; i m_roomList.GetAt(i)-getRoomID(temp); if (roomID = temp) return (MeetingRoom*)(this-m_roomList.GetAt(i); return NULL;updateRoo
9、mAll(char * size, int maxPeo) char a10; char *temp = a; i+) /找到相应的类型 则改变其最多容纳人数的属性getSize(temp); if (!strcmp(size, temp) (MeetingRoom*)(this-setMaxPeople(maxPeo); return 1;计划类:Plan.hPlan:Plan()Plan(int m_planID, int m_roomID, char * m_date, int m_timeh, char * m_user)m_roomID = m_roomID;m_date = m_d
10、ate;m_timeh = m_timeh;m_user = m_user;Plan()void Plan:setM_planID(int m_planID)m_planID = m_planID;setM_roomID(int m_roomID)setM_date(char * m_date)setM_timeh(int m_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
11、;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() 根据给定的日期和房间号,查询使用计划 void PlanManage:query_1(char *date, int roomID) /先清空数组 this-query_1_List.RemoveAll
12、(); /取得总共的计划条数 int count = this-m_planList.GetSize(); /存放plan记录 Plan * plan; /fou循环查找符合条件的记录放到数组中 int i; for (i = 0; plan = (Plan *)this-m_planList.GetAt(i); /取出一条计划 char * m_date; plan-getM_date(m_date); /得到该计划的日期 int m_roomID;getM_roomID(m_roomID); /获取该计划的会议室编号 if (!strcmp(m_date, date) /日期一样 if (
13、m_roomID = roomID) /会议室编号一样 this-query_1_List.Add(plan);/符合俩个条件加入结果组 根据给定的日期和人数,查找可用的会议室 query_2(char *date, int maxPeople)query_2_List.RemoveAll(); /第一步现寻找所有符合计划的会议室 /所有会议室的个数 int count = m_roomManage.m_roomList.GetSize(); MeetingRoom * room; +i) room = (MeetingRoom *)m_roomManage.m_roomList.GetAt(
14、i); /取出一个会议室 int m_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); int roomID; room-getRoomID(roomID); Plan
15、 * plan; /取得总共的计划条数 int count = this- /存放plan记录 int j; /fou循环查找已经预约过的的会议室(在指定日期) for (j = 0; j m_planList.GetAt(j); char * m_date; int m_roomID; if (! if (m_roomID = roomID) /已经在计划中的会议室编号去掉 this-query_2_List.RemoveAt(i);/去掉已经在计划中的会议室 添加使用计划 int PlanManage:addPlan(Plan plan) plan.setM_planID(this-m_p
16、lanID); if(this-m_planList.Add(&plan) return 0; 修改使用计划 /把旧的计划删掉 把新的计划添加进去updatePlan(Plan oldPlan, Plan newPlan) Plan *plan; /fou循环查找已经预约过的的会议室(在指定日期) for (j = 0; int m_planID;getM_planID(m_planID); /得到该计划的ID int m_old_planID; oldPlan.getM_planID(m_old_planID); /得到 旧的 计划的ID if (m_planID = m_old_planID) /找到old计划m_planList.RemoveAt(j);/去掉旧的计划newPlan);/添加新的计划 return 1; 文件类:FileOp.hFileOp:FileOp()FileOp()int FileOp:writeFile(CObArray planList, CObArray roomList) /即将推出的功能 /老师由于时间有限这个功能没有实现请原谅readFile(CObArray & planList, CObArray & roomList)
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2