欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020-10-19

程序员文章站 2022-07-13 18:00:02
...

简单的学生成绩管理系统(数组实现)

用java 数组写了一个简单的学生管理系统,没有连数据库,数据存放在内存,实现简单的增、删、改、查功能。

一、运行图片
2020-10-19二、部分代码

package com.sky.demo;

import javax.swing.text.Style;
import java.util.Scanner;

public class Service {
    Scanner scanner = new Scanner(System.in);
    //数组,静态初始化,分配大小
    Student[] students = new Student[30];
    Student student1 = new Student("小庄", 20190001, "信息管理", 20, 100);
    Student student2 = new Student("小游", 20160001, "软件工程", 23, 90);

    //构造代码块,加载类执行一次
    {
        students[0] = student1;
        students[1] = student2;
    }

    /**
     * 查看所有学生
     */
    public void selectAllStudent() {
        for (int i = 0; i < students.length; i++) {
            //没有数据不打印
            if (students[i] != null) {
                System.out.println("\t编号" + (i + 1) + "\t姓名:" + students[i].getName() + "\t学号:" + students[i].getStuNum() + "\t专业:" + students[i].getClasses()
                        + "\t年龄:" + students[i].getAge() + "\t分数:" + students[i].getGrades());
            }
        }
    }

    /**
     * 添加一个学生
     */
    public void addStudent() {
        //无参构造,构造一个空的学生
        Student newStudent = new Student();
        //设置学生属性
        System.out.println("---请输入学生姓名:");
        newStudent.setName(scanner.next());
        System.out.println("---请输入学生学号:");
        newStudent.setStuNum(scanner.nextInt());
        System.out.println("---请输入学生专业:");
        newStudent.setClasses(scanner.next());
        System.out.println("---请输入学生年龄:");
        newStudent.setAge(scanner.nextInt());
        System.out.println("---请输入学生分数:");
        newStudent.setGrades(scanner.nextInt());

        //数组最后一个位置不为空则无法添加,则不能存放学生
        if (students[students.length - 1] != null) {
            System.out.println("数组已满,不能存放!");
        }
        //创建好的学生放到数组里面(顺序添加)
        for (int i = 0; i < students.length; i++) {
            //数组里面有空的位置,就可以存放学生
            if (students[i] == null) {
                students[i] = newStudent;
                System.out.println("***添加成功!!!");
                break;
            }
        }
    }

    /**
     * 修改一个学生
     */
    public void updateStudent() {
        //确定修改学生(用编号数组下标确定)
        System.out.println("请输入学生编号(1-30):");
        //正确输入,跳出循环,错误输入则输入对为止
        int num = 0;
        while (true) {
            num = scanner.nextInt();
            if (num >= 1 && num <= 30) {
                //没有学生,重新输入
                if (students[num - 1] == null) {
                    System.out.println("没有查找到学生,请重新输入编号!!!");
                }
                //有学生才跳出循环
                if (students[num - 1] != null) {
                    break;
                }
            } else {
                System.out.println("!!!输入错误请重新输入!!!");
            }
        }
        //查找修改的学生
        //有学生就查找(if是为了保险起见)
        if (students[num - 1] != null) {
            System.out.println("---要修改的学生为:");
            System.out.println("\t编号" + (num) + "\t姓名:" + students[num - 1].getName() + "\t学号:" + students[num - 1].getStuNum() + "\t专业" + students[num - 1].getGrades()
                    + "\t年龄:" + students[num - 1].getAge() + "\t分数:" + students[num - 1].getGrades());
        }
        //修改操作(只能修改学生成绩)
        int grades = 0;
        while (true) {
            System.out.println("请输入要修改的学生的成绩:(0-100)");
            grades = scanner.nextInt();
            if (grades >= 0 && grades <= 100) {
                break;
            }
            System.out.println("\t成绩输入错误!!!请重新输入");
        }
        //修改操作
        students[num - 1].setGrades(grades);
        System.out.println("***修改成功!!!");
    }

    /**
     * 删除学生
     */
    public void deleteStudent() {
        int num = 0;
        while (true) {
            System.out.println("请输出要删除的学生的编号(1-30):");
            num = scanner.nextInt();
            if ((num >= 1 && num <= 30) && students[num - 1] != null) {
                break;
            }
            System.out.println("\t输入编号错误或者没有这个学生,请重修输入");
        }
        if (students[num - 1] != null) {
            System.out.println("---要删除的学生为:");
            System.out.println("\t编号" + (num) + "\t姓名:" + students[num - 1].getName() + "\t学号:" + students[num - 1].getStuNum() + "\t专业" + students[num - 1].getGrades()
                    + "\t年龄:" + students[num - 1].getAge() + "\t分数:" + students[num - 1].getGrades());
        }
        //删除操作
        students[ num - 1] = null;
        System.out.println("\t***删除成功!!!");
    }
}

三、链接: https://pan.baidu.com/s/1HZoT_iXNcO-G27fFqX_lrg
提取码: 9dww