• 集合-增删改查


     A: 创建一个接口StudentManager
    B:创建一个实现类:StudentManagerImpl{
    成员变量:List<Map> students;
    public boolean addstudents(){
    创建一个Map ;scanner录入:学生姓名 学生学号 学生性别 学生年龄
    遍历students判断这个学生学号是否已经添加过,如果已经添加过返回false
    否则:封装Map放入students列表中
    }
    Public index search(String 学生学号){
    根据学号查找学生信息
    }
    根据学号找到学生并修改该学生成绩
     根据学号找到学生并删除该学生信息
     }
    C:书写一个main方法进行测试

    接口:
    1 package test01;
    2 
    3 public interface StudentManager {
    4     public boolean addstudents();
    5     public int search(int sid);
    6     public void change();
    7     public void delete();
    8 }

    实现类:

      1 package test01;
      2 
      3 import java.util.*;
      4 
      5 public class StudentManagerImpl implements StudentManager {
      6     List<Map> students=new ArrayList<>();
      7     Scanner scanner=new Scanner(System.in);
      8     //添加学生
      9     @Override
     10     public boolean addstudents() {
     11         System.out.println("请录入学生学号");
     12         int sid=scanner.nextInt();
     13         int seachSid=search(sid);
     14         if (seachSid==-1){
     15             System.out.println("请录入学生姓名");
     16             String stuname=scanner.next();
     17             System.out.println("请录入学生性别");
     18             String stusex=scanner.next();
     19             System.out.println("请录入学生成绩");
     20             int score=scanner.nextInt();
     21             Map map=new HashMap();
     22             map.put("学号",sid);
     23             map.put("姓名",stuname);
     24             map.put("性别",stusex);
     25             map.put("成绩",score);
     26             students.add(map);
     27         }else {
     28             System.out.println("该学号学生信息:"+students.get(seachSid)+"已存在请重新录入");
     29         }
     30         return false;
     31     }
     32     //查找学号下标
     33     @Override
     34     public int search(int sid) {
     35         int index=-1;
     36         for (int i = 0; i < students.size(); i++) {
     37             if (students.get(i).get("学号").equals(sid)){
     38                 index=i;
     39             }
     40         }
     41         return index;
     42     }
     43     //根据学号查询到学生信息并修改该生的成绩
     44     @Override
     45     public void change(){
     46         System.out.println("请录入要修改成绩的学生学号");
     47         int sid=scanner.nextInt();
     48         int index=search(sid);
     49         if (index==-1){
     50             System.out.println("查无此人");
     51         }else {
     52             System.out.println("要修改成绩的学生为:"+students.get(index));
     53             System.out.println("请录入新的成绩");
     54             int newscore=scanner.nextInt();
     55             int old= (int) students.get(index).get("成绩");
     56             students.get(index).put("成绩",newscore);
     57             System.out.println("修改成功!修改结果为:"+students.get(index));
     58             System.out.println(students);
     59         }
     60     }
     61     //根据学号删除学生信息
     62     @Override
     63     public void delete(){
     64         while (true){
     65             System.out.println("请输入要删除的学生学号");
     66             int destu=scanner.nextInt();
     67             int index=search(destu);
     68             if (index==-1){
     69                 if (destu==0)break;
     70                 System.out.println("删除失败!该生不存在,请重新录入或输入0退出删除操作");
     71             }else {
     72                 students.remove(index);
     73                 System.out.println("删除成功!");
     74                 System.out.println(students);
     75                 break;
     76             }
     77         }
     78     }
     79 
     80     public static void main(String[] args) {
     81         StudentManagerImpl studentManager=new StudentManagerImpl();
     82         Scanner scanner=new Scanner(System.in);
     83         while (true){
     84             System.out.println("录入指令进行操作:1、添加学生 2、查找学生 3、修改学生成绩 4、删除学生信息 5、退出");
     85             int choose=scanner.nextInt();
     86             if (choose==1){
     87                 studentManager.addstudents();
     88                 System.out.println(studentManager.students);
     89             }else if (choose==2){
     90                 while (true){
     91                     System.out.println("请录入学号查找学生");
     92                     int idFindStu=scanner.nextInt();
     93                     int index=studentManager.search(idFindStu);
     94                     if (index==-1){
     95                         if (idFindStu==0)break;
     96                         System.out.println("查找失败,请重新录入或输入0退出查找");
     97                     }else {
     98                         System.out.println("查找成功:"+studentManager.students.get(index));
     99                         break;
    100                     }
    101                 }
    102             }else if (choose==3){
    103                 studentManager.change();
    104             }else if (choose==4){
    105                 studentManager.delete();
    106             }
    107             else if (choose==5){
    108                 System.out.println("已退出操作");
    109                 break;
    110             }
    111         }
    112     }
    113 }
  • 相关阅读:
    费马小定理
    Big Number阶乘位数计算(斯特林公式)
    V
    矩阵快速幂求斐波那契
    奇迹
    缘分
    求导
    拓扑排序
    线段树
    单调栈
  • 原文地址:https://www.cnblogs.com/zhanhaoze/p/13221129.html
Copyright © 2020-2023  润新知