Java基础实验——设计《高校学生管理系统》

完成《高校学生管理系统》的设计及程序实现。

需求

定义一个学生类:Student,属性为:id、姓名、年龄、性别、电话、Java成绩、数据库成绩、金融分析成绩。main方法中定义一个集合,用于存放控制台输入的对象信息。
行为:该系统可以通过选择初始菜单,分别对集合对象进行添加学生、删除学生、修改学生信息、条件查询学生信息等功能。

交互界面

(1)初始菜单:
——————欢迎使用大学互联网学院学生管理系统—————
1.添加学生
2.查询学生
3.修改学生
4.删除学生
——————————————————————————————
(2)查询功能:
可遍历打印所有学生信息(如果没有学生信息,提示:当前无学生信息,请先进行学生信息录入。如果有学生信息,则按需求输出下面格式。)
id 姓名 年龄 性别 电话 Java 数据库 金融分析
001 张小小 20 男 13006292277 90 95 84
(3)修改功能:
根据id完成对学生信息的修改
(4)删除功能:
依据id匹配删除对象数据。

功能

程序功能
实现《高校学生管理系统》,通过终端用户指令,对学生集合对象进行添加学生、删除学生、修改学生信息、条件查询学生信息等功能。

代码

JavaBean类

package priv.stu_system;
//定义一个学生类:Student,属性为:id、姓名、年龄、性别、电话、Java成绩、数据库成绩、金融分析成绩。
public class Student {
    private String id;
    private String name;
    private int age;
    private char gender;
    private String phone;
    private double java;
    private double database;
    private double finance;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public double getJava() {
        return java;
    }

    public void setJava(double java) {
        this.java = java;
    }

    public double getDatabase() {
        return database;
    }

    public void setDatabase(double database) {
        this.database = database;
    }

    public double getFinance() {
        return finance;
    }

    public void setFinance(double finance) {
        this.finance = finance;
    }
    public Student(){//空参构造
    }
    public  Student(String id,String name,int age,char gender,String phone,double java,double database,double finance){//构造方法实现私有属性初始化
       //全参构造
        this.id=id;
        this.name=name;
        this.age=age;
        this.gender=gender;
        this.phone=phone;
        this.java=java;
        this.finance=finance;
        this.database=database;
    }
}

工具类

package priv.stu_system;

import java.util.ArrayList;
import java.util.Scanner;

