Student类
package com.zjl.entity;
import com.zjl.comparable.Comparable;
public class Student implements Comparable<Student> {
int id;
String name;
int age;
String number;
@Override
public String toString() {
return id+"\t\t"+name+"\t\t"+age+"\t\t"+number;
}
public Student(int id, String name, int age, String number) {
this.id = id;
this.name = name;
this.age = age;
this.number = number;
}
public Student(String name, int age, String number) {
}
public String getName() {
return name;
}
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
@Override
public int compareTo(Student student) {
if (student == null) {
throw new NullPointerException("is null");
}
if (this.getAge() > student.getAge()) {
return 1;
} else if (this.getAge() < student.getAge()) {
return -1;
} else {
return 0;
}
}
}
StudentDemo类
package com.zjl.demo;
import com.zjl.manger.StudentManger;
import java.util.Scanner;
public class StudentDemo {
public static void main(String[] args) {
while (true) {
System.out.println("是否进入学生管理系统");
System.out.println("1.是");
System.out.println("2.否");
Scanner input = new Scanner(System.in);
int is = input.nextInt();
if (is == 1) {
StudentManger.run();
} else if (is == 2) {
System.out.println("好的,下次再见");
break;
} else {
System.out.println("输入错误,请重新选择");
}
}
}
}
StudentManger类
package com.zjl.manger;
import com.zjl.entity.Student;
import java.beans.XMLEncoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class StudentManger {
static List<Student> list = new ArrayList<>();
static Scanner input = new Scanner(System.in);
static Student student = null;
static boolean b = true;
static String filePath="D:\\桌面\\Student";
static File file=new File(filePath);
static FileOutputStream fos=null;
static FileInputStream fis=null;
//运行程序
public static void run() {
menu();
}
//显示菜单
static void menu() {
System.out.println("欢迎进入学生管理系统");
//循环菜单界面
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.退出");
System.out.println("++++++++++++++++++++++++");
System.out.println("请选择");
int choose = input.nextInt();
//根据输入判断进入什么方法
if (choose == 1) {
addStu();
} else if (choose == 2) {
delStu();
} else if (choose == 3) {
updateStu();
} else if (choose == 4) {
selStu();
} else if (choose == 5) {
System.out.println("下次再见");
break;
}
else {
System.out.println("输入错误,请重新输入");
}
}
}
//添加学生信息
public static void addStu() {
//判断文件是否存在 如果不存在 则创建一个
if (!file.exists()){
try {
file.createNewFile();
String info="学号 姓名 年龄 电话";
byte[] infos=info.getBytes();
fos=new FileOutputStream(filePath,true);
fos.write(infos,0,infos.length);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
while (true) {
student = new Student();
int a = 0;
System.out.println("请输入要添加学生学号");
int id = input.nextInt();
//根据学号判断是否重复
for (int i = 0; i < list.size(); i++) {
System.out.println("进入for");
Student student = list.get(i);
if (id == student.getId()) {
System.out.println("添加失败,该学号已存在,请重新输入");
a = 1;
break;
}
}
//根据a的值 判断学号是否存在,如存在 则从新开始循环
if (a == 1) {
continue;
}
System.out.println("请输入要添加学生姓名");
String name = input.next();
System.out.println("请输入要添加学生年龄");
int age = input.nextInt();
System.out.println("请输入要输入的学生电话");
String number = input.next();
//修改学生属性,存放到list中
student.setName(name);
student.setAge(age);
student.setId(id);
student.setNumber(number);
list.add(student);
System.out.println("添加成功");
System.out.println("请问是否继续添加吗 1.是 2.否");
int is = input.nextInt();
//判断是否继续添加学生
if (is == 1) {
continue;
} else {
break;
}
}
}
//删除学生信息
public static void delStu() {
System.out.println("请输入要删除的学生学号");
int id = input.nextInt();
//使用for遍历集合,如果存在输入的id,则讲该元素删除
for (int i = 0; i < list.size(); i++) {
System.out.println("进入for");
Student student = list.get(i);
if (id == student.getId()) {
list.remove(student);
System.out.println("删除成功");
b = true;
break;
} else {
b = false;
}
}
if (b == false) {
System.out.println("该学号已不存在");
}
}
//修改学生信息
public static void updateStu() {
System.out.println("请输入要修改的学生学号");
int id= input.nextInt();
//判断集合中是否有输入的名称
for (int i = 0; i < list.size(); i++) {
System.out.println("进入for");
Student student = list.get(i);
System.out.println(student.getName());
if (id==student.getId()) {
b = true;
break;
} else {
b = false;
}
}
if (b) {
System.out.println("查有此人");
System.out.println("当前信息为 学号:"+student.getId()+" 姓名:"+student.getName()+
" 年龄:"+student.getAge()+" 电话"+student.getNumber());
System.out.println("请输入修改后的姓名");
String name = input.next();
student.setName(name);
System.out.println("请输入修改后的年龄");
int age = input.nextInt();
student.setAge(age);
System.out.println("请输入修改后的电话");
String number = input.next();
student.setNumber(number);
System.out.println("修改成功;修改后的数据为:学号:"+student.getId()+" 姓名:"+student.getName()+
" 年龄:"+student.getAge()+" 电话"+student.getNumber());
}else {
System.out.println("对不起,没有找到此人");
}
}
//查询学生信息
public static void selStu() {
if (!file.exists()){
System.out.println("当前没有学生信息");
}else {
System.out.println("学号\t\t姓名\t\t年龄\t\t电话\t\t");
Iterator iterator = list.iterator();
//使用Iterator遍历集合 进行输出
while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println(obj);
}
}
}
}