您的位置:首页 > 其它

学生管理系统(增删改查)

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: