JAVA学习笔记Ⅵ——面向对象综合练习

面向对象三大特性综合联系

题目与要求

一、项目背景介绍

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

二、项目分析

    1、数据模型分析
    2、业务模型分析
    3、显示和流程分析

数据模型分析 业务模型分析 显示和流程分析
通过对现实世界的事物主要特征的分析、抽象,为信息系统的实施提供数据存取的数据结构以及相应的约束 在设计应用程序之前,应该明确该应用程序必须执行哪些任务
    分析业务需求是应用程序开发中最重要的步骤之一
    确认业务需求的目的在于创建一个能同时满足零售商和消费者需要的解决方案
显示:用户可以看到的信息提示界面
流程:显示信息的执行过程、步骤
数据结构组成:操作(方法)、属性
”答答租车系统“中,只需要考虑消费者业务需求即可
“答答租车系统”中,要以命令行的方式显示提示信息和输出结果信息,要考虑其样式,用户输入的数据不同,信息该如何提示、如何处理并显示出结果,这部分知识囊括了显示与流程的内容。
    例:请选择车辆→请输入序号→输出总金额…

三、参考界面

欢迎使用答答租车系统:
||||||||输入7或0退出系统||||||||
您是否要租车:1是 0否
1
您可租用的类型及其价目表:
序号 汽车名称       租金      容量
 1   奥迪迪    500RMB/Day  载人:4
 2   马自达    400RMB/Day  载人:4
 3   皮卡雪    450RMB/Day  载人:4   载货:2吨
 4   金龙龙    800RMB/Day  载人:20
 5   松花江    400RMB/Day  载货:4吨
 6   依维柯    100RMB/Day  载货:20吨
请输入需要租车的数量
4
请输入第1辆车的序号
1
请输入第2辆车的序号
2
请输入第3辆车的序号
3
请输入第4辆车的序号
4
请输入租车的天数
3
您的账单:
***可载人的车有:奥迪迪 马自达 皮卡雪 金龙龙 
***载货的车有:  皮卡雪 皮卡雪 
***租车总价格为:6450
欢迎下次光临

实现

代码来源自己,若有更好的方法,欢迎留下,学习。

对应
AoDi 奥迪迪
JinLong 金龙龙
MaziDa 马自达
PiKa 皮卡雪
SongHua 松花江
YiWei 依维柯
PeopleOn 载人
ThingsOn 载物
Main 主程序

AoDi.java

package com.exercise2;

public class AoDi extends PeopleOn {
    public AoDi() {
        super(500, 4, "奥迪迪");
    }
}

JinLong.java

package com.exercise2;

public class AoDi extends PeopleOn {
    public AoDi() {
        super(500, 4, "奥迪迪");
    }
}

MaziDa.java

package com.exercise2;

public class MaziDa extends PeopleOn {
    public MaziDa() {
        super(400, 4, "马自达");
    }
}

PeopleOn.java

package com.exercise2;

public class PeopleOn {
    public int rent;
    public int numPeople;
    public String name;
    public PeopleOn(int rent, int numPeople, String name){
        this.name = name;
        this.rent = rent;
        this.numPeople = numPeople;
    }
}

PiKa.java

package com.exercise2;

public class PiKa extends PeopleOn {
    public int thing = 2;
    public PiKa(int things) {
        super(450, 4, "皮卡雪");
        this.thing = things;
    }
}

Songhua.java

package com.exercise2;

public class SongHua extends ThingsOn {
    public SongHua(){
        super(400,4, "松花江");
    }
}

ThingsOn.java

package com.exercise2;

public class ThingsOn {
    int things;
    int rent;
    String name;
    public ThingsOn(int rent, int things, String name){
        this.name = name;
        this.rent = rent;
        this.things = things;
    }
}

YiWei.java

package com.exercise2;

public class YiWei extends ThingsOn{
    public YiWei(){
        super(100, 20, "依维柯");
    }
}

Main.java

