程序设计模式实验-模拟食堂求索食堂椅子数量值java程序

上传人:龙*** 文档编号:595128 上传时间:2017-04-09 格式:PDF 页数:12 大小:210.08KB
返回 下载 相关 举报
程序设计模式实验-模拟食堂求索食堂椅子数量值java程序_第1页
第1页 / 共12页
程序设计模式实验-模拟食堂求索食堂椅子数量值java程序_第2页
第2页 / 共12页
程序设计模式实验-模拟食堂求索食堂椅子数量值java程序_第3页
第3页 / 共12页
程序设计模式实验-模拟食堂求索食堂椅子数量值java程序_第4页
第4页 / 共12页
程序设计模式实验-模拟食堂求索食堂椅子数量值java程序_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《程序设计模式实验-模拟食堂求索食堂椅子数量值java程序》由会员分享,可在线阅读,更多相关《程序设计模式实验-模拟食堂求索食堂椅子数量值java程序(12页珍藏版)》请在金锄头文库上搜索。

1、实 验 报 告 ( 三 ) : 面 向 对 象 程 序 设 计-事 件 模 拟科目:程序设计方法专业:计算机科学与技术班级:计7姓名:风律澈学号:105032011130日期:2013.6.61实验目的1、学习面向对象程序设计方法的基本思想。2、掌握在具体场景中对象的提取。3、掌握类之间的各种关系。4、掌握适用序列图/时序图来表示对象之间的交互关系。2实验内容食堂位置的设置问题:某食堂需要设置足够的位置供学生在进餐时使用,其目的是确保在高峰期时每一个学生都有一个位置可用,且又不会由于设置过多位置造成浪费。输入:学生到达食堂的时间和就餐时间作为输入序列。要求:模拟学生进入食堂,买饭、就餐、离开的

2、过程。并通过设置不同的买饭窗口观察窗口数对学生排队和设置就餐位置的影响。输出:在当前输入情况下,最高峰时学生就餐需要的座位数。基本要求:首先分析所要实现的系统,分析其中所隐含的对象;确定各个类之间的关系,画出类图;用交互图画出各个对象之间的关系。提示:对象是动作的主体,比如排队过程,这个事件该放在学生这个类中,学生为了排队,需要观察各个队列的长短,然后做出决定是排到哪个队列中。同时,整个模拟过程有个控制类,这个类从各个队列中获取要发生的事件,然后调用具体对象的方法实现。3程序设计3.1类图分析其中蕴含的对象,抽象出类,并且画出类关系图3.2序列图对所涉及个各个事件、对象交互关系,分别用序列图表

3、示。至少画出控制类的调度序列图、学生排队事件序列图。其余可以自行扩展具体可以参考课件中序列图部分。学生类到食堂吃饭时间:int吃饭耗时:int生存时间:int选择窗口()修改生存时间(k)获得到食堂吃饭时间()获得吃饭耗时()获得生存时间()减少生存时间()食堂窗口:窗口10最大学生数量:int学生数量:int插入k窗口排队(k)获得窗口k排队人数(k)从k窗口排队中移除(k)增加学生数量()减少学生数量()获得最大学生数量()获得学生数量()修改最大学生数量()窗口打饭时间:int排队学生:int增加排队学生()获得排队学生()减少排队学生()生成对象Intn=0n+学生类处理餐厅.窗口处理

4、食堂学生数量=0NO学生类处理输出食堂最大学生数量YESNew食堂最大学生数量=0学生数量=0New窗口打饭时间=1排队学生数量=0New优先队列qNew链表sInti=0New学生t到食堂时间random(1189)吃饭耗时random(310)Q.add(学生t)i=10食堂.窗口m.队学生数量0食堂.窗口m.队学生数量-食堂.学生数量+食堂.学生数量食堂.最大学生数量食堂.最大学生数量=食堂.学生数量m+YES NONONOYESYESintf=0fq=newPriorityQueue();LinkedLists=newLinkedList();for(inti=0;i0)dinnerh

5、oll.outlist(m);dinnerholl.rise_now_student_number();if(dinnerholl.get_moststudentnumber()privateintarrival;privateinteattime;privateintduring;publicstudent(inta,intb)this.arrival=a;this.eattime=b;OverridepublicintcompareTo(studento)/TODOAuto-generatedmethodstubif(this.arrivalo.arrival)return1;if(thi

6、s.arrivalo.arrival)return-1;return0;publicintgetarrival()returnthis.arrival;publicintgeteattime()returnthis.eattime;publicintchoosewindow()Randomrandom=newRandom();intk=random.nextInt(10);returnk;publicvoidset_during(intlist)this.during=list+this.eattime;publicintget_during()returnthis.during;public

7、voiddecrease_during()this.during-;-package餐厅;publicclassroomprivateintmoststudentnumber;privateintnowstudentnumber;privatewindowwindows;publicroom()this.moststudentnumber=0;this.nowstudentnumber=0;this.windows=newwindow10;for(inti=0;i10;i+)this.windowsi=newwindow();publicvoidinlist(intk)this.windows

8、k.rise_student_number();publicintget_window_list_long(intk)returnthis.windowsk.get_student_number();publicvoidoutlist(intk)this.windowsk.remove_student_number();publicvoidrise_now_student_number()this.nowstudentnumber+;publicintget_nowstudentnumber()returnthis.nowstudentnumber;publicintget_moststude

9、ntnumber()returnthis.moststudentnumber;publicvoidreset_moststudentnumber(intk)this.moststudentnumber=k;publicvoiddecrease_now_student_number()this.nowstudentnumber-;-package餐厅;publicclasswindowprivateintpack;privateintstudentnumber;publicwindow()this.pack=1;this.studentnumber=0;publicvoidrise_studen

10、t_number()this.studentnumber+;publicintget_student_number()returnthis.studentnumber;publicvoidremove_student_number()this.studentnumber-;4.2运行结果与分析实验结果需要你提供输入(需要详细列出所有数据),输出对应。不允许通过大量截图的方式展示实验结果。用不同的数据量、数据集作为输入,并给出不同情况下的结果,并简单分析。由于程序自带随机数字,所以输入不能用详细的表格表示,而且输入数量比较大。以下提供三次运行的输出5问题和分析试验中存在的问题,解决方法,如果没有解决就写没有解决。答:本次实验只是对这个进行简单的抽象,抽象过程中忽略了很多细节问题,比如到窗口排队选取最优窗口的智能,以及进出餐厅走路所耗费的时候,以及打饭实际上的微小时间按,抽象不是非常详细,误差也相对较大。并没有进行可视化,也没有对输入进行输出体现。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 述职报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号