学生信息管理系统(类的封装)

功能介绍:

       录入学生信息(学号,姓名,年龄)      

       修改学生信息(根据学生学号,修改学生姓名)

       删除学生(根据学生学号,删除某位学生)

       查看所有学生信息

       查看某个学生信息(根据学生学号,查看某位学生信息)

 

 

测试类:

/**
 * 
 */
package com.sweet.test;

import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
import java.util.Iterator; 


import org.omg.CORBA.FloatSeqHelper;

import com.zhiyou.collection.Phone;

/**
 * @author Administrator
 *
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Set<Student> students = new TreeSet<>();
		boolean isOK = true;
		while (isOK) {
			int i = screen();
                        if (i == 6) {
				isOK = false;
				System.out.println("谢谢使用!");
			}
			function(i,students);
			
		}
		
	}
	
	public static int screen() {
		System.out.println("-------------------欢迎进入学生信息管理系统-----------------\n");
		System.out.println("                1.录入学生信息(学号,姓名,年龄)");
		System.out.println("                2.修改学生信息(根据学生学号,修改学生姓名)");
		System.out.println("                3.删除学生(根据学生学号,删除某位学生)");
		System.out.println("                4.查看某个学生信息(根据学生学号,查看某位学生信息)");
		System.out.println("                5.查看所有学生信息");
		System.out.println("                6.退出");
		System.out.println("\n------------------------------------------------------");
		System.out.println("请输入你的操作:");
		Scanner scanner = new Scanner(System.in);
		int i = scanner.nextInt();
		
		return i;
	}
	
	public static void function(int i, Set<Student> students) {
		Scanner scanner = new Scanner(System.in);
		int age;
		String num, name;
		switch (i) {
			case 1:
				System.out.println("请输入学号:");
				num = scanner.next();
				System.out.println("请输入姓名:");
				name = scanner.next();
				System.out.println("请输入年龄:");
				age = scanner.nextInt();
				students.add(new Student(num, name, age)); 
				System.out.println("添加成功!");
				break;
			case 2:
				if (students.size() != 0) {
					System.out.println("请输入学号:");
					num = scanner.next();
					System.out.println("请输入姓名:");
					name = scanner.next();
					Boolean isOK = false;
					
					Iterator<Student> it = students.iterator();
					while(it.hasNext()){
						Student student = it.next();
						if(num.equals(student.getNum())){
							student.setName(name);
							isOK = true;
						}
					}
//此处利用的迭代修改也报错了,是因为我修改的方式是先删除再添加对象,但是因为迭代器内部
//对象统计的原因,导致删除再增加会出现内部错误,所以直接用的上面的方法,直接修改不删除
//					Iterator<Student> it = students.iterator();
//					while(it.hasNext()){
//						Student student = it.next();
//						if(num.equals(student.getNum())){
//							age = student.getAge();
//							it.remove();
//							students.add(new Student(num, name, age));
//							isOK = true;
//						}
//					}
//下面的利用foreach删除元素,一旦创建了多个元素,就只能删除第二个元素,否则程序都会报错					
//					for(Student str:students){
//						if (str.getNum().equals(num)) {
//							students.remove(str);
//							age = str.getAge();
//							students.add(new Student(num, name, age));
//							isOK = true;
//						}
//					}
					if(isOK) {
						System.out.println("修改成功!");
					}else {
						System.out.println("没有该学生的信息!");
					}
				}else {
					System.out.println("学生信息为空,不能进行修改操作!");
				}
				
				break;
			case 3:
				if (students.size() != 0) {
					System.out.println("请输入学号:");
					num = scanner.next();
					Boolean isOK1 = false;
					
					Iterator<Student> it = students.iterator();
					while(it.hasNext()){
						Student student = it.next();
						if(num.equals(student.getNum())){
							it.remove();
							isOK1 = true;
						}
					}
//					for(Student str:students){
//						if (str.getNum().equals(num)) {
//							students.remove(str);
//							isOK1 = true;
//						}
//					}
					if(isOK1) {
						System.out.println("删除成功!");
					}else {
						System.out.println("没有该学生的信息!");
					}
				}else {
					System.out.println("学生信息为空,不能进行删除操作!");
				}
				
				break;
			case 4:
				if (students.size() != 0) {
					System.out.println("请输入学号:");
					num = scanner.next();
					Boolean isOK2 = false;
					for(Student str:students){
						if (str.getNum().equals(num)) {
							System.out.println(str);
							isOK2 = true;
						}
					}
					if(isOK2) {
						System.out.println("查找成功!");
					}else {
						System.out.println("没有该学生的信息!");
					}
				}else {
					System.out.println("学生信息为空,不能进行显示!");
				}
				break;
			case 5:
				if (students.size() != 0) {
					System.out.println(students);
					
				} else {
					System.out.println("学生信息为空!");
				}
				break;
			default:
				break;
		}
		
	}	
	

}

学生类:

/**
 * 
 */
package com.sweet.test;

import com.zhiyou.collection.Phone;

/**
 * @author Administrator
 *
 */
public class Student implements Comparable<Student>{
	private String num;
	private String name;
	private int age;
	public Student(String num, String name, int age) {
		super();
		this.num = num;
		this.name = name;
		this.age = age;
	}
	
	public String getNum() {
		return num;
	}
	public void setNum(String num) {
		this.num = num;
	}
	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 void getInfo() {
		
	}

	@Override
	public String toString() {
		return "\n学号:" + num + "  姓名:" + name + "  年龄:" + age + "\n";
	}
	
	@Override
	public int compareTo(Student o) {
		// TODO Auto-generated method stub
		return this.num.compareTo(o.num);
	}
	
	

}

猜你喜欢

转载自blog.csdn.net/hellosweet1/article/details/81505412