Java基础项目,航空管理

问题描述:

某航空公司在其航班到达的不同的国家的不同地方设有不同的办事处,这个项目要求开发一个自动化软件系统,该系统将提供给这些办事处的管理者(role=1)和普通用户(role=0)用于管理航班信息。根据以上描述,要求实现系统的用户模块和办事处模块,包含以下功能(注:系统存在一个默认管理员admin/admin123):
用户模块:
1. 用户添加
2. 密码修改
3. 个人信息查看
4. 账号状态修改(禁用0、启用1)
5. 用户登录(被禁用账号无法登录并提示友好的消息)
6. 修改用户角色(设置取消管理员)
7. 用户列表
8. 查询指定办事处的员工
9. 删除用户
办事处模块:
1. 办事处添加
2. 办事处列表

注意:管理员具备以上所有功能,普通用户只有密码修改和个人信息查看功> 能
参考类信息如下:
用户类(User):
id,账号(username),密码(passord),年龄(age),角色(role),邮箱> (email),办事处id(officeID),账户状态(status)
办事处类(Office):
id,办公室名(officeName)

要求使用技术参数如下:
1.分支与循环
2.数组或ArrayList
3.方法
4.构造器
5.setter/getter
6.抽象类或接口
7.多态
8.Scanner类

用户(User)类创建

package com.softeem.lesson02.test01;

/**
 * @author Jedi
 */
public class User {
    /**用户编号*/
    private int uid;
    /**用户名*/
    private String username;
    /**用户密码*/
    private String password;
    /**用户类型1-->管理员  0--->普通用户*/
    private int role;
    /**用户状态1-->正常状态  0-->账户被禁用*/
    private int status;
    /**用户年龄*/
    private int age;
    /**用户邮箱*/
    private String email;
    /**办事处id*/
    private int ono;


    public User() {
    }


    public User(int uid, String username, String password, int role, int status, int age, String email, int ono) {
        this.uid = uid;
        this.username = username;
        this.password = password;
        this.role = role;
        this.status = status;
        this.age = age;
        this.email = email;
        this.ono = ono;
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getRole() {
        return role;
    }

    public void setRole(int role) {
        this.role = role;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public int getOno() {
        return ono;
    }

    public void setOno(int ono) {
        this.ono = ono;
    }

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", role=" + role +
                ", status=" + status +
                ", age=" + age +
                ", email='" + email + '\'' +
                ", ono=" + ono +
                '}';
    }
}

办公室类(Office)创建

package com.softeem.lesson02.test01;

/**
 * @author Jedi
 */
public class Office {
    /**办公室编号*/
    private int oid;
    /**办公室名称*/
    private String officeName;

    public Office() {
    }

    public Office(int oid, String officeName) {
        this.oid = oid;
        this.officeName = officeName;
    }

    public int getOid() {
        return oid;
    }

    public void setOid(int oid) {
        this.oid = oid;
    }

    public String getOfficeName() {
        return officeName;
    }

    public void setOfficeName(String officeName) {
        this.officeName = officeName;
    }

    @Override
    public String toString() {
        return "Office{" +
                "oid=" + oid +
                ", officeName='" + officeName + '\'' +
                '}';
    }
}

创建接口类

import java.util.List;

/**
 * @author Jedi
 */
public interface InterfaceOffice {
    public boolean addOffice(Office office);
    public List<Office> officeList();
}


import java.util.List;

/**
 * @author Jedi
 */
public interface InterfaceUser {
    public User selectUserByuid(int uid);
    public User selectUserByUsername(String username);
    public boolean deleteUser(int uid);
    public boolean addUser(User u);
    public List<User> UserList();
    public boolean alterPwd(int uid,String password);
    public boolean alterRole(int uid,int role);
    public boolean alterStatus(int uid,int status);
    public List<User> selectByOid(int oid);
    public boolean userLogin(String user,String password);
}

实现接口类

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author Jedi
 */
public class UserImpl implements InterfaceUser {
    ArrayList<User> list = new ArrayList<User>();

    public UserImpl() {
        list.add(new User(100,"admin","admin123",1,1,23,"qwe@qq.com",200));
    }

    @Override
    public User selectUserByuid(int uid) {
        User user = null;
        for (User u : list) {
            if (u.getUid() == uid) {
                user = u;
            }
        }
        return user;
    }

    @Override
    public User selectUserByUsername(String username) {
        User user = null;
        for (User u : list) {
            if (u.getUsername().equals(username)) {
                user = u;
            }
        }
        return user;
    }

    @Override
    public boolean deleteUser(int uid) {
        boolean flag = false;
        Iterator it = list.iterator();
        while (it.hasNext()){
            Object o = it.next();
            User u = (User) o;
            if (((User) o).getUid()==uid) {
                it.remove();
                return true;
            }
        }
        return flag;
    }

    @Override
    public boolean addUser(User u) {
        for (User uu : list) {
            if (uu.getUid() == u.getUid()) {
                return false;
            }
            if (uu.getUsername().equals(u.getUsername())){
                return false;
            }
        }
        list.add(u);
        return true;
    }

    @Override
    public List<User> UserList() {

        return list;
    }

    @Override
    public boolean alterPwd(int uid, String password) {
        boolean flag = false;
        for (User u : list) {
            if (u.getUid() == uid) {
                u.setPassword(password);
                flag = true;
            }
        }
        return flag;
    }

    @Override
    public boolean alterRole(int uid, int role) {
        boolean flag = false;
        for (User u : list) {
            if (u.getUid() == uid) {

                u.setRole(role);
                flag = true;
            }
        }
        return flag;
    }

    @Override
    public boolean alterStatus(int uid, int status) {
        boolean flag = false;
        for (User u : list) {
            if (u.getUid() == uid) {
                u.setStatus(status);
                flag = true;
            }
        }
        return flag;
    }

    @Override
    public List<User> selectByOid(int ono) {
        ArrayList<User> list2 = null;
        for (User u : list){
            if (u.getOno() == ono){
                list2.add(u);
            }
        }
        return list2;
    }


    @Override
    public boolean userLogin(String user, String password) {
        boolean flag =false;
        for (User u : list){
            if (u.getUsername().equals(user) &&u.getStatus()!=0){
                if (u.getPassword().equals(password)){
                    flag = true;
                }
            }
        }
        return flag;
    }
}


import java.util.ArrayList;
import java.util.List;

public class OfficeImpl implements InterfaceOffice{
    List<Office> list = new ArrayList<Office>();

    @Override
    public boolean addOffice(Office office) {
        for (Office o:list){
            if (o.getOid() == office.getOid()){
                return false;
            }
        }
        list.add(office);
        return true;
    }

    @Override
    public List<Office> officeList() {

        return list;
    }
}

创建测试类

import java.util.List;
import java.util.Scanner;

/**
 * @author Jedi
 */
public class Test {
    static Scanner sc = new Scanner(System.in);
    static InterfaceUser user = new UserImpl();
    static InterfaceOffice office = new OfficeImpl();
    static String username;
    static String password;

    public static void main(String[] args) {
       login();
    }

    public static void login() {
        System.out.println("-----请登录-----");
        System.out.println("请输入你的用户名和密码:");

        username = sc.next();
        password = sc.next();
        if (user.userLogin(username, password)) {
            System.out.println("登录成功");
            guide();
        } else {
            System.out.println("登录失败!请重新登录");
            login();
        }
    }

    /**
     * 判断是否是管理员
     */
    public static boolean isRole( ) {
        User u = null;
        u = user.selectUserByUsername(username);
        if (u.getRole() == 1) {
            return true;
        }
        return false;
    }

    /**
     * 指令指南
     */
    public static int guide( ) {
        int order;

        if (isRole()) {
            System.out.println("---请输入你要执行的指令---");
            System.out.println("-1-->>添加用户---------");
            System.out.println("-2-->>密码修改---------");
            System.out.println("-3-->>个人信息查看------");
            System.out.println("-4-->>账号状态信息修改---");
            System.out.println("-5-->>修改用户角色------");
            System.out.println("-6-->>用户列表----------");
            System.out.println("-7-->>查询指定办事处的员工---");
            System.out.println("-8-->>删除用户----------");
            System.out.println("-9-->>办事处添加----------");
            System.out.println("-10-->>办事处列表----------");
            System.out.println("-0-->>退出----------");
            order = sc.nextInt();
        } else {
            System.out.println("---请输入你要执行的指令---");
            System.out.println("-2-->>密码修改---------");
            System.out.println("-3-->>个人信息查看------");
            System.out.println("-0-->>退出------");
            order = sc.nextInt();
        }
        runAdmin(order);
        return order;
    }

