学生管理系统(增删改查)
2016-12-30 11:10
471 查看
package com.zhidi.manger; import java.util.Scanner; /** * 主函数入口处 * @author ytfunny.site * */ public class Show { public static Scanner sc=new Scanner(System.in); public static void main(String[] args) { System.out.println("*****************欢迎使用正方管理系统******************"); boolean b=true; Login login = new Login(); while(b){ System.out.println("尚未登录,请选择:1、登录;2、注册;0、退出"); String xz=sc.next(); switch(xz){ case "1": boolean l=login.login(); if(l){ System.out.println("登录成功"); Main.order(); }else{ System.out.println("登录失败"); } break; case "2": login.reg(); break; case "0": break; default: System.out.println("输入有误"); } } System.out.println("*****************感谢使用正方管理系统******************"); } }
package com.zhidi.manger; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { private static Scanner sc=new Scanner(System.in); private static List<Student> stulist=new ArrayList<Student>(); private static ObjectStream os=new ObjectStream(); public static void order(){ Main m=new Main(); System.out.println(Login.getUser().getName()+"欢迎使用教师管理系统"); boolean b=true; while(b){ System.out.println("请选择:1、添加学生;2、查看学生;3、存档;4、修改学生;5、删除学生,6、修改当前登录密码0、退出登录"); String str=sc.next(); switch(str){ case "1": m.addStu(); break; case "2": m.showStu(); break; case "3": m.save(); break; case "4": m.alterStu(); break; case "5": m.delStu(); break; case "6": m.alterPwd(); return; case "0": System.out.println("是否保存:y/n"); if(sc.next().equals("y")){ m.save(); } b=false; } } } //添加学生; private void addStu(){ Student stu=new Student(); System.out.println("请输入学生姓名:"); stu.setName(sc.next()); System.out.println("请输入年龄:"); stu.setAge(sc.nextInt()); System.out.println("请输入性别:1.男,2.女"); stu.setSex('男'); if(sc.next().equals("2")){ stu.setSex('女'); } //将每个老师输入的学生归类,只是不打印 User u=Login.getUser(); stu.setUserName(u.getName()); stulist.add(stu); } //查看学生 private void showStu(){ @SuppressWarnings("unchecked") List<Student> list=(List<Student>) os.readObj(Student.STUPATH);//读取学生对象 if(list!=null && list.size()!=0){ for (Student stu : list) { if(stu.getUserName().equals(Login.getUser().getName())){ //只打印对应老师输入的学生,其他人输入的学生信息不打印 System.out.println(stu); } } } if(stulist.size()>0){//如果临时文件中有学生信息 for (Student student : stulist) { System.out.println(student); } } } //存档 private void save(){ @SuppressWarnings("unchecked") List<Student> list=(List<Student>) os.readObj(Student.STUPATH); if(list!=null && list.size()!=0){ list.addAll(stulist); os.writeObj(list, Student.STUPATH); }else{ os.writeObj(stulist, Student.STUPATH); } stulist.clear(); } //修改学生 private void alterStu(){ Student s=null; @SuppressWarnings("unchecked") List<Student> list=(List<Student>) os.readObj(Student.STUPATH);//调出学生类对象 System.out.println("请输入要修改的学生姓名:"); String name=sc.next(); if(name.equals("0")){ return;//结束方法 } for (Student stu : list) { if(stu.getName().equals(name)){//查到该学生信息时 s=stu;//将集合中stu的地址付给s,此时s代替stu存在于集合list中 } } if(s==null){ System.out.println("查无此人"); return;//结束方法 } System.out.println("请输入修改后的姓名(输入0跳过此项):"); String gn=sc.next(); if(!gn.equals("0")){ s.setName(gn); } System.out.println("请输入修改后的年龄(输入0跳过此项):"); int ga=sc.nextInt(); if(ga!=0){ s.setAge(ga); } System.out.println("请输入修改后的性别(输入0跳过此项):"); String gc=sc.next(); if(!gc.equals("0")){ s.setSex(gc.charAt(0));//将String类型的性别转为char类型 } list.set(list.indexOf(s), s); os.writeObj(list,Student.STUPATH ); System.out.println("修改完成"); } //删除学生 private boolean delStu(){ Student st=null; @SuppressWarnings("unchecked") List<Student> list=(List<Student>) os.readObj(Student.STUPATH);//调出学生类对象 System.out.println("请输入要删除的学生姓名:"); String s=sc.next(); if(list!=null && list.size()!=0){ for (Student stu : list) { if(stu.getName().equals(s)){ st=stu; } } } if(st==null){ System.out.println("查无此人"); return false;//结束方法 } System.out.println("确认删除:y/n"); String sh=sc.next(); if(sh.equals("y")){ list.remove(st);//删除查到的指定学生对象 os.writeObj(list, Student.STUPATH); System.out.println("删除成功"); return true; }else{ System.out.println("退出删除"); return false; } } //修改密码 private void alterPwd(){ User u=null; @SuppressWarnings("unchecked") List<User>list=(List<User>) os.readObj(User.USERPATH); System.out.println("请输入管理员原密码:"); String pw=sc.next(); for (User user : list) { if(user.getPwd().equals(pw)){//原密码输入正确 u=user; } } boolean bm=true; while(bm){ System.out.println("请输入修改后的密码:"); String str=sc.next(); if(str.equals("0")){ bm=false; return;//结束方法 } System.out.println("请再次输入密码:"); String strr=sc.next(); if(strr.equals("0")){ bm=false; return;//结束方法 } if(str.equals(strr)){//密码输入一致 u.setPwd(str);//修改密码 os.writeObj(list, User.USERPATH); System.out.println("密码修改成功:"); return;//结束方法 }else{ System.out.println("两次密码输入不一致,请重新输入:"); } } } }
package com.zhidi.manger; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 用户登录注册类 * * @author ytfunny.site * */ public class Login { private Scanner sc = new Scanner(System.in); private ObjectStream os = new ObjectStream(); private static User user = null; public static User getUser() { return user; } @SuppressWarnings("static-access") public boolean login() { System.out.println("------用户登录-----"); @SuppressWarnings("unchecked") List<User> list = (List<User>) os.readObj(User.USERPATH); boolean b = true; while (b) { System.out.println("请输入账号:"); String name = sc.next(); if (name.equals("0")) { return false; } if (list != null && list.size() != 0) { for (User user : list) { if (user.getName().equals(name)) {// 匹配到此账号 boolean b2 = true; while (b2) { System.out.println("请输入密码:"); String pwd = sc.next(); if (pwd.equals("0")) { return false; } if (user.getPwd().equals(pwd)) { this.user=user; return true; } else { d139 System.out.println("密码错误,请重新输入!"); continue; } } } } System.out.println("用户不存在,请重新输入账号!");// 没有匹配到账号 continue; } else {// 数据库为空 System.out.println("数据库中没有用户信息,请先注册!"); return false; } } return true; } // 用户注册 public void reg() { User u = new User(); System.out.println("------用户注册-----"); @SuppressWarnings("unchecked") List<User> list = (List<User>) os.readObj(User.USERPATH); boolean b = true; out: while (b) { System.out.println("请输入账号:"); String name = sc.next(); if(sc.next().equals("0")){ return;//结束方法,退出 } if (list != null && list.size() != 0) { for (User user : list) { if (user.getName().equals(name)) { System.out.println("此账号已存在,请重新输入"); continue out; } } u.setName(name); break; } else { u.setName(name); break; } } System.out.println("请输入密码:"); String pwd = sc.next(); u.setPwd(pwd); if(sc.next().equals("0")){ return;//结束方法,退出 } if (list != null) { list.add(u); } else { list = new ArrayList<User>(); list.add(u); } os.writeObj(list, User.USERPATH); System.out.println("注册成功"); } }
package com.zhidi.manger; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.List; /** * 学生信息的读取和写入 * @author Administrator * */ public class ObjectStream { // 读取信息的方法 public List<?> readObj(String path) { ObjectInputStream ois = null; List<?> list = null; try { File file = new File(path); if (file.exists()) { ois = new ObjectInputStream(new FileInputStream(file)); list = (List<?>) ois.readObject(); } } catch (FileNotFoundException e) { System.out.println("读取信息时未找到系统文件"); } catch (ClassNotFoundException e) { System.out.println("读取信息时出现流异常"); } catch (IOException e) { System.out.println("没有读取到指定信息数据"); } finally { if (ois != null) { try { ois.close(); } catch (IOException e) { System.out.println("关闭读取信息资源时异常"); } } } return list; } // 保存信息 public void writeObj(List<?> list,String path){ ObjectOutputStream oos= null; try { File file = new File(path); if(file.exists()){ file.createNewFile(); } oos = new ObjectOutputStream(new FileOutputStream(file)); oos.writeObject(list); } catch (FileNotFoundException e) { System.out.println("保存信息时未找到系统文件"); } catch (IOException e) { System.out.println("保存信息时出现流异常"); }finally{ if(oos!=null){ try { oos.close(); } catch (IOException e) { System.out.println("关闭保存信息资源时异常"); } } } } }
package com.zhidi.manger; import java.io.Serializable; /** * 学生信息类 * @author ytfunny.site * @name 学生姓名 * @STUPATH 设置学生信息保存的文件名常量 * @userName 登录时用户名字 */ @SuppressWarnings("serial") public class Student implements Serializable{ public static String STUPATH="data\\student.save";//设置学生信息保存的文件名常量 private String name;//学生姓名 private int age;//学生年龄 private char sex;//学生性别 private String userName;//登录时用户名字 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public char getSex() { return sex; } public void setSex(char sex) { this.sex = sex; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @Override public String toString() { return "学生姓名:" + name + ",年龄:" + age + ", 性别:" + sex ; } }
package com.zhidi.manger; import java.io.Serializable; /** * 用户信息类 * @author Administrator * @USERPATH 用户信息保存路径 * @name 用户登录时候的姓名 * @pwd 用户登录时候的密码 */ @SuppressWarnings("serial") public class User implements Serializable{ //保存信息用相对路径,信息随着项目走 public static final String USERPATH="data\\user.save";//用户信息保存路径 private String name;//用户登录时候的姓名 private String pwd;//用户登录时候的密码 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "用户姓名:" + name + ", 密码:" + pwd; } }
相关文章推荐
- 学生管理系统--实现了系统的增删改查~
- jsp开发学生信息管理系统,实现了基本的增删改查的功能
- 学生管理系统,实现学生的增删改查
- 新生管理系统,加入了数据库后永久保存(只是学生的增删改查方法)
- 单向动态链表练习(学生系统的增删改查)
- 用python编写简易名片管理系统(增删改查)
- 用liferay实现的增删改查例子-book管理系统
- java版学生成绩管理系统(增删改查+数据用xml文档存储)
- JDBC-简单的学生管理系统-增删改查
- 适易信息管理系统架构、配置实现增删改查中工具类介绍
- 【学生信息管理系统】增删改查
- JDBC应用、控制台连MySQL接数据库实现学生管理系统的登录注册、增删改查
- 基于ArrayList的雇员管理系统(增删改查)
- Day 09 学生管理(增删改查)
- 面向对象的学生增删改查管理系统java版
- Redis 笔记与总结7 PHP + Redis 信息管理系统(用户信息的增删改查)
- WPF旅游管理系统(增删改查)实例实用
- Java用户名登录学生信息管理系统并对其进行增删改查操作
- 利用XML配置实现增删改查的.net快速开发架构 简单的构建信息管理系统架构
- 基于UML和ASP.NET实现三层B/S学生管理系统开发