`import java.util.Scanner;
//学生信息管理系统(双向链表实例)
public class Dome_main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Iand i = new Iand();
CaoZuo c = new CaoZuo();
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("----<<教务系统(教师用)>>-----");
System.out.println("1,登陆");
System.out.println("2,退出");
System.out.print("请输入你的选择:");
int choice = input.nextInt();
if (choice == 1) {
System.out.print("请输入用户名:");
String name = input.next();
System.out.print("请输入密码:");
String pass = input.next();
if (i.getIand(name, pass)) {
while (true) {
System.out.println("欢迎" + name + "使用该系统,如有疑惑请联系教务处");
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.print("请输入你的选择:");
int choice1 = input.nextInt();
switch (choice1) {
case 1:
System.out.println("请输入3名同学的信息:学号,姓名,性别");
System.out.println("第一名同学");
System.out.print("学号");
int id = input.nextInt();
System.out.print("姓名:");
String names = input.next();
System.out.print("性别:");
String sex = input.next();
List l1 = new List(id, names, sex);
System.out.println("第二名同学");
System.out.print("学号");
id = input.nextInt();
System.out.print("姓名:");
names = input.next();
System.out.print("性别:");
sex = input.next();
List l2 = new List(id, names, sex);
System.out.println("第三名同学");
System.out.print("学号");
id = input.nextInt();
System.out.print("姓名:");
names = input.next();
System.out.print("性别:");
sex = input.next();
List l3 = new List(id, names, sex);
c.getAdd(l1);
c.getAdd(l2);
c.getAdd(l3);
break;
case 2:
System.out.println("请输入要修改同学的信息:学号(不能变),姓名,性别");
System.out.print("学号");
id = input.nextInt();
System.out.print("姓名:");
names = input.next();
System.out.print("性别:");
sex = input.next();
List l4 = new List(id, names, sex);
c.getSplit(l4);
break;
case 3:
System.out.println("请输入要修改同学的信息:学号");
System.out.print("学号");
id = input.nextInt();
c.getRemove(id);
break;
case 4:
c.getShows();
break;
}
if(choice1 == 5)
{
break;
}
}
} else {
System.out.println("密码或用户名不正确");
System.out.println("选择重置,请输入1,不重置请输入2");
int temp = input.nextInt();
if (temp == 1) {
System.out.print("请输入用户名:");
String Name = input.next();
i.setUsername(Name);
System.out.print("请输入密码:");
String Pass = input.next();
i.setPassword(Pass);
}
}
} else {
System.out.println("欢迎下次使用");
System.exit(0);
}
}
}
}
`
相关操作
public class CaoZuo {
List l = new List(0, "", "");// 初始化
// 增加
public void getAdd(List list) {
List t = l;// 设置一个临时的头结点
while (true)// 查找最后的位置
{
if (t.next == null) {
break;
}
t = t.next;
}
t.next = list;
list.pre = t;
}
// 修改
public void getSplit(List list) {
if (l.next == null) {
System.out.println("数据为空,无法修改");
return;
}
List t = l.next;
boolean flag = false;
while (true) {
if (t == null) {
break;
}
if (t.getId() == list.getId()) {
flag = true;
break;
}
t = t.next;
}
if (flag) {
t.setName(list.getName());
t.setSex(list.getSex());
}
}
// 删除
public void getRemove(int id) {
if (l.next == null) {
System.out.println("数据已空,无法删除");
return;
}
List t = l.next;
boolean flag = false;
while (true) {
if (t == null) {
break;
}
if (t.getId() == id) {
flag = true;
break;
}
t = t.next;
}
if (flag) {
t.pre.next = t.next;
if (t.next != null) {
t.next.pre = t.pre;
}
}
}
// 显示
public void getShows() {
if (l.next == null) {
return;
}
List t = l.next;
while (true) {
if (t == null) {
break;
}
t.show();
t = t.next;
}
}
}
节点信息
public class List {
private int id;
private String name;
private String sex;
public List next;// 指向下一个节点
public List pre;// 指向前一个节点
public List(int id, String name, String sex) {
this.id = id;
this.name = name;
this.sex = sex;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return this.id;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return this.sex;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
// 显示单个节点
public void show() {
System.out.printf("学号 = %d\t姓名 = %s\t性别 = %s\n", id, name, sex);
}
}