1.首先添加学生类
2.再实现增删查改
在编程中遇到的小问题:
1.case语句中代码重复的话,可以注释掉,程序依然会向下执行
2.编写查询时,要考虑没有学生的情况
3.编写增加和修改和查询时,要以唯一识别的学号进行操作
4.学号是唯一的,可通过遍历集合中的序号与输入键盘中的学号进行比较
项目截图:
运行截图:
程序源代码:
Student.java
package Students;
public class Students {
private String sno;
private String sna;
private String add;
public Students() {
}
public Students(String sno, String sna, String add) {
super();
this.sno = sno;
this.sna = sna;
this.add = add;
}
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getSna() {
return sna;
}
public void setSna(String sna) {
this.sna = sna;
}
public String getAdd() {
return add;
}
public void setAdd(String add) {
this.add = add;
}
}
Test.java
package Students;
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//创建集合对象,用于存储学生数据
ArrayList<Students> array=new ArrayList<Students>();
//不让程序结束
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("请输入你的选择");
Scanner sc=new Scanner(System.in);
String choice=sc.nextLine();
switch(choice) {
case"1":
addStudents(array);
break;
case"2":
deleteStudents(array);
break;
case"3":
findAllStudents(array);
break;
case"4":
updateStudents(array);
break;
case"5":
//System.out.println("谢谢你的使用");
//break;
//代码重复,输入5会继续向下执行
default:
System.out.println("谢谢你的使用");
System.exit(0);//java虚拟机退出
break;
}
}
}
//添加学生
public static void addStudents(ArrayList<Students> array) {
Scanner sc=new Scanner(System.in);
//为了让sno能被访问,把它放在循环的外面
String Sno;
while(true) {
System.out.println("请输入学生学号:");
//String Sno=sc.nextLine();
Sno=sc.nextLine();
//定义标记
boolean flag=false;
for(int x=0;x<array.size();x++) {
Students s=array.get(x);
//获取该学生的学号,和键盘录入的学号进行比较
if(s.getSno().equals(Sno)) {
flag=true;//说明学号被占用
break;
}
}
if(flag) {
System.out.println("该学号已存在,请重新输入");
}else {
break;
}
}
System.out.println("请输入学生姓名:");
String Sna=sc.nextLine();
System.out.println("请输入学生地址:");
String Add=sc.nextLine();
//创建学生对象
Students s=new Students();
s.setSno(Sno);
s.setSna(Sna);
s.setAdd(Add);
//把学生对象作为元素添加到集合
array.add(s);
System.out.println("添加成功");
}
//查询学生
public static void findAllStudents(ArrayList<Students> array) {
//首先判断集合的长度,等于0的话程序就不往下走
if(array.size()==0){
System.out.println("不好意思,目前没有学生,请回去重新选择你的操作");
return;//不让程序往下执行
}
System.out.println("学号\t\t姓名\t地址");//\t是一个tab键的位置
for(int x=0;x<array.size();x++) {
Students s=array.get(x);
System.out.println(s.getSno()+"\t"+s.getSna()+"\t"+s.getAdd());
}
}
//删除学生
public static void deleteStudents(ArrayList<Students> array) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要删除的学生的学号");
String Sno=sc.nextLine();
//创建一个索引值
int index=-1;
for(int x=0;x<array.size();x++) {
Students s=array.get(x);
if(s.getSno().equals(Sno)) {
index=x;
break;
}
}
if(index==-1) {
System.out.println("您要删除的学生信息不存在,请重新选择");
}else {
array.remove(index);
System.out.println("删除学生成功");
}
}
//编辑学生
public static void updateStudents(ArrayList<Students> array) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要修改的学生的学号");
String Sno=sc.nextLine();
//创建一个索引值
int index=-1;
for(int x=0;x<array.size();x++) {
Students s=array.get(x);
if(s.getSno().equals(Sno)) {
index=x;
break;
}
}
if(index==-1) {
System.out.println("您要修改的学生信息不存在,请重新选择");
}else {
System.out.println("请输入学生新姓名:");
String Sna=sc.nextLine();
System.out.println("请输入学生新地址:");
String Add=sc.nextLine();
//创建学生对象
Students s=new Students();
s.setSno(Sno);
s.setSna(Sna);
s.setAdd(Add);
//修改学生中的集合对象
array.set(index, s);
System.out.println("修改学生成功");
}
}
}