有问题的同学,欢迎提问,我们一起进步,加油!
io.leachar.rental 用来存放主函数
io.leachar.sys 用来存放答答租车系统主要部分
io.leachar.medel 用来存放车的类型。车、载人、载货、载人载货
io.leachar.rental.Rental(Rental.java)
package io.leachar.rental;
import java.util.Scanner;
import io.leachar.sys.Dada;
/**
* 主函数
* @author Leachar
*
*/
public class Rental {
public static void main(String[] args) {
System.out.println("欢迎使用答答租车系统");
System.out.println("您是否要租车:1是 0否");
Scanner input = new Scanner(System.in);
int y = input.nextInt();
if(y==1){
Dada dada = new Dada();
dada.userSys();
}else if(y==0){
System.out.println("欢迎下次使用!");
}else{
System.out.println("请输入1或者0");
}
}
}
io.leachar.sys.Dada(Dada.java)
package io.leachar.sys;
import io.leanchar.medel.Bus;
import io.leanchar.medel.Car;
import io.leanchar.medel.Pickup;
import io.leanchar.medel.Truck;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 答答租车系统主要部分
* @author Leacahr
*
*/
public class Dada {
int sum = 0; //总金额
int peopleSum = 0; //总载人数
int goodsSum = 0; //总载货数
ArrayList<String> peopleName = new ArrayList<String>(); //可载人的汽车名称
ArrayList<String> goodsName = new ArrayList<String>(); //可载人的汽车名称
public void userSys(){
System.out.println("您可租车的类型及其价目表");
//创建车库数组
Car[] car = {
new Bus(1,"奥迪A4",500,4),
new Bus(2, "马自达", 500, 4),
new Pickup(3, "皮雪卡6", 450, 4, 2),
new Bus(4,"金龙",800,20),
new Truck(5, "松花江", 400, 4),
new Truck(6, "依维柯", 1000, 20)
};
//输出车库
System.out.println("序号\t汽车名称\t租金\t容量");
for(int i=0;i<car.length;i++){
System.out.println(car[i]);
}
System.out.println("请输入您要租车的数量");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
//判断输入的租车数量是否合理
if(n>0){
for(int j=1;j<=n;j++){
System.out.println("请输入第"+j+"辆车的序号");
int carnum = input.nextInt();
//判断输入的需要是否合理
if(carnum>6 || carnum <=0){
System.out.println("这次输入无效,请输入合理的序号!");
continue;
}else{
//得到数组的下标
carnum = carnum - 1;
}
//计算1天金额
sum += car[carnum].getRent();
//判断是载货还是载人
if(car[carnum].getClass()==Bus.class){
//计算总人数
peopleSum += ((Bus) car[carnum]).getPeople();
//将选中的载人汽车名称加入集合
peopleName.add(car[carnum].getName());
}else if(car[carnum].getClass()==Truck.class){
//计算总货物
goodsSum += ((Truck) car[carnum]).getGoods();
//将选中的载货汽车名称加入集合
goodsName.add(car[carnum].getName());
}else if(car[carnum].getClass()==Pickup.class){
//计算总人数和总货物,以及载人和载物汽车名称存入数组
peopleSum += ((Pickup) car[carnum]).getPeople();
goodsSum += ((Pickup) car[carnum]).getGoods();
goodsName.add(car[carnum].getName());
peopleName.add(car[carnum].getName());
}else{
System.out.println("没有该车型");
}
}
System.out.println("您要租车的天数");
int day = input.nextInt();
//天数总金额
sum *= day;
System.out.println("你的账单为");
//使用遍历,输出载人汽车名称
System.out.println("***可载人的汽车有");
for(String newPeople:peopleName){
System.out.print(newPeople+"\t");
}
System.out.println("共载人"+peopleSum+"人");
//使用遍历,输出载货汽车名称
System.out.println("***可载货的汽车有");
for(String newGoods:goodsName){
System.out.print(newGoods+"\t");
}
System.out.println("共载货"+goodsSum+"吨");
//输出租车总金额
System.out.println("****租车价格:"+sum+"元");
}else if(n<=0){
System.out.println("请输入一个合理的数字");
}
}
}
io.leanchar.medel.Car(Car.java)
package io.leanchar.medel;
/**
* 所有车共有的
* @author Leachar
*
*/
public abstract class Car {
private int num; //序号
private String name; //汽车名称
private int rent; //汽车租金
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRent() {
return rent;
}
public void setRent(int rent) {
this.rent = rent;
}
}
io.leanchar.medel.Truck(Truck.java)
package io.leanchar.medel;
/**
* 只能载货
* @author Leachar
*
*/
public class Truck extends Car implements IGoods {
private int goods; //用来存放载货数量
public Truck(int num,String name,int rent,int goods){
super.setNum(num);
super.setName(name);
super.setRent(rent);
this.goods = goods;
}
@Override
public void setGoods(int goods) {
// TODO Auto-generated method stub
this.goods = goods;
}
@Override
public int getGoods() {
// TODO Auto-generated method stub
return goods;
}
@Override
public String toString() {
return getNum()+"\t"+getName()+"\t"+getRent()+"元/天\t载货"+getGoods()+"吨";
}
}
io.leanchar.medel.Pickup(Pickup)
package io.leanchar.medel;
/**
* 可载人也可载货
* @author Leachar
*
*/
public class Pickup extends Car implements IGoods, IManned {
private int people;
private int goods;
public Pickup(int num,String name,int rent,int people,int goods){
super.setNum(num);
super.setName(name);
super.setRent(rent);
this.people = people;
this.goods = goods;
}
@Override
public void setPeople(int people) {
// TODO Auto-generated method stub
this.people = people;
}
@Override
public int getPeople() {
// TODO Auto-generated method stub
return people;
}
@Override
public void setGoods(int goods) {
// TODO Auto-generated method stub
this.goods = goods;
}
@Override
public int getGoods() {
// TODO Auto-generated method stub
return goods;
}
@Override
public String toString() {
return getNum()+"\t"+getName()+"\t"+getRent()+"元/天\t载人"+getPeople()+"人 载货"+getGoods()+"吨";
}
}
io.leanchar.medel.Bus(Bus.java)
package io.leanchar.medel;
/**
* 只能载人
* @author Leachar
*
*/
public class Bus extends Car implements IManned {
private int people; //使用people存放载人
//给变量赋值
public Bus(int num,String name,int rent,int people){
super.setNum(num);
super.setName(name);
super.setRent(rent);
this.people = people;
}
@Override
public void setPeople(int people) {
// TODO Auto-generated method stub
this.people = people;
}
@Override
public int getPeople() {
// TODO Auto-generated method stub
return people;
}
@Override
public String toString() {
return getNum()+"\t"+getName()+"\t"+getRent()+"元/天\t载人"+getPeople()+"人";
}
}
io.leanchar.medel.IGoods(IGoods.java)
package io.leanchar.medel;
/**
* 载货汽车共有的接口
* @author Leachar
*
*/
public interface IGoods {
public void setGoods(int goods);
public int getGoods();
}
io.leanchar.medel.IManned(IManned)
package io.leanchar.medel;
/**
* 载人车型共有接口
* @author Leachar
*
*/
public interface IManned {
public void setPeople(int people);
public int getPeople();
}
热门评论
//判断是载货还是载人 if(car[carnum].getClass()==Bus.class){
这个可以用equal 判断吗?
要是租车数量输入为0呢,是不是也要重新输入