    public static void runAdmin(int order) {
        User u = new User();
        switch (order) {
            case 0:{
                login();
            }
            case 1: {
                System.out.println("请输入用户编号");
                u.setUid(sc.nextInt());
                System.out.println("请输入用户账号");
                u.setUsername(sc.next());
                System.out.println("请输入用户密码");
                u.setPassword(sc.next());
                System.out.println("请输入用户年龄");
                u.setAge(sc.nextInt());
                System.out.println("请输入用户角色");
                u.setRole(sc.nextInt());
                System.out.println("请输入用户邮箱");
                u.setEmail(sc.next());
                System.out.println("请输入用户办事处id");
                u.setOno(sc.nextInt());
                System.out.println("请输入用户账户状态");
                u.setStatus(sc.nextInt());
                if (user.addUser(u)) {
                    System.out.println("添加成功!");
                } else {
                    System.out.println("添加失败!你输入的编号或者用户名已被使用!");
                }
                guide();
                break;

            }
            case 2: {
                int uid;
                String password;
                System.out.println("请输入你要修改密码用户的编号");
                uid = sc.nextInt();
                System.out.println("请输入你要修改为的密码");
                password = sc.next();
                if (user.alterPwd(uid, password)) {
                    System.out.println("修改成功");
                } else {
                    System.out.println("查无此用户");
                }
                guide();
                break;
            }
            case 3: {
                int uid;
                System.out.println("请输入你要查询的用户的编号");
                uid = sc.nextInt();
                if (user.selectUserByuid(uid) != null) {
                    System.out.println(user.selectUserByuid(uid));
                } else {
                    System.out.println("查无此用户!");
                }
                guide();
                break;
            }
            case 4: {
                int uid;
                int status;
                System.out.println("请输入你要修改的用户的编号");
                uid = sc.nextInt();
                status = sc.nextInt();
                if (user.alterStatus(uid, status)) {
                    System.out.println("修改成功");
                } else {
                    System.out.println("查无此用户");
                }
                guide();
                break;
            }
            case 5: {
                int uid;
                int role;
                System.out.println("请输入你要修改的用户的编号");
                uid = sc.nextInt();
                role = sc.nextInt();
                if (user.alterRole(uid, role)) {
                    System.out.println("修改成功");
                } else {
                    System.out.println("查无此用户");
                }
                guide();
                break;
            }
            case 6: {
                List<User> list3 = user.UserList();
                for (User uu : list3) {
                    System.out.println(uu);
                }
                guide();
                break;
            }
            case 7: {
                int oid;
                System.out.println("请输入要查询的办事处编号");
                oid = sc.nextInt();
                List<User> list = user.selectByOid(oid);
                for (User uu : list) {
                    System.out.println(uu);
                }
                guide();
                break;
            }
            case 8: {
                int uid;
                System.out.println("请输入你要删除的用户的编号");
                uid = sc.nextInt();
                if (user.deleteUser(uid)) {
                    System.out.println("删除成功");
                } else {
                    System.out.println("查无此用户");
                }
                guide();
                break;
            }
            case 9: {
                Office o = new Office();
                System.out.println("请输入你要添加办事处的编号");
                o.setOid(sc.nextInt());
                System.out.println("请输入你要添加办事处的办公室名称");
                o.setOfficeName(sc.next());
                if (office.addOffice(o)) {
                    System.out.println("添加成功");
                } else {
                    System.out.println("以添加过");
                }
                guide();
                break;
            }
            case 10: {
                List<Office> list = office.officeList();
                for (Office oo : list) {
                    System.out.println(oo);
                }
                guide();
                break;
            }
            default:
                System.out.println("你输入的指令有误!");
                guide();
        }
    }
}

效果截图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
# OOP(机试) 本程序总结文章:http://blog.qiji.tech/?p=10344 - - - ## 程序基本要求 一、项目名称: Air Infomation Programming 基于控制台的航班信息程序,简称AIP 二、具体要求如下: (1)显示航班信息程序主菜单,如图-1所示,包括: * 1)列出所有航班 * 2)按起飞时间查询 * 3)按目的地查询 * 4)删除航班 * 5)更新航班 * 6)退出系统 (2)列出所有航班:查出所有航班的信息,以列表形式显示,包括:编号,航班号,目的地,起飞日期。 (3)按起飞时间查询:输入起飞时间(格式如2011-2-25),查出所有这一天的航班。 (4)按目的地查询:输入目的地,查出所有飞往此地的航班。 (5)删除航班:删除指定编号的航班。 (6)更新航班:更新指定编号的航班。 (7)退出系统。 三、类的设计 需要定义如下类 * 航班信息实体类(AirInfo) * 航班编号(id) * 航班号(flight_number) * 目的地(destination) * 起飞日期(flight_date) * 航班信息管理类AirInfoManager类 * 程序入口类TestAirInfo类 四、具体要求及推荐实现步骤 1. 创建实体类AirInfo,属性私有化,根据业务提供需要的构造方法和setter/getter方法。 1. 创建航班管理AirInfoManager类,在类中提供列出所有航班的方法,按起飞时间查询的方法、按目的地查询的方法、删除航班的方法、更新航班的方法、退出程序的方法。 2. 创建TestAirInfo类,启动和运行程序。 3. 航班的信息用ArrayList(或数组)保存。 4. 要求代码规范,命名正确。 - - -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西伯利亚大熊猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值