功能介绍:
录入学生信息(学号,姓名,年龄)
修改学生信息(根据学生学号,修改学生姓名)
删除学生(根据学生学号,删除某位学生)
查看所有学生信息
查看某个学生信息(根据学生学号,查看某位学生信息)
测试类:
/**
*
*/
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);
}
}