package com.zhidi.manger;
import java.util.Scanner;
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
}
}
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))
}
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;
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 {
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;
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;
@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;
@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;
}
}