《机房机位预定系统报告书》由会员分享,可在线阅读,更多相关《机房机位预定系统报告书(20页珍藏版)》请在金锄头文库上搜索。
1、机房机位预订系统设计报告书一、 需求分析1、 引言由于机房在使用时存在着机位的查询、预订与退订的过程,这就使机房管理者在一定程度上需要对机房进行有效的信息化管理并且使用者在机房预订机位时会出现许多问题,所以设计了此项程序旨在帮助机房更好的管理机位,以及使机房管理信息化的同时便于机房使用者更有效的节约时间。所以,从总体上来说,本次的机房机位预订系统对机房的管理、使用者自身的实际情况有着很大的意义。2、简述题目需要解决的问题 设计一个机房机位预订系统,能够对机房的第二天的机位进行预订。设某机房有40台机器,编号从1到40,从早上九点到晚上九点,两个小时为一个时间段,每次可预订第二天的某一个时间段。
2、(1) 系统以菜单方式运行(2) 查询,根据输入时间,输出机位信息。(3) 机位预订,根据输入的时间输出是否有空机位,若有则进行预订(在该时段写入预订学生的信息),若无则提供最近时间段。(4) 撤销预订,根据输入的时间段、机器号撤销之前的预订机位。输出预订,可将第二天的预订情况打印输出。 3、规定软件做什么 此款软件依据具体情况而定,有很大的实用性,所以软件在设计时充分地考虑了一些实际的情况并且做了有效的改进。首先,软件在总体上要有系统以菜单方式运行,实现此项功能,采用了Display()函数作为菜单的输出,便于使用者清晰的选择所需的菜单。其次,采用编号制的Switch()语句使用户选择菜单更
3、加具体。当用户选择查询时,系统由switch()语句进入Search( )函数从而进行查询功能。同理,程序也以此进行了预订、退订、退出系统等功能。在实现以上功能的同时,增加了对用户姓名的录入,便于下一位用户更好的查询。二、 算法设计1、机房机位预订系统的总程序结构如下图所示 机房机位预订系统机位查询机位预订机位退订系统退出 2、总体程序中的函数调用机执行情况 主函数main()调用类ComList的类对象 fanfan.CreatList( )fan.Display( )Class ComList ComList:CreatList( )Switch ( )ComList:Display()S
4、earch( )Exit( )Book( )Quit( )3、各个执行函数的详细阐述(1)主函数 void main()ComList fan; fan.CreatList(); fan.Display(); 主函数中,先定义ComList类的类对象fan,再调用CreatList()函数和Display()函数分别执行对应的功能。(2)类的创建class ComListprivate: Nod *head,*tail;/int len;public:ComList();ComList(); void Display(); void CreatList();void Search();void
5、 Book(); void Quit(); void Exit();ComList:ComList()head=NULL;tail=NULL; /len=0;ComList:ComList() Nod *p; while(head) p=head; head=head-next; delete p; ComList类的创建,在公有成员变量中定义了一系列的成员函数,包括菜单的输出、机位的查询、机位的预订以及程序的退出。类中有构造函数、析构函数的表示,便于系统有效的管理程序申请、释放内存空间。在私有成员变量中用到了指针变量,使得程序中进行有效的链表创建。(3)创建链表void ComList:Cr
6、eatList()Nod *p;int i,j;for(i=0;i6;i+)for(j=1;ja=0;p-num=j;strcpy(p-name,空位置);p-next=NULL;if(head=NULL)head=p;elsetail-next=p;tail=p;Timei.next=head;链表的创建中,首先定义一个Nod型的指针*p,再创建一个新的空链表用于最后储存机位信息。首先,进行了此链表的初始化,(4)菜单列表void ComList:Display()coutendlendlendlendl;coutt=n; coutt| 机房机位预约管理 n;coutt=n;coutt-n;
7、coutt| 1: 查询 |n;coutt-n;coutt 2: 预定 |n;coutt-n;coutt|3: 退订 |n;coutt-n;coutt|4: 退出 |n;coutt-n;coutc;coutendl;switch(c)case 1: Search(); break;case 2: Book(); break;case 3: Quit(); break;case 4: Exit(); break;default:coutntt输入有误!n;Display();break;本程序实行了菜单功能,把每一项功能用标号1、2、3、4来选择,增加了程序的层次感和条理性。(5)机位查询voi
8、d ComList:Search()int time,count=0;Nod *p;char c;coutt=n;coutt| 机位查询 |n;coutt=n;couttime;while(time20)coutt输入时间不在预定范围内!n;couttime;p=Time(time-9)/2.next;while(count!=n)if(p-a)coutt座位号:num-已被预约!该客户是:nameendl; elsecoutt座位号:num-未被预约next;count+;coutc;if(c=Y|c=y)Search();else Display();机位查询功能,首先,输入所需查询的时间
9、(9-20),因为两个小时为一个时间段,所以有6个时段并且规定了每个时段有40个机位。当输入时间超过所在时间段则程序报错,定义了Nod型的Time数组,便于对新建的链表进行赋值,采用了count计数变量以次查找所在时间段的机位预订情况。(6)机位预订void ComList:Book()int time,i;char c;Nod *p;coutt=n;coutt| 机位预定 |n;coutt=n;couttime;while(time20)coutt输入时间不在预定范围内!n;couttime;p=Time(time-9)/2.next;int count=0;while(count!=n)if(p-a=false)p-a=true;coutp-name;coutt预定成功!nt座位号是:numnext;count+;continue;if(count=n)coutt对不起!该时间段没有可预订的电脑!nendl; for(i=(time-9)/2+1;i0)