java::一个简易的老师信息管理的代码块::

虽然这是是一个简易的管理模块的代码块也要包含有对信息的增,删,改,查这四个基本操作
思路:我们可以抽象出两个类。一个是教师类,一个是所教授的课程类
增:我们通过老师类来new出老师的实体。通过创建老师对象的数组来存储老师对象,但是数组的长度是不能变化的,所以增的难点在于数组的扩容我们可以在定义一个比原数组长1的数组通过遍历将旧数组中的信息赋值给新数组再在新数组的最后一位添加上新输入的信息的老师对象,通过将新数组的地址赋给旧数组,这样就改变了旧数组的指向就完成了对旧数组的扩容本质上是从新指向了新的存储空间只不过把值拷贝到新数组中了
删:就是数组的缩减同样通过再定义数组就行地址传递,改变内存指向
改和查 就是遍历
Teacher.java

/**
 * FileName: Teacher
 * Author:   86186
 * Date:     2022/3/21 10:20
 * Description: Teacher
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package homeworkplus;

/**
 * 〈一句话功能简述〉<br> 
 * 〈Teacher〉
 *
 * @author Hacker
 * @create 2022/3/21
 * @since 1.0.0
 */
public class Teacher {
   private String TeacherName;
   private int TeacherAge;
    Courses[] courses;

    public Teacher() {
    }

    public Teacher(String teacherName, int teacherAge, Courses[] courses) {
        TeacherName = teacherName;
        TeacherAge = teacherAge;
        this.courses = courses;
    }

    public String getTeacherName() {
        return TeacherName;
    }

    public void setTeacherName(String teacherName) {
        TeacherName = teacherName;
    }

    public int getTeacherAge() {
        return TeacherAge;
    }

    public void setTeacherAge(int teacherAge) {
        TeacherAge = teacherAge;
    }

    public Courses[] getCourses() {
        return courses;
    }

    public void setCourses(Courses[] courses) {
        this.courses = courses;
    }
}

Courses.java

/**
 * FileName: Courses
 * Author:   86186
 * Date:     2022/3/21 10:21
 * Description: Courses
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package homeworkplus;

/**
 * 〈一句话功能简述〉<br> 
 * 〈Courses〉
 *
 * @author Hacker
 * @create 2022/3/21
 * @since 1.0.0
 */
public class Courses {
   private String className;
   private int classTime;
   private   int classCredit;

    public Courses() {
    }

