面向对象大作业—停车场计费系统
一、选题与前期调查
选题
随着经济的快速发展,特别是汽车和住房两大消费热点的持续升温,对于停车场的需求越来越迫切,停车场收费系统作为公共建筑和大型住宅区的重要组成成分,越来越引起人们的重视。地下停车场收费系统从早期的人工收费演变到现在的智能收费,有利于有效防止收入流失;能减少工作人员,降低使用成本、人工成本;计算机系统的统计汇总等强功能提高了管理效率。
前期调查
需求描述
(1)每次停车信息包括:车牌号码,车位号码,入场时间,出场时间。
(2)车辆进、出场后要显示停车场的空闲车位数。
(3)车辆入场后系统需记录车牌号码,入场时间。
(4)车辆出场时,记录出场时间并显示本次停车费用(例如:1小时内免费,1小时以上每小时3元)。
二、UML结构图
三、主要代码
(代码复制过程中删除自动生成setter/getter)
1、car类
private String carNum;private Date inTime;private Date outTime;private int parkNum;{System.out.println("********************");System.out.println("欢迎到xxx停车场停车!");System.out.println("本停车场前一个小时免费(不包含1小时),超时后每小时收费3元,不足一小时的部分不计费");System.out.println("********************");}public car(){}public car(String carNum){ this.carNum=carNum;this.inTime=new Date();}public long stayTime(){return (this.outTime.getTime()-this.inTime.getTime())/3600000;}
2、pakinglot类
Scanner scn=new Scanner(System.in);private static car[] cars=new car[50];private static car[] temp=new car[50];private static int num=0;private static int[] parkNum=new int[50];public parkinglot(){int a=1;for(int i=0;i<50;i++){parkNum[i]=a;a++;}}public void carIn(int i){if(num<50){String carNum=scn.next();temp[i]=new car(carNum);System.out.println("********************");System.out.println("当前剩余车位数为"+(50-num)); System.out.println("********************");num++; }else{System.out.println("********************");System.out.println("抱歉!本停车场暂无空余车位");System.out.println("********************");} } public void parkWhere(int i){temp[i].setParkNum(scn.nextInt());this.parkNum[(temp[i].getParkNum()-1)]=0;this.cars[(temp[i].getParkNum()-1)]=temp[i];}public void carOut(){String carNum=scn.next();for (car c:this.cars){if((c!=null)&&(c.getCarNum().equals(carNum))){c.setOutTime(); num--;System.out.println("********************");System.out.println("当前剩余车位数为"+(50-num)); System.out.println("本次停车费用为"+3*(c.stayTime())+"元,欢迎下次光临");System.out.println("********************");this.parkNum[(c.getParkNum()-1)]=c.getParkNum();this.cars[(c.getParkNum()-1)]=null;}}}public void findCar(String carNum){int y=0;for (car c:this.cars){if(c!=null){if(c.getCarNum().equals(carNum)){System.out.println("********************");System.out.println("车"+carNum+"在本停车场");System.out.println("********************");y++;break;} }}if(y==0){System.out.println("********************");System.out.println("车"+carNum+"不在本停车场");System.out.println("********************");}}public void rest(){System.out.println("********************");System.out.println("空余的车位有:");for(int a:this.parkNum){if(a!=0){System.out.printf(a+" "); }}System.out.println(" ");System.out.println("********************");} }
3、主类
public static void main(String[] args){parkinglot pl=new parkinglot();Scanner scn=new Scanner(System.in);for(;;){String op=scn.next();if (op.equals("in")){int i=scn.nextInt();pl.carIn(i);}else if(op.equals("park")){int j=scn.nextInt();pl.parkWhere(j);}else if(op.equals("out")){pl.carOut();}else if(op.equals("find")){String carNum=scn.next();pl.findCar(carNum);}else if(op.equals("rest")){pl.rest();}else if(op.equals("shut")){break;}else{System.out.println("error"); }}} }
四、系统描述
本代码一共编写了三个类,其中一个主类,一个car类和一个parkinglot类。car类中编写了入场时间,出场时间,车牌号码,停车位号码等属性,以及对应的构造方法和set和get方法,计算汽车停车时间的实例方法,和一个包含输出欢迎语句和停车场收费规则的实例代码块。parkinglot类中编写了停车场中的停车数,car类数组和停车位号码数组等属性,车入场,出场,查找车辆,查询剩余停车位,记录车辆停车位等方法。
面向对象大作业—停车场计费系统相关推荐
- 数据结构大作业——银行排队系统
数据结构大作业--银行排队系统 离散事件模拟--银行业务处理 题目分析 声明部分 辅助函数 初始化窗口节点 创建顾客节点 比较四个窗口的排队人数 输出离开顾客的信息 主要函数 完整的头文件代码 离散事 ...
- HTML5期末大作业:订餐系统网站设计——绿色的网上订餐系统(23个页面) 网页作品 订餐系统网页设计作业模板 学生网页制作源代码下载
HTML5期末大作业:订餐系统网站设计--绿色的网上订餐系统(23个页面) 网页作品 订餐系统网页设计作业模板 学生网页制作源代码下载 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. ...
- 设计模式大作业动物运动会系统【多种设计模式+文档】
目录 一.项目简介 二.Design Pattern 汇总表 三.设计模式详述 3.1 Abstract Factory 3.1.1 AbstractFactoryTest 实现 API 3.1.2 ...
- Android大作业:备忘录系统
Android大作业:备忘录系统 杂言: android终于结课了,最后的大作业要求做一个备忘录系统.刚拿到题目的时候意气风发立志做一个比系统自带备忘录好的APP自己用,结果做着做着发现自己实在是菜的 ...
- DIY简易输入式停车场计费系统
DIY简易输入式停车场计费系统 最近学习了很多集合,出于练习(好玩)的目的自制一个简易的停车计费系统.具体功能如下: 1.把驶入停车场的信息记录下来,主要用于标记这辆车的出入时间. 2.可以查看在停车 ...
- 蔬菜信息配送系统c语言编程,c语言大作业物流配送系统程序(10页)-原创力文档...
c语言大作业物流配送系统程序 #include #include #include //日期 struct date { int year; int month; int day; }; //订单链表 ...
- 51单片机大作业 停车场管理系统
记录一下单片机大作业, 项目介绍: 我们小组在经过了半个学期的计算机系统设计的学习后,并结合了平时停车场的管理模式,使用C51单片机和各个模块完成了一个停车场的管理系统.该套系统模拟了当汽车进入停车时 ...
- java课程大作业——学生教务系统(IDEA+SqlServer 2008)
写在前面: 这学期学了java面向对象程序设计这门课(非计算机专业),这是本人的结课大作业,学的都是一些很基础很基础的东西,在网上找了一些资料,然后扩展了一下,最终做出来了一个最简单的学生教务管理系统 ...
- java大作业私人管家系统_操作系统概念(Operating System Concepts)第十版期中大作业...
更正: 第一题中,哲学家就餐问题中的哲学家的状态state[i]应属于临界区变量,是可能会产生读写冲突的,所以对其进行读写的时候均需要加一把互斥锁. 非常感谢不听不听不听的指正. ---------- ...
最新文章
- Visio绘制功能分解图
- 第十、十一周项目-阅读程序,写出这些程序的运行结果(4)
- python【Matlibplot绘图库】优雅的画极坐标(玫瑰)图
- python文件打包成exe是 upx不可用、找不到py文件_使用PyInstaller将Python程序打包成一个单独的exe文件...
- Windows 7 自动更新失败导致无法进系统解决方案
- django-session了解
- 最新 MySQL数据库安装详解(简洁快速)
- sql server 恢复数据库时提示有其他用户连接,怎么办?
- jsp用下拉框代替文本框_PPT封面太丑?教你三个高手都在用的美化技巧
- 计算机诞生了自主意识,计算机会有意识吗?整合信息或非人类独有
- 4线电阻屏linux驱动,TQ2440四线电阻式触摸屏驱动程序的分析
- 解决OSS传输的文本文件网页打开乱码
- HIVE 系列 (4) hive 内部表和外部表HQL查询统计
- 陈情令和明月照我心都有超常镜头,为何前者被原谅,后者被唾弃
- 大数据相关资料论文小结
- 精通Web Analytics 2.0 (7) 第五章:荣耀之钥:度量成功
- 说说找工作这些事儿(未完)
- 解决maya导出FBX出现问题。
- oracle环境配置全过程
- 入网模组 |合宙Air 202 GPRS模组接入机智云(硬件开发平台)