老师给的例题,很经典;
/**
使用集合写一个学生管理系统
存在一个学生集合,里面有5个学生对象,写4个方法,调用产 生增删改查,排序5种结果。
要求:
1.增加的时候id相同的学生不能增加,
2.删除根据name删除,
3.查询是查看所有,
4.修改是根据id修改所有信息。
5.根据分数排序,如果分数相同按照id排序,升序降序自己决定(提示:自己研究Collections类)
*/
1、第一个java,学生类的写法:
package _2017_01.AddRemoveChangeCheck;
public class Students {
public int id;
public String name;
public double score;
public Students() {
}
public Students(int id,String name, double score) {
this.id = id;
this.name = name;
this.score = score;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "Students{" +
"id=" + id +
", name='" + name + '\'' +
", score=" + score +
'}';
}
}
2、测试类程序:
package _2017_01.AddRemoveChangeCheck;
import Sort.Student;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
使用集合写一个学生管理系统
存在一个学生集合,里面有5个学生对象,写4个方法,调用产 生增删改查,排序5种结果。
要求:
1.增加的时候id相同的学生不能增加,
2.删除根据name删除,
3.查询是查看所有,
4.修改是根据id修改所有信息。
5.根据分数排序,如果分数相同按照id排序,升序降序自己决定(提示:自己研究Collections类)
*/
public class Stu {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
Scanner input = new Scanner(System.in);
Student stu1 = new Student(1, "a", 90.5);
Student stu2 = new Student(2, "b", 79.0);
Student stu3 = new Student(3, "c", 69.5);
Student stu4 = new Student(4, "d", 88.5);
Student stu5 = new Student(5, "e", 95.0);
list.add(0, stu1);
list.add(1, stu2);
list.add(2, stu3);
list.add(3, stu4);
list.add(4, stu5);
while (true) {
System.out.println("请输入需要的选项:");
System.out.println("1.添加");// 1.增加的时候id相同的学生不能增加,
System.out.println("2.删除");// 2.删除根据name删除,
System.out.println("3.查看");// 3.查询是查看所有,
System.out.println("4.修改");// 4.修改是根据id修改所有信息。
System.out.println("5.排序");// 5.根据分数排序,如果分数相同按照id排序
int nam = input.nextInt();
switch (nam) {
case 1:
System.out.println("请输入学号");
int id = input.nextInt();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId() == id) {//id相同则不能增加
System.out.println("输入学号相同,请重新输入");
break;
}
if (i == list.size()-1) {
System.out.println("请输入学生姓名:");
String name = input.next();
System.out.println("请输入学生成绩:");
double score = input.nextDouble();
list.add(new Student(id, name, score));
System.out.println("添加成功");
break;
}
}
break;
case 2:
System.out.println("请输入需要删除的学生名字");
String name = input.next();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getName().equals(name)) {
list.remove(i);
System.out.println("删除成功");
break;
}
if (i == list.size() - 1) {
System.out.println("删除失败");
break;
}
}
break;
case 3:
//使用迭代器遍历
Iterator<Student> i = list.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
break;
case 4:
System.out.println("请输入要替换的学生学号:");
id = input.nextInt();
int count=0;
do{
for (int j = 0; j < list.size(); j++) {
if (list.get(j).getId() != id) {
continue;
}
count++;
}
if(count==0){
System.out.println("学号不存在,请重新输入:");
id = input.nextInt();
}
}while(count==0);
System.out.println("请输入新的学号:");
int id1 = input.nextInt();
do{
count=0;
for (int j = 0; j < list.size(); j++) {
if (list.get(j).getId() != id1) {
continue;
}
count++;
}
if(count!=0){
System.out.println("学号已存在,请输入新的学号:");
id1 = input.nextInt();
}
}while(count!=0);
for (int j=0;j<list.size();j++){
if (list.get(j).getId()==id){
System.out.println("请输入新的学生姓名:");
name = input.next();
System.out.println("请输入新的学生成绩");
double score = input.nextDouble();
list.get(j).setId(id1);
list.get(j).setName(name);
list.get(j).setScore(score);
System.out.println("更改成功!");
break;
}
}
break;
case 5:
Collections.sort(list);
for(int l=0;l<list.size();l++){
System.out.println(list.get(l));
}
break;
}
}
}
}