新时代卷卷卷人 2022-01-21 10:40 采纳率: 40%
浏览 48
已结题

java模拟数据表,入门题

如何对文本的数字进行修改,如何覆盖新的数字,对文本的一列和一行怎么修改,覆盖新的数据。
我写了三天了,还是没写出来。急需

img

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-01-21 10:50
    关注

    对文本内容的修改,需要先将数据读取出来存集合中,通过修改集合的方式来修改文本内容。
    1、读取文本到集合中。
    2、修改集合数据。
    3、写入文本中。

    public class Student {
        //学号
        private String sid;
        //姓名
        private String name;
        //年龄
        private String age;
        //居住地
        private String address;
    
        public Student() {
        }
    
        public Student(String sid, String name, String age, String address) {
            this.sid = sid;
            this.name = name;
            this.age = age;
            this.address = address;
        }
    
        public String getSid() {
            return sid;
        }
    
        public void setSid(String sid) {
            this.sid = sid;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAge() {
            return age;
        }
    
        public void setAge(String age) {
            this.age = age;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    }
    
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class StudentManager {
        public static void main(String[] args) {
            //创建集合对象,用于存储学生数据
            ArrayList<Student> array = new ArrayList<Student>();
            //用循环完成再次回到主界面
            while (true) {
                //用输出语句完成主界面的编写
                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("请输入你的选择:");
    
                //用Scanner实现键盘录入数据
                Scanner sc = new Scanner(System.in);
                String line = sc.nextLine();
    
                //用switch语句完成操作的选择
                switch (line) {
                    case "1":
                        //System.out.println("添加学生");
                        addStudent(array);
                        break;
                    case "2":
                        //System.out.println("删除学生");
                        deleteStudent(array);
                        break;
                    case "3":
                        //System.out.println("修改学生");
                        updataStudent(array);
                        break;
                    case "4":
                        //ystem.out.println("查看学生");
                        findallStudent(array);
                        break;
                    case "5":
                        System.out.println("谢谢使用");
                        System.exit(0);//JVM退出
                }
            }
        }
    
        public static void addStudent(ArrayList<Student> array){
            //键盘录入学生对象所需要的数据,显示提示信息、提示要输入何种信息
            Scanner sc = new Scanner(System.in);
            String sid;
            while (true) {
                System.out.println("请输入学生学号:");
                sid = sc.nextLine();
    
                boolean flag = isUsed(array, sid);
                if(flag){
                    System.out.println("你输入的学号已经被使用,请重新输入");
                }else{
                    break;
                }
            }
            System.out.println("请输入学生姓名:");
            String name = sc.nextLine();
            System.out.println("请输入学生年龄:");
            String age = sc.nextLine();
            System.out.println("请输入学生居住地:");
            String address = sc.nextLine();
    
            //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
            Student s = new Student();
            s.setAddress(address);
            s.setAge(age);
            s.setName(name);
            s.setSid(sid);
    
            //将学生对象添加到集合中
            array.add(s);
    
            //给出添加成功提示
            System.out.println("添加学生成功");
        }
    
        public static void findallStudent(ArrayList<Student> array){
            //判断集合中是否有数据,如果没有显示提示信息
            if(array.size()==0){
                System.out.println("无信息,请先添加信息再查询");
                return;
            }
            //显示表头信息
            System.out.println("学号\t\t姓名\t\t年龄\t\t居住地");
            //将集合中数据取出按照对应格式显示学生信息,年龄显示补充岁
            for(int i=0; i<array.size();i++){
                Student s = array.get(i);
                System.out.println(s.getSid() + "\t\t" + s.getName()+ "\t\t" +s.getAge()+ "岁\t" + s.getAddress());
            }
        }
    
        public static void deleteStudent(ArrayList<Student> array){
            //从键盘录入要删除学生学号,显示提示信息
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入要删除的学生的学号:");
            String sid = sc.nextLine();
            //遍历集合讲对应学生对象从集合中删除.
            int index = -1;
            for(int i=0; i<array.size(); i++){
                Student s = array.get(i);
                if(s.getSid().equals(sid)){
                    index = i;
                    break;
                }
                if(index == -1){
                    System.out.println("该信息不存在,请重新输入");
                }else{
                    array.remove(index);
                    //给出删除成功提示
                    System.out.println("删除学生成功");
                }
            }
        }
    
        public static void updataStudent(ArrayList<Student> array){
            //从键盘录入要修改的学生学号,显示提示信息
            Scanner sc = new Scanner(System.in);
    
            System.out.println("请输入你要修改的学生的学号:");
            String sid = sc.nextLine();
    
            //从键盘录入要修改的学生信息
            System.out.println("请输入学生新姓名:");
            String name = sc.nextLine();
            System.out.println("请输入学生新年龄:");
            String age = sc.nextLine();
            System.out.println("请输入学生新居住地:");
            String address = sc.nextLine();
    
            //创建学生对象
            Student s = new Student();
            s.setSid(sid);
            s.setName(name);
            s.setAddress(address);
            s.setAge(age);
    
            //遍历集合修改对应的学生信息
            for(int i=0; i<array.size(); i++){
                Student student = array.get(i);
                if(student.getSid().equals(sid)){
                    array.set(i,s);
                    break;
                }
            }
            //给出修改成功提示
            System.out.println("修改学生成功");
        }
    
        public static boolean isUsed(ArrayList<Student> array,String sid1){
            //如果与集合中的某一个学生学号相同,返回true;如果都不相同,返回false
            boolean flag = false;
    
            for(int i=0; i<array.size(); i++){
                Student s = array.get(i);
                if(s.getSid().equals(sid1)){
                flag = true;}
                break;
            }
            return flag;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月29日
  • 已采纳回答 1月21日
  • 创建了问题 1月21日

悬赏问题

  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制