控制台系统作为java初学者的项目十分合适,只用到简单的集合以及常用的控制语句就可以实现,首先,我们需要先分析一个学生管理系统需要包含什么功能。
作为一个学生管理系统功能也就是增删改查四项基本功能,以及一个退出系统的功能便可以完成该系统。
- 查看学生信息
- 添加学生信息
- 删除学生信息
- 修改学生信息
- 退出
根据以上分析首先我们需要创建一个标准的学生类,一个标准的学生类应该包含变量声明,有参构造方法、无参构造方法、以及get set方法。
public class Student {
private String id;
private String name;
private String arg;
private String address;
public Student() {
}
public Student(String id, String name, String arg, String address) {
this.id = id;
this.name = name;
this.arg = arg;
this.address = address;
}
get和set方法自动生成便可以。
学生类创建完毕,我们需要建造一个包含这五种功能的类,首先我们要先完成主界面的代码编写,主界面只需要有这五种选项便可以,运用switch通过判断键盘录入的信息来进行相应功能的编写。
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 input = new Scanner(System.in);
int a = input.nextInt();
switch (a) {
case 1:
findAllStudent(array);
break;
case 2:
addStudent(array);
break;
case 3:
deleteStudent(array);
break;
case 4:
updateStudent(array);
break;
case 5:
default:
System.out.println("谢谢你的使用");
System.exit(0);
break;
}
}
}
while (true)的作用就是无论选择什么选项最后都会回到主界面选择。
System.exit(0);这句代码的含义为jvm停止运行,也就是java虚拟机停止运行,一般都用这句代码作为程序结束。
接下来介绍四种方法的实现
1.查看学生信息
public static void findAllStudent(ArrayList<Student> array) {
// TODO Auto-generated method stub
if (array.size() == 0) {
System.out.println("对不起,没有学生信息");
System.out.println("请重新选择");
return;
}
System.out.println("学号\t姓名\t年龄\t居住地");
for (int x = 0; x < array.size(); x++) {
Student s = array.get(x);
System.out.println(s.getId() + "\t" + s.getName() + "\t"
+ s.getArg() + "\t" + s.getAddress());
}
}
2.添加学生信息
public static void addStudent(ArrayList<Student> array) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
String id;
while(true){
System.out.println("请输入你的学号");
id = input.nextLine();
// 判断ID是否重复;
boolean flag = false;
// 遍历集合信息
for (int x = 0; x < array.size(); x++) {
Student st = array.get(x);
// 取得该学生id与数组中id进行对比
if (st.getId().equals(id)) {
flag = true;
break;
}
}
if (flag) {
System.out.println("对不起,学号被占用");
}else{
break;
}
}
System.out.println("请输入你的姓名");
String name = input.nextLine();
System.out.println("请输入你的年龄");
String arg = input.nextLine();
System.out.println("请输入你的地址");
String address = input.nextLine();
Student s = new Student();
s.setId(id);
s.setName(name);
s.setArg(arg);
s.setAddress(address);
array.add(s);
System.out.println("添加成功");
}
因为这是控制台系统没有DB所以便没有主键,但是为了完成这个系统功能的实现,我们需要把学号设置为唯一,这样便可以通过学号来进行删除以及修改学生信息功能,这样也比较符合实际。
所有代码在前面进行了一个id是否重复的判断,注意!这里的while(true)不是跳转到主界面选择的界面了,而是如果你i输入的id重复,跳转到你输入id的界面。
3.删除学生信息
public static void deleteStudent(ArrayList array) {
// TODO Auto-generated method stub
System.out.println(“请输入你想删除学生的学号”);
Scanner input = new Scanner(System.in);
String id = input.nextLine();
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if(s.getId().equals(id)){
index = i;
}
if(index == -1){
System.out.println(“对不起,没有你想删除的学生”);
}else{
array.remove(i);
System.out.println(“删除成功”);
}
}
}
删除学生便是通过比较键盘上录入的id与集合中是否有相同的id来判断删除哪条学生信息,这里需要考虑的是比如你添加的学生id为111而键盘上输入的id为222这时候你便要输出提示信息,我这里是通过定义一个索引来实现。
4.修改学生信息
public static void updateStudent(ArrayList<Student> array) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入你要修改的学号");
String id = input.nextLine();
int index = -1;
//变量集合
for (int i = 0; i < array.size(); i++) {
//获取所有学生对象
Student s = array.get(i);
if(s.getId().equals(id)){
index = i;
break;
}
}
if(index == -1){
System.out.println("不好意思,你要修改的学生信息不存在");
}else{
System.out.println("请输入学生姓名");
String name = input.nextLine();
System.out.println("请输入学生年龄");
String arg = input.nextLine();
System.out.println("请输入学生地址");
String address = input.nextLine();
//创建学生对象
Student s = new Student();
s.setId(id);
s.setId(name);
s.setArg(arg);
s.setAddress(address);
//修改集合中的学生对象
array.set(index, s);
System.out.println("修改学生成功");
}
}
修改学生信息主要是进行了一个数组的置换功能 :
array.set(oldList,newList);
控制台系统比较简单,适合java初学者来进行练习。