控制台的主界面可以自己设计
在主界面代码里修改即可
添加模块展示
查询模块展示
全部查询
学号查询
删除模块展示
修改模块展示
退出系统
主界面:
public class MyTest {
public static void main(String[] args) {
ArrayList<Person> arrayList = new ArrayList<Person>();
AppService appService = new AppServiceImpl();
boolean isFOR=true;
while(isFOR){
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("请输入:");
Scanner sc = new Scanner(System.in);
String imports=sc.nextLine();
switch (imports){
case "1":
appService.add(arrayList);
break;
case "2":
appService.del(arrayList);
break;
case "3":
appService.mod(arrayList);
break;
case "4":
appService.inquire(arrayList);
break;
case"5":
isFOR = appService.tuichu();
break;
// default:
// System.out.println("谢谢你的使用");
}
}
System.exit(0);
}
}
功能接口:
public interface AppService {
public void add(ArrayList<Person> arrayList);
public void del(ArrayList<Person> arrayList);
public void mod(ArrayList<Person> arrayList);
public void inquire(ArrayList<Person> arrayList);
public boolean tuichu();
}
接口实现类:
public class AppServiceImpl implements AppService {
Scanner scan = new Scanner(System.in);
@Override
public void add(ArrayList arrayList) {
//每次增加都new一个新的Person对象
Person person = new Person();
try{
System.out.println("请输入学生学号:");
person.setId(scan.nextInt());
System.out.println("请输入学生姓名:");
person.setName(scan.next());
System.out.println("请输入学生年龄:");
person.setAge(scan.nextInt());
System.out.println("请输入学生性别:");
person.setGender(scan.next());
}catch (Exception e){
String message = e.getMessage();
System.out.println("添加完成");
}
arrayList.add(person);
}
@Override
public void del(ArrayList arrayList) {
System.out.println("请输入要删除的id");
Integer delid = scan.nextInt();
for (int x = 0; x < arrayList.size(); x++) {
Person o = (Person) arrayList.get(x);
if (delid == o.getId()) {
arrayList.remove(x);
}
}
System.out.println("删除完成!");
}
@Override
public void mod(ArrayList arrayList) {
//在操作台上显示让用户输入要修改的对象的学号
System.out.println("请输入要修改的对象的学号:");
//定义一个int类型接受数据
int modId = scan.nextInt();
//定义一个int类型用来判断输入的学号是否存在
int index = -123;
//用for循环遍历list的集合对象
for (int x = 0; x < arrayList.size(); x++) {
//把即合理遍历出来的对象取出来给一个Person类
Person o = (Person) arrayList.get(x);
//判断每一个遍历出来的person类里的getId返回有没有和用户输入的值一样的
if (o.getId() == modId) {
//如果有一样的话就把这个对象在离合里的角码赋给index,用来标识用户输入的学号在集合存在可以进行下一步操作
index = x;
//当判断到存在的话终止循环
break;
}
}
//根据index的值是否变化来判断用户输入的id是否在集合中存在
if (index == -123) {
//不存在的话输出到控制台“输入错我,请从新输入”
System.out.println("输入错误,请重新输入!");
} else {
//存在的话请用户在控制台上按操作提示输入信息
System.out.println("请输入学生新姓名:");
String modname = scan.next();
System.out.println("请输入学生新年龄:");
Integer modage = scan.nextInt();
System.out.println("请输入学生新性别:");
String modgender = scan.next();
//new 一个新的对象p
Person p = new Person();
//分别把id、name、age、gender都赋给p的set'方法
p.setId(modId);
p.setName(modname);
p.setAge(modage);
p.setGender(modgender);
//把新的对象放置到集合中原学号为index的对象的位置上去
arrayList.set(index, p);
//返回给控制台操作完成
System.out.println("学生信息修改成功");
}
}
@Override
public void inquire(ArrayList arrayList) {
System.out.println("全部查询/学号查询(1/2)");
//用来接收用户在控制台输入的全部查询还是单例查询的语句
int i1 = scan.nextInt();
//判断用户输入的语句,如果输入为1的话那么为全例查询
if (i1 == 1) {
//控制台显示的语句
System.out.println("全部学生信息");
// System.out.println("学生信息如下:");
System.out.println("学号----姓名----年龄----性别");
//遍历集合中的元素,根据集合的大小和来遍历
for (int i = 0; i < arrayList.size(); i++) {
//把集合里的每一个元素付给一个person类型的对象
Person o = (Person) arrayList.get(i);
//输出这个person类型对象里的全部数据到控制台
System.out.println(o.getId() + "----" + o.getName() + "----" + o.getAge() + "----" + o.getGender());
}
//判断用户输入的语句,如果输入为2的话,那么为单例查询
} else if (i1 == 2) {
//定义一个boolean类型变量用来控制循环
boolean YesNO = true;
//开始while循环
while(YesNO){
System.out.println("请输入要查询的学生学号:");
//根据上述提示接受用户在控制台输入的数据
int i2 = scan.nextInt();
//定义一个变量用来确定用户输入的数据Id在集合中的元素中是否包含
int index = -121;
//根据for循环来遍历集合
for (int x = 0;x< arrayList.size();x++){
//用Person对象来接受集合里的元素
Person p = (Person) arrayList.get(x);
//判断集合里是否包含id为用户输入的元素存在
if (p.getId() == i2){
//如果存在的话把表示变为该元素的下角标
index =x;
break;
}
}
if (index == -121){
System.out.println("输入错误,请重新输入!");
System.out.println("退出输入请按-1");
if (i2 == -1){
YesNO = false;
}
}else {
System.out.println("学号" + i2 + "的学生信息");
System.out.println("学号----姓名----年龄----性别");
Person o = (Person) arrayList.get(index);
System.out.println(o.getId() + "----" + o.getName() + "----" + o.getAge() + "----" + o.getGender());
System.out.println("\n\n");
YesNO = false;
}
}
}
}
@Override
public boolean tuichu() {
//定义一个boolean类型变量返回给主页面,判断是否终止循环
boolean x = true;
System.out.println("确认退出系统?(y/n)");
//让用户在控制台上输入
String next = scan.next();
//判断用户输入的数据
if (next.equals("y")){
//如果用户输入确定退出那么在控制台输出该语句
System.out.println("欢迎再次使用本系统");
// System.exit(0);
//赋给x的值修改为false
x = false;
//如果用户输入否那么在控制台输出返回主页面当前的x为true返回值也为true,继续循环
}else if (next.equals("n")){
System.out.println("返回主页面");
}
//经过上述把用户输入值判断之后返回给主函数的值,用来判断是否继续进行循环
return x;
}
}