北京地铁管理系统基础测试题

 【需求描述】  

  (1)记录管理人员信息。员工信息包括工号、姓名、性别和一个手机号,工号唯一标识每位员工。

  (2)记录地铁站信息。地铁站信息包括地铁站编号、地铁站名称、所属路线、停留时间、起始运营时间、停止运营时间,系统内部用地铁站编号唯一标识每个地铁站。

  【结构设计】  

  管理人员(工号,姓名,性别,手机号)

  地铁站(地铁站编号,地铁站名称,所属路线)

  【问题1】  

  请根据业务需求及结构,设计出管理人员类(Manager)和地铁站类(Subway)

  要求:

  1.包括所涉及的属性

  2.要生成getter()&setter()方法

  3.要包含无参和带全部参数的构造方法

  4.要有相应的toString()方法,用于输出相关属性的值

  Manager类

public class Manager {
    private String managerID;
    private String managerName;
    private String sex;
    private String telePhone;

    public Manager() {
    }

    public Manager(String managerID, String managerName, String  sex, String telePhone) {
        this.managerID = managerID;
        this.managerName = managerName;
        this.sex = sex;
        this.telePhone = telePhone;
    }

    public String getManagerID() {
        return managerID;
    }

    public void setManagerID(String managerID) {
        this.managerID = managerID;
    }

    public String getManagerName() {
        return managerName;
    }

    public void setManagerName(String managerName) {
        this.managerName = managerName;
    }

    public String  getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getTelePhone() {
        return telePhone;
    }

    public void setTelePhone(String telePhone) {
        this.telePhone = telePhone;
    }

    @Override
    public String toString() {
        return "Manager{" +
                "managerID='" + managerID + '\'' +
                ", managerName='" + managerName + '\'' +
                ", sex=" + sex +
                ", telePhone='" + telePhone + '\'' +
                '}';
    }
}

 Subway类

import java.io.Serializable;

public class Subway implements Serializable {
    private String subNum;
    private String subName;
    private String subRoute;

    public Subway() {
    }

    public Subway(String subNum, String subName, String subRoute) {
        this.subNum = subNum;
        this.subName = subName;
        this.subRoute = subRoute;
    }


    public String getSubNum() {
        return subNum;
    }

    public void setSubNum(String subNum) {
        this.subNum = subNum;
    }

    public String getSubName() {
        return subName;
    }

    public void setSubName(String subName) {
        this.subName = subName;
    }

    public String getSubRoute() {
        return subRoute;
    }

    public void setSubRoute(String subRoute) {
        this.subRoute = subRoute;
    }

    @Override
    public String toString() {
        return
                subNum + ',' +
                subName + ',' +
               subRoute  ;
    }
}

【问题2】  

  运行程序,提示管理员进行登录,根据输入的工号和姓名判断是否登录成功,登录成功,进入下一步,登录失败,给出提示,结束程序

  系统中现有管理人员信息如下:

  10001,小王,男,13112345678

  10002,老于,男,13212345678

  10003,老方,男,13312345678

  保存在当前项目模块下的managers.txt文件中

  系统中现有地铁站信息如下:

  s3002,南锣鼓巷,6号线

  s5016,王府井,1号线

  s2026,西直门,4号线

  保存在当前项目模块下的subways.txt文件中

  要求:

   2.1. 运行程序,将managers.txt文件中的管理人员信息读取到集合中

         2.1.1. 将读取到的一行数据切割成字符串数组

         2.1.2. 将数组中的元素封装到Manager对象中

         2.1.3. 将Manager对象添加到集合中

  2.2. 将subways文件中的地铁站信息读取到另一个集合中

  2.3. 给出提示,获取管理人员输入的工号和姓名

  2.4. 判断管理人员信息集合中是否包含管理人员输入的工号和姓名,给出对应的登录结果

 对Manager进行封装对象,并判断存在

import SubwayMenagerment.domian.Manager;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class Managerdao {
    //创建Manager集合对象
    public void getManager(ArrayList<Manager> list) throws IOException {
        BufferedReader br = new BufferedReader(
                new FileReader("C:\\Users\\Desktop\\JavaProject\\manager.txt"));
        String s;
        while ((s = br.readLine()) != null) {
/*            String ID = s.split(",")[0];
            String name = s.split(",")[1];
            String sex = s.split(",")[2];
            String tel = s.split(",")[3];
            Manager manager = new Manager(ID, name, sex, tel);*/
            String[] split = s.split(",");
            Manager manager = new Manager(split[0], split[1], split[2],split[3]);
            list.add(manager);
        }
        for (Manager get : list) {
            System.out.println(get);
        }
    }

    //判断该管理员是否存在
    public boolean jujde(String id, String name, ArrayList<Manager> list) {
        //遍历集合
        boolean judge=false;
        for (Manager manager : list) {
            //判断
            boolean equals = id.equals(manager.getManagerID()) && name.equals(manager.getManagerName());
            if (equals) {
                System.out.println("登录成功");
                judge=true;
                break;
            }
        }
        return judge;
    }
}

  【问题3】  

  当管理人员登录成功后,给出选项提示,根据管理人员的选择,执行后续的操作

  要求:

       3.1. 给出提示: 1.查看地铁站 2.添加地铁站

       3.2. 获取管理人员输入的选择

       3.3. 根据管理人员的选择,执行对应的操作

  Enytry类

package SubwayMenagerment.entry;