//对集合对象进行添加学生、删除学生、修改学生信息、条件查询学生信息等功能
public class ManagerTool {
    //控制学生信息输入格式
    static String format1="%-12s %-8s %-8s %-8s %-12s %-8s %-8s %-8s";
    static String format2="%-12s %-7s %-7s %-6s %-11s %-8s %-6s %-8s";
    static String header=String.format(format2,"id","姓名","年龄","性别","电话","Java","数据库","金融分析");
    public static void AddStudent(ArrayList<Student> Stu){
        //方法2:终端输入学生信息
        System.out.print("请输入您想要添加的学生总数n:");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println("请依次输入学生的id、姓名、年龄、性别、电话、Java成绩、数据库成绩、金融分析成绩(以空格隔开):");
        for (int i = 0; i < n; i++) {
            Student s = new Student();
            s.setId(sc.next());
            s.setName(sc.next());
            s.setAge(sc.nextInt());
            s.setGender(sc.next().charAt(0));
            s.setPhone(sc.next());
            s.setJava(sc.nextDouble());
            s.setDatabase(sc.nextDouble());
            s.setFinance(sc.nextDouble());
            Stu.add(s);
        }
        System.out.println("======信息录入完毕!======");
    }
    public static void SelectStudent(ArrayList<Student> Stu) {
        //(根据学号查询,如果没有学生信息,提示:当前无该学生信息,请先进行学生信息录入。如果有学生信息,则按需求格式输出。
        System.out.print("请输入您要查询的学生学号:");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        int i;
        for (i=0; i < Stu.size(); i++) {
            Student s = Stu.get(i);
            if ((s.getId()).equals(id)) {
                System.out.println("查询成功!该学生信息如下:");
                System.out.println(header);
                System.out.printf((format1) + "%n", s.getId(), s.getName(), s.getAge(), s.getGender(),s.getPhone(), s.getJava(), s.getDatabase(), s.getFinance());
                break;
            }
            }
        if (i == Stu.size()) {
            System.out.println("查询失败,当前无该学生信息,请先进行学生信息(功能选项1)录入!");
        }
    }
    public static void AlertStudent(ArrayList<Student> Stu) {
        System.out.print("请输入您要修改的学生的学号:");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        for (int i = 0; i < Stu.size(); i++) {
            Student s = Stu.get(i);
            if ((s.getId()).equals(id)) {
                System.out.println("请输入修改后该学生的姓名、年龄、性别、电话、Java成绩、数据库成绩、金融分析成绩(以空格隔开):");
                    s.setName(sc.next());
                    s.setAge(sc.nextInt());
                    s.setGender(sc.next().charAt(0));
                    s.setPhone(sc.next());
                    s.setJava(sc.nextDouble());
                    s.setDatabase(sc.nextDouble());
                    s.setFinance(sc.nextDouble());
                    Stu.set(i,s);
                System.out.println("======id为"+id+"的学生信息修改完毕!======");
            }
        }
    }
    public static void DeleteStudent(ArrayList<Student> Stu){
        System.out.print("请输入您要删除的学生的学号:");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        for (int i = 0; i < Stu.size(); i++) {
            Student s = Stu.get(i);
            if ((s.getId()).equals(id)) {
                Stu.remove(s);
                System.out.println("======id为"+id+"的学生信息删除成功!======");
            }
            if (i == Stu.size()) {
                System.out.println("删除失败,当前无该学生信息!");
            }
        }
    }
    public static void PrintStudent(ArrayList<Student> Stu){
        //可遍历打印所有学生信息
        System.out.println(header);
        for (Student s : Stu) {
            System.out.printf((format1) + "%n", s.getId(), s.getName(),s.getAge(),s.getGender(),s.getPhone(),s.getJava(),s.getDatabase(),s.getFinance());
        }
    }
}

Test类

package priv.stu_system;
import java.util.ArrayList;
import java.util.Scanner;
//学生类:Student,属性为:id、姓名、年龄、性别、电话、Java成绩、数据库成绩、金融分析成绩。
//main方法中定义一个集合,用于存放控制台输入的对象信息。
//初始菜单:
//——————欢迎使用大学互联网学院学生管理系统—————
//        1.添加学生
//        2.查询学生
//        3.修改学生
//        4.删除学生
//—————————————————————————————————————————
public class StuSystem {
    public static void main(String[] args) {
        //方法1:全参初始化3个学生对象加入集合
         Student s1=new Student("Y82114001","Lily",20,'m',"05-8602",93,89.5,92);
         Student s2=new Student("Y82114002","Bob",21,'f',"06-1234",91, 85.5, 88);
         Student s3=new Student("Y82114003","Alice",21,'m',"07-7800",86, 90, 89);
         ArrayList<Student> Stu = new ArrayList<Student>();
         Stu.add(s1);
         Stu.add(s2);
         Stu.add(s3);
        //初始菜单
        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("                       6.退出系统");
        Scanner sc = new Scanner(System.in);
        Outer:while(true){
            System.out.print("请输入您想要做的操作序号:");
            int choose = sc.nextInt();
            switch (choose){
                case 1:
                {
                    ManagerTool.AddStudent(Stu);
                    break;
                }
                case 2:
                {
                    ManagerTool.SelectStudent(Stu);
                    break;
                }
                case 3:
                {
                    ManagerTool.AlertStudent(Stu);
                    break;
                }
                case 4:
                {
                    ManagerTool.DeleteStudent(Stu);
                    break;
                }
                case 5:
                {
                    ManagerTool.PrintStudent(Stu);
                    break;
                }
                case 6:
                {
                    System.out.println("成功退出,期待您的再次使用!");
                    break  Outer;
                }
                default:{
                    System.out.println("功能选项输入不合法,请重新输入!");
                    break;
                }
            }
      }
    }
}

运行示例

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值