学生管理系统
制作一个简单的学生管理系统,通过键盘选择操作进行添加学生(学号,姓名,性别,年龄)信息,可以实现添加学生信息、查询全体学生信息、修改学生信息、删除学生信息的功能,并将结果按照学生年龄从大到小排序。
学生类
package 学生管理系统;
public class Student implements Comparable<Student>{
//学生学号
private String sno;
//学生姓名
private String name;
//学生性别
private String sex;
//学生年龄
private int age;
public Student() {
}
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String sno, String name, String sex, int age) {
super();
this.sno = sno;
this.name = name;
this.sex = sex;
this.age = age;
}
@Override
public String toString() {
return "Student [sno=" + sno + ", name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
@Override
//要实现Comparable接口
public int compareTo(Student s) {
return this.age-s.age;
}
}
管理类
package 学生管理系统;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Manager {
ArrayList<Student> array = new ArrayList<Student>();
public void addStudent(ArrayList<Student> array) {
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);
Scanner input3 = new Scanner(System.in);
Scanner input4 = new Scanner(System.in);
String sno;
while(true){
System.out.println("请输入你的学号");
sno=input.next();
//判断学号是否重复
boolean flag=false;
for(int x = 0; x < array.size(); x++){
Student st = array.get(x);
if (st.getSno().equals(sno)) {
flag = true;
break;
}
}
if(flag){
System.out.println("对不起此学号已存在");
}else{
break;
}
}
//添加数据
System.out.println("请输入你的姓名");
String name = input2.nextLine();
System.out.println("请输入你的性别");
String sex = input3.nextLine();
System.out.println("请输入你的年龄");
int age = input4.nextInt();
Student s = new Student();
s.setSno(sno);
s.setName(name);
s.setSex(sex);
s.setAge(age);
array.add(s);
System.out.println("添加成功");
}
public void findAllStudent(ArrayList<Student> array) {
//判断当前是否有学生信息,没有则提示添加
if(array.size()==0){
System.out.println("对不起,没有学生信息");
System.out.println("请添加学生信息");
return;
}
System.out.println("学号\t姓名\t性别\t年龄");
//根据学生年龄排序
Collections.sort(array);
//lambda表达式
Collections.sort(array,(a,b)->b.getAge()-(a.getAge()));
for (int x = 0; x < array.size(); x++) {
Student s = array.get(x);
System.out.println(s.getSno() + "\t" + s.getName() + "\t"
+ s.getSex() + "\t" + s.getAge());
}
}
public void updataStudent(ArrayList<Student> array) {
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);
Scanner input3 = new Scanner(System.in);
Scanner input4 = new Scanner(System.in);
System.out.println("请输入你要修改的学号");
String sno = input.nextLine();
int index = -1;
//变量集合
for (int i = 0; i < array.size(); i++) {
//获取所有学生对象
Student s = array.get(i);
if(s.getSno().equals(sno)){
index = i;
break;
}
}
//判断要修改的学号是否存在
if(index == -1){
System.out.println("不好意思,你要修改的学生信息不存在");
}else{
System.out.println("请输入学生姓名");
String name = input2.nextLine();
System.out.println("请输入学生性别");
String sex = input3.nextLine();
System.out.println("请输入学生年龄");
int age= input4.nextInt();
//创建学生对象
Student s = new Student();
s.setSno(sno);
s.setName(name);
s.setSex(sex);
s.setAge(age);
//修改集合中的学生对象
array.set(index, s);
System.out.println("修改学生成功");
}
}
public void deleteStudent(ArrayList<Student> array) {
// TODO Auto-generated method stub
System.out.println("请输入你想删除学生的学号");
Scanner input = new Scanner(System.in);
String sno = input.nextLine();
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if(s.getSno().equals(sno)){
index = i;
}
}
//判断要删除的学号是否存在
if(index == -1){
System.out.println("对不起,没有你想删除的学生");
}else{
array.remove(index);
System.out.println("删除成功");
}
}
}
package 学生管理系统;
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
ArrayList<Student> array = new ArrayList<Student>();
//功能菜单
while (true) {
System.out.println("----------学生管理系统----------");
System.out.println("---------1.添加学生信息---------");
System.out.println("---------2.查询全体学生---------");
System.out.println("---------3.修改学生信息---------");
System.out.println("---------4.删除学生信息---------");
System.out.println("---------5.选择其他退出---------");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
Manager m=new Manager();
switch(a){
//添加学生
case 1:m.addStudent( array);
break;
//查询全体学生
case 2:m.findAllStudent(array);
break;
//修改学生信息
case 3:m.updataStudent(array);
break;
//删除学生信息
case 4:m.deleteStudent(array);
break;
//选择其他退出
case 5:
default:
System.out.println("谢谢你的使用");
System.exit(0);
break;
}
}
}
}
基本功能都已经实现,我只写了4个基本信息,如果觉得信息不够的话可以自己看情况添加并在相应的管理类的方法里修改即可。可能程序还存在很多BUG,欢迎在评论里讨论交流!