qq_枯笑_0
2017-08-05 19:40
package com.答答租车系统; import java.util.*; public class Car { //父类 public int id; public String name; public String price; public Car(int id,String name,String price) { this.id=id; this.name=name; this.price=price; System.out.print(id+"\t"+name+"\t"+price+"\t"); } } public class Huocar extends Car {// 子类货车 public String zaihuo; public Huocar(int id,String name,String price,String zaihuo) { super(id,name,price); this.zaihuo=zaihuo; System.out.println(zaihuo+"\t"); } } public class Kecar extends Car {//子类客车 public String zairen; public Kecar(int id,String name,String price,String zairen) { super(id,name,price); this.zairen=zairen; System.out.println(zairen+"\t"); } } public class Picar extends Car {//子类皮卡 public String zaihuo; public String zairen; public Picar(int id,String name,String price,String zairen, String zaihuo ) { super(id,name,price); this.zaihuo=zaihuo; this.zairen=zairen; System.out.print(zairen+"\t"); System.out.println(zaihuo+"\t"); } } public class Main { public static void main(String[] args) { System.out.println("欢迎使用答答租车系统"); System.out.println("您是否需要租车 : 1是 0否"); Scanner input=new Scanner(System.in); int judge1=input.nextInt();//获取输入值 if(judge1==1) { System.out.println("序号\t车辆名称\t 租车价格\t 容量\t"); Car car[]= {new Kecar(1,"奥迪A4","500元/天","载人:4人"), new Kecar(2,"马自达6","400元/天","载人:4人"), new Picar(3,"皮卡雪","450元/天","载人:4人","载重:2吨"), new Kecar(4,"金龙","800元/天","载人:20人"), new Huocar(5,"松花江","400元/天","载重:4吨"), new Huocar(6,"依维柯","1000元/天","载重:20吨")};//构造方法输出信息 /*System.out.println("序号"+"\t"+"车辆名称"+"\t"+"租车价格"+"\t"+" 容量"+"\t"); Car car1=new Kecar(1,"奥迪A4","500元/天","载人:4人"); Car car2=new Kecar(2,"马自达6","400元/天","载人:4人"); Car car3=new Picar(3,"皮卡雪","450元/天","载人:4人","载重:2吨"); Car car4=new Kecar(4,"金龙","800元/天","载人:20人"); Car car5=new Huocar(5,"松花江","400元/天","载重:4吨"); Car car6=new Huocar(6,"依维柯","1000元/天","载重:20吨");*/ }else { System.out.println("如有需要欢迎您的使用,再见"); System.exit(0); } System.out.println("请输入您要租汽车的数量"); int sum=input.nextInt(); int s; String zr[]=new String[sum]; int weight=0;//计算总载重 int peosum=0;//计算总人数 int monsum=0;//计算总钱数 for(int i=0;i<sum;i++) { System.out.println("请输入第"+(i+1)+"辆租车的序号"); s=input.nextInt(); //保存各辆车 switch (s) { case 1: peosum=peosum+4;monsum=monsum+500;zr[i]="奥迪A4";continue; case 2: peosum=peosum+4;monsum=monsum+400;zr[i]="马自达6";continue; case 3: peosum=peosum+4;monsum=monsum+450;zr[i]="皮卡雪6";weight=weight+2;continue; case 4: peosum=peosum+20;monsum=monsum+800;zr[i]="金龙";continue; case 5: monsum=monsum+400;weight=weight+4;zr[i]="松花江";continue; case 6: monsum=monsum+1000;weight=weight+20;zr[i]="依维柯";continue; } } System.out.println("请输入您要租车的天数"); int daysum=input.nextInt(); int monsums=daysum*monsum;//总金额 System.out.println("您的账单"); System.out.println("****可载人的车有"+"\n"+" 共载人 :"+peosum); System.out.println("****可载货的车有"+"\n"+" 共载货 :"+weight+"吨"); System.out.println("****租车总价格 : " + monsums); System.out.println("欢迎再次使用"); } }
你所租的车的车名放在了String zr[sum]这个数组中,可以输出zr[]这个数组中的值从而输出车名。由于你把车分成了载人和载货的所以要在输出车名的同时进行划分,这个可以使用String中间涉及判断语句,所以要改的话需要把最终的倒数三,四syso都改一下。
代码部分:System.out.println("您的账单:");
System.out.println("****可载人的车有:");
for(int i=0;i<sum;i++)
{
if(zr[i]==Car[0].name||zr[i]==Car[1].name||zr[i]==Car[2].name||zr[i]==Car[3].name)
System.out.println(zr[i]);
}
System.out.println("\n共载人:"+peosum);
System.out.println("****可载货的车有:");
for(int i=0;i<sum;i++)
{
if(zr[i]==Car[2].name||zr[i]==Car[4].name||zr[i]==Car[5].name)
System.out.println(zr[i]);
}
System.out.println("\n共载货:"+weight+"吨");
直接写的,没有用编译器,可能存在一些细节问题,思路是这样的。这是最直接的方法,但是个人不推荐这样做,比较String变量不如比较int变量。
比较int变量的思路:zr数组改为int数组,switch循环中将车子的序号存进zr数组中,或者删除这一步在输入租车序号后将序号存进zr数组中,之后使用if语句和Car数组中id属性比较,相等的话输出Car数组中的name属性(也就是车名)。
应用List
CarProperty.java//父类
package zuchexitong;
public class CarProperty {
public String carName;//车辆名称
public String carType;//车辆类型
public int carZaiKe;//载客量
public int carZaiHuo;//载货量
public int carZuJin;//每天租金
public CarProperty(){
}
//构造方法
public CarProperty(String carN,String carT,int carZk,int carZh,int carZj){
carName=carN;
carType=carT;
carZaiKe=carZk;
carZaiHuo=carZh;
carZuJin=carZj;
}
}
HuoChe.java//子类
package zuchexitong;
public class HuoChe extends CarProperty{
}
KeChe.java//子类
package zuchexitong;
public class KeChe extends CarProperty{
}
PiKar.java//子类
package zuchexitong;
public class PiKar extends CarProperty{
}
Test//测试类
package zuchexitong;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import com.CarProperty;
import test.Course;
/**
* 应用了list的方法调用
* 需要添加的有List的变量
* 定义泛型
* 构造类的构造器
* 添加testAdd方法
* 添加testForEach方法
* @author Administrator
*
*/
public class Test2 {
public List<CarProperty> carProperties;
public Test2(){//构造器
carProperties=new ArrayList<CarProperty>();
}
public void testAdd(){
CarProperty[] cars={new CarProperty("1,奥迪", "货车", 2, 3, 100),new CarProperty("2,大众", "货车", 2, 2, 80),
new CarProperty("3,宝马", "客车", 4, 0, 150),new CarProperty("4,一汽", "客车", 4, 0, 100),
new CarProperty("5,五菱", "两用", 8, 2, 250),new CarProperty("6,奔驰", "两用", 2, 3, 160)};
carProperties.addAll(Arrays.asList(cars));
CarProperty temp=(CarProperty)carProperties.get(0);
CarProperty temp2=(CarProperty)carProperties.get(0);
CarProperty temp3=(CarProperty)carProperties.get(2);
CarProperty temp4=(CarProperty)carProperties.get(3);
CarProperty temp5=(CarProperty)carProperties.get(2);
CarProperty temp6=(CarProperty)carProperties.get(3);
}
public void testForEach(){
for(Object obj:carProperties){
CarProperty cr=(CarProperty)obj;
System.out.println("课程:"+cr.carName+"\t"+cr.carType+"\t"+
cr.carZaiHuo+"\t"+cr.carZaiKe+"\t"+cr.carZuJin);
}
}
public static void main(String[] args) {
Test2 t2=new Test2();
int sum=0;
System.out.println("请选择是否租车?(1,是 2,否):");
Scanner input=new Scanner(System.in);
int zchy=input.nextInt();
if (zchy==1) {
System.out.println("车辆名称\t车辆类型\t载客量/人\t载货量/吨\t租金/每天");
t2.testAdd();
t2.testForEach();
System.out.println("请选择租车数量:");
Scanner input2=new Scanner(System.in);
int zcsl=input2.nextInt();
for (int i = 1; i < zcsl+1; i++) {
System.out.println("请输入要租用的第几辆车的编号:");
Scanner input3=new Scanner(System.in);
int zcbh=input3.nextInt();
switch (zcbh) {
case 1:
sum+=100;
break;
case 2:
sum+=80;
break;
case 3:
sum+=150;
break;
case 4:
sum+=100;
break;
case 5:
sum+=250;
break;
case 6:
sum+=160;
break;
default:
System.out.println("输入错误,请重新输入!");
break;
}
System.out.println("请输入租用天数:");
Scanner input4=new Scanner(System.in);
int zcts=input4.nextInt();
sum=sum*zcts;
System.out.println("总租车辆数:"+zcsl+"辆\t租用天数:"+zcts+"天\t总金额:¥"+sum);
}
}
}
}
在比较String变量的过程中最好使用equals(); 函数
你想输出哪种形式的呢?如果想单纯的想输出租的车的名字可以的话可以将zr[]数值中的值先进行处理,剔除相同的值。然后再进入for循环输出。
剔除方法:将zr[]数组中的值依次与之后的值相比较,相同的时候将zr[]当前值赋值为空,然后之后的数组序号前移。
Java入门第二季 升级版
530654 学习 · 6091 问题
相似问题