package com.exercise2;

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        
        while(true) {
            int sumPerDay = 0;
            int money = 0;
            String carPerson = "";
            String carThing = "";
            String carPersonString = "";
            String carThingString = "";

            System.out.println("欢迎使用答答租车系统:");
            System.out.println("||||||||输入7或0退出系统||||||||");
            System.out.println("您是否要租车:1是 0否");

            int flags = input.nextInt();
            
            if(flags == 7 || flags == 0){
                break;
            }
            else if (flags > 1 || flags < 0) {
                System.out.println("输入错误,请重新输入");
            }
            else{
                System.out.println("您可租用的类型及其价目表:");
                System.out.println("序号 汽车名称       租金      容量");
                System.out.println(" 1   奥迪迪    500RMB/Day  载人:4");
                System.out.println(" 2   马自达    400RMB/Day  载人:4");
                System.out.println(" 3   皮卡雪    450RMB/Day  载人:4   载货:2吨");
                System.out.println(" 4   金龙龙    800RMB/Day  载人:20");
                System.out.println(" 5   松花江    400RMB/Day  载货:4吨");
                System.out.println(" 6   依维柯    100RMB/Day  载货:20吨");

                System.out.println("请输入需要租车的数量");


                int cars = input.nextInt();

                for(int i = 0; i < cars; i++){
                    int people = 0;
                    int price = 0;
                    System.out.println("请输入第"+(i+1)+"辆车的序号");
                    int choose = input.nextInt();
                    switch(choose){
                        case 1:
                            PeopleOn aodi = new AoDi();
                            money = aodi.rent;
                            carPerson = aodi.name;
                            break;
                        case 2:
                            PeopleOn mazida = new MaziDa();
                            money = mazida.rent;
                            carPerson = mazida.name;
                            break;
                        case 3:
                            PeopleOn pika = new PiKa(2);
                            money = pika.rent;
                            carPerson = pika.name;
                            carThing = pika.name;
                            break;
                        case 4:
                            PeopleOn jilong = new JinLong();
                            money = jilong.rent;
                            carPerson = jilong.name;
                            break;
                        case 5:
                            ThingsOn songhua = new SongHua();
                            money = songhua.rent;
                            carThing = songhua.name;
                            break;
                        case 6:
                            ThingsOn yiwei = new YiWei();
                            money = yiwei.rent;
                            carThing = yiwei.name;
                            break;
                    }
                    sumPerDay += money;
                    carPersonString = carPersonString + carPerson + " ";
                    carThingString = carThingString + carThing+ " ";
                }

                System.out.println("请输入租车的天数");
                int days = input.nextInt();

                System.out.println("您的账单:");
                System.out.println("***可载人的车有:" + carPersonString);

                System.out.println("***载货的车有:" + carThingString);
                System.out.println("***租车总价格为:"+ sumPerDay * days);
                System.out.println("欢迎下次光临");


                break;
            }
        }
    }
}

欢迎使用答答租车系统:
||||||||输入7或0退出系统||||||||
您是否要租车:1是 0否
1
您可租用的类型及其价目表:
序号 汽车名称       租金      容量
 1   奥迪迪    500RMB/Day  载人:4
 2   马自达    400RMB/Day  载人:4
 3   皮卡雪    450RMB/Day  载人:4   载货:2吨
 4   金龙龙    800RMB/Day  载人:20
 5   松花江    400RMB/Day  载货:4吨
 6   依维柯    100RMB/Day  载货:20吨
请输入需要租车的数量
5
请输入第1辆车的序号
2
请输入第2辆车的序号
4
请输入第3辆车的序号
5
请输入第4辆车的序号
6
请输入第5辆车的序号
2
请输入租车的天数
14
您的账单:
***可载人的车有:马自达 金龙龙 金龙龙 金龙龙 马自达 
***载货的车有:  松花江 依维柯 依维柯 
***租车总价格为:29400
欢迎下次光临

猜你喜欢

转载自blog.csdn.net/qq_39567427/article/details/107341051