1.首先先写一个Student(学生类),
成员变量
String sid,name,age,address(sid学生学号,name学生姓名,age学生年龄,address学生地址)提示:变量用全部用String字符串来写,会好写一点,全部用private私有化用来修饰
要有无参,有参,get set方法
代码如下:
public class Student {
//学号
private String sid;
//名字
private String name;
//年龄
private String age;
//居住地
private String address;
public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public Student() {
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2.写一个增删改查的实现类
1.用输出语句完成主页面的编写 2.用Scanner实现快捷键录入数据 3.用switch语句完成操作的选择 4.用循环完成再次回到主页面
增删改查界面如下代码:
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
//用输出语句完成主页面的编写
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("-----------欢迎来到学生管理系统-----------");
System.out.println("1.添加学生 2.删除学生 3.修改学生 4.查看所有学生 5.退出");
System.out.println("请输入你的选择:");
String s= sc.next();
switch (s) {
case "1":
addStudent(list);//添加学生方法
break;
case "2":
delete(list);//删除学生方法
break;
case "3":
ChangeSid(list);//更改学生方法
break;
case "4":
finaAddStudent(list);//查看所有学生方法
break;
case "5":
System.out.println("谢谢使用!!!");/退出学生系统
System.exit(0);//这个方法是终止JVM虚拟机
break;
default:
System.out.println("选项出错,请重新选择!!!");
break; //如果输出1~5选项之外,则会重新选择
}
}
}
//添加学生方法:
public static void addStudent(ArrayList<Student> list){
//参数列表使用ArrayList,调用Student对象
Scanner sc=new Scanner(System.in);//调用键盘输出方法
String sid;//定义sid方法
while (true){
System.out.println("请输入学生学号:");
sid=sc.next();
boolean flag = isUser(list, sid); //调用isUser方法
//isUser方法是判断输出的学号是否与之前存储的学号有相同
if(flag){
System.out.println("您输入的学号已添加,请重新输入!!!");
//红色这一块是为了判断输出有没有相同学号,如果有,请重新输入学号!!!
}else{
System.out.println("请输入学生姓名:");
String name=sc.next();
System.out.println("请输入学生年龄:");
String age=sc.next();
System.out.println("请输入学生地址:");
String address=sc.next();
//上面的使用键盘输出添加学生姓名,名字这些就不再讲解了哈
Student s=new Student();//调用Student对象
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
list.add(s);
System.out.println("添加学生成功!!!");
break;
//把键盘输出的字符串变量赋值给对象s的set方法
}
}
//isUser方法如下:
boolean flag=false;
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if(s.getSid().equals(sid)){
flag=true;
}
}
return flag;
}
接来下:我们写查看所有学生代码,先把简单的给写完先哈。
public static void finaAddStudent(ArrayList<Student> list){
if(list.isEmpty){isEmpty是集合里面的一个方法,判断集合是否为空值,当然,你也把判断条件写为list.size==0,这个判断条件,效果都一样哈
System.out.println("您未录入学生,请先录入学生:");
}else{//遍历集合,输出已录入的学生集合
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress());
}
}
}
接下来,我们来写删除代码,代码如下:
public static void delete(ArrayList<Student> list){
if(list.size()==0){//首先哈,这个和上面那个查看所有学生判断是一样的
System.out.println("未录入学生,请先录入学生!!!");
}else{
//显示所有学生信息方便删除
System.out.println("学生信息:");
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress());
}
while (true){
Scanner sc=new Scanner(System.in);
System.out.println("请您输入需要删除的学生学号:");给出删除学生提示信息
String sid=sc.next();//输出已有的学生学号进行删除
int index=-1;//这个index变量是为了下面的判断先给赋值等于-1,因为集合下标没有-1,
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if(s.getSid().equals(sid)){
index=i;
break;
//如果调用对象的学生学号和输出的学生学号相同,则index=i,i=sid学号下标;
}
}
然后再进行判断:
if(index==-1){
System.out.println("没有此学号,请重新选择!!!");
//如果没有输出错误或者没有此学号,就需要重新输入,删除已有学号;
}else{下面的这些就是如果输出的学号和之前录入进去的学号相同,就可以修改啦
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if(s.getSid().equals(sid)){
list.remove(i);
System.out.println("删除学生成功!!!");
}
}
break;
}
}
}
}
那我们接下来.,就写最后一个步骤,更改学生也是最难的喔,和删除有几分相似,都是用集合调用方法,比较简单:
public static void ChangeSid(ArrayList<Student> list){
if(list.size()==0){
System.out.println("未录入学号,请先录入学号!!!");
}else{
System.out.println("学生信息:");
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress());
}
//首先我们前面讲过,先判断集合是否为空值,还有显示学号,方便更改学生信息
while (true){
Scanner sc=new Scanner(System.in);
System.out.println("请您输入需要更改的学生学号:");
String sid=sc.next();
int index=-1;
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if(s.getSid().equals(sid)){
index=i;
break;
}
}
if(index==-1){
System.out.println("没有此学号,请重新选择!!!");
//上面一段循环判断似是和删除是一样的道理,我就不多说了哈
如果没有学号,就重新输入学号进行修改!!!
}else{
System.out.println("请输入新学生姓名:");
String name=sc.next();
System.out.println("请输入新学生年龄:");
String age=sc.next();
System.out.println("请输入新学生地址:");
String address=sc.next();
Student s=new Student();//调用学生对象
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//把修改新的值赋值给set方法
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if(student.getSid().equals(sid)){
list.set(i,s);//set方法是集合输入集合下标,然后再进行更改
然后输出更改之后的结果:
System.out.println("学生更改之后:");
for (int j = 0; j < list.size(); j++) {
Student student1 = list.get(j);
System.out.println("学号:" + s.getSid() + "\t姓名:" + s.getName() + "\t年龄:" + s.getAge() + "\t地址:" + s.getAddress());
}
System.out.println("更改学生成功!!!");
}
}
break;
}
}
}
}
之后就没有之后啦,就大工告成啦,第一次发布文章,没有说的很清楚,但是我的注释,学生一般都看懂,喜欢我的可以帮我顶一下喔,如果有什么不懂的话就随时来找我。