ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:45.01KB ,
资源ID:3286997      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3286997.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实习报告停车场.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实习报告停车场.docx

1、实习报告停车场实习报告姓名:陈英学号:1.实验题目编制停车场管理系统的程序2需求分析设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。

2、1).输入数据和输出数据的形式、取值范围;输入数据:形式:文本;取值范围:栈的最大值为10;输出数据:形式:文本;取值范围:”括号匹配“,括号不匹配;2).测试数据以及测试目的测试数据:(A,2,1),(A ,3,2),(D,3,1),(D,2,1),(E,0,0)测试目的: 测试汽车达到和离去的情况 3概要设计(1)设计思路1) 用栈模拟停车场,用队列模拟停车场外的狭长通道,按照从终端读入数据序列进行模拟管理2) 每一组输入数据包括两个数据项,汽车到达或离去的信息,汽车牌号码。3) 每次输入完进行输出操作,若是车辆到达,输出汽车在停车场内或下通道上的停车位置;若是离去,输出汽车离去信息,若有

3、等候车辆,还会输出从通道进入车场的车牌号码;4) 其中栈依顺序存储结构实现,队列依链表存储结构实现。(2)该程序有4个主要函数1)主函数main()2) 创建栈stack()3)创建队列 shortgy()4) 建立节点 node()4详细设计(1)定义栈(临时停车栈和停车栈)以及基本操作临时栈和停车场:class stack/临时栈和停车场 int top; int s=new int3; 元素出栈: void init_stack() top = -1; 元素入栈: void push_stack(int x) stop = x; 删除栈顶元素: void pop_stack() /删除栈

4、顶元素 top = top -1; int top_stack() /取得栈顶元素 return stop; 判断栈空: boolean empty_stack() /判断停车场是否有车 if(top=-1) return true; else return false; 判断栈满: boolean full_stack() if(top=3) return true; else return false; (2)定义队列(停车场外的狭长通道)以及基本操作狭长通道队列: class shortgy/便道队列 Node head,tail;初始化队列: public void init_shor

5、tgy() /初始化队列 head = new Node(); tail = head;/表示队列的头结点和队列的尾节点 head.next = null; 元素入队 public void appendToTail(Node n) /插如节点到编导队列中 if(head = null)/链表为空,返回”便道为空 else tail.next = n; tail = n; /插入节点n到链表的尾部 元素出队: public void delectHeadTail(Node n) /删除便道队列的第一节点 if(head = null)/链表为空,返回”便道为空 System.out.print

