我也不知道我这个问题要怎么描述😭我要用单链表写学生管理系统,代码如下
package javaapplication28;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class JavaApplication28 {
public static void main(String[] args) {
LinkedList list=new LinkedList();
int n;
Scanner reader=new Scanner(System.in);
boolean loop=true;
while(loop)
{
System.out.println("---录入学生信息,请输入 1---");
System.out.println("---删除学生信息,请输入 2---");
System.out.println("---修改所修课程,请输入 3---");
System.out.println("---显示学生信息,请输入 4---");
System.out.println("---若要结束程序,请输入 0---");
n=reader.nextInt();
switch(n)
{
case 1:
StudentLinkNode s1=new StudentLinkNode();
s1.setInfo();
list.add(s1);break;
case 2:
System.out.println("请输入想要删除的学生信息");
String 学号;
学号=reader.next();
list.delete(学号);
System.out.println("删除成功");
break;
case 3:
System.out.println("请输入想要修改的学生学号");
String 学号1;
学号1=reader.next();
System.out.println("请输入想要修改的学生姓名");
String 姓名1;
姓名1=reader.next();
System.out.println("请输入想要修改的学生专业");
String 专业1;
专业1=reader.next();
System.out.println("请输入修改后的课程");
String 所修课程1;
所修课程1=reader.next();
StudentLinkNode s3=new StudentLinkNode(学号1,姓名1,专业1,所修课程1);
list.change(s3);
System.out.println("修改成功");
break;
case 4:
list.showlist();
break;
case 0:
loop=false;break;
}
}
}
}
class StudentLinkNode
{
public String 学号;
public String 姓名;
public String 专业;
public String 所修课程;
public StudentLinkNode next;
public StudentLinkNode(){
}
public StudentLinkNode(String 学号,String 姓名,String 专业,String 所修课程)
{
this.姓名=姓名;
this.学号=学号;
this.专业=专业;
this.所修课程=所修课程;
}
public void setInfo()
{
Scanner reader=new Scanner(System.in);
System.out.println("请输入学号:");
this.学号 = reader.next();
System.out.println("请输入姓名:");
this.姓名 = reader.next();
System.out.println("请输入专业:");
this.专业 = reader.next();
System.out.println("请输入所修课程:");
this.所修课程 = reader.next();
}
}
class LinkedList
{
private StudentLinkNode head=new StudentLinkNode(" "," "," "," ");
public void add(StudentLinkNode stuNode)
{
StudentLinkNode temp=head;
while(true)
{
if(temp.next==null)
{
break;
}
temp=temp.next;
}
temp.next=stuNode;
}
public void delete(String 学号)
{
StudentLinkNode temp=head;
boolean f=false;
while(true)
{
if(temp.next==null)
{
break;
}
if(temp.next.学号==学号)
{
f=true;
break;
}
temp=temp.next;
}
if(f)
{
temp.next=temp.next.next;
}
else{
System.out.println("查无此人");
}
}
public void change(StudentLinkNode stuNode)
{
if(head.next==null)
{
System.out.println("没有信息");
return;
}
StudentLinkNode temp=head.next;
boolean f=false;
while(true)
{
if(temp==null)
{
break;
}
if(temp.学号==stuNode.学号)
{
f=true;
break;
}
temp=temp.next;
}
if(f)
{
temp.姓名=stuNode.姓名;
temp.所修课程=stuNode.所修课程;
}
else{
System.out.println("查无此人");
}
}
}
当我输入4时打印出来是这样的
这是什么情况导致的?谢谢🙏