单链表的实现((教职工管理系统)

编程入门 行业动态 更新时间:2024-10-26 11:15:27

单链表的实现((教职工<a href=https://www.elefans.com/category/jswz/34/1769858.html style=管理系统)"/>

单链表的实现((教职工管理系统)

单链表的实现((教职工管理系统)

package e_1;import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;/***  数据结构-实验1* 利用链表实现一个简单的学校教职工信息管理系统:* (1)教职工信息包括工号、姓名、性别、职称、学位、职务、毕业学校和所学专业等;* (2)系统的主要功能包括:教职工信息的创建、输出教职工信息、查询教职工信息、增加教职工信息、删除教职工信息。*/
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;}//为了显示方便,重写toString()方法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;  //data域Node next;  //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;   //从头指针head出发,指向链表的第一个结点付给tmpwhile (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("链表为空");//head.next == null表示链表为空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);}
}

更多推荐

单链表的实现((教职工管理系统)

本文发布于:2024-03-08 02:44:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1719626.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:管理系统   教职工   链表

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!