首页 > 编程语言 >Java信息管理系统(天空之城——未来城市主题02)

Java信息管理系统(天空之城——未来城市主题02)

时间:2022-12-03 15:56:32浏览次数:50  
标签:02 Java System 星城 println 信息管理系统 array id out

上一各版本里只设计了星城的基础类,在本次代码实现对星城系统的信息管理。作用于在城市定居某个星体之后录入星空信息系统之中。现在是将数据存储在列表中,将面向对象结合面向过程实现的部分代码(利用期末作业完成幻想之作,小娱乐小制作)

第1部分 为输出一个菜单

/**
     * @menu() 菜单
     */
    public static void menu(){
        System.out.println("============================");
        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("输入0:退出系统");
        System.out.println("============================");
        System.out.println("请输入:");
    }

第2部分 通过遍历向空列表添加星城信息

/**
     * @Traverse 遍历
     * @param array
     * @param id
     * @return
     */
    public static boolean Traverse(ArrayList<City> array, String id){
        //遍历进行比较,有相同返回true,否则返回false
        boolean flag = false;
        for (int i = 0; i < array.size(); i++) {
            City s = array.get(i);
            if(id.equals(s.getCityId())) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * @addStarCity 添加星城
     * @param array
     */
    public static void addStarCity(ArrayList<City> array){
        //存储(添加)星城信息
        Scanner sc = new Scanner(System.in);
        //后面要通过编号进行信息查找,所以要求编号不能重复
        String id ;
        while (true) {
            System.out.println("请输入编号:");
            id = sc.nextLine();
            //定义一个判断方法
            boolean flag = Traverse(array, id);
            if (flag) {
                System.out.println("编号已被使用,请重新输入!");
            } else {
                break;      //学号有效,跳出循环
            }
        }
        System.out.println("请输入创建年份:");
        String appearYear = sc.nextLine();
        System.out.println("请输入星城命名:");
        String cityName = sc.nextLine();
        System.out.println("请输入星城人口:");
        Double population = sc.nextDouble();
        //赋值给到星城
        City s1 = new City();
        s1.setCityId(Integer.parseInt(id));
        s1.setCityName(cityName);
        s1.setCityPopulation(population);
        s1.setCityAppearYear(Integer.parseInt(appearYear));
        //将星城给到集合中
        array.add(s1);
        System.out.print("添加成功!");
    }

第3部分 查找星城信息

/**
     * @findStarCity 根据编号查找星城
     * @param array
     */
    public static void findStarCity(ArrayList<City> array){
        Scanner sc = new Scanner(System.in);
        System.out.println("输入查找星城的编号:");
        String id = sc.nextLine();
        //判断编号是否存在并查找输出
        int flag = -1;   //定义一个判断标志,因为数组下标不会为-1.所以将flag初始化为-1
        City s = new City();
        for (int i = 0; i < array.size(); i++) {
            s = array.get(i);
            if(id.equals(s.getCityId())){
                flag = i;
                break;
            }
        }
        if (flag == -1){
            System.out.println("星城编号不存在!");
        }else{
            System.out.println("找到当前星城!");
            System.out.println("星城编号\t\t星城名称\t\t出现年份\t\t星城人口");
            System.out.println(s.getCityId()+"\t\t\t"+s.getCityName()+"\t\t"+s.getCityAppearYear()+"\t\t"+s.getCityPopulation());
        }
    }

第4部分 根据星城某项数据进行排序

/**
     * @sortStudent 根据星城人口进行排序(从高到低)
     * @param array
     */
    public static void sortStarCity(ArrayList<City> array){
        array.sort(new Comparator<City>() {
            @Override
            public int compare(City o1, City o2) {
                return (int)(o2.getCityPopulation() - o1.getCityPopulation());
            }
        });
        System.out.println("排序成功!");
    }

第5部分 向列表某个位置中插入一项新的星城信息

/**
     * @insertStudent 插入星城信息
     * @param array
     */
    public static void insertStarCity(ArrayList<City> array){
        Scanner sc = new Scanner(System.in);
        System.out.println("输入要插入的位置:");
        int a = sc.nextInt();
        //后面要通过星城编号进行信息查找,所以要求编号不能重复
        String id ;
        while (true) {
            System.out.println("请输入星城编号:");
            id = sc.nextLine();
            //定义一个判断方法
            boolean flg = Traverse( array, id);
            if (flg) {
                System.out.println("星城编号已存在,请重新输入!");
            } else {
                break;      // 当编号存在时有效,跳出循环
            }
        }
        System.out.println("请输入创建年份:");
        String appearYear = sc.nextLine();
        System.out.println("请输入星城命名:");
        String cityName = sc.nextLine();
        System.out.println("请输入星城人口:");
        Double population = sc.nextDouble();
        // 赋值给到星城
        City s1 = new City();
        s1.setCityId(Integer.parseInt(id));
        s1.setCityName(cityName);
        s1.setCityPopulation(population);
        s1.setCityAppearYear(Integer.parseInt(appearYear));
        // 将星城信息给到集合中
        array.add(a,s1);
        System.out.print("成功插入星城的信息!");
    }

第6部分 当某项数据出现违规时,将其驱逐出星空

/**
     * @deleteStarCity 删除指定违规星城信息
     * @param array
     */
    public static void  deleteStarCity(ArrayList<City> array){
        Scanner sc = new Scanner(System.in);
        System.out.println("输入要删除的违规星城编号:");
        String id = sc.nextLine();
        for (int i = 0; i < array.size(); i++) {
            if(Objects.equals(array.get(i).getCityId(), id)){
                array.remove(i);
                break;
            }
        }
        System.out.println("成功删除星城编号为"+id+"的信息!");
    }

所有部分都属于星城管理系统的主要实现的方法体所组成...(To be continued...)

@https://blog.csdn.net/YIC020920?

标签:02,Java,System,星城,println,信息管理系统,array,id,out
From: https://www.cnblogs.com/YICHONG-777/p/16948177.html

相关文章

  • 2021北京智源大会SNN部分
    神经形态视觉计算当前问题:spikesvsbits(脉冲vs位)meuronsvsmemory(神经元vs计算单元)(真空管vacuumtube,晶体管transistor,忆阻器memristor)synapsesvsme......
  • java——mybatis——Mybatis的CRUD——typeAliases标签和package标签
    方式一:       方式二:         ==============================================================================================......
  • java——mybatis——Mybatis的CRUD——properties标签的使用及细节
         ================================================================================================       PS:此处和配置文件必须保......
  • 肖sir__Java 基础语法_02
    Java基础语法======================================= 一、Java常见基本数据类型如下【8种】(1)byte、char、short、int、long、float、double、boolean。(2)注解:byte(位)......
  • Round #2022/11/26
    路径统计题目描述你有一棵\(n\)节点的树\(T\),回答\(m\)个询问,每次询问给你两个整数\(l\),\(r\),问存在多少个整数\(k\)使得从树上编号为\(l\)的点沿着\(l→r\)......
  • Java开发环境搭建
    JDK下载下载地址:https://www.oracle.com/java/technologies/downloads/#java8-windows参考:https://blog.csdn.net/m0_37593616/article/details/125284168配置环境变量......
  • 2022-2023 20221410张浩轩 《计算机基础与程序设计》第十四周学习总结
    学期(2022-2023)学号2022110《计算机基础与程序设计》第十四周学习总结作业信息<班级的链接>(如2022-2023计算机基础与程序设计)||-- |-- |<作业要求的链接>(如2022-2023......
  • 3:Throwable-Java API 实战
    (目录)1.异常的介绍Throwable有两个子类1.错误Error不常见基本上不能解决尽量避免2.异常Exception常见可以定位,通过修改代码解决不是编译失败问题,代码语法......
  • Adobe Premiere Pro 2022 SP剪辑软件下载
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【0025】即可获取下载链接。......
  • 3DS MAX 2022三维设计软件下载
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【0027】即可获取下载链接。......