一、选题与前期调查

选题

随着经济的快速发展,特别是汽车和住房两大消费热点的持续升温,对于停车场的需求越来越迫切,停车场收费系统作为公共建筑和大型住宅区的重要组成成分,越来越引起人们的重视。地下停车场收费系统从早期的人工收费演变到现在的智能收费,有利于有效防止收入流失;能减少工作人员,降低使用成本、人工成本;计算机系统的统计汇总等强功能提高了管理效率。

前期调查

需求描述

(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类数组和停车位号码数组等属性,车入场,出场,查找车辆,查询剩余停车位,记录车辆停车位等方法。

面向对象大作业—停车场计费系统相关推荐

  1. 数据结构大作业——银行排队系统

    数据结构大作业--银行排队系统 离散事件模拟--银行业务处理 题目分析 声明部分 辅助函数 初始化窗口节点 创建顾客节点 比较四个窗口的排队人数 输出离开顾客的信息 主要函数 完整的头文件代码 离散事 ...

  2. HTML5期末大作业:订餐系统网站设计——绿色的网上订餐系统(23个页面) 网页作品 订餐系统网页设计作业模板 学生网页制作源代码下载

    HTML5期末大作业:订餐系统网站设计--绿色的网上订餐系统(23个页面) 网页作品 订餐系统网页设计作业模板 学生网页制作源代码下载 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. ...

  3. 设计模式大作业动物运动会系统【多种设计模式+文档】

    目录 一.项目简介 二.Design Pattern 汇总表 三.设计模式详述 3.1 Abstract Factory 3.1.1 AbstractFactoryTest 实现 API 3.1.2 ...

  4. Android大作业:备忘录系统

    Android大作业:备忘录系统 杂言: android终于结课了,最后的大作业要求做一个备忘录系统.刚拿到题目的时候意气风发立志做一个比系统自带备忘录好的APP自己用,结果做着做着发现自己实在是菜的 ...

  5. DIY简易输入式停车场计费系统

    DIY简易输入式停车场计费系统 最近学习了很多集合,出于练习(好玩)的目的自制一个简易的停车计费系统.具体功能如下: 1.把驶入停车场的信息记录下来,主要用于标记这辆车的出入时间. 2.可以查看在停车 ...

  6. 蔬菜信息配送系统c语言编程,c语言大作业物流配送系统程序(10页)-原创力文档...

    c语言大作业物流配送系统程序 #include #include #include //日期 struct date { int year; int month; int day; }; //订单链表 ...

  7. 51单片机大作业 停车场管理系统

    记录一下单片机大作业, 项目介绍: 我们小组在经过了半个学期的计算机系统设计的学习后,并结合了平时停车场的管理模式,使用C51单片机和各个模块完成了一个停车场的管理系统.该套系统模拟了当汽车进入停车时 ...

  8. java课程大作业——学生教务系统(IDEA+SqlServer 2008)

    写在前面: 这学期学了java面向对象程序设计这门课(非计算机专业),这是本人的结课大作业,学的都是一些很基础很基础的东西,在网上找了一些资料,然后扩展了一下,最终做出来了一个最简单的学生教务管理系统 ...

  9. java大作业私人管家系统_操作系统概念(Operating System Concepts)第十版期中大作业...

    更正: 第一题中,哲学家就餐问题中的哲学家的状态state[i]应属于临界区变量,是可能会产生读写冲突的,所以对其进行读写的时候均需要加一把互斥锁. 非常感谢不听不听不听的指正. ---------- ...

最新文章

  1. Visio绘制功能分解图
  2. 第十、十一周项目-阅读程序,写出这些程序的运行结果(4)
  3. python【Matlibplot绘图库】优雅的画极坐标(玫瑰)图
  4. python文件打包成exe是 upx不可用、找不到py文件_使用PyInstaller将Python程序打包成一个单独的exe文件...
  5. Windows 7 自动更新失败导致无法进系统解决方案
  6. django-session了解
  7. 最新 MySQL数据库安装详解(简洁快速)
  8. sql server 恢复数据库时提示有其他用户连接,怎么办?
  9. jsp用下拉框代替文本框_PPT封面太丑?教你三个高手都在用的美化技巧
  10. 计算机诞生了自主意识,计算机会有意识吗?整合信息或非人类独有
  11. 4线电阻屏linux驱动,TQ2440四线电阻式触摸屏驱动程序的分析
  12. 解决OSS传输的文本文件网页打开乱码
  13. HIVE 系列 (4) hive 内部表和外部表HQL查询统计
  14. 陈情令和明月照我心都有超常镜头,为何前者被原谅,后者被唾弃
  15. 大数据相关资料论文小结
  16. 精通Web Analytics 2.0 (7) 第五章:荣耀之钥:度量成功
  17. 说说找工作这些事儿(未完)
  18. 解决maya导出FBX出现问题。
  19. oracle环境配置全过程
  20. 入网模组 |合宙Air 202 GPRS模组接入机智云(硬件开发平台)

热门文章

  1. AutoJs学习-QQ空间快速批量浏览
  2. 面试官:说一下HashMap原理,循环链表是如何产生的
  3. Asp.net WebAPI 教程整理
  4. 一款魔兽盗号木马分析
  5. 如何对计算机进行网络限速,如何给共享上网的电脑限速
  6. 即时通信方法、系统、装置和即时通信终端
  7. linux文字声音转换程序,linux下文字转语音库pyttsx3用法
  8. 信安小白,一篇博文讲明白上传漏洞——获得shop靶机的Webshell
  9. java 中实现微信支付退款功能案例
  10. 在线教育平台开发的“前世今生”