import SubwayMenagerment.controller.Managerdao;
import SubwayMenagerment.domian.Manager;
import SubwayMenagerment.domian.Subway;
import SubwayMenagerment.controller.SubwayStationdao;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class SubManagerEntry {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        ArrayList<Manager> list = new ArrayList<>();
        getManagerList(list);//获取员工信息
        ArrayList<Subway> list1 = new ArrayList<>();
        getSubwayList(list1);//获取地铁信息
        System.out.println("欢迎来到管理员登录界面!");
        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入工号:");
            String id = sc.next();
            System.out.println("请输入姓名:");
            String name = sc.next();
            boolean judge = judgeManager(id, name, list);
            if (judge) {
                loop:
                while (true) {
                    System.out.println("请输入选择:1.查看地铁站 2.添加地铁站 3.查看txt文件 4.退出");
                    int input = sc.nextInt();
                    switch (input) {
                        case 1:
                            System.out.println("欢迎来到--查看地铁站--");
                            lookSubway(list1);//查找地铁信息
                            break;
                        case 2:
                            System.out.println("欢迎来到--添加地铁站--");
                            addSubway(list1);
                            break;
                        case 3:
                            System.out.println("查看subway.txt文件");
                            lookFile(list1);
                            break;
                        case 4:
                            System.out.println("感谢您使用地铁信息化管理系统, 再见!");
                            break loop;
                        default:
                            System.out.println("您的输入有误, 请重新输入");
                            break;
                    }
                }
                return;
            }
            System.out.println("工号或密码不对,请重新输入!");
        }
    }

    private static void getSubwayList(ArrayList<Subway> list1) throws IOException {
        SubwayStationdao getSubwayList = new SubwayStationdao();
        getSubwayList.getSubway(list1);
    }

    private static void lookSubway(ArrayList<Subway> list1) throws IOException {
        SubwayStationdao substation = new SubwayStationdao();
        substation.lookMethod(list1);
    }


    private static void addSubway(ArrayList<Subway> list1) throws IOException {
        SubwayStationdao message = new SubwayStationdao();
        message.add(list1);
    }

    private static void lookFile(ArrayList<Subway> list1) throws IOException, ClassNotFoundException {
        SubwayStationdao lookFile = new SubwayStationdao();
        lookFile.Preserve(list1);
    }

    private static boolean judgeManager(String id, String name, ArrayList<Manager> list) {
        Managerdao judgement = new Managerdao();
        return judgement.jujde(id, name, list);
    }

    private static void getManagerList(ArrayList<Manager> manager) throws IOException {
        Managerdao message = new Managerdao();
        message.getManager(manager);
    }
}

  【问题4】  

  当管理人员选择1时,执行对应的查看地铁站操作

   要求:

       4.1. 判断地铁站集合中是否有地铁站信息

       4.2. 如果没有地铁站信息,给出提示

       4.3. 如果有地铁站信息,遍历集合,打印每个地铁站信息

  

  【问题5】  

  当管理人员选择2时,执行对应的添加地铁站操作

  要求:

       5.1.依次给出提示,获取管理人员输入的地铁站信息,包括地铁站编号,地铁站名称,所属路线

       5.2. 将管理人员输入的地铁站信息封装成对象,存储到集合中

       5.3. 将集合中的地铁站信息更新到文件中,再次打开文件时,应该包含管理人员刚才录入进去的地铁站信息,程序结束

对subway进行封装并增加对象到集合,写入文件

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class SubwayStationdao {
    //将地铁信息录入集合中
    public void getSubway(ArrayList<Subway> list) throws IOException {
        BufferedReader br = new BufferedReader(
                new FileReader("C:\\Users\\Desktop\\JavaProject\\subways.txt"));
        String s;
        while ((s = br.readLine()) != null) {
/*            String subNum = s.split(",")[0];
            String subName = s.split(",")[1];
            String subRoute = s.split(",")[2];
            Subway subway = new Subway(subNum, subName, subRoute);*/
            String[] split = s.split(",");
            Subway subway = new Subway(split[0], split[1], split[2]);
            list.add(subway);
        }
    }

    //查看地铁信息
    public void lookMethod(ArrayList<Subway> list) {
        if (list.size() == 0) {
            System.out.println("查无信息,请添加信息!");
        } else {
            for (Subway subway : list) {
                System.out.println(subway);
            }
        }
    }

    //增加地铁站
    public void add(ArrayList<Subway> list) throws IOException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入地铁编号:");
        String subNum = sc.nextLine();
        System.out.println("请输入地铁名称:");
        String subName = sc.nextLine();
        System.out.println("请输入所属路线:");
        String subRoute = sc.nextLine();
        Subway subway = new Subway(subNum, subName, subRoute);
        list.add(subway);

        //将录入的信息存入subway.txt文件中
        BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\Desktop\\JavaProject\\subways.txt", true));
/*        bw.write("\r\n");
        bw.write(subNum + ",");
        bw.write(subName + ",");
        bw.write(subRoute + "\r\n");
        bw.flush();*/
        bw.write(subway.toString());
        bw.newLine();
        bw.close();
        System.out.println("添加成功!!!");
    }

    //查看subways文件
    public void Preserve(ArrayList<Subway> list) throws IOException, ClassNotFoundException {
        BufferedReader br = new BufferedReader(
                new FileReader("C:\\Users\\Desktop\\JavaProject\\subways.txt"));
        String s;
        while ((s = br.readLine()) != null) {
            System.out.println(s);
        }
/*        ObjectInputStream ois = new ObjectInputStream(
                new FileInputStream("E:\\JavaProject\\subways.txt"));
            Subway read = (Subway) ois.readObject();
            System.out.println(read);*/
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值