## java第二季综合练习

java第二季综合练习

控制台版的答答租车系统

  1. 展示所有可租车辆
  2. 选择车型,租车辆
  3. 展示租车清单,包含总金额,总载货量及车型,总载人量及车型

代码

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,不过还是要
坚持住不要轻易放弃啊(可以休息一下,!加油,从第一篇博客开始。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值