




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上机房机位预订系统设计报告书一、 需求分析1、 引言由于机房在使用时存在着机位的查询、预订与退订的过程,这就使机房管理者在一定程度上需要对机房进行有效的信息化管理并且使用者在机房预订机位时会出现许多问题,所以设计了此项程序旨在帮助机房更好的管理机位,以及使机房管理信息化的同时便于机房使用者更有效的节约时间。所以,从总体上来说,本次的机房机位预订系统对机房的管理、使用者自身的实际情况有着很大的意义。2、简述题目需要解决的问题 设计一个机房机位预订系统,能够对机房的第二天的机位进行预订。设某机房有40台机器,编号从1到40,从早上九点到晚上九点,两个小时为一个时间段,每次可
2、预订第二天的某一个时间段。(1) 系统以菜单方式运行(2) 查询,根据输入时间,输出机位信息。(3) 机位预订,根据输入的时间输出是否有空机位,若有则进行预订(在该时段写入预订学生的信息),若无则提供最近时间段。(4) 撤销预订,根据输入的时间段、机器号撤销之前的预订机位。输出预订,可将第二天的预订情况打印输出。 3、规定软件做什么 此款软件依据具体情况而定,有很大的实用性,所以软件在设计时充分地考虑了一些实际的情况并且做了有效的改进。首先,软件在总体上要有系统以菜单方式运行,实现此项功能,采用了Display()函数作为菜单的输出,便于使用者清晰的选择所需的菜单。其次,采用编号制的Switc
3、h()语句使用户选择菜单更加具体。当用户选择查询时,系统由switch()语句进入Search( )函数从而进行查询功能。同理,程序也以此进行了预订、退订、退出系统等功能。在实现以上功能的同时,增加了对用户姓名的录入,便于下一位用户更好的查询。二、 算法设计1、机房机位预订系统的总程序结构如下图所示 机房机位预订系统机位查询机位预订机位退订系统退出 2、总体程序中的函数调用机执行情况 主函数main()调用类ComList的类对象 fanfan.CreatList( )fan.Display( )Class ComList ComList:CreatList( )Switch ( )ComLi
4、st:Display()Search( )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
5、Search();void 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)创建
6、链表void ComList:CreatList()Nod *p;int i,j;for(i=0;i<6;i+)for(j=1;j<=n;j+)p=new Node;p->a=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 ComLi
7、st:Display()cout<<endl<<endl<<endl<<endl;cout<<"t=n" cout<<"t| 机房机位预约管理 n"cout<<"t=n"cout<<"t-n"cout<<"t| 1: 查询 |n"cout<<"t-n;cout<<"t 2: 预定 |n"cout<<"t-n&quo
8、t;cout<<"t|3: 退订 |n"cout<<"t-n"cout<<"t|4: 退出 |n"cout<<"t-n"cout<<"t请选择操作类型(1-5):"int c;cin>>c;cout<<endl;switch(c)case 1: Search(); break;case 2: Book(); break;case 3: Quit(); break;case 4: Exit(); break;def
9、ault:cout<<"ntt输入有误!n"Display();break;本程序实行了菜单功能,把每一项功能用标号1、2、3、4来选择,增加了程序的层次感和条理性。(5)机位查询void ComList:Search()int time,count=0;Nod *p;char c;cout<<"t=n"cout<<"t| 机位查询 |n"cout<<"t=n"cout<<"t输入时间(9-20):"cin>>time;wh
10、ile(time<9|time>20)cout<<"t输入时间不在预定范围内!n"cout<<"t请重新输入时间(9-20):"cin>>time;p=Time(time-9)/2.next;while(count!=n)if(p->a)cout<<"t座位号:"<<p->num<<"-已被预约!该客户是:"<<p->name<<endl; elsecout<<"t座位
11、号:"<<p->num<<"-未被预约"<<endl;p=p->next;count+;cout<<"t是否继续查询? Y/N? "cin>>c;if(c='Y'|c='y')Search();else Display();机位查询功能,首先,输入所需查询的时间(9-20),因为两个小时为一个时间段,所以有6个时段并且规定了每个时段有40个机位。当输入时间超过所在时间段则程序报错,定义了Nod型的Time数组,便于对新建的链表进行赋值,采用了
12、count计数变量以次查找所在时间段的机位预订情况。(6)机位预订void ComList:Book()int time,i;char c;Nod *p;cout<<"t=n"cout<<"t| 机位预定 |n"cout<<"t=n"cout<<"t输入您要预定的时间(9-20):"cin>>time;while(time<9|time>20)cout<<"t输入时间不在预定范围内!n"cout<<&
13、quot;t请重新输入时间(9-20):"cin>>time;p=Time(time-9)/2.next;int count=0;while(count!=n)if(p->a=false)p->a=true;cout<<"t请输入你的名字:"cin>>p->name;cout<<"t预定成功!nt座位号是:"<<p->num<<endl;computernum(time-9)/2-;Display();break;elsep=p->next;c
14、ount+;continue;if(count=n)cout<<"t对不起!该时间段没有可预订的电脑!n"<<endl; for(i=(time-9)/2+1;i<6;i+) if(computernumi>0) cout<<"可以提供的空闲时段为:"<<i+8<<"-"<<i+10<<endl;机位预订,首先采用了菜单选项规定了输入时间的选择,再次调用了链表和计数变量,调用布尔常量判断程序是否继续预订,当没有机位可以预订的情况下,系统可以
15、提供最近有机位的时间段,便于用户选择。(7)机位退订void ComList:Quit()int time,count=0,i;Nod *p;cout<<"t=n"cout<<"t| 机位退订 |n"cout<<"t=n"cout<<"t输入你的退订的时间(9-20):"cin>>time;while(time<9|time>20)cout<<"t输入的时间有误!n"cout<<"t请重新输
16、入你要退订的时间(9-20):"cin>>time;cout<<"t输入你座位号:"cin>>i;p=Time(time-9)/2.next;while(count!=n)if(count=i-1)p->a=false;strcpy(p->name,"空位置");cout<<"t退订成功!nt"computernum(time-9)/2+;cout<<endl;Display();break;elsep=p->next;count+;continu
17、e;cout<<"t退订成功!n"Display();机位退订,依次寻找所需退订的时段中的机器编号,找到后的用户名用空位置进行覆盖。然后,机器的编号数组本身在该时段中自加1,这样就把机位退订了。(8)退出void ComList:Exit()cout<<"nnnnnnttt谢谢您的使用nnnnnnn"3、课程设计任务中各项要求的实现程度 在本次课程任务中,实现了系统以菜单方式运行查询,根据输入时间,输出机位信息。机位预订,根据输入的时间输出是否有空机位,若有则进行预订(在该时段写入预订学生的信息),若无则提供最近时间段。撤销预订,
18、根据输入的时间段、机器号撤销之前的预订机位。输出预订,可将第二天的预订情况打印输出。首先,系统以菜单的方式运行程序,从图1中可以看出,系统的功能包括了查询机位、预订机位、退订机位以及最后程序的退出。在运行机位查询这个功能时系统自动调用Display()的类的成员函数,通过它来显示系统的菜单,便于使用者能更好的使用它,这个函数的实现依赖与C+的基础功能。其次,图2中有打印预订列表便于用户更好地查清所在时间段的机位使用人数和未被预订的情况,但是此处没用文件的输出打印预订列表。最后,其他几项程序的要求完成的很好,预订时更是增加了用户姓名的输入,便于机房机位管理者能更好地管理机房。4、在此次程序设计中
19、的一些新想法 在此次机房机位预订系统中,首先整体的设计思想是,通过一个链表来完成这个程序中最重要的机位信息的储存,从而达到设计中所要求的查询、预订、退订等功能,这就完全基于该链表。在完成这个程序设计的一些基本功能后,还实现了对机位预订时用户姓名的增加,便于机房管理机位,也是对机位用户的有效制约,其次对预订时间段有了一个很好的规划,不是分为时段计时,而是以每小时为一个预订时段点,这样能更好地使用户节约时间。此外,个人认为此系统还缺少了两个功能,即等待和等待机位查询,首先,当用户查询后没有机位时,还可以通过此事的等待功能实行等待。而后,当等待也是一个数组,那么当等待结束后还可以查询等待人员列表,从
20、而使得结尾预订更加人性化,也方便了机房的管理者和用户。三、 用户手册1、用户在从本系统的菜单运行,按要求输入所要选择的选项2、在数据输入方面,用户需严格按照程序中所提供的数据格式输入,否则程序有可能将进入死循环。四、 调试及测试1、解决问题在程序运行时,出现了很多的错误,尤其是当前一个成员函数的一个花括号丢失后,系统报错二没有解决的方法,最后上网查资料解决了改问题。其次是对链表的设计和数组的管理,多次出现错误,最后完全解决了改问题。2、程序运行截图(图1,查询功能)(图2,打印次日输出)(图3,机位预订)(图4,预订后的查询)(图5,机位退订)(图6,系统退出)五、 小结课程设计是培养学生综合
21、运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当代计算机应用在生活中可以说是无处不在。因此作为本二十一世纪的大学生来说,掌握一些基本的软件开发技术是十分必要的。回想起此次C+课程设计,至今我仍感慨颇多,自从拿到题目到最后完成整个编程,从理论得到时间,在整整的一个星期的时间里,可以说学得了很多的东西,同时不仅可以巩固以前所学的很多知识,而且学到了很多在书本上没有学到的很多知识。通过了这次课程设计使我懂得了理论和实际相结合的重要性,只有理论是远远不够的,只有把所学的理论知识和实际情况结合起来,从而提高了自
22、己的实际动手能力和独立思考能力这样才能真正的体会和认识它,才能活学活用。在设计中遇到的问题,因为水平有限,难免会遇到这样那样的各种问题,同时在设计过程中发现了自己的不足之处:对以前所学过的知识掌握不够牢靠,应变能力不是很好,比如对建立链表不是很熟悉。通过了此次课程设计也使我对以前学过的知识有了一个巩固和加深的过程。六、 参考文献1 郑莉 等编著C+语言程序设计(第三版)北京:清华大学出版社2 郑莉 等编著C+语言程序设计(第三版)学生用书北京: 清华大学出版社3 刘振安 等编著C+程序设计课程设计 机械工业出版社4 吴乃陵 等编著C+程序设计北京:高等教育出版社5 李春葆 等编著C+程序设计学
23、习与上机实验指导 北京:清华大学出版社6 范辉 等编著Visual C+6.0程序设计简明教程 高等教育出版社7 李龙澍C+程序设计实训教程北京:清华大学出版社 8 洪国胜 等编著 C+ Builder程序设计轻松上手北京:清华大学出版社9 宁正元数据结构(c语言) 南京:东南大学出版社。2000年6月第1版10 严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版。11 胡学钢等数据结构算法设计指导北京:清华大学出版社,1999年 第1版。12 刘大有数据结构(面向21世纪课程教材) 北京:高等教育出版社。2001年6月第1版。13 明日科技 编著Visual C+程序
24、开发范例宝典北京:人民邮电出版社。14 游洪跃等编著C+面向对象程序设计实验和课程设计教程北京:清华大学出版社.2009.2合肥学院计算机科学与技术系课程设计报告书20102011学年第二学期课程C+课程设计课程设计名称机房机位预订系统专业班级计算机科学与技术(2)班指导教师张贯虹 屠菁2011年6月附录:机房机位预订系统源程序#include <iostream.h> #include <string.h>#include <stdio.h>struct Nodint num; bool a;char name20;struct Nod *next;/声明
25、指针域的结构体类型Nod Time6=0,1,"0",NULL,0,1,"0",NULL,0,1,"0",NULL,0,1,"0",NULL,0,1,"0",NULL,0,1,"0",NULL;/六个时间段的头结点int computernum6=40,40,40,40,40,40;/定义一个机位编号数组,每两个时间段中共有40台电脑const int n=40;/机房总共40台电脑class ComList/定义一个机位信息类private:Nod *head,*tail;
26、public:ComList();ComList();void Display();void CreatList();void Search();void Book();void Quit();void Exit();ComList:ComList()/构造函数head=NULL;tail=NULL;ComList:ComList()/析构函数Nod *p;while(head)p=head;head=head->next;delete p;void ComList:Display()/打印输出cout<<endl<<endl<<endl<<
27、;endl;cout<<"t=n"cout<<"t| 机房机位预约管理 |n"cout<<"t=n"cout<<"tn"cout<<"t| 1: 查询 |n"cout<<"tn"cout<<"t| 2: 预定 |n"cout<<"tn"cout<<"t| 3: 退订 |n"cout<<"t
28、-n"cout<<"t| 4: 退出 |n"cout<<"t-n"cout<<"t请选择操作类型(1-5):"int c;cin>>c;cout<<endl;switch(c)case 1: Search(); break;case 2: Book(); break;case 3: Quit(); break;case 4: Exit(); break;default:cout<<"ntt输入有误!n"Display();break;
29、void ComList:CreatList()Nod *p;int i,j;for(i=0;i<6;i+)for(j=1;j<=n;j+)p=new Nod;p->a=0;p->num=j;strcpy(p->name,"空位置");p->next=NULL;if(head=NULL)head=p;elsetail->next=p;tail=p;Timei.next=head;void ComList:Search()int time,count=0;Nod *p;char c;cout<<"t=n"
30、;cout<<"t| 机位查询 |n"cout<<"t=n"cout<<"t输入时间(9-20):"cin>>time;while(time<9|time>20)cout<<"t输入时间不在预定范围内!n"cout<<"t请重新输入时间(9-20):"cin>>time;p=Time(time-9)/2.next;while(count!=n)if(p->a)cout<<"
31、t座位号:"<<p->num<<"-已被预约,该同学是:"<<p->name<<endl; elsecout<<"t座位号:"<<p->num<<"-未被预约"<<endl;p=p->next;count+;cout<<"t是否继续查询? Y/N? "cin>>c;if(c='Y'|c='y')Search();else Displ
32、ay();void ComList:Book()int time,i;Nod *p;cout<<"t=n"cout<<"t| 机位预订 |n"cout<<"t=n"cout<<"t输入您要预定的时间(9-20):"cin>>time;while(time<9|time>20)cout<<"t输入时间不在预定范围内!n"cout<<"t请重新输入时间(9-20):"cin>>time;p=Time(time-9)/2.next;int count=0;while(count!=n)if(p->a=false)p->a=true;cout<<"t请输入你的名字:"cin>>p->name;cout<<&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准件企业管理制度
- 格力工程机管理制度
- 梅生物卫生管理制度
- 棋类俱乐部管理制度
- 模特社社团管理制度
- 母婴喂养室管理制度
- 比亚迪档案管理制度
- 民心网工作管理制度
- 水泥厂设备管理制度
- 江干区保洁管理制度
- 2025年黑龙江、吉林、辽宁、内蒙古高考生物真题试卷(解析版)
- 阿米巴模式的合同协议书
- 福建省泉州市晋江市2025届数学七下期末调研试题含解析
- 技术员奖励协议书
- 北京市先农坛体育运动技术学校招聘笔试真题2024
- 打破传统藩篱:小学高段先写后教习作教学模式的创新与实践
- 2025年道德与法治课程考试试卷及答案
- 山西省运城市2025年中考一模语文试题(含答案)
- 天津2025年中国医学科学院放射医学研究所第一批招聘笔试历年参考题库附带答案详解
- 2025河南中考:政治必背知识点
- 《小米印度发展路线》课件
评论
0/150
提交评论