Java学习笔记三十:Java小项目之租车系统

Java小项目之租车系统

一:项目背景介绍;

  根据所学知识,编写一个控制台版的“呱呱租车系统”
功能:1、展示所有可租车辆;2、选择车型、租车量;3、展示租车清单,包含:总金额、总载货量以及其车型号、总载人量及其车型;

二:项目分析;

  • 数据模型分析;
  • 业务模型分析;
  • 显示和流程分析;

三:数据模型分析;

1.通过对现实世界的事与物主要特征的分析、抽象,为信息系统的实施提供数据存取的数据结构以及相应的约束;2.数据结构组成:操作(方法)、属性;如现实世界中的汽车,最终会转化为一段代码:
图片描述

那么这个过程就是我们数据分析的过程。

图片描述

四:业务模型分析;

1.在设计应用程序之前,应该明确该应用程序必须执行哪些任务。分析业务需求是应用程序开发中最重要的步骤之一。确认业务需求的目的在于创建一个能同时满足零售商和消费者需要的解决方案。2.呱呱租车系统中,只需要考虑消费者业务需求即可。

图片描述

五:显示和流程分析;

1.显示:用户可以看到的信息提升界面;2.流程:显示信息的执行过程、步骤;3.呱呱租车系统中,要以命令行的方式显示提示信息和输出结果信息,要考虑其样式,用户输入的数据不同,信息该如何处理、如何处理并显示出结果,这部分知识囊括了显示与流程的内容;  例如:请选择车辆->请输入序号->输出总金额...;

六:代码示例;

RentCar主类:

package com.test;

import java.util.Arrays;
import java.util.Scanner;
 
public class RentCar {   
    public static void main(String[] args) {       
    // TODO Auto-generated method stub      
    System.out.println("欢迎使用呱呱租车系统!:\n你是否要进行租车:1是  0否");      
    Scanner s = new Scanner(System.in);     
    int i=s.nextInt(); 
             
    if(i==1){           
    System.out.println("您可租车的类型及其目表:");         
    System.out.println("序号"+"\t"+"汽车名称"+"\t"+"租金"+"\t\t"+"载人量"+"\t"+"载重量");
             
    Car car1=new PassengerCar(1,"奥迪A4",500,4);           
    Car car2=new PassengerCar(2,"马自达6",400,4);           
    Car car3=new Pika(3,"皮卡雪6",450,4,2);          
    Car car4=new PassengerCar(4,"金龙",800,20);            
    Car car5=new Truck(5,"松花江",400,4);            
    Car car6=new Truck(6, "依维柯", 900, 20); 
                     
    System.out.println(car1+"\n"+car2+"\n"+car3+"\n"+car4+"\n"+car5+"\n"+car6);         
    Car[] rentcar={car1,car2,car3,car4,car5,car6};
             
    System.out.println("请输入您要租汽车的数量:");     
             
    int n = s.nextInt();
             
    float money1=0;            
    int num=0;         
    int allcargo=0;
             
    String [] hrentcar = new String[n];                    
    for(int k=0;k<n;k++){                       
        System.out.println("请输入第"+(k+1)+"辆车的序号");
                                 
        int t =s.nextInt();
                                 
        if(t>0&amp;&amp;t<=6){                
        hrentcar[k]=rentcar[t-1].name;  
                                     
        float money2=rentcar[t-1].price;                   
        int person=rentcar[t-1].capacity;              
        int wg=rentcar[t-1].cargo; 
                                     
        allcargo+=wg;               
        num+=person;                
        money1+=money2;             
        }else{                          
        System.out.println("您输入的信息无效!");                            
        k--;                            
        if(k==0)k=0;                        
        }                       
        }
                         
        Arrays.sort(hrentcar);              
        System.out.println("请输入租车天数:");             
        int in = s.nextInt();                
        float sum =in*money1;                             
        System.out.println("您的租车完成,已租车"+n+"辆");             
        System.out.println("您的账单:");                
        System.out.println("您租的车有:"+Arrays.toString(hrentcar));             
        System.out.println("共可载"+num+"人");              
        System.out.println("共可载货"+allcargo+"吨");                
        System.out.println("一共需要支付"+sum+"元");
                                 
        }else if(i==0){            
        System.out.println("已退出系统,欢迎下次光临");     
        }else{          
        System.out.println("您输入的信息无效!请重启");     
        }       
    }       
}

Car父类:

package com.test;

public abstract class Car {
    public int carNumber; 
    public String name;  
    public float price;   
    public int capacity;  
    public int cargo;     
    public int getCarNumber() {      
    return carNumber;  
    }   
    public void setCarNumber(int carNumber) {       
    this.carNumber = carNumber;   
    }   
    public String getName() {        
    return name;   
    }   
    public void setName(String name) {      
    this.name = name; 
    }   
    public float getPrice() {        
    return price;  
    }   
    public void setPrice(float price) {     
    this.price = price;   
    }   
    public int getCapacity() {       
    return capacity;   
    }   
    public void setCapacity(int capacity) {     
    this.capacity = capacity; 
    }   
    public int getCargo() {      
    return cargo;  
    }   
    public void setCargo(int cargo) {       
    this.cargo = cargo;   
    }   
    }

PassengerCar类:

package com.test;

public class PassengerCar extends Car {
    public PassengerCar(int carNumber,String name,float price,int capacity) {        
    // TODO Auto-generated constructor stub     
    this.setCarNumber(carNumber);       
    this.setName(name);     
    this.setPrice(price);       
    this.setCapacity(capacity); }
         
    @Override  
    public String toString() {       
    return  getCarNumber()+"."+"\t"+getName()+ "\t" +getPrice()+"/天"+"\t\t"+"载人:"+getCapacity()+"人"+"\t"+"载货:-" ;  }}

Pika类:

package com.test;

public class Pika extends Car {
    public Pika(int carNumber,String name,float price,int capacity,int cargo) {
            // TODO Auto-generated constructor stub     
            this.setCarNumber(carNumber);       
            this.setName(name);     
            this.setPrice(price);       
            this.setCapacity(capacity);     
            this.setCargo(cargo);   }
                 
            @Override  
            public String toString() {       
            return  getCarNumber()+"."+"\t"+getName()+ "\t" +getPrice()+"/天"+"\t\t"+"载人:"+getCapacity()+"人"+"\t"+"载货:"+getCargo()+"吨" ;    }   }

Truck类:

package com.test;

public class Truck extends Car {   
public Truck(int carNumber,String name,float price,int cargo) {       
// TODO Auto-generated constructor stub     
this.setCarNumber(carNumber);       
this.setName(name);     
this.setPrice(price);       
this.setCargo(cargo);   }
     
@Override  
public String toString() {       
return getCarNumber()+"."+"\t"+getName()+ "\t" +getPrice()+"/天"+"\t\t"+"载人:-"+"\t"+"载货:"+getCargo()+"吨" ;   }}

代码仅供参考