面对对象和数组学习——学生管理系统

mac2022-06-30  35

面对对象和数组学习——学生管理系统

定义学生类

一个类,包含成员变量、构造方法和成员方法(属性对应的set/get方法和其他成员方法)

/** * 定义一个Student类{学号、姓名、年龄、性别} * * @author * */ public class Student { private int sid;//编号 private String sname;//姓名 private int age;//年龄 private String gender;//性别 public Student() { } public Student(int sid, String sname, int age, String gender) { super(); this.sid = sid; this.sname = sname; this.age = age; this.gender = gender; } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return this.getSid() + "\t" + this.getSname() + "\t" + this.getAge() + "\t" + this.getGender(); } }

规格表

对学生进行增删改查

/** * 针对学生操作类(数组存储、及根据条件增删改查) * * @author * */ public class MyStudentUtil { /** * 获取学生实际人数(数组实际长度) * * @param stuArray */ private static int getStuCount(Student[] stuArray) { int i = 0; for (; i < stuArray.length; i++) { Student s = stuArray[i]; if (s == null) { break; } } return i; } /** * 增加学生 * * @param stu * @param stuArray */ public static void addStu(Student stu, Student[] stuArray) { int stuCount = getStuCount(stuArray); stuArray[stuCount] = stu; } /** * 查看所有学生信息 * * @param stuArray */ public static void printStus(Student[] stuArray) { System.out.println("学号\t" + "姓名\t" + "年龄\t" + "性别\t"); for (int i = 0; i < stuArray.length; i++) { Student s = stuArray[i]; if (s != null) { System.out.println(s.toString()); } else { break; } } } /** * 根据学号修改学生信息 修改成功返回true,否则返回false * * @param stuArray * @param sid * @param sname * @param age * @param gender */ public static boolean updateStuBySid(Student[] stuArray, int sid, String sname, int age, String gender) { Student s = null; if ((s = selectStuBySid(sid, stuArray)) != null) { s.setSname(sname); s.setAge(age); s.setGender(gender); return true; } else { return false; } } /** * 根据学号查看某一个学生信息 查找到该学生返回该学生对象,否则返回null * * @param sid * @param atuArray */ public static Student selectStuBySid(int sid, Student[] stuArray) { for (int i = 0; i < getStuCount(stuArray); i++) { Student s = stuArray[i]; if (s.getSid() == sid) { return s; } else { continue; } } return null; } /** * 根据性别查看同性别的所有学生 * * @param gender * @param stuArray */ public static void selectStusByGender(String gender, Student[] stuArray) { for (int i = 0; i < getStuCount(stuArray); i++) { Student s = stuArray[i]; if (gender.equals(s.getGender())) { System.out.println(s.toString()); } } } /** * 根据学号删除某一个学生 * * @param sid * @param stuArray * @return */ public static boolean delStusBySid(int sid, Student[] stuArray) { int index = -1; for (int i = 0; i < getStuCount(stuArray); i++) { if (sid == stuArray[i].getSid()) { index = i; break; } } if (index == -1) { return false; } int j = index; for (; j <= getStuCount(stuArray) + index; j++) { stuArray[j] = stuArray[j + 1]; } stuArray[j + 1] = null; return true; } // 交换学生位置 private static void swap(Student a, Student b) { Student t = a; a = b; b = t; } /** * 根据学号升序排序 * * @param stuArray */ public static void sidAscSortStus(Student[] stuArray) { for (int i = 0; i < getStuCount(stuArray); i++) { for (int j = 1; j < getStuCount(stuArray) - i; j++) { if (stuArray[j - 1].getSid() > stuArray[j].getSid()) { swap(stuArray[j - 1],stuArray[j]); Student t = stuArray[j - 1]; stuArray[j - 1] = stuArray[j]; stuArray[j] = t; } } } } /** * 根据学号降序排序(冒泡) * * @param stuArray */ public static void sidDescSortStus(Student[] stuArray) { for (int i = 0; i < getStuCount(stuArray); i++) { for (int j = 1; j < getStuCount(stuArray) - i; j++) { if (stuArray[j - 1].getSid() < stuArray[j].getSid()) { swap(stuArray[j - 1],stuArray[j]); Student t = stuArray[j - 1]; stuArray[j - 1] = stuArray[j]; stuArray[j] = t; } } } } }

测试类

/** * 测试 * * @param args */ public class Test { public static void main(String[] args) { // 为了便于测试,定义好数据,并且将学生数据进行存储 Student[] stuArray = new Student[100]; Student stu1 = new Student(1003, "小明", 18, "男"); Student stu2 = new Student(1002, "小红", 18, "女"); Student stu3 = new Student(1011, "小贝", 18, "男"); Student stu4 = new Student(1004, "小杰", 18, "男"); Student stu5 = new Student(1008, "小张", 18, "女"); stuArray[0] = stu1; stuArray[1] = stu2; stuArray[2] = stu3; stuArray[3] = stu4; stuArray[4] = stu5; System.out.println("测试输出所有学生:"); printStus(stuArray); System.out.println("---------------------"); System.out.println("测试增加学生:"); Student stu6 = new Student(2000, "周杰伦", 30, "男"); addStu(stu6, stuArray); printStus(stuArray); System.out.println("---------------------"); System.out.println("测试输出性别为“男”学生:"); selectStusByGender("男", stuArray); System.out.println("---------------------"); System.out.println("测试修改对应编号学生信息:"); // 修改学生信息 updateStuBySid(stuArray, 2000, "昆凌", 18, "女"); printStus(stuArray); System.out.println("---------------------"); System.out.println("测试查找对应编号学生信息:"); System.out.println(selectStuBySid(2000, stuArray)); System.out.println("---------------------"); System.out.println("测试升序排列学生:"); sidAscSortStus(stuArray); System.out.println("---------------------"); System.out.println("测试根据学号删除学生:"); delStusBySid(2000, stuArray); printStus(stuArray); System.out.println("---------------------"); System.out.println("测试降序排列学生:"); sidDescSortStus(stuArray); printStus(stuArray); } }

结果

最新回复(0)