(Java)集合的綜合運用實例——實現學生信息管理

通過運用ArrayList類和和HashMap類及其中重要方法,對學生信息進行管理,實現對學生信息的增、刪、改、查操作。

1、Student學生信息類

public class Student {
		private int stuNo;//學號
		private String stuName;//姓名
		private String classNo;//班級號
		public Student(){
		}
		public String getClassNo() {
			return classNo;
		}
		public void setClassNo(String classNo) {
			this.classNo = classNo;
		}
		public int getStuNo() {
			return stuNo;
		}
		public void setStuNo(int stuNo) {
			this.stuNo = stuNo;
		}
		public String getStuName() {
			return stuName;
		}
		public void setStuName(String stuName) {
			this.stuName = stuName;
		}
		public Student(int stuNo, String stuName) {
			super();
			this.stuNo = stuNo;
			this.stuName = stuName;
		}
		public Student(int stuNo, String strName, String classNo) {
			super();
			this.stuNo = stuNo;
			this.stuName = strName;
			this.classNo = classNo;
		}
		@Override
		public String toString() {
			return "Student [strName=" + stuName + ", stuNo=" + stuNo + ", classNo="+classNo +"]";
		}
}


2、StudentUtil工具類,封裝了對學生信息增刪改查的操作方法

import java.util.*;
public class StudentUtil {
	private HashMap students=null;
	public StudentUtil(){
		students=new HashMap();
	}
	
	//按姓名查找
	public Student getStudentByName(String name){
		if(students!=null&&students.size()>0){
			Student student=(Student)students.get(name);
			return student;
		}
		return null;
	}
	//按班級號查找
	public ArrayList getStudentByClassNo(String classNo){
		ArrayList result=new ArrayList();
		for(Object key:students.keySet()){
			Student stu=(Student)students.get(key);
			if(stu.getClassNo().indexOf(classNo)!=-1){
				result.add(stu);
			}
		}
		return result;
	}
	//返回所有學生信息
	public ArrayList getAllStudents(){
		ArrayList result=new ArrayList();
		for(Object key:students.keySet()){
			Student stu=(Student)students.get(key);
				result.add(stu);
		}
		return result;
	}
	
	//添加學生
	public void addStudent(Student student){
		this.students.put(student.getStuName(), student);
	}
	public void addStudent(int stuNo,String stuName,String classNo){
		Student student=new Student(stuNo,stuName,classNo);
		addStudent(student);
	}
	
	//刪除學生
	public boolean deleteStudent(Student student){
			String stu=student.getStuName();
			return this.deleteStudent(stu);
	}
	public boolean deleteStudent(String stuName){
		if(students!=null&&students.size()>0){
			Student student=this.getStudentByName(stuName);
			if(student==null)
				return false;
			this.students.remove(stuName);
			return true;
		}
		return false;
	}
	
	//修改學生
	public boolean updateStudent(Student student){
		if(students!=null&&students.size()>0){
			Student stu=this.getStudentByName(student.getStuName());
			if(stu==null)
				return false;
			this.students.put(stu.getStuName(), stu);
			return true;
		}
		return false;
	}
	public boolean updateStudent(int stuNo,String stuName,String classNo){
		Student stu=this.getStudentByName(stuName);
		stu.setStuName(stuName);
		stu.setStuNo(stuNo);
		stu.setClassNo(classNo);
		return updateStudent(stu);
	}
}

3、testStudent測試類,測試StudentUtil中方法是否能成功實現增刪改查操作

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

public class testStudent {
	public static void main(String[] args) {
		System.out.println("-系統初始化開始----------");
		StudentUtil studentutil=new StudentUtil();
		Student student=null;
		for(int i=1;i<=10;i++){
			if(i<=5)
				student=new Student(i,"student"+i,"s100"+i);
			else
				student=new Student(i,"student"+i,"s200"+i);
			studentutil.addStudent(student);
		}
		System.out.println("-系統初始化結束----------");
		
		Scanner input=new Scanner(System.in);
		//添加學生信息
		System.out.println("---------添加一個學生信息----------");
		student=new Student();
		System.out.println("No:");
		student.setStuNo(input.nextInt());
		System.out.println("Name:");
		student.setStuName(input.next());
		System.out.println("Class:");
		student.setClassNo(input.next());
		studentutil.addStudent(student);
		showStudent(studentutil);
		//刪除學生信息
		System.out.println("---------刪除一個學生信息----------");
		System.out.println("輸入要刪除的學生姓名:");
		String stuName=input.next();
		if(studentutil.deleteStudent(stuName)){
			System.out.println("刪除成功!");
			showStudent(studentutil);
		}
		else{
			System.out.println("刪除失敗!");
		}
		//修改學生信息
		System.out.println("---------修改一個學生信息----------");
		System.out.println("輸入要修改的學生姓名:");
		String name=input.next();
		student=studentutil.getStudentByName(name);
		if(student!=null){
			System.out.println("輸入學生班級:");
			student.setClassNo(input.next());
			if(studentutil.updateStudent(student)){
				System.out.println("修改成功!");
				showStudent(studentutil);
			}
			else{
				System.out.println("修改失敗!");
			}
		}
		else{
			System.out.println("查無此人!");
		}
		//查找學生信息
		System.out.println("---------查找改一個學生信息----------");
		System.out.println("輸入要查找的班級:");
		String classNo=input.next();
		ArrayList list=studentutil.getStudentByClassNo(classNo);
		System.out.println("---------顯示學生信息----------");
		for(Object obj:list){
			System.out.println(obj);
		}
	}
	//顯示所有學生信息類
	private static void showStudent(StudentUtil studentutil) {
		System.out.println("---------顯示學生信息----------");
		ArrayList result=studentutil.getAllStudents();
		for(Object obj:result){
			System.out.println(obj);
		}
	}
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章