您的位置:首页 > 编程语言 > Java开发

Java入门第二季-练习:租车系统

2016-05-15 22:19 543 查看
该练习题为建立一个如下所示的租车系统







其中,车的类型有载人、载货和既可载人又可载货三种,那么可以先定义一个父类:车(Car),然后再分别定义三个子类:人车(RCar)、货车(HCar)以及人货车(RHCar)。

package Rent;

public class Car {
int num;//序号
String name;//名称
double price;//价格
int volume;//载货量
int count;//载人量
}




package Rent;
public class RCar extends Car{
public RCar(int num, String name, double price, int count){
this.num = num;
this.name = name;
this.price = price;
this.count = count;
}
public void List(){
System.out.println(this.num+"     "+this.name+" "+this.price+"元/天"+" "+"载人:"+this.count+"人");
}
}
package Rent;
public class HCar extends Car{
public HCar(int num, String name, double price, int volume){
this.num = num;
this.name = name;
this.price = price;
this.volume = volume;
}
public void List(){
System.out.println(this.num+"     "+this.name+" "+this.price+"元/天"+" "+"载货:"+this.volume+"吨");
}
}
package Rent;
public class RHCar extends Car{
public RHCar(int num, String name, double price, int count, int volume){
this.num = num;
this.name = name;
this.price = price;
this.count = count;
this.volume = volume;
}
public void List(){
System.out.println(this.num+"     "+this.name+" "+this.price+"元/天"+" "+"载人:"+this.count+"人 载货:"+this.volume+"吨");
}
}
分别给子类添加输出的方法(“List”)

主函数:

咔咔租车,听起来就很爽

package Rent;
import java.util.*;

public class Rent {

public static void main(String[] args){
System.out.println("欢迎使用咔咔租车:"+'\n'+"您是否要租车:1是  0否 ");
Scanner input = new Scanner(System.in);
int answer =input.nextInt();
if (answer==1){
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号   汽车名称      租金            容量");
Car[] rentCar = {new RCar(1,"奥迪A4  ",500,4),new RCar(2,"马自达6 ",400,4),new RHCar(3, "皮卡雪6 ", 450, 4, 2),new RCar(4, "金龙      ", 800, 20),new HCar(5, "松花江   ", 400, 4),new HCar(6, "依维柯   ", 1000, 20) };
for(Car cars: rentCar){
if(cars instanceof RCar) ((
4000
RCar) cars).List();
if(cars instanceof HCar) ((HCar) cars).List();
if(cars instanceof RHCar) ((RHCar) cars).List();
}
System.out.println("请输入需要租车的数量:");
int num = input.nextInt();
int[] rentnum = new int[6];
for(int i = 1; i <= num; i++){
System.out.println("请输入第"+i+"辆车的序号:");
rentnum[i-1] = input.nextInt();
}
System.out.println("请输入租车天数:");
int day = input.nextInt();
double allprice = 0;
for(int i = 1; i <= num; i++){
allprice += rentCar[rentnum[i-1]-1].price * day;
}

System.out.println("您的账单:");
System.out.println("=====可载人的车有=====");
int allCount = 0, allVolume = 0;
for(int i = 0; i < num; i++){
if(rentCar[rentnum[i]-1] instanceof RCar || rentCar[rentnum[i]-1] instanceof RHCar){
System.out.println(rentCar[rentnum[i]-1].name);
allCount += rentCar[rentnum[i]-1].count;
}
}
System.out.println("共载人:"+allCount+"人");
System.out.println("=====可载货的车有=====");
for(int i=0;i<num;i++){
if(rentCar[rentnum[i]-1] instanceof HCar || rentCar[rentnum[i]-1] instanceof RHCar){
System.out.println(rentCar[rentnum[i]-1].name);
allVolume += rentCar[rentnum[i]-1].volume;
}
}
System.out.println("共载货:"+allVolume+"吨");
System.out.println("------------\n租车总价格为:"+allprice+"元");
}
}

}


运行结果如下:

欢迎使用咔咔租车:

您是否要租车:1是  0否 

1

您可租车的类型及其价目表:

序号   汽车名称      租金            容量

1     奥迪A4   500.0元/天 载人:4人

2     马自达6  400.0元/天 载人:4人

3     皮卡雪6  450.0元/天 载人:4人 载货:2吨

4     金龙       800.0元/天 载人:20人

5     松花江    400.0元/天 载货:4吨

6     依维柯    1000.0元/天 载货:20吨

请输入需要租车的数量:

4

请输入第1辆车的序号:

1

请输入第2辆车的序号:

3

请输入第3辆车的序号:

4

请输入第4辆车的序号:

6

请输入租车天数:

2

您的账单:

=====可载人的车有=====

奥迪A4  

皮卡雪6 

金龙      

共载人:28人

=====可载货的车有=====

皮卡雪6 

依维柯   

共载货:22吨

------------

租车总价格为:5500.0元
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: