java第二季综合练习
控制台版的答答租车系统
- 展示所有可租车辆
- 选择车型,租车辆
- 展示租车清单,包含总金额,总载货量及车型,总载人量及车型
代码
initail.java
package com.scy;
import java.util.Scanner;
public class initail {
public static void main(String[] args) {
// TODO Auto-generated method stub
//用数组存储车的信息
Vehicle[] ve= {
new Car (1,"奥迪4",500,4),
new Car(2,"马自达6",400,4),
new Pik (3,"皮卡雪6",450,4,2),
new Car(4,"金龙",800,20),
new Track(5,"松花江",400,4),
new Track (6,"依维柯", 1000,20)
};
//开始进入时显示的
System.out.println("欢迎来到达达租车系统");
System.out.println("您是否要租车:1是 0否");
Scanner sc = new Scanner(System.in);
int in = sc.nextInt();
//展示所有可租车辆
if (in==1)
{
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号\t汽车名称"+" 租金\t"+"\t容量\t");
for(int i=0;i<ve.length;i++) {
ve[i].show();
}
/*
System.out.println("1、 奥迪A4 500元/天 载人:4人");
System.out.println("2、 马自达6 400元/天 载人:4人");
System.out.println("3、 皮卡雪6 450元/天 载人:4人 载货:2吨");
System.out.println("4、 金龙 800元/天 载人:20人");
System.out.println("5、 松花江 400元/天 载货:4吨");
System.out.println("6、 依维柯 1000元/天 载货:20吨");
*/
//输入租车的数量
System.out.println("请您输入要租汽车的数量:");
Scanner s1= new Scanner(System.in);
int in2=s1.nextInt();
//用san个数组分别存(所有选的车),(载人,还是载货)
Vehicle[] array1=new Vehicle[in2];
Vehicle[] array=new Vehicle[in2];
Vehicle[] arr2=new Vehicle[in2];
//a,b用来存array,arr2数目
int a=0;
int b=0;
for(int i=0;i<in2;i++) {
System.out.println("请输入第"+(i+1)+"辆车的序号:");
Scanner s3=new Scanner(System.in);
int in3=s3.nextInt();
array1[i]=ve[in3-1];//存所有车的信息,用来后面算总价格
if(ve[in3-1].nump!=0) {
array[a++] = ve[in3-1];//存可以载人的车,用于输出载人有哪些车,和总共可以载多少人
}
if(ve[in3-1].vum!=0) {
arr2[b++] = ve[in3-1];//存载货的车,总共载多少吨
}
}
System.out.println("请输入租车天数:");
Scanner input = new Scanner(System.in);
int ta=input.nextInt();
int sump=0;//算总人数时用
int sumv=0;//总载货数
int sum=0;//总价格(价格的和*租的天数)
System.out.println("您的帐单:");
//显示在人的车,和总人数
System.out.println("***可载人的车有:");
if(array[0] == null) {
System.out.println("无可载人的车");
}else{
for (int i=0;i<a;i++) {
System.out.print(array[i].name+" ");
sump=sump+array[i].nump;
}
System.out.println("共载人:"+sump+"人");
}
//显示载货的车,总载货
System.out.println("***可载货的车有:");
if(arr2[0] == null) {
System.out.println("无可载货的车");
}else {
System.out.println(arr2.length);
for (int i=0;i<b;i++) {
System.out.print(arr2[i].name+" ");
sumv=sumv+arr2[i].vum;
}
System.out.println("共载货:"+sumv+"吨");
}
//总价格
for (int i=0;i<array1.length;i++) {
sum=sum+array1[i].rent;
}
System.out.println("***租车总价格:"+sum*ta+"元");
}else if(in==0) {
System.out.println("欢迎下次光临");
}else {
System.out.println("输入错误请重新输入");
}
}
}
Vehicle.java
package com.scy;
public abstract class Vehicle {
public String name;
public int n;
public int rent;
public int nump;
public int vum;
public Vehicle( int n,String name, int rent) {
this.n=n;
this.name=name;
this.rent=rent;
}
public abstract void show();
}
Car.java
package com.scy;
public class Car extends Vehicle {
public Car( int n,String name, int rent,int nump) {
super(n,name,rent);
this.nump=nump;
}
public void show() {
System.out.println(n+":\t"+name+"\t "+
rent+"元/天"+"\t载人:"+nump);
}
}
Track.java
package com.scy;
public class Track extends Vehicle {
public Track( int n,String name, int rent,int vum) {
super(n,name,rent);
this.vum=vum;
}
public void show() {
System.out.println(n+":\t"+name+"\t "+
rent+"元/天"+"\t载货:"+vum+"吨");
}
}
Pik.java
package com.scy;
public class Pik extends Vehicle {
public Pik( int n,String name, int rent,int nump,int vum) {
super(n,name,rent);
this.nump=nump;
this.vum=vum;
}
public void show() {
System.out.println(n+":\t"+name+"\t "+
rent+"元/天"+"\t载人:"+nump+" 载货:"+vum+"吨");
}
}
运行结果
总结
本来以为做着不会太难,没想到被后面分别输出可载人,可载货卡住了,还是没
学明白基础不太好,所以还是多打打代码吧,别总是看着不难就不弄了。虽然最后弄
出来了,但还是不够好,还能再改进。
做不出来的时候真的好方啊,脑子都炸了就是弄不明白哪里有bug,不过还是要
坚持住不要轻易放弃啊(可以休息一下,!加油,从第一篇博客开始。