首页 > 编程语言 >简单的机票预定系统(纯Java)

简单的机票预定系统(纯Java)

时间:2024-07-13 15:26:41浏览次数:15  
标签:status 机票 String System else 预定 println Java out

功能介绍

        通过控制台界面交互,主要实现了乘客购票以及退票流程,管理员对航班信息的管理。

        界面如下:

项目结构介绍

  • 所有文件如下

说明:其中entity包下放了Flight、Order、User三个实体类,Data是整个项目存放的数据(通过ArrayList来存储数据,没有使用数据库)

enumration包下存放了用户vip等级信息相关内容

Main是程序的主入口

service包下是相关业务的实现

util包下是对service中对数据操作的实现(模拟进行持久化),以及其他的一些功能实现

项目代码

Main

主要以switch做了一个选择界面,选的相应功能调用service函数

package main;

import entity.Data;
import service.FlightService;
import service.Impl.FlightServiceImpl;
import service.Impl.OrderServiceImpl;
import service.Impl.UserServiceImpl;
import service.OrderService;
import service.UserService;
import util.Impl.UserUtilImpl;
import util.UserUtil;

import java.util.Scanner;

/**
 * @author 爱看星星的猪
 * @description
 */
//系统的主入口
public class Main {
    static FlightService flightService=new FlightServiceImpl();
    static OrderService orderService=new OrderServiceImpl();
    static UserService userService=new UserServiceImpl();
    static Integer status=Data.getUser().getStatus();
    public static void main(String[] args) {
        //初始化一些数据
        flightService.initFlight();
        userService.initUser();
        Scanner scanner = new Scanner(System.in);
        boolean exit = false;
        while (!exit) {

            System.out.println("********************欢迎使用机票预定系统!************************");
            System.out.println("请选择需要的功能:");
            System.out.println("1.登录   2.注册   3.机票信息添加   4.机票信息管理  5.用户查询航线信息");
            System.out.println("6.用户购票     7.会员等级     8.用户退票      9.退出");
            System.out.println("****************************************************************");
            String input=scanner.next();
            try{
                Integer choice =Integer.valueOf(input);
                switch (choice) {
                    case 1:
                        System.out.println("进入登录功能");
                        userService.login();
                        status=Data.getUser().getStatus();
                        break;
                    case 2:
                        System.out.println("进入注册功能");
                        userService.register();
                        break;
                    case 3:
                        //检查登录状态
                        if (status!=null){
                            if (status.equals(0)){
                                System.out.println("你的账号已被禁用!");
                            } else if (status.equals(2)) {
                                System.out.println("进入机票信息添加功能");
                                flightService.addFlightInfo(1);
                            } else {
                                System.out.println("你没有权限进行操作");
                            }
                        }else {
                            System.out.println("请先登录!");
                        }
                        break;
                    case 4:
                        if (status!=null){
                            if (status.equals(0)){
                                System.out.println("你的账号已被禁用!");
                            } else if (status.equals(2)) {
                                System.out.println("进入机票信息管理功能");
                                flightService.flightManage();
                            } else {
                                System.out.println("你没有权限进行操作");
                            }
                        }else {
                            System.out.println("请先登录!");
                        }
                        break;
                    case 5:
                        if (status!=null){
                            if (status.equals(0)){
                                System.out.println("你的账号已被禁用!");
                            }else {
                                System.out.println("进入用户查询航线信息功能");
                                flightService.findFlight();
                            }
                        }else {
                            System.out.println("请先登录!");
                        }
                        break;
                    case 6:
                        if (status!=null){
                            if (status.equals(0)){
                                System.out.println("你的账号已被禁用!");
                            }else {
                                System.out.println("进入用户购票功能");
                                orderService.buy();
                            }
                        }else {
                            System.out.println("请先登录!");
                        }
                        break;
                    case 7:
                        if (status!=null){
                            if (status.equals(0)){
                                System.out.println("你的账号已被禁用!");
                            }else {
                                System.out.println("进入会员等级功能");
                                userService.showVip();
                            }
                        }else {
                            System.out.println("请先登录!");
                        }
                        break;
                    case 8:
                        if (status!=null){
                            if (status.equals(0)){
                                System.out.println("你的账号已被禁用!");
                            }else {
                                System.out.println("进入用户退票功能");
                                orderService.refund();
                            }
                        }else {
                            System.out.println("请先登录!");
                        }
                        break;
                    case 9:
                        exit=true;
                        break;
                    default:
                        System.out.println("输入不合法,请重新输入!");
                        break;
                }
            }catch (NumberFormatException e){
                System.out.println("请输入正确的数字序号!");
            }

        }
        System.out.println("退出系统!");
    }
}

