Java学生管理系统之查询与修改—Day06

Java学生管理系统之查询与修改—Day06

1.说明

1.用户根据提示输入相应的数字选择功能:

  • 1).查看学生信息
  • 2).输入学生Id删除对应学生
  • 3).选择修改要修改的项目:
    • (01.Id
    • (02.姓名
    • (03.性别
    • (04.年龄

2.实现思路

  1. 首先创建一个JavaBean类用来创建学生学对象
    • 学生属性:Id、姓名、性别、年龄
  2. 创建一个数组用来存储学生对象
  3. 定义一个方法用来遍历数组输出学生对象信息
    • 需要进行对象非空判断,只有对象不为空时才进行输出,否则程序报错
  4. 定义一个方法用来删除指定了Id的学生信息
    • 非空判断
    • 根据Id返回的索引将该学生对象在数组上的信息赋值为null
  5. 定义方法修改学生信息
    • 输入1修改学生Id
    • 输入2修改学生姓名
    • 输入3修改学生性别
    • 输入4修改学生年龄

代码实现

1.JavaBean类
package com.java.StudentMmDk;

public class StudentBean {
    private int Id;
    private String name;
    private char gender;
    private int age;

    public StudentBean() {
    }

    public StudentBean(int Id, String name, char gender, int age) {
        this.Id = Id;
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    /**
     * 获取
     * @return Id
     */
    public int getId() {
        return Id;
    }

    /**
     * 设置
     * @param Id
     */
    public void setId(int Id) {
        this.Id = Id;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return gender
     */
    public char getGender() {
        return gender;
    }

    /**
     * 设置
     * @param gender
     */
    public void setGender(char gender) {
        this.gender = gender;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

//    public String toString() {
//        return "StudentBean{Id = " + Id + ", name = " + name + ", gender = " + gender + ", age = " + age + "}";
//    }
}

2.遍历数组输出学生信息
//打印学生信息
    public static void getStudentInfo(StudentBean[] array) {
        for (int i = 0; i < array.length; i++) {
            StudentBean student;
            student = array[i];
            if (student != null) {
                System.out.println(student.getId() + "," + student.getName() + "," + student.getGender() + "," + student.getAge());
            }
        }
    }
3.获取Id在数组中的索引
//获取Id在数组中的索引
    public static int getIndex(StudentBean[] array, int id) {
        //遍历数组获取每一个对象
        for (int i = 0; i < array.length; i++) {
            StudentBean student = array[i];
            //判断对象是否为空
            if (student != null) {
                if (student.getId() == id) {
                    return i;
                }
            }
        }
        return -1;
    }
4.修改学生信息
 //修改学生信息
    public static StudentBean[] getChangeArray(StudentBean[] array, int id) {
        //获取要修改的学生的Id
        Scanner sc = new Scanner(System.in);
        int index = getIndex(array, id);
        System.out.println("输入1修改学生Id,输入2修改学生名字,输入3修改学生性别,输入4修改学生年龄,输入0停止修改:");
        int choose = sc.nextInt();
        StudentBean st = new StudentBean();
//    01.Id
//    02.姓名
//    03.性别
//    04.年龄
        while (true){
            if (choose == 1) {
                System.out.println("要修改的Id:");
                st = array[index];
                int id2 = sc.nextInt();
                st.setId(id2);
                break;
            } else if (choose == 2) {
                System.out.println("要修改的名字:");
                st = array[index];
                String name = sc.next();
                st.setName(name);
                break;
            } else if (choose == 3) {
                System.out.println("要修改的性别:");
                st = array[index];
                char gender = sc.nextLine().charAt(0);
                st.setGender(gender);
                break;
            }else if (choose == 4){
                System.out.println("要修改的年龄:");
                st = array[index];
                int age = sc.nextInt();
                st.setAge(age);
                break;
            } else if (choose == 0){
                System.out.println("exit!");
                break;
            }else {
                System.out.println("请选择正确的功能:");
            }
完整测试类
package com.java.StudentMmDk;
//Author:Yh

import java.util.Scanner;

/**
 * 定义一个数组存储学生的信息:Id、姓名、性别、年龄、班级
 * 1.用户根据提示输入相应的数字选择功能:
 * 1).查看学生信息
 * 2).输入学生Id删除对应学生
 * 3).选择修改要修改的项目:
 * (01.Id
 * (02.姓名
 * (03.性别
 * (04.年龄
 */
public class TestStudentMmDk {
    public static void main(String[] args) {
        //创建学生对象数组
        StudentBean[] studentArray = getArray();
        //功能选择
        Scanner scan = new Scanner(System.in);
        System.out.println("输入1,输出学生信息,输入2删除学生,输入3修改学生信息,输入0退出系统:");
        while (true) {
            int choose = scan.nextInt();
            if (choose == 1) {
                getStudentInfo(studentArray);
                System.out.println("================");
                System.out.println();
            } else if (choose == 2) {
                System.out.println("请输入您想要删除的学生Id(输入0停止删除):");
                boolean flog = true;
                while (flog) {
                    int id = scan.nextInt();
                    int index = getIndex(studentArray, id);
                        if (index >= 0) {
                            //说明存在该对象,删除该对象并提示删除成功
                            studentArray[index] = null;
                            System.out.println("该学生已成功删除!");
                            flog = false;
                        } else if (id == 0) {
                            flog = false;
                        } else {
                            //说明不存在该对象,提示删除失败
                            System.out.println("不存在该对象,删除失败!请重新输入想要删除的学生Id:");
                        }
                    }
                System.out.println("================");
                System.out.println();
            } else if (choose == 3) {
                System.out.println("请输入您想要修改信息的学生Id(输入0退出):");
                int id = scan.nextInt();
                if (id == 0){
                    System.out.println("exit!");
                    return;
                }else {
                    getChangeArray(studentArray, id);
                }
                System.out.println("================");
                System.out.println();
            } else if (choose == 0) {
                break;
            } else {
                System.out.println("请选择正确的功能!");
            }
        }

    }

    public static StudentBean[] getArray() {
        StudentBean[] studentArray = new StudentBean[4];
        StudentBean stu1 = new StudentBean(01, "丽丽", '女', 19);
        StudentBean stu2 = new StudentBean(02, "红红", '女', 18);
        StudentBean stu3 = new StudentBean(03, "小帅", '男', 20);
        StudentBean stu4 = new StudentBean(04, "小强", '男', 19);
        studentArray[0] = stu1;
        studentArray[1] = stu2;
        studentArray[2] = stu3;
        studentArray[3] = stu4;
        return studentArray;
    }

    //获取Id在数组中的索引
    public static int getIndex(StudentBean[] array, int id) {
        //遍历数组获取每一个对象
        for (int i = 0; i < array.length; i++) {
            StudentBean student = array[i];
            //判断对象是否为空
            if (student != null) {
                if (student.getId() == id) {
                    return i;
                }
            }
        }
        return -1;
    }

    //打印学生信息
    public static void getStudentInfo(StudentBean[] array) {
        for (int i = 0; i < array.length; i++) {
            StudentBean student;
            student = array[i];
            if (student != null) {
                System.out.println(student.getId() + "," + student.getName() + "," + student.getGender() + "," + student.getAge());
            }
        }
    }

    //修改学生信息
    public static StudentBean[] getChangeArray(StudentBean[] array, int id) {
        //获取要修改的学生的Id
        Scanner sc = new Scanner(System.in);
        int index = getIndex(array, id);
        System.out.println("输入1修改学生Id,输入2修改学生名字,输入3修改学生性别,输入4修改学生年龄,输入0停止修改:");
        int choose = sc.nextInt();
        StudentBean st = new StudentBean();
//    01.Id
//    02.姓名
//    03.性别
//    04.年龄
        while (true){
            if (choose == 1) {
                System.out.println("要修改的Id:");
                st = array[index];
                int id2 = sc.nextInt();
                st.setId(id2);
                break;
            } else if (choose == 2) {
                System.out.println("要修改的名字:");
                st = array[index];
                String name = sc.next();
                st.setName(name);
                break;
            } else if (choose == 3) {
                System.out.println("要修改的性别:");
                st = array[index];
                char gender = sc.nextLine().charAt(0);
                st.setGender(gender);
                break;
            }else if (choose == 4){
                System.out.println("要修改的年龄:");
                st = array[index];
                int age = sc.nextInt();
                st.setAge(age);
                break;
            } else if (choose == 0){
                System.out.println("exit!");
                break;
            }else {
                System.out.println("请选择正确的功能:");
            }
        }

        return array;
    }
}

END!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生考勤管理系统是一个基于计算机的信息管理系统,主要用于学生考勤信息的管理和查询。下面是一个简单的学生考勤管理系统的C语言代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_STUDENT_NUM 100 // 最大学生数量 // 学生结构体 typedef struct { int id; // 学号 char name[20]; // 姓名 int attendance[30]; // 考勤记录(1表示出席,0表示缺席) int attendance_count; // 出勤次数 } Student; // 全局变量 Student students[MAX_STUDENT_NUM]; int student_count = 0; // 函数声明 void add_student(); void list_students(); void save_students(); void load_students(); void mark_attendance(); // 主函数 int main() { int choice; load_students(); // 加载学生信息 while (1) { printf("\n学生考勤管理系统\n"); printf("1. 添加学生\n"); printf("2. 列出所有学生\n"); printf("3. 标记考勤\n"); printf("4. 退出\n"); printf("请输入选项:"); scanf("%d", &choice); switch (choice) { case 1: add_student(); break; case 2: list_students(); break; case 3: mark_attendance(); break; case 4: save_students(); // 保存学生信息 exit(0); default: printf("无效选项,请重新选择!\n"); } } return 0; } // 添加学生 void add_student() { if (student_count >= MAX_STUDENT_NUM) { printf("学生数量已达到上限,无法添加新学生!\n"); return; } Student student; printf("请输入学号:"); scanf("%d", &student.id); printf("请输入姓名:"); scanf("%s", student.name); student.attendance_count = 0; students[student_count] = student; student_count++; printf("学生添加成功!\n"); } // 列出所有学生 void list_students() { printf("学号\t姓名\t出勤次数\n"); for (int i = 0; i < student_count; i++) { printf("%d\t%s\t%d\n", students[i].id, students[i].name, students[i].attendance_count); } } // 标记考勤 void mark_attendance() { int id, day, attendance; printf("请输入学号:"); scanf("%d", &id); for (int i = 0; i < student_count; i++) { if (students[i].id == id) { printf("请输入考勤日期(1-30):"); scanf("%d", &day); printf("请输入考勤情况(1表示出席,0表示缺席):"); scanf("%d", &attendance); students[i].attendance[day - 1] = attendance; students[i].attendance_count += attendance; printf("考勤标记成功!\n"); return; } } printf("未找到学号为%d的学生!\n", id); } // 保存学生信息 void save_students() { FILE *fp = fopen("students.dat", "wb"); if (fp == NULL) { printf("无法打开文件!\n"); return; } fwrite(&student_count, sizeof(int), 1, fp); for (int i = 0; i < student_count; i++) { fwrite(&students[i], sizeof(Student), 1, fp); } fclose(fp); printf("学生信息已保存!\n"); } // 加载学生信息 void load_students() { FILE *fp = fopen("students.dat", "rb"); if (fp == NULL) { return; } fread(&student_count, sizeof(int), 1, fp); for (int i = 0; i < student_count; i++) { fread(&students[i], sizeof(Student), 1, fp); } fclose(fp); } ``` 注意:上述代码仅为示例,实际应用中需要根据具体需求进行修改和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值