2018.4.2 学生信息管理系统(集合版) 完整篇

学生信息管理系统(集合版)

Student.java
package com.lanqiao.demo;

/**
 * 学生类
 * 
 * @author qichunlin
 *
 */
public class Student {
    private String name;// 姓名
    private double[] score = new double[3];// 三门课程成绩

    // get set
    public String getName() {
        return name;
    }

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

    public double[] getScore() {
        return score;
    }

    public void setScore(double[] score) {
        this.score = score;
    }

    // 有参构造方法
    public Student(String name2, double[] score2) {
        super();

        // 传入的参数跟类里定义的属性区分开
        this.name = name2;
        this.score = score2;
    }

    // 无参构造方法
    public Student() {
        super();
    }

    // 有参构造函数
    public String toString() {
        return "\t" + this.name + "\t" + this.score[0] + "\t" + this.score[1] + "\t" + this.score[2];
    }

}
Manager.java
package com.lanqiao.demo;

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

public class Manager {
    List stuList = new ArrayList();

    Scanner input = new Scanner(System.in);

    public void menu() {
        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("请选择:");
        int num = input.nextInt();

        switch (num) {
        case 1:
            System.out.println("添加学生");
            
            //创建学生对象
            Student stu = new Student();
            
            //录入学生姓名
            System.out.print("请输入学生姓名:");
            String name = input.next();
            
            double[] scores = stu.getScore();
            for (int i = 0; i < scores.length; i++) {
                System.out.print("请输入学生"+(i+1)+"门成绩:");
                scores[i] = input.nextDouble();
            }
            
            //将信息保存在学生对象里面
            stu.setName(name);
            stu.setScore(scores);
            
            
            //再把学生对象放进去集合里面
            input(stu);
            break;
            
                
        case 2:
            display();
            break;
            
        case 3:
            System.out.println("修改学生");
            display();
            System.out.println("请输入需要修改学生的编号:");
            int n = input.nextInt();
            update(n);
            break;
            
            
        case 4:
            System.out.println("删除学生");
            System.out.println("请选择删除的方式(1.根据编号  2.根据姓名)");
            int key = input.nextInt();
            
            //删除操作之前显示一下学生信息
            display();
            
            //选择删除方式
            switch (key) {
            case 1:
                
                System.out.println("请输入删除的编号 ");
                int index = input.nextInt();
                
                //在方法中定义了异常  数组下标越界的问题
                try {
                    delete(index);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                break;
                
            case 2:
                System.out.println("请输入需要删除的学生姓名");
                String delName = input.next();
                delete(delName);
                break;

            default:
                break;
            }
            
            break;
        case 5:
            System.exit(0);
            System.out.println("Welcome to use this system Next");
            break;

        default:
            break;
        }
        
        System.out.println("是否继续(Y/N):");
        String flag = input.next();
        if(flag.equalsIgnoreCase("y")) {
            menu();
        }else {
            System.out.println("Welcome to use this system Next");
        }
    }

    // 学生成绩录入方法,参数stus为待录入信息学生集合
    public void input(Student stus) {
        System.out.println();
        stuList.add(stus);
    }

    // 学生成绩修改方法,参数index为修改的学生信息索引,另外本方法会在修改前显示该学生信息
    public void update(int index) {
        Student s = (Student)stuList.get(index);
        System.out.println("请输入修改后的名字");
        String name = input.next();
        s.setName(name);
        stuList.set(index, s);
        System.out.println("==========修改后显示成绩信息==========");
        System.out.println(s.getName()+"\t"+s.getScore()[0]+"\t"+s.getScore()[1]+"\t"+s.getScore()[2]);
    }

    // 显示所有学生成绩信息方法
    public void display() {
        System.out.println("编号\t"+"姓名\t"+"成绩1\t" +"成绩2\t" +"成绩3\t");
        for (int i = 0; i < stuList.size(); i++) {
            Student s = (Student) stuList.get(i);
            System.out.println(i+"\t"+s.getName()+"\t"+s.getScore()[0]+"\t"+s.getScore()[1]+"\t"+s.getScore()[2]);
        }
    }

    // 根据索引删除在集合中删除学生的方法
    public void delete(int index) throws Exception {
        if(index>=0 && index<stuList.size()) {
            stuList.remove(index);
        }else {
            throw new Exception("你输入的编号有误,请重新输入!!!");
        }
    }

    // 根据姓名删除在集合中删除学生的方法
    public void delete(String name) {
        for (int i = 0; i < stuList.size(); i++) {
            Student st = (Student) stuList.get(i);
            if(st.getName().equals(name)) {
                stuList.remove(st);
            }
        }
    }

}
Test.java
package com.lanqiao.demo;

/**
 * @author qichunlin
 *
 */
public class Test {
    public static void main(String[] args) {
        
        //创建管理类对象
        Manager m = new Manager();
        m.menu();
    }
}

转载于:https://www.cnblogs.com/qichunlin/p/8708420.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值