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