定义了汽车抽象类,客车,货车,皮卡三个子类 。 放在zucheSystem包中
定义载客和载货两个接口。 放在Icar包中
最后一个实现类。 放在carSystem包中
欢迎大家一起改进讨论。
package zucheSystem;
//定义一个汽车抽象类
public abstract class CarStore {
private String name;
private double money;
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package zucheSystem;
import Icar.zaihuo;
//货车类
public class huoche extends CarStore implements zaihuo{
private int newGood;
public huoche(int id,String name,double money,int newGood){
super.setId(id);
super.setName(name);
super.setMoney(money);
this.setGood(newGood);
}
@Override
public void setGood( int newGood) {
// TODO 自动生成的方法存根
this.newGood=newGood;
}
@Override
public int getGood() {
// TODO 自动生成的方法存根
return newGood;
}
//重写输出语句
public String toString() {
return super.getId() + " \t" + super.getName() + "\t" + super.getMoney() + "元/天\t" + " " + "载货:" + this.getGood() + "吨";
}
}
package zucheSystem;
import Icar.zaike;
//客车类
public class keche extends CarStore implements zaike{
private int newPeople;
public keche(int id,String name,double money,int newPeople){
super.setId(id);
super.setName(name);
super.setMoney(money);
this.setPeople(newPeople);
}
@Override
public void setPeople(int newPeople) {
// TODO 自动生成的方法存根
this.newPeople=newPeople;
}
@Override
public int getPeople() {
// TODO 自动生成的方法存根
return newPeople;
}
@Override
//重写输出语句
public String toString() {
return super.getId() + "\t " + super.getName() + "\t" + super.getMoney() + "元/天\t" + " " + "载人:" + this.getPeople() + "人";
}
}
package zucheSystem;
import Icar.zaihuo;
import Icar.zaike;
//皮卡类
public class pika extends CarStore implements zaike,zaihuo{
private int newGood;
private int newPeople;
public pika (int id ,String name,double money,int newPeope,int newGood){
super.setId(id);
super.setName(name);
super.setMoney(money);
this.setPeople(newPeope);
this.setGood(newGood);
}
@Override
public void setGood( int newGood) {
// TODO 自动生成的方法存根
this.newGood=newGood;
}
@Override
public int getGood() {
// TODO 自动生成的方法存根
return newGood;
}
@Override
public void setPeople(int newPeople) {
// TODO 自动生成的方法存根
this.newPeople=newPeople;
}
@Override
public int getPeople() {
// TODO 自动生成的方法存根
return newPeople;
}
@Override
//重写输出语句
public String toString() {
return super.getId() + "\t " + super.getName() + "\t" + super.getMoney() + "元/天\t" + " " + "载人"+this.getPeople()+"\t"+"载货:" + this.getGood() + "吨";
}
}
package Icar;
//载货接口
public interface zaihuo {
public void setGood(int n);
public int getGood();
}
package Icar;
//载客接口
public interface zaike {
public void setPeople(int n);
public int getPeople();
}
package CarSystem;
import java.util.Scanner;
import zucheSystem.CarStore;
import zucheSystem.huoche;
import zucheSystem.keche;
import zucheSystem.pika;
//租车系统类
public class use {
//初始化一个车库
CarStore[] car={new keche(1,"奥迪A4",500,4),
new keche(2,"马自达",400,4),
new pika(3,"皮卡雪",450,4,20),
new keche(4,"金龙",800,20),
new huoche(5,"松花江",400,4),
new huoche(6,"依维柯",1000,20)
};
Scanner sc=new Scanner(System.in);
public void useSysem(){
System.out.println("欢迎使用答答租车系统: \n是否租车 1是 0否");
int input=sc.nextInt();
if(input==1){
System.out.println("您可租车的类型和价目表: "+"\n序号"+"\t"+"车名"+"\t"+"租金"+"\t"+ " \t"+"容量");
for(int i=0;i<car.length;i++){
System.out.println(car[i]);
}
}else if(input==0){System.out.println("欢迎下次光临!");
System.exit(0);
}else{System.out.println("输入有误!系统自爆程序已启动!");
System.exit(0);}
String outname=" "; //车名
double Rmbsum=0; //租金总额
int Goodsum=0; //总载货量
int Peoplesum=0; // 总载客量
System.out.println("请输入您要租车的数量:");
int num=sc.nextInt();
if(num==0||num<0){
System.out.println("啪,你已经死了!");
System.exit(0);
}
int count=1;
int j;
while(count<=num){
do{
//do-while循环判断输入是否正确。
System.out.println("请输入第"+(count)+"辆车的序号:"+"\t"+"(温馨提示有效序号为1到"+car.length+")");
j=sc.nextInt()-1;
}while(j>=car.length||j<0);
//获得对应序号的车名,租金,容量
if(car[j].getClass()==keche.class){
outname=car[j].getName();
System.out.println(outname);
Rmbsum=car[j].getMoney()+Rmbsum;
Peoplesum=((keche) car[j]).getPeople()+Peoplesum;
}
else if(car[j].getClass()==huoche.class){
outname=car[j].getName();
System.out.println(outname);
Rmbsum=car[j].getMoney()+Rmbsum;
Goodsum=Goodsum+((huoche)car[j]).getGood();
}
else if(car[j].getClass()==pika.class){
outname=car[j].getName();
System.out.println(outname);
Rmbsum=car[j].getMoney()+Rmbsum;
Goodsum=Goodsum+((pika)car[j]).getGood();
Peoplesum=((pika) car[j]).getPeople()+Peoplesum;
}
count++;
}
System.out.println("请输入您要租的天数:");
int day=sc.nextInt();
System.out.println("您的账单是:");
System.out.println("载客数"+Peoplesum+"人"+"\n"+"载货量"+Goodsum+"吨"+"\n"+"总金额"+Rmbsum*day+"元");
System.out.println("欢迎下次光临!");
}
//测试类
public static void main(String[] args){
use u=new use();
u.useSysem();
System.exit(0);
}
}
热门评论
你的容量这里有问题,租车价目表皮卡车这里你就显示不了,容量列表全显示为0,而且载客数和载货量不能计算
可惜只能算一个,计算不了总量
运行结果算不出载客总数和总重量呢.