单链表的实现((教职工管理系统)
package e_1;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
class Teach {
String sno;
String name;
String sex;
String tit;
String deg;
String pos;
String scho;
String pro;
public Teach(String sno, String name, String sex, String tit, String deg,
String pos, String scho, String pro) {
super();
this.sno = sno;
this.name = name;
this.sex = sex;
this.tit = tit;
this.deg = deg;
this.pos = pos;
this.scho = scho;
this.pro = pro;
}
public String toString(Teach t) {
return t.sno + "," + t.name + "," + t.sex + "," + t.tit + ","
+ t.deg + "," + t.pos + "," + t.scho + "," + t.pro;
}
}
class Node {
Teach tea;
Node next;
}
class Main {
private static void menu() {
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(" 6.导出教职工信息到文件");
System.out.println(" 0.退出");
System.out.println("----------------------------------------");
}
public static void main(String[] args) {
Node head = new Node();
Node current = head;
Scanner scn = new Scanner(System.in);
String cmd = "";
menu();
do {
System.out.print("\n-cdm-: 请输入你得选择:(0-6)> ");
cmd = scn.nextLine();
if (cmd.equals("1")) {
System.out.print("> 请输入要查询的学号:");
String sno = scn.nextLine();
Node tmp = head.next;
while (tmp != null &&
!tmp.tea.sno.equals(sno)) {
tmp = tmp.next;
}
if (tmp != null) {
Teach t = tmp.tea;
System.out.println(t.toString(t));
tmp = tmp.next;
} else {
System.out.println("error!! 查询失败!");
}
} else if (cmd.equals("2")) {
Node tmp = head.next;
if (tmp == null) System.out.println("链表为空");
while (tmp != null) {
Teach t = tmp.tea;
System.out.println(t.toString(t));
tmp = tmp.next;
}
} else if (cmd.equals("3")) {
System.out.print("> 请输入工号: ");
String sno = scn.nextLine();
System.out.print("> 请输入姓名: ");
String name = scn.nextLine();
System.out.print("> 请输入性别: ");
String sex = scn.nextLine();
System.out.print("> 请输入职称: ");
String tit = scn.nextLine();
System.out.print("> 请输入学位: ");
String deg = scn.nextLine();
System.out.print("> 请输入职务: ");
String pos = scn.nextLine();
System.out.print("> 请输入毕业学校: ");
String scho = scn.nextLine();
System.out.print("> 请输入专业: ");
String pro = scn.nextLine();
Teach t = new Teach(sno, name, sex, tit, deg, pos, scho, pro);
Node node = new Node();
node.tea = t;
current.next = node;
current = node;
System.out.println("添加成功!");
} else if (cmd.equals("4")) {
System.out.print("> 请输入要删除的工号:");
String sno = scn.nextLine();
Node pre = head;
Node tmp = head.next;
while (tmp != null &&
!tmp.tea.sno.equals(sno)) {
pre = tmp;
tmp = tmp.next;
}
if (tmp != null) {
pre.next = tmp.next;
System.out.println("删除成功!");
} else {
System.out.println("error!! 删除失败!");
}
} else if (cmd.equals("5")) {
System.out.print(">> 请输入要修改的学号:");
String sno = scn.nextLine();
Node tmp = head.next;
while (tmp != null &&
!tmp.tea.sno.equals(sno)) {
tmp = tmp.next;
}
if (tmp != null) {
System.out.print("> 请输入姓名:");
String name = scn.nextLine();
System.out.print("> 请输入性别:");
String sex = scn.nextLine();
System.out.print("> 请输入职称:");
String tit = scn.nextLine();
System.out.print("> 请输入学位:");
String deg = scn.nextLine();
System.out.print("> 请输入职务:");
String pos = scn.nextLine();
System.out.print("> 请输入毕业学校:");
String scho = scn.nextLine();
System.out.print("> 请输入专业:");
String pro = scn.nextLine();
Teach t = tmp.tea;
t.name = name;
t.sex = sex;
t.tit = tit;
t.deg = deg;
t.pos = pos;
t.scho = scho;
t.pro = pro;
System.out.println("修改成功!");
} else {
System.out.println(String.format("error: 修改失败!(Tips:找不到学号为:{%s} 的信息)", sno));
}
} else if (cmd.equals("6")) {
System.out.print("> 请输入保存路径:");
String filepath = scn.nextLine();
try {
FileWriter fw = new FileWriter(filepath);
Node tmp = head.next;
while (tmp != null) {
Teach s = tmp.tea;
fw.write(s.sno + "\t" + s.name + "\t" + s.sex + "\t" + s.tit + "\t"
+ s.deg + "\t" + s.pos + "\t" + s.scho + "\t" + s.pro + "\n");
fw.flush();
tmp = tmp.next;
}
fw.close();
System.out.println("导出成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
} while (!cmd.equals("0"));
System.out.println("退出成功!");
scn.close();
System.exit(0);
}
}