entity

Flight

航班类:记录航班信息

package entity;

import java.time.LocalDateTime;

/**
 * @author 爱看星星的猪
 * @description
 */
public class Flight {
    private Long flightId;
    private String company;
    private Double price;
    private Integer residueTicket;
    private String startAddress;
    private String endAddress;
    private LocalDateTime startTime;
    private LocalDateTime endTime;

    public Flight(Long id,String company, Double price, Integer residueTicket, String startAddress, String endAddress, LocalDateTime startTime, LocalDateTime endTime) {
        this.flightId=id;
        this.company = company;
        this.price = price;
        this.residueTicket = residueTicket;
        this.startAddress = startAddress;
        this.endAddress = endAddress;
        this.startTime = startTime;
        this.endTime = endTime;
    }
    public Flight(String company, Double price, Integer residueTicket, String startAddress, String endAddress, LocalDateTime startTime, LocalDateTime endTime) {
        this.setFlightId((Long) System.currentTimeMillis());
        this.company = company;
        this.price = price;
        this.residueTicket = residueTicket;
        this.startAddress = startAddress;
        this.endAddress = endAddress;
        this.startTime = startTime;
        this.endTime = endTime;
    }

    public Flight() {
    }


    public Long getFlightId() {
        return flightId;
    }

    public void setFlightId(Long flightId) {
        this.flightId = flightId;
    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    publ

标签:status,机票,String,System,else,预定,println,Java,out
From: https://blog.csdn.net/Liang_z_/article/details/140399542

相关文章

  • Java中的接口多继承详解
    Java中的接口多继承详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java中,类的多继承是不被允许的,但是接口的多继承却是被允许的。接口多继承可以使得类具备多种行为,并且解耦合代码,有助于提升代码的可维护性和可扩展性。本文将详细介绍Java中接口多......
  • Java中的类与对象详解
    Java中的类与对象详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java编程中,类与对象是两个最基本的概念。类是对象的模板,对象是类的实例。理解和掌握类与对象的概念是学习Java的基础。本文将详细介绍Java中的类与对象,包括类的定义、对象的创建、构......
  • Java中的静态内部类详解
    Java中的静态内部类详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java中,内部类是一种将类定义在另一个类内部的结构。而静态内部类(StaticNestedClass)则是使用static修饰的内部类。静态内部类有其独特的特性和用途,理解静态内部类可以帮助我们编......
  • Java中的多线程详解
    Java中的多线程详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!多线程编程是Java开发中一个非常重要的主题。在多线程环境下,程序可以同时执行多个任务,从而提高程序的执行效率。本文将详细介绍Java中的多线程,包括线程的创建、线程的生命周期、线程的同......
  • Java中的线程通信详解
    Java中的线程通信详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在多线程编程中,线程之间的通信是一个重要且复杂的主题。为了确保多线程程序的正确性和效率,线程需要能够互相通信并协调工作。Java提供了多种方式来实现线程间的通信,如wait()、notify......
  • Java中标识符和关键字
    1.标识符publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello,world");}}上述代码中在publicclass后面的HelloWorld称为类名,main称为方法名,也可以将其称为标识符,即:在程序中由用户给类名、方法名或者变量所取的名字。【......
  • 初识Java的main方法
    上文我们了解了Java语言的相关发展和Java的实用领域,此文我们从Java的main方法开始了解Java吧!1.main方法示例publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello,world");}}图解:如上展示的就是最简单的一个Java程序,可......
  • Java异常详解及自定义异常
    认识异常,掌握异常处理主要的5个关键字:throw、try、catch、final、throws并掌握自定义异常目录1、异常概念与体系结构1、1异常的概念1、2异常体系结构 1、3异常的分类编译时异常:运行时异常:2、异常处理 2、1防御式编程2、2异常的抛出2.3异常的捕获2.3.1异常声......
  • 【java登录锁定功能】redis实现登录失败锁定账号
    登录失败(账号密码<5次时不提示),>=5次时,锁定时间5min,最高密码错误次数为10,第十次密码输入错误后,提醒,“账号已停用,请联系管理员开通”,次日0时,重新计算错误次数代码实现publicstaticStringLOGIN_FAIL_LOCK="login:error:count:";publicstaticStringLOGIN......
  • 【华为OD】D卷真题100分:内存资源分配 Java代码实现[思路+代码]
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客JS、C、Java、python、C++代码实现:【华为OD】D卷真题100分:内存资源分配JavaScript代码实现[思路+代码]-C......