User
package user; public abstract class User { protected String name; //使用这个系统的名字 public User(String name){ this.name=name; } public abstract int menu(); }
package user; import java.util.Scanner; //管理员身份代码 public class AdminUser extends User{ public AdminUser(String name) { super(name); } public int menu(){ System.out.println("*******管理员用户*******"); System.out.println("1: 查找学生信息"); System.out.println("2: 新增学生信息"); System.out.println("3: 删除学生信息"); System.out.println("4: 显示学生信息"); System.out.println("0: 退出系统"); System.out.println("**********************"); Scanner scanner=new Scanner(System.in); System.out.println("请输入你的操作"); return scanner.nextInt(); } }
package user; import java.util.Scanner; //用户身份代码 public class NormalUser extends User{ public NormalUser(String name){ super(name); } public int menu(){ System.out.println("*******管理员用户*******"); System.out.println("1: 查找学生信息"); System.out.println("2: 显示学生信息"); System.out.println("0: 退出系统"); System.out.println("**********************"); Scanner scanner=new Scanner(System.in); System.out.println("请输入你的操作"); return scanner.nextInt(); } }
Student
package Student; import java.util.Scanner; public class Students { public int sno;//学号 public String Sname;//姓名 public String sex;//性别 public int age;//年龄 public String phone;//手机号 public String zy;//专业 public String Sclass;//班级 public Students next;//指向下一个结点 public Students() {} public Students (int sno,String Sname,String sex,int age,String phone,String zy,String Sclass){ this.sno = sno; this.Sname = Sname; this.sex = sex; this.age = age; this.phone = phone; this.zy = zy; this.Sclass = Sclass; } public void setinfo(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入学号: "); this.sno=scanner.nextInt(); System.out.println("请输入姓名: "); this.Sname=scanner.next(); System.out.println("请输入性别: "); this.sex=scanner.next(); System.out.println("请输入年龄: "); this.age=scanner.nextInt(); System.out.println("请输入手机号: "); this.phone=scanner.next(); System.out.println("请输入专业: "); this.zy=scanner.next(); System.out.println("请输入班级: "); this.Sclass=scanner.next(); } @Override//重写toString方法 public String toString() { return "学号: "+sno+" "+"姓名: "+Sname+" "+"性别: "+sex+" "+"年龄: "+age+" "+"手机号: "+phone+" "+"专业: "+zy+" "+"班级: "+Sclass; } }
operation 增删改查各种方法
package operation; import Student.Students; public class Operation { //初始化一个头指针,不用动,主要方便计算 private static Students head=new Students(0,"","",0,"","",""); //增加学生信息 public static void add(Students stunode){ Students cur=head;//头节点不能动,所以来一个辅助节点cur while (cur.next != null) {//循环条件是单链表走完,循环结束 cur = cur.next;//如果当前结点不是尾巴节点,cur向后移动 } cur.next=stunode;//出了循环 说明cur指向尾巴结点 } //删除学生信息 public static void del(int sno){ Students cur=head;//同上 while(cur!=null){ if(cur.sno==sno){//如果找到这个学生,让cur的下一个节点指向cur的下下一个节点,把符合要求的节点隔过去就删除了 cur.next=cur.next.next; return; } cur=cur.next;//如果没找到,cur就往后移动一位 } System.out.println("抱歉!此学号不存在"); return; } //查找学生信息 public static void find(String key){ Students cur=head; while(cur!=null){ if(cur.Sname.equals(key)){ System.out.println("找到此学生: "); System.out.println(cur.sno+" "+cur.Sname+" "+cur.sex+" "+cur.age+" "+cur.phone+" "+cur.zy+" "+cur.Sclass); return; } cur=cur.next; } System.out.println("抱歉,没有找到此学生信息"); } //展示全部学生信息 public static void Show(){ if(head.next==null){ System.out.println("此系统还没有录入学生信息!"); return; } Students cur=head.next; while (cur != null) { System.out.println("以下是全部学生信息"); System.out.print(cur);//前面写了toString方法 System.out.println(); cur = cur.next; } } }
//退出系统
package operation; public class ExitOperation { public static void Exit(){ System.out.println("退出系统!"); System.exit(0); } }
主函数
import Student.Students; import operation.*; import user.AdminUser; import user.NormalUser; import user.User; import java.util.Scanner; public class Main { public static User login(){ System.out.println("请输入你的姓名"); Scanner scanner = new Scanner(System.in); String name=scanner.nextLine(); System.out.println("请输入你的身份, 1:管理员 2:普通用户"); int choice =scanner.nextInt(); if(choice==1){ return new AdminUser(name); }else { return new NormalUser(name); } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); User user=login(); while(true){ int choice=user.menu(); switch (choice){ case 1: System.out.println("请输入要查询的学生信息!"); String name=scanner.next(); Operation.find(name); break; case 2: System.out.println("请输入学生信息!"); Students stu2=new Students(); stu2.setinfo(); Operation.add(stu2); break; case 3: System.out.println("请输入你要删除的学生信息!"); int sno=scanner.nextInt(); Operation.del(sno); break; case 4: Operation.Show(); break; case 0: ExitOperation.Exit(); break; } } } }