6、ln(便道为空); elsehead = head.next;/删除第一个节点 返回首车牌号: int getHeadList() /返回队首车牌号 return head.next.number; 判断空队: boolean empty_shortgy() /若队列为空则返回true,否则返回false if( head = tail)return true; else return false; (3)判断车到达的情况 if (ps.top=2) q.appendToTail(node);/若停车场栈满车进入便道队 i+; System.out.println( 本车停放在便道第+i+号位

7、置); else/否则车进入停车场 ps.top+; ps.push_stack(num); j+; System.out.println(本车停在停车场第+j+号位置); break ;(4)判断车离去的情况while(!ps.empty_stack()&(ps.top_stack()!=num) /要离开的车不在停车场首位 temp = ps.top_stack(); ps.pop_stack(); ts.top+; ts.push_stack(temp); if(ps.empty_stack() System.out.println(停车场无+n+号码的车); else/要离开的车正好在

8、首位 System.out.println(ps.top_stack()+离去); ps.pop_stack(); out = true;/停车场空出一个位置 while(!ts.empty_stack()/如果栈不为空 temp = ts.top_stack();/临时栈的车回到停车场 ts.pop_stack(); ps.top+; ps.push_stack(temp); ps.display(); if(out&!q.empty_shortgy()/停车场栈有车要离去 /若便道队非空,让便道队头回到停车场中 temp = q.getHeadList(); /q.deleteHeadTa

9、il(Node n); out = false;/停车场中的空位补上了 System.out.println(temp+进入停车场); ps.push_stack(temp); break;(5)定义结点类class Node int number;/表示车牌号 Node next;/节点中的指针,指向下一个Node对象的引用 5调试分析1)问题1:编译car.java时经常出问题,有时粗心打错了变量名,有时时字母打错。后经过耐心的检查,完成程序。编程要求很细心和有耐心。2)问题2:使用了栈,但是车出栈的时候不按先进后出原则。在我经过多次检查都不能解决,不过从中我学会了如何使用API文档,在以

10、后要进一步学习栈和队 列。6使用说明 程序名为car.Java,使用bluej运行,程序执行后可看到如下:请输入信息(A: 到达 D: 离去 E:结束):1.输入A后再输入车牌号码,就会输出车停放的位置输入D后再输入车牌号码,如果输入的车牌号没停放在停车场中,结果就显示没有此车。如果输入的车号码存在,则显示车离去的信息。输入E,结果就会显示(E,0,0)结束程序。7测试结果 附录:源程序class Node int number;/表示车牌号 Node next;/节点中的指针,指向下一个Node对象的引用 队列类class shortgy/便道队列 Node head,tail; publi

11、c void init_shortgy() /初始化队列 head = new Node(); tail = head;/表示队列的头结点和队列的尾节点 head.next = null; public void appendToTail(Node n) /插如节点到编导队列中 if(head = null)/链表为空,返回”便道为空 head=n; tail =n; else tail.next = n; tail = n; /插入节点n到链表的尾部 public void delectHeadTail(Node n) /删除便道队列的第一节点 if(head = null)/链表为空,返回

12、”便道为空 System.out.println(便道为空); elsehead = head.next;/删除第一个节点 int getHeadList() /返回队首车牌号 return head.next.number; boolean empty_shortgy() /若队列为空则返回true,否则返回false if( head = tail)return true; else return false; class stack/临时栈和停车场 int top; int s=new int3; void init_stack() top = -1; void push_stack(i

13、nt x) stop = x; void pop_stack() /删除栈顶元素 top = top -1; int top_stack() /取得栈顶元素 return stop; boolean empty_stack() /判断停车场是否有车 if(top=-1) return true; else return false; boolean full_stack() if(top=3) return true; else return false; int getHeadStack() /返回停车场栈首位车牌号 return stop; void display() if(top= -

14、1)System.out.println(停车场无车); else System.out.println(停车场存放有车); System.out.println(stop); import java.io.*;import java.awt.*;public class car public static void main(String args)throws IOException boolean out = false; int temp,i =0, j = 0; String state; stack ts = new stack(),ps =new stack(); shortgy

15、 q = new shortgy (); ts.init_stack(); ps.init_stack(); q.init_shortgy();/定义两个空栈ts,ps和一个队列q while(true) BufferedReader keyin = new BufferedReader( new InputStreamReader(System.in); System.out.println(请输入信息(A: 到达 D: 离去 E:结束):); state =keyin.readLine();/读取选项 /System.out.println(汽车车牌号码;); System.out.pri

16、ntln(请输入汽车车牌号码); int n = Integer.parseInt(keyin.readLine();/输入的车牌号为整型 System.out.println(你输入的汽车车牌号码为+n+); int num = n;/车牌号 Node node = new Node(); node.number = num; char c = state.charAt(0);/取出输入字符串的首字母 switch(c) caseA: if (ps.top=2) q.appendToTail(node);/若停车场栈满车进入便道队 i+; System.out.println( 本车停放在便

17、道第+i+号位置); else/否则车进入停车场 ps.top+; ps.push_stack(num); j+; System.out.println(本车停在停车场第+j+号位置); break ; caseD: while(!ps.empty_stack()&(ps.top_stack()!=num) /要离开的车不在停车场首位 temp = ps.top_stack(); ps.pop_stack(); ts.top+; ts.push_stack(temp); if(ps.empty_stack() System.out.println(停车场无+n+号码的车); else/要离开的

18、车正好在首位 System.out.println(ps.top_stack()+离去); ps.pop_stack(); out = true;/停车场空出一个位置 while(!ts.empty_stack()/如果栈不为空 temp = ts.top_stack();/临时栈中的车回到停车场 ts.pop_stack(); ps.top+; ps.push_stack(temp); ps.display(); if(out&!q.empty_shortgy()/停车场栈中有车要离开 /若便道队非空,让便道队头回到停车场中 temp = q.getHeadList(); /q.deleteHeadTail(Node n); out = false;/停车场中的空位补上了 System.out.println(temp+进入停车场); ps.push_stack(temp); break; caseE: ps.top=0; ts.top=0; System.out.println(E,0,0); break; default: System.out.println(输入有误,请输入(A,D,E));

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1