    public Courses(String className, int classTime, int classCredit) {
        this.className = className;
        this.classTime = classTime;
        this.classCredit = classCredit;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public int getClassTime() {
        return classTime;
    }

    public void setClassTime(int classTime) {
        this.classTime = classTime;
    }

    public int getClassCredit() {
        return classCredit;
    }

    public void setClassCredit(int classCredit) {
        this.classCredit = classCredit;
    }
}

Test.java

/**
 * FileName: Test
 * Author:   86186
 * Date:     2022/3/21 10:19
 * Description: Test
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package homeworkplus;

import java.util.Scanner;

/**
 * 〈一句话功能简述〉<br> 
 * 〈Test〉
 *
 * @author Hacker
 * @create 2022/3/21
 * @since 1.0.0
 */
public class Test {
    public static Courses[] courses;
    public static Teacher[] teacher = new Teacher[0];
    public static Scanner input = new Scanner(System.in);
    public static void main(String[] args) {
        //初始化课程数组
        initCourses();
        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.print("请输入你的选择:");
            int choice = input.nextInt();
            switch (choice){
                case 1:
                   insertTeacher();

                    break;
                case 2:
                    System.out.print("请输入你要删除信息的老师姓名:");
                    String deleteName = input.next();
                    Teacher deleteT =  findTeacher(deleteName);
                    if(deleteName != null){
                        deleteTeacher(deleteT);


                    }else{
                        System.out.println("系统中没有这名老师!!!");
                    }
                    break;
                case 3:
                    System.out.print("请输入你要修改信息的老师姓名:");
                    String updateName = input.next();
                    Teacher t =  findTeacher(updateName);
                    if(t != null){
                        updateTeacher(t);

                    }else{
                        System.out.println("系统中没有这名老师!!!");
                    }
                    break;
                case 4:
                    System.out.println("菜单选择");
                    System.out.println("1,查询所有老师信息");
                    System.out.println("2,查询指定老师信息");
                    System.out.print("请输入你的选择:");
                    int chocie = input.nextInt();
                    if(chocie == 1){
                        selectTeacher();
                    }else{
                        System.out.print("请输入老师姓名:");
                        String selectName = input.next();
                        Teacher ts = findTeacher(selectName);
                        if(ts != null){
                            selectOne(ts);

                        }else{
                            System.out.println("系统不存在该名老师!!!!");
                        }
                    }

                    break;
                default:
                    System.out.println("退出系统!!,欢迎下次使用");
                    return;
            }
        }

    }
    //查询指定老师信息
    public static void selectOne(Teacher t){
        System.out.println("*************************************");
        System.out.println("=====" + t.getTeacherName() + "老师信息====");
        System.out.println("老师姓名: " + t.getTeacherName() + "\t" + ",年龄: " + t.getTeacherAge());
        for(int j = 0;j <= t.courses.length - 1;j ++){
            System.out.println("课程名: " + t.courses[j].getClassName());
            System.out.println("课时: " + t.courses[j].getClassTime());
            System.out.println("学分: " + t.courses[j].getClassCredit());
        }
        System.out.println("*************************************");

    }
    //删除老师信息
    public static void deleteTeacher(Teacher t){
        Teacher[] teachers = new Teacher[teacher.length - 1];
        for(int i = 0,j = 0;i < teacher.length;i ++,j ++){
            if(teacher[i] == t){
                j --;
                continue;
            }
            teachers[j] = teacher[i];
        }
        teacher = teachers;
        System.out.println("删除成功!!!!");
    }
    //判断老师是否存在
    public static Teacher findTeacher(String teacherName){
        for(Teacher t : teacher){
            if(t.getTeacherName().equals(teacherName)){
                return t;
            }
        }
        return null;
    }
    //修改老师信息
    public static void updateTeacher(Teacher t){
        System.out.println("=======修改选项======");
        System.out.println("1,修改老师姓名");
        System.out.println("2,修改老师年龄");
        System.out.print("请输入你的选择:");
        int choice = input.nextInt();
        if(choice == 1){
            System.out.print("请输入姓名:");
            String updateName = input.next();
            t.setTeacherName(updateName);
        }else{
            System.out.print("请入年龄:");
            int updateAge = input.nextInt();
            t.setTeacherAge(updateAge);
        }
        System.out.println( "老师的个人信息修改完成!!!");


    }
    //显示所有老师信息
    public static void selectTeacher(){
        if(teacher.length == 0){
            System.out.println("系统中没有老师的信息!!!!");
            return;
        }
        System.out.println(teacher.length);
        for(int i = 0;i <= teacher.length - 1;i ++){
            System.out.println("***************************************************");

            System.out.println("老师姓名:" + teacher[i].getTeacherName() + "\t" + "年龄: " + teacher[i].getTeacherAge());
            System.out.println("======" + teacher[i].getTeacherName() + "老师的的课程信息======");
            for(int j = 0;j <= teacher[i].courses.length - 1;j ++){
                System.out.println("课程名: " + teacher[i].courses[j].getClassName());
                System.out.println("课时: " + teacher[i].courses[j].getClassTime());
                System.out.println("学分: " + teacher[i].courses[j].getClassCredit());
            }
            System.out.println("***************************************************");
        }
    }
    //添加新的老师信息
    public static void insertTeacher(){
        System.out.print("请输入要添加的教师人数:");
        int num = input.nextInt();
        Teacher[] insertTeachers = new Teacher[num + teacher.length];
        //将原来数组中的元素
        for(int i = 0;i < teacher.length;i ++){
            insertTeachers[i] = teacher[i];
        }
        //循环输入
        for(int i = teacher.length;i < insertTeachers.length;i ++){
            System.out.print("请输入第" + (i - teacher.length + 1) + "名,老师的姓名:");
            String insertName = input.next();
            System.out.print("请输入第" + (i - teacher.length + 1) + "名,老师的年龄:");
            int insertAge = input.nextInt();
            System.out.print("请输入这名老师能教授的课程数:");

            int classNum = input.nextInt();
            Courses[] courses = new Courses[classNum];
            for(int j = 0;j < classNum;j ++){
                System.out.print("请输入第" + (j + 1) + "门课:");
                String className = input.next();
                Courses c = findCourse(className);
                if(c == null){
                    System.out.println("这门课程不存在,请重新输入!!!");
                    j --;
                    continue;
                }
                courses[j] = c;
            }
            Teacher t = new Teacher(insertName,insertAge,courses);
           insertTeachers[i] = t;


        }
        teacher = insertTeachers;

    }
    //判断课程是否存在
    public static Courses findCourse(String className){
        for(int i = 0;i < courses.length;i ++){
            if(courses[i].getClassName().equals(className)){
                return courses[i];
            }
        }
        return null;
    }
    //初始化课程数组
    public static void initCourses(){
        Courses c1 = new Courses("高数",40,5);
        Courses c2 = new Courses("大物",30,4);
        Courses c3 = new Courses("毛概",20,3);
        Courses c4 = new Courses("英语",10,1);
        courses = new Courses[]{c1,c2,c3,c4};
    }

}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当一个 Java 类里有多个初始化代码块时,虽然每个代码块里的代码没有超出编译器的限制,但当它们之和超过该限制时,会出现编译错误「代码过长」。这是因为 Java 规定一个方法编译后的字节码大小不能超过 65535 字节。\[1\]这个长度在一般情况下都是够用的,但碰到极端情况就不行了。如果遇到这个错误,一种解决方法是拆分代码,将代码块分成多个方法或类来减小每个方法的字节码大小。\[2\]例如,可以将多个初始化代码块拆分成多个方法或类,以减小每个方法的字节码大小。\[3\]这样可以避免代码过长的问题。 #### 引用[.reference_title] - *1* *3* [代码过长,编译失败](https://blog.csdn.net/hqweay/article/details/125700290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [记一次奇怪的错误:Error:(11, 24) java: 代码过长 ...](https://blog.csdn.net/qq_38902844/article/details/122275394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值