Java 初学之--嗒嗒租车系统
来源:互联网 发布:jira ubuntu 破解版 编辑:程序博客网 时间:2024/04/30 14:59
最近工作不好找啊,没事继续回去看看Java的基础视频。在学完Java入门第二季之后有一个小作业需要自己动手完成。项目名称为嗒嗒租车系统。下面是具体的需求:
此系统的功能是基础控制台来完成操作
功能:
1、展示所有可租车辆。
2、由用户自己选择需要的车型
3、展示租车清单,包含:总金额、总载货量及其车型以及总载人量
4、要求不同车型具有不同的功能,比如客车只能载人,货车只能载货,皮卡既能载货又能载人。
思路就是
1、创建两个接口载货跟载人,一个抽象父类Car;
2、实现-卡车类 继承 父类Car 实现 载货接口;
实现-客车类 继承 父类Car 实现 载客接口;
实现-皮卡类 继承 父类Car 实现载客和货接口;
3、租车系统类:一维数组 实例化 卡车对象、客车对象 和 皮卡对象;
4、客户选车、分类汇总车辆后,输出租车明细与总价。
在自己整理了思路和参考了其他幕友的代码之后实现效果如下:
下面是目录结构,包含2个接口,5个类文件
下面是具体的代码:
Car.java:
package com.tony;/* * 所有Car的父类 */public class Car { protected String carName;//定义汽车的名字 protected int carId;//定义汽车的序号 protected double carPrice;//定义汽车的价格 public String getCarName() { return carName; } public void setCarName(String carName) { this.carName = carName; } public int getCarId() { return carId; } public void setCarId(int carId) { this.carId = carId; } public double getCarPrice() { return carPrice; } public void setCarPrice(double carPrice) { this.carPrice = carPrice; } public String toString() { return carName + "日租金" + carPrice + "元"; }}
PassageCar.java:
package com.tony;/* * 轿车类 */public class PassageCar extends Car implements IPassengerCapacity{ public PassageCar() { carName = "英菲尼迪"; carPrice = 1000; } @Override public int passengerCapacity() { // TODO Auto-generated method stub int passengerCapacity = 4; return passengerCapacity; } @Override public String toString() { return super.toString() + " 载客量:" + passengerCapacity() + "人。"; }}
Pickup.java:
package com.tony;
/*
* 皮卡类
*/
public class Pickup extends Car implements IPassengerCapacity, ICargoCapacity{
public Pickup() { carName = "皮卡雪"; carPrice = 500.0;}@Overridepublic double cargoCapacity() { // TODO Auto-generated method stub int cargoCapacity = 5; return cargoCapacity;}@Overridepublic int passengerCapacity() { // TODO Auto-generated method stub int passengerCapacity = 2; return passengerCapacity;}@Overridepublic String toString() { return super.toString() + " 载货量:" + cargoCapacity() + "吨。" + " 载客量:" + passengerCapacity() + "人。";}
}
Truck.java:
package com.tony;/* * 货车类 */public class Truck extends Car implements ICargoCapacity{ public Truck() { carName = "松花江"; carPrice = 1500; } @Override public double cargoCapacity() { // TODO Auto-generated method stub int cargoCapacity = 25; return cargoCapacity; } @Override public String toString() { return super.toString() + " 载货量:" + cargoCapacity() + "吨。"; }}
IPassengerCapacity.java:
package com.tony;/* * 载客量接口 */public interface IPassengerCapacity { public int passengerCapacity();}
ICargoCapacity.java:
package com.tony;/* * 载货量接口 */public interface ICargoCapacity { public double cargoCapacity();}
主类Initial.java:
package com.tony;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Scanner;/* * 嗒嗒租车主类 */public class Initial { public static void main(String[] args) { // TODO Auto-generated method stub systemInitial(); } //系统初始化 private static void systemInitial() { // TODO Auto-generated method stub System.out.println("欢迎使用嗒嗒租车系统!" + "\n" + "租车请输入数字1,退出请按任意键。"); //获取用户输入内容 Scanner scanner = new Scanner(System.in); //对用户输入的值进行判断并执行相应逻辑 try { int input = scanner.nextInt(); if (input == 1) { int count = 1; System.out.println(" ******可选车型一览表******"); Car [] cars = new Car[] {new PassageCar(), new Pickup(), new Truck()}; for(Car carList : cars) { System.out.println(count + "." + carList.toString()); count++; } selectCar(cars);//记录所选车辆 } } catch (Exception e) { // TODO: handle exception System.out.println("退出系统!"); scanner.close(); System.exit(0); } } //记录所选车辆 public static void selectCar(Car[] cars) { // TODO Auto-generated method stub System.out.println("***请输入车辆序号确认租车,输入数字'0'表示结束选车,输入'111'表示退出系统!***"); Scanner scanner = new Scanner(System.in); List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < cars.length; i++) { try { int carNum = scanner.nextInt(); if (carNum != 0) { if (carNum <= cars.length) { list.add(carNum);//如果用输入的数字<=车辆列表的长度,就将用户输入的数字添加到list中 } else if (carNum == 111) { System.out.println("取消租车,退出系统"); System.exit(0); } } else { int count = 0; int passengerCapacity = 0;//载客量 double cargoCapacity = 0;//载货量 int total = 0;//总价 System.out.println("选车完毕,你租用的车辆有以下几款:***共计" + list.size() + "辆。***"); Iterator<Integer> it = list.iterator();//迭代器 while(it.hasNext()) {//类似游标 int num = it.next(); count++; System.out.println(count + "." + cars[num - 1].toString()); passengerCapacity += getPassengerCapacity(cars[num - 1]); cargoCapacity += getICargoCapacity(cars[num - 1]); total += cars[num - 1].getCarPrice(); } System.out.println("所选车辆载客总量为:" + passengerCapacity + "人。"); System.out.println("所选车辆的载货总量为:" + cargoCapacity + "吨。"); System.out.println("所选车辆的租金为:" + total + "元。"); scanner.close(); break; } } catch (Exception e) { System.out.println("输入有误,系统关闭!"); scanner.close(); System.exit(0); } } } //累计载货量 public static double getICargoCapacity(Object object) { if (object instanceof ICargoCapacity) { double cargoCapacity = 0; cargoCapacity += ((ICargoCapacity) object).cargoCapacity(); return cargoCapacity; } else { return 0; } } //累计载客量 public static int getPassengerCapacity(Object object) { if (object instanceof IPassengerCapacity) { int passengerCapacity = 0; passengerCapacity += ((IPassengerCapacity) object).passengerCapacity(); return passengerCapacity; } else { return 0; } }}
1 0
- Java 初学之--嗒嗒租车系统
- 初学java-小项目租车系统
- 初学JAVA之二
- 初学JAVA之三
- 初学JAVA之四
- java初学之static
- java之初学习
- JAVA初学之容器
- 初学Java之Button
- 初学Java之LayoutManager
- 初学Java之九九乘法
- java初学之arrayList
- java初学之界面设计
- Java之注解初学
- Java初学之HelloWord
- Java初学之HelloWord
- linux初学之系统结构
- 初学java 之java 简介
- 关于STM32中CAN1_RX0_IRQn和CAN1_RX1_IRQn的使用
- 安卓ShareSDK分享总结
- unix网络编程之UNIX Domain Socket IPC (sockaddr_un )
- vs2013提示malloc是未定义的标识符
- qt creator下载
- Java 初学之--嗒嗒租车系统
- 1052. Linked List Sorting (25)
- java中会存在内存泄漏吗,请简单描述。
- L2-008 最长对称字串 以下标i展开
- freemarker日期函数处理
- ArrayList源码解析与实现
- OpenCV学习
- Javascript 对象(object)合并
- android签名打包发布到应用市场