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 "	" + this.name + "	" + this.score[0] + "	" + this.score[1] + "	" + 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()+"	"+s.getScore()[0]+"	"+s.getScore()[1]+"	"+s.getScore()[2]);
	}

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