租车系统
来源:互联网 发布:js设置select选中 编辑:程序博客网 时间:2024/06/10 04:38
1.这个练习算是学习java两周以来的一个总结,有了c++的基础学习java是轻松了不少。
2.到目前位置已经学到了接口,异常处理了,但涉及的深度还不够。
3.这个程序体现了面对对象程序设计的封装,继承,多态三大特性。
4.概述一下整个程序:
由6个类,2个接口组成。Car,Truck, Pickup三个类继承Auto类,并实现Cargo,manned两个接口。
Bus类继承Car类。RentSystem为主类。
5.渐渐的体会到了当码畜的感觉…….
实现功能如图:
package beans;public class Auto {private String name;private int rental;public Auto(String name, int rental) { super(); this.name = name; this.rental = rental;}public String getName() { return name;}public int getRental() { return rental;}}package beans;import customInterface.*;public class Truck extends Auto implements Cargo{ private int cargo; public Truck(String name, int rental, int cargo) { super(name, rental); this.cargo = cargo; } @Override public int getCargo() { // TODO Auto-generated method stub return cargo; }}package beans;import customInterface.*;public class Car extends Auto implements Manned{ private int MannedAmount; public Car(String name, int rental, int mannedAmount) { super(name, rental); MannedAmount = mannedAmount; } @Override public int getMannedAmount() { // TODO Auto-generated method stub return MannedAmount; }} package beans;import customInterface.Cargo;import customInterface.Manned;public class Pickup extends Auto implements Cargo,Manned{ private int cargo; private int MannedAmount; public Pickup(String name, int rental, int cargo, int mannedAmount) { super(name, rental); this.cargo = cargo; MannedAmount = mannedAmount; } @Override public int getMannedAmount() { // TODO Auto-generated method stub return MannedAmount; } @Override public int getCargo() { // TODO Auto-generated method stub return cargo; }}package customInterface;public interface Cargo { public int getCargo();}package customInterface;public interface Manned { public int getMannedAmount();}package beans;import customInterface.Manned;public class Bus extends Car { public Bus(String name, int rental, int mannedAmount) { super(name, rental, mannedAmount); // TODO Auto-generated constructor stub }}package main;import beans.*;import java.util.ArrayList;import java.util.Scanner;public class RentSystem { private ArrayList<Auto> list=new ArrayList<Auto>(); private int AmountofAuto; private int day; private int rent=0; private int load=0; private int AmountofPeople=0; //getter and setter public ArrayList<Auto> getList(){ return this.list; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } public int getAmountofAuto() { return AmountofAuto; } public void setAmountofAuto(int amountofAuto) { AmountofAuto = amountofAuto; } public int getRent(){ return rent; } public int getLoad() { return load; } public void setLoad(int load) { this.load += load; } public int getAmountofPeople() { return AmountofPeople; } public void setAmountofPeople(int amountofPeople) { this.AmountofPeople += amountofPeople; } //method,提供的服务 public void addAuto(Auto auto){ this.list.add(auto); } public void printInfor(){ System.out.println("您可租车的类型和其价目表:\n序号 汽车名称\t\t租金\t\t容量/载重"); for(Auto e :list){ if(e instanceof Car){ int m=((Car) e).getMannedAmount(); System.out.printf("%d. %s\t\t%d元/天\t\t%d人\n",(list.indexOf(e)+1),e.getName(),e.getRental(),m); } if(e instanceof Pickup){ int m=((Pickup)e).getMannedAmount(); int c=((Pickup)e).getCargo(); System.out.printf("%d. %s\t\t%d元/天\t\t%d人/%d吨\n",(list.indexOf(e)+1),e.getName(),e.getRental(),m,c); } if(e instanceof Truck){ int c=((Truck)e).getCargo(); System.out.printf("%d. %s\t\t%d元/天 %d吨\n",(list.indexOf(e)+1),e.getName(),e.getRental(),c); } } } //计算金额 public void countRent(int days,int list_index){ this.rent+= (list.get(list_index)).getRental()*days; } //更新总载货量和总人数 public void setBillInfor(ArrayList<Auto> list,int index){ int load=0; int AmountofPeople=0; if(list.get(index) instanceof Car){ AmountofPeople=((Car)list.get(index)).getMannedAmount(); setAmountofPeople(AmountofPeople); } if(list.get(index) instanceof Pickup){ AmountofPeople=((Pickup)list.get(index)).getMannedAmount(); load=((Pickup)list.get(index)).getCargo(); setAmountofPeople(AmountofPeople); setLoad(load); } if(list.get(index) instanceof Truck){ load=((Truck)list.get(index)).getCargo(); setLoad(load); } } private void printBill(ArrayList<Auto> list,RentSystem system) { // TODO Auto-generated method stub System.out.println("您的账单:"); System.out.println("--------可载人的车有------------------------"); for(Auto e :list){ if(e instanceof Car||e instanceof Pickup){ System.out.print(" "+e.getName()); } } System.out.println("\t共载人:"+system.getAmountofPeople()+"人"); System.out.println("--------可载货的车有------------------------"); for(Auto e :list){ if(e instanceof Truck||e instanceof Pickup){ System.out.print(" "+e.getName()); } } System.out.println("\t共载货:"+system.getLoad()+"吨"); } public static void main(String[] args) { // TODO Auto-generated method stub RentSystem system=new RentSystem(); system.addAuto(new Car("奥迪A4", 500, 4)); system.addAuto(new Car("马自达6", 400, 4)); system.addAuto(new Pickup("皮卡雪6", 450, 2, 4)); system.addAuto(new Bus("金龙", 800, 20)); system.addAuto(new Truck("松花江", 400, 4)); system.addAuto(new Truck("依维柯", 1000, 20)); System.out.printf("欢迎使用租车系统!\n您是否要租车: 1是 0否\n"); Scanner in=new Scanner(System.in); int anwser=in.nextInt(); if(anwser==1){ system.printInfor(); System.out.println("请输入您租车的天数"); system.setDay(in.nextInt()); System.out.println("请输入您要租车的数量:"); system.setAmountofAuto(in.nextInt()); int i=1; do { System.out.printf("输入第%d辆车的序号\n",i); int index=in.nextInt()-1; system.countRent(system.getDay(),index); system.setBillInfor(system.getList(),index); i++; }while(i<system.getAmountofAuto()+1); system.printBill(system.getList(),system); System.out.print("-----------------------------------------\n订单总金额:"+system.getRent()+"元"); } if(anwser==0){ System.out.println("再见!"); } if(anwser!=0&&anwser!=1) { System.out.println("输入有误"); } }}
0 0
- 租车系统
- 租车系统
- Java租车系统
- 租车系统框架
- 后台租车系统
- 易行租车系统
- 吱吱租车系统
- 租车系统改进版
- 简单的租车系统
- java实现租车系统
- 简单的租车系统
- java_简陋租车系统
- 易行租车系统 框架
- 金石礼仪租车业务系统 免费
- 租车系统Java版小程序
- 哒哒租车系统(慕课网学习)
- java 实现dada租车系统
- Java 初学之--嗒嗒租车系统
- 中国A类IP地址小调查以及IPv6展望
- 自动图片生成在前端开发中的一些尝试
- Xcode 中搜索任何条件文本
- Unity 优化全解析2
- CentOS6.5安装MongoDB
- 租车系统
- 【BMI指数计算器V3.0】项目实战
- 如何在Mac中使用Android SDK,使用adb工具避免出现-bash: adb: command not found
- i2c总线时序
- ios 易用库
- static的简单用法
- JSON.parse()和JSON.stringify()
- qmake路径指定
- C++中替代sprintf的std::ostringstream输出流详解