码迷,mamicode.com
首页 > 其他好文 > 详细

初学者:简单的租车程序(敲了一晚)(想大神看看,为啥我一个简单的程序要敲这么多,可以怎么改进?)

时间:2016-07-21 10:56:34      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

/**
* 创建一个接口实现租凭方法
*
*/
package com.lxl.car;

public interface Rent {
void rent(int day,int num);
}

/**
* 定义一个抽象的汽车类 属性:颜色,型号 ,租车的价格
*
*/
package com.lxl.car;

public abstract class Car implements Rent{
//构造方法
public Car(){}
private String size;// 型号
private String color;// 颜色
private int price;// 租车的价格
/**
* @param size the size to set
*/
public void setSize(String size) {
this.size = size;
}
/**
* @return the size
*/
public String getSize() {
return size;
}
/**
* @param color the color to set
*/
public void setColor(String color) {
this.color = color;
}
/**
* @return the color
*/
public String getColor() {
return color;
}
/**
* @param price the price to set
*/
public void setPrice(int price) {
this.price = price;
}
/**
* @return the price
*/
public int getPrice() {
return price;
}
public void rent(int day,int num){
System.out.println(day*num*price);
}
}

/**
* 创建一个载货汽车类,继承车类
*
*/
package com.lxl.car;

public class FreightCar extends Car {

}

/**
* 创建一个载人汽车类,继承车类
*
*/
package com.lxl.car;

public class MannedCar extends Car{

}

/**
* 创建一个载人载货两用汽车类,继承车类
*
*/
package com.lxl.car;

public class BothCar extends Car{

}

/**
*本程序的主要功能是:
* 模拟一个用户租车的业务流程,程序启动时,需显示出欢迎页面欢迎用户,并显示出各种车型的价格,
* 并在控制台接收用户的输入,让用户一步步选择要租用的车子类型,颜色,型号,租用的天数,租用的数量,
* 最后显示出用户的租用信息(车子类型,颜色,型号,租用的天数,租用的数量,租用时间),
* 计算并显示出此次租用的费用。
*/
package com.lxl.car;

import java.util.Scanner;

