为了账号安全,请及时绑定邮箱和手机立即绑定

新手做的,答答租车系统,望大家多多指教~

首先定义Car抽象类;

package dadasystem2;

public abstract class Car {
	private String name;
	private int num;
	private int person;
	private int weight;
	private int price;						//定义4个私有成员变量,名字,数量,载客量,载重量,单价
	
	public abstract void show();			//定义输出车辆信息的抽象函数
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getPerson() {
		return person;
	}
	public void setPerson(int person) {
		this.person = person;
	}
	public int getWeight() {
		return weight;
	}
	public void setWeight(int weight) {
		this.weight = weight;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}	
}


然后定义小车类Scar,

package dadasystem2;

public class Scar extends Car {
	public Scar (String name,int num,int person,int price) {
		this.setName(name);					//这里也可以不要this
		this.setNum(num);
		this.setPerson(person);
		this.setPrice(price);
	}

	@Override
	public void show() {
		// TODO Auto-generated method stub
		System.out.println(getName()+"\t"+getNum()+"\t"+getPerson()+"\t"+"-"+"\t"+getPrice());
	}
}

定义载货车Lcar,

package dadasystem2;

public class Lcar extends Car {
	public Lcar (String name,int num,int weight,int price) {
		setName(name);					//可以不要this
		setNum(num);
		setWeight(weight);
		setPrice(price);
	}
	
	@Override
	public void show() {
		// TODO Auto-generated method stub
		System.out.println(getName()+"\t"+getNum()+"\t"+"-"+"\t"+getWeight()+"\t"+getPrice());
	}
}

定义载人载货两用车Bcar,

package dadasystem2;

public class Bcar extends Car {
	public Bcar (String name,int num,int person,int weight,int price) {
		setName(name);					//好像可以不要this
		setNum(num);
		setPerson(person);
		setWeight(weight);
		setPrice(price);
	}
	
	@Override
	public void show() {
		// TODO Auto-generated method stub
		System.out.println(getName()+"\t"+getNum()+"\t"+getPerson()+"\t"+getWeight()+"\t"+getPrice());
	}

}



最后看看测试类,

package dadasystem2;
import java.util.Scanner;;

public class Test 
{

	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		Car car[] =
			{	
				new Scar("野马", 10, 5, 500),
				new Scar("奔奔", 10, 8, 300),
				new Lcar("东方", 10, 10, 1000),
				new Lcar("重汽", 10, 40, 3000),
				new Bcar("皮卡", 10, 2, 3, 500),
				new Bcar("卡车", 10, 5, 5, 800)
			};															//创建car车型数组,存放6个不同的车型对象
		
		System.out.println("***欢迎使用答答租车系统***");
		System.out.println("租车请按1,退出请按其他键。");
		Scanner in1 = new Scanner(System.in);
		while (in1.nextInt()==1) 
		{
			System.out.println("序号"+"\t"+"车名"+"\t"+"可租车量"+"\t"+"载人量"+"\t"+"载货量"+"\t"+"价格");
			for (int i=0; i<=5; i++) 
			{
				System.out.print((i+1)+"\t");
				car[i].show();
			}
			
			System.out.println("------------------------------------------------");
			System.out.print("请输入您要租车的数量:");
			Scanner in2 = new Scanner(System.in);
			int NUM = in2.nextInt();									//用 NUM 表示需要租车的数量
			Car [] Zcar = new Car[NUM];									//创建Zcar数组,存放租车对象
			for(int j=0; j<NUM; j++ ) 
			{									
				System.out.println("请输入您要租的第"+(j+1)+"辆车的序号:");		//循环进行 NUM 辆车的录用和输出信息
				Scanner in3 = new Scanner(System.in);
				int flag = in3.nextInt();								// flag 表示当前第j辆车的     租车的序号
				Zcar[j]=car[flag-1];
				car[flag-1].setNum(car[flag-1].getNum()-1);					// 车型数组car中,第 flag 类车的数量-1,保证数量问题
				System.out.println("第"+(j+1)+"辆车租车完成");
			}
			System.out.println("------------"+NUM+"辆车租车完成------------"+"\n"+"下面开始统计数据..........");		
																		//租车完成,开始统计数据并输出
			int per=0, wei=0, pri=0, NUM2=0;
			for (int i=0; i<NUM; i++)
			{
				per += Zcar[i].getPerson();
				wei += Zcar[i].getWeight();
				pri += Zcar[i].getPrice();
				NUM2 += Zcar[i].getNum();
			}
			System.out.println("一共租车"+NUM+"辆");
			System.out.println("共可载"+per+"人");
			System.out.println("共可载货"+wei+"吨");
			System.out.println("共需付款"+pri+"元");
			 
			System.out.print("请输入付款金额:");						//加的小程序     O(∩_∩)O哈哈~
			Scanner in4 = new Scanner(System.in);
			while (pri!=in4.nextInt())
				System.out.println("输入错误,请重新输入金额!");
			System.out.print("请输入付款密码:");
			Scanner in5 = new Scanner(System.in);
			while (in5.nextInt()!=123456)
				System.out.println("密码错误,请重新输入!");
			System.out.println("交易成功!");
			
			System.out.println("继续租车请按1,退出请按其他键。");
		}
		System.out.println("***欢迎再次使用本系统,再见!***");
	}
}


本系统加了一个剩余车辆数量的程序,再输入付款密码,交易成功之后,可继续租车,此时可租车辆就不再是默认的10辆了,会减去已租车辆数。

//程序还可以修改,加一个判断   当租车数大于车辆剩余数量的时候   返回错误


刚开始学java,还希望大家多多指导!!!


https://img1.sycdn.imooc.com//5ab9cc6f00019ffc05290747.jpg


测试车辆数量是否有更新:

https://img1.sycdn.imooc.com//5ab9ccfe0001a47a05760901.jpg


现在想问问大神们,如何修改程序,可以在程序的任意位置,直接退出??

比如说租车完成后,要选择继续租车,才能看到车辆列表的更新状态,但是看了之后,有必须要再执行一遍租车系统,就很迷了,真的是迷~~~

正在回答

11 回答

定义一个布尔类型再用IF语句抛出异常?throw new RuntimeEXception("     ");

Em......我也是新手......

2 回复 有任何疑惑可以回复我~
首页上一页12下一页尾页

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530629    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

新手做的,答答租车系统,望大家多多指教~

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信