自学java 答答租车系统

我发现自己学的小块的东西是很简单,每当自己实践操作的时候总是有各种各样的问题。

就做这个简单的答答租车系统时,用到了面向对象得三大特性封装、继承、多态。使用父类的引用指向子类对象。

package com.mjy;

import java.util.Scanner;

public class Instial {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("欢迎使用答答租车系统:\n您是否要租车:1是    0否\n");
		Scanner scanner=new Scanner(System.in);
		int m=scanner.nextInt();
		if (m==1){
			int sumr = 0;
			double sumh = 0;
			int rentm1=0;
			int rentm2=0;
			Car []cars={new Aodi(1,"奥迪",500,4),new Mazida(2,"马自达6",400,4),new Pica(3,"皮卡雪6",450,4,2),
					new Jinlong(4,"金龙",800,20),new Songhuajiang(5,"松花江",400,4),new Yiwk(6,"依维柯",1000,20)};
		System.out.println("您可租车的类型及其价目表:");
		System.out.println("序号\t汽车名称\t租金\t容量");
		for(int nc=0;nc<cars.length;nc++){
			cars[nc].show();
		}
		System.out.println("请输入您要租车的数量:");
		Scanner scanner2=new Scanner(System.in);
		int n=scanner2.nextInt();
		int []cnum=new int[n];
		for(int i = 0;i<n;i++){
			System.out.println("请输入第"+(i+1)+"辆车的序号:");
			Scanner s1=new Scanner(System.in);
			cnum[i]=s1.nextInt();
		}
		System.out.println("请输入租车天数:");
		Scanner s2=new Scanner(System.in);
		int t=s2.nextInt();
		System.out.println("您的账单:");
		System.out.println("***可载人的车有:");
		for(int j=0;j<n;j++){
		if(cars[cnum[j]-1].zair!=0){
			sumr = cars[cnum[j]-1].zair+sumr;
			rentm1 = cars[cnum[j]-1].rent*t+rentm1;
			System.out.print(cars[cnum[j]-1].name+"\t");
			}			
		}
		if(sumr==0){
			System.out.println("没有租客车!!!");
		}else{
			System.out.println("共载人:"+sumr);
		}
		System.out.println("***可载货的车有:");
		for(int j=0;j<n;j++){
			if(cars[cnum[j]-1].zaih!=0){
				sumh = cars[cnum[j]-1].zaih+sumh;
				rentm2 = cars[cnum[j]-1].rent*t+rentm2;
				System.out.print("\t"+cars[cnum[j]-1].name+"\t");
				
				}	
			}
		if(sumh==0){
			System.out.println("没有租货车!!!");
		}else{
		System.out.println("共载货:"+sumh);
		}
		System.out.println("***租车总价格:"+(rentm1+rentm2)+"元");
		}else{
			System.exit(0);
		}
	}
}

public class Aodi extends Car {
	public Aodi(int num,String name,int rent,int zair){
	this.num=num;
	this.name=name;
	this.rent=rent;
	this.zair=zair;
	}
	@Override
	public void show() {
		// TODO Auto-generated method stub
		System.out.println(num+".\t"+name+"\t"+rent+"元/天"+"\t"+"载人:"+zair);
	}//为什么这个show()可以用上边赋予的值呢???
}

public abstract class Car {
	int num;
	String name;
	int rent;
	int zair;
	double zaih;
	public abstract void show();
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值