public class CarTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建输入流对象
System.out.println("----------欢迎进入娶妻生子租车系统------------");
System.out.println("以下是我们系统所支持的车型及其租凭的详细价格");
Scanner sc = new Scanner(System.in);
//创建载人汽车对象mcsmall为小型
MannedCar mcsmall = new MannedCar();
mcsmall.setSize("1.小型:");
mcsmall.setPrice(300);
//创建载货汽车对象fcsmall为小型
FreightCar fcsmall= new FreightCar();
fcsmall.setSize("1.小型:");
fcsmall.setPrice(400);
//创建两用汽车对象bcsmall为小型
BothCar bcsmall= new BothCar();
bcsmall.setSize("1.小型:");
bcsmall.setPrice(600);
//创建载人汽车对象为中型
MannedCar mcmiddle = new MannedCar();
mcmiddle.setSize("2.中型:");
mcmiddle.setPrice(400);
//创建载货汽车对象为中型
FreightCar fcmiddle = new FreightCar();
fcmiddle.setSize("2.中型:");
fcmiddle.setPrice(500);
//创建两用汽车对象为中型
BothCar bcmiddle= new BothCar();
bcmiddle.setSize("2.中型:");
bcmiddle.setPrice(700);
//创建载人汽车对象为大型
MannedCar mcbig = new MannedCar();
mcbig.setSize("3.大型:");
mcbig.setPrice(500);
//创建载货汽车对象为大型
FreightCar fcbig = new FreightCar();
fcbig.setSize("3.大型:");
fcbig.setPrice(600);
//创建两用汽车对象为大型
BothCar bcbig= new BothCar();
bcbig.setSize("3.大型:");
bcbig.setPrice(800);
//设定颜色
mcbig.setColor("1.黑色");
fcbig.setColor("2.红色");
bcbig.setColor("3.蓝色");
//输出所有的汽车类型和其价格
System.out.print("1.载人汽车:"+"("+mcsmall.getSize()+mcsmall.getPrice()+"\t");
System.out.print(mcmiddle.getSize()+mcmiddle.getPrice()+"\t");
System.out.println(mcbig.getSize()+mcbig.getPrice()+")");
System.out.print("2.载货汽车:"+"("+fcsmall.getSize()+fcsmall.getPrice()+"\t");
System.out.print(fcmiddle.getSize()+fcmiddle.getPrice()+"\t");
System.out.println(fcbig.getSize()+fcbig.getPrice()+")");
System.out.print("3.两用汽车:"+"("+bcsmall.getSize()+bcsmall.getPrice()+"\t");
System.out.print(bcmiddle.getSize()+bcmiddle.getPrice()+"\t");
System.out.println(bcbig.getSize()+bcbig.getPrice()+")");
System.out.println("汽车的颜色:"+mcbig.getColor()+"\t"+fcbig.getColor()+"\t"+bcbig.getColor());
//客户选择操作
boolean a = true;
int t = 0;
int s = 0;
while(a){
a = false;
System.out.println("请按1、2、3选择租用汽车的类型。");
t = sc.nextInt();
if (t == 1){
System.out.println("你选择是载人汽车");

}else if(t == 2){
System.out.println("你选择是载货汽车");
}else if(t == 3){
System.out.println("你选择是两用汽车");
}else{
System.out.println("你输入的数据有误,请重新输入:");
a = true;
}
}
a = true;
while(a){
a = false;
System.out.println("请按1、2、3选择租用汽车的大小。");
s = sc.nextInt();
if (s == 1){
System.out.println("你选择是小型");
}else if(s == 2){
System.out.println("你选择是中型");
}else if(s == 3){
System.out.println("你选择是大型");
}else{
System.out.println("你输入的数据有误,请重新输入:");
a = true;
}
}
a = true;
while(a){
a = false;
System.out.println("请按1、2、3选择租用汽车的颜色。");
int c = sc.nextInt();
if (c == 1){
System.out.println("你选择是黑色");
}else if(c == 2){
System.out.println("你选择是红色");
}else if(c == 3){
System.out.println("你选择是蓝色");
}else{
System.out.println("你输入的数据有误,请重新输入:");
a = true;
}
}
System.out.println("请输入你要租的天数");
int day = sc.nextInt();
System.out.println("请输入你要租车的数量");
int num = sc.nextInt();
//根据客户选择输出费用
if (t ==1 && s ==1){
System.out.print("你选的是小型载人汽车,将花费:");
mcsmall.rent(day,num);
}
if (t ==1 && s ==2){
System.out.print("你选的是中型载人汽车,将花费:");
mcmiddle.rent(day,num);
}
if (t ==1 && s ==3){
System.out.print("你选的是大型载人汽车,将花费:");
mcbig.rent(day,num);
}
if (t ==2 && s ==1){
System.out.print("你选的是小型载货汽车,将花费:");
fcsmall.rent(day,num);
}
if (t ==2 && s ==2){
System.out.print("你选的是中型载货汽车,将花费:");
mcmiddle.rent(day,num);
}
if (t ==2 && s ==3){
System.out.print("你选的是大型载货汽车,将花费:");
mcbig.rent(day,num);
}
if (t ==3 && s ==1){
System.out.print("你选的是小型两用汽车,将花费:");
bcsmall.rent(day,num);
}
if (t ==3 && s ==2){
System.out.print("你选的是中型两用载人汽车,将花费:");
bcmiddle.rent(day,num);
}
if (t ==3 && s ==3){
System.out.print("你选的是中型两用载人汽车,将花费:");
bcbig.rent(day,num);
}
}
}

 

初学者:简单的租车程序(敲了一晚)(想大神看看,为啥我一个简单的程序要敲这么多,可以怎么改进?)

标签:

原文地址:http://www.cnblogs.com/forliver/p/5690889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!