手把手教你,Java实现学生信息管理系统,附全部源码

一.题目要求:

对学生信息管理系统,要求完成以下基本任务:
1.有良好程序风格(文档注释,函数注释,语句注释)。
2.将功能补充完全(基于文件处理,完成刷新和保存功能)。
3.将学生信息改为更好的数据组织,而非离散形式(结构体)。
4.实现管理员,教师,学生,不同身份的登录
5.具备学生选课功能

二.需求分析:

  • 1.Main类
    实现读取文档初始化学生对象和显示菜单功能
  • 2.pojo包
    包下的类分别是课程,管理员,学生的实体类,父类Person
  • 3.data包
    包下的类DataBase类,主要作用是一个简易的数据仓库,用来储存信息。
  • 4.Manage包
    主要是学生管理,成绩管理,课程管理,用户管理
  • 5.view包
    主要负责课程页面,成绩页面,学生管理页面,用户管理页面的显示。
  • 6.tools包
    工具包,为管理系统提供一些辅助型功能。

三.主要算法流程设计:

1.主方法流程图


四.算法实现:
1.Main类

import data.DataBase;
import pojo.Student;
import tools.StuInit;
import tools.Tools;
import view.CourseView;
import view.ManagerPersonView;
import view.GradeView;
import view.StudentView;

/**
 * 这是程序启动的入口
 *
 */
public class Main {

    public static void main(String[] args) {
        //启动初始化
        StuInit.start();
        boolean system=true;
        while (system) {
            System.out.println("欢迎使用学生管理系统");
            System.out.println("-------------------------------------");
            System.out.println("请选择登录的用户的类型:");
            System.out.println("0:管理员;1:学生;2:退出");
            int userType = Tools.getInteger(Tools.scanner.next(), 1);
            if (userType == 1) {
                System.out.println("欢迎同学使用本系统");
                System.out.println("-------------------------------------");
                if (StudentView.login()) {
                    boolean flag = true;
                    while (flag) {
                        System.out.println("请选择你的操作:");
                        System.out.println("-------------------------------------");
                        System.out.println("1:查看自己的信息");
                        System.out.println("2:查看自己的成绩");
                        System.out.println("4:修改自己的密码");
                        System.out.println("3:退出登录");
                        int type = Tools.getInteger(Tools.scanner.next(), 0);
                        
                        switch (type) {
                        case 1:
                            System.out.println(DataBase.getRequest().get("login"));
                            break;
                        case 2:
                            GradeView.find(((Student) DataBase.getRequest().get("login")).getUsername());
                            break;
                        case 3:
                            flag = false;
                            break;
                        case 4:
                            StudentView.updatePwd();
                            break;

                        default:
                            break;
                        }
                        

                    }
                } else {
                    System.out.println("用户登录失败");
                    System.out.println("-------------------------------------");

                }
            } else if(userType==0){
                System.out.println("欢迎管理员使用本系统");
                System.out.println("-------------------------------------");
                if (ManagerPersonView.login()) {
                    boolean flag = true;
                    while (flag) {
                        System.out.println("请选择你的操作:");
                        System.out.println("-------------------------------------");
                        System.out.println("2:查看所有用户的信息");
                        System.out.println("3:查看所有用户的成绩");
                        System.out.println("4:查看指定用户的成绩");
                        System.out.println("5:查看指定用户的信息");
                        System.out.println("6:添加课程");
                        System.out.println("7:添加用户");
                        System.out.println("8:添加成绩");
                        System.out.println("9:修改用户");
                        System.out.println("10:修改成绩");
                        System.out.println("11:修改课程");
                        System.out.println("12:显示课程");
                        System.out.println("20:删除学生");
                        System.out.println("13:退出登录");
                        System.out.println("**********************");
                        System.out.println("1:查看本人的信息");
                        System.out.println("14:修改本人信息");
                        System.out.println("15:修改其他管理员信息(超级管理员权限)");
                        System.out.println("16:添加一个新的管理员(超级管理员权限)");
                        System.out.println("17:删除一个管理员(超级管理员权限)");
                        System.out.println("18:查询所有的管理员的信息(超级管理员权限)");
                        System.out.println("19:查询指定的管理员的信息(超级管理员权限)");
                        System.out.println("-------------------------------------");
                        int type = Tools.getInteger(Tools.scanner.next(), 0);
                        switch (type) {
                        case 1:
                            System.out.println(DataBase.getRequest().get("login"));
                            break;
                        case 2:
                            StudentView.find();
                            break;
                        case 3:
                            GradeView.findAll();
                            break;
                        case 4:
                            StudentView.find();
                            GradeView.find();
                            break;
                        case 5:
                            StudentView.findByUsername();
                            break;
                        case 6:
                            CourseView.add();
                            break;
                        case 7:
                            StudentView.add();
                            break;
                        case 8:
                            StudentView.find();
                            CourseView.find();
                            GradeView.add();
                            break;
                        case 9:
                            StudentView.find();
                            StudentView.update();
                            break;
                        case 10:
                            StudentView.find();
                            CourseView.find();
                            GradeView.update();
                            break;
                        case 11:
                            CourseView.find();
                            CourseView.update();
                            break;
                        case 12:
                            CourseView.find();
                            break;
                        case 13:
                            flag = false;
                            break;
                        case 14:
                            ManagerPersonView.updateMy();
                            break;
                        case 15:
                            ManagerPersonView.find();
                            ManagerPersonView.update();
                            break;
                        case 16:
                            ManagerPersonView.add();
                            break;
                        case 17:
                            ManagerPersonView.find();
                            ManagerPersonView.del();
                            break;
                        case 18:
                            ManagerPersonView.find();
                            break;
                        case 19:
                            ManagerPersonView.findByUsername();
                            break;
                        case 20:
                            StudentView.find();
                            StudentView.del();
                            break;

                        default:
                            break;
                        }
                    }

                }
            }
            else{
                //结束保存
                StuInit.stop();
                system=false;
            }
        }
    }

}

2.DataBase类

import java.util.HashMap;
import java.util.Map;

import pojo.Course;
import pojo.ManagerPerson;
import pojo.Student;


public class DataBase {
    private static Map<String,Object> request=new HashMap<>();//存储一些数据
    private static Map<String,Student> students=new HashMap<>();//学生的数据
    private static Map<String,ManagerPerson> managerPersons=new HashMap<>();//管理员的数据
    private static Map<String,Course> courses=new HashMap<>();//课程的数据
    public static Map<String, Student> getStudents() {
        return students;
    }
    public static void setStudents(Map<String, Student> students) {
        DataBase.students = students;
    }
    public static Map<String, ManagerPerson> getManagerPersons() {
        return managerPersons;
    }
    public static void setManagerPersons(Map<String, ManagerPerson> managerPersons) {
        DataBase.managerPersons = managerPersons;
    }
    public static Map<String, Course> getCourses() {
        return courses;
    }
    public static void setCourses(Map<String, Course> courses) {
        DataBase.courses = courses;
    }
    public static Map<String, Object> getRequest() {
        return request;
    }
    public static void setRequest(Map<String, Object> request) {
        DataBase.request = request;
    }}

3.manager包
CourseManager类

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import data.DataBase;
import pojo.Course;

/**
 * 课程的业务处理
 *
 */
public class CourseManager {

    //增
    public static boolean add(Course course){
        if(DataBase.getCourses().containsKey(course.getId())){
            return false;
        }
        else{
            DataBase.getCourses().put(course.getId(), course);
            return true;
        }
        
    }
    

    
    //改
    public static void update(Course course){
        DataBase.getCourses().put(course.getId(), course);
    }
    
    //查
    public static List<Course> find(){
        Map<String, Course> stus = DataBase.getCourses();
        Set<String> kSet = stus.keySet();
        Object[] objs = kSet.toArray();
        List<Course> list = new ArrayList<Course>();
        for (int i = 0; i < objs.length; i++) {
            String sid = (String) (objs[i]);
            list.add(stus.get(sid));
        }
        return list;
    }
    
    /**
     * 返回课程的信息
     * @param id 课程的id
     * @return 返回的课程的信息,如果输入的课程的id没有查到,返回空
     */
    public static Course find(String id){
        return DataBase.getCourses().get(id);
    }
}

ManagerPersonManager类

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import data.DataBase;
import pojo.ManagerPerson;

/**
 * 管理员的业务处理
 *
 */
public class ManagerPersonManager {


    // 添加
    public static boolean add(ManagerPerson ManagerPerson) {
        if(DataBase.getManagerPersons().containsKey(ManagerPerson.getUsername())){
            return false;
        }
        else{
            DataBase.getManagerPersons().put(ManagerPerson.getUsername(), ManagerPerson);
            return true;
        }   
        
    }

    // 删除
    public static void del(String username) {
        DataBase.getManagerPersons().remove(username);
    }

    // 改
    public static void update(ManagerPerson ManagerPerson) {
        DataBase.getManagerPersons().put(ManagerPerson.getUsername(), ManagerPerson);
    }

    // 查所有
    public static List<ManagerPerson> find() {
        Map<String, ManagerPerson> stus = DataBase.getManagerPersons();
        Set<String> kSet = stus.keySet();
        Object[] objs = kSet.toArray();
        List<ManagerPerson> list = new ArrayList<ManagerPerson>();
        for (int i = 0; i < objs.length; i++) {
            String sid = (String) (objs[i]);
            list.add(stus.get(sid));
        }
        return list;
    }

    // 查一个
    public static ManagerPerson findByUserName(String username) {
        return DataBase.getManagerPersons().get(username);
    }

    // 登录
    public static boolean login(String username, String password) {
        try {
            ManagerPerson stu = DataBase.getManagerPersons().get(username);
            if (password.equals(stu.getPassword())) {
                // 登录成功
                DataBase.getRequest().put("login", stu);
                return true;
            } else {
                // 登录失败
                return false;
            }
        } catch (Exception e) {
            return false;
        }

    }
}

GradeManager类

import java.util.Map;
import java.util.Set;

import data.DataBase;
import pojo.Course;

/**
 * 成绩的业务
 *
 */
public class GradeManager {
    /**
     * 增加成绩
     * 
     * @param username
     *            用户名
     * @param courseId
     *            课程的id
     * @param result
     *            分数
     */
    public static boolean add(String username, String courseId, double result) {

        try {
            Course course = DataBase.getCourses().get(courseId);
            if (course != null) {
                if (DataBase.getStudents().get(username).getResults().containsKey(course)) {
                    return false;
                } else {
                    DataBase.getStudents().get(username).getResults().put(course, result);
                    return true;
                }

            } else {
                return false;
            }
        } catch (Exception e) {
            return false;
        }

    }

    /**
     * 删除学生的成绩
     * 
     * @param username
     *            用户名
     * @param courseId
     *            课程的id
     */
    public static void del(String username, String courseId) {
        Course course = DataBase.getCourses().get(courseId);
        DataBase.getStudents().get(username).getResults().remove(course);
    }

    /**
     * 修改用户的成绩
     * 
     * @param username
     *            用户名
     * @param courseId
     *            课程的id
     * @param result
     *            成绩分数
     */
    public static boolean update(String username, String courseId, double result) {
        Course course = DataBase.getCourses().get(courseId);
        if(DataBase.getStudents().get("username").getResults().containsKey(course)){
            DataBase.getStudents().get(username).getResults().put(course, result);
            return true;
        }
        else{
            return false;
        }
    }

    /**
     * 查,显示课程的id和课程的名字,和成绩
     * 
     * @param username
     *            查询的用户的用户名
     */
    public static String[][] find(String username) {
        Map<Course, Double> stus = DataBase.getStudents().get(username).getResults();
        Set<Course> kSet = stus.keySet();
        Object[] objs = kSet.toArray();
        Course[] courses = new Course[objs.length];
        for (int i = 0; i < objs.length; i++) {
            courses[i] = (Course) objs[i];
        }
        String[][] result = new String[objs.length][3];
        for (int i = 0; i < objs.length; i++) {

            result[i][0] = courses[i].getId();
            result[i][1] = courses[i].getName();
            result[i][2] = stus.get(courses[i]) + "";
        }
        return result;
    }
}

StudentManager类

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import data.DataBase;
import pojo.Student;

/**
 * 学生的业务
 */
public class StudentManager {
    
    // 添加
    public static boolean add(Student student) {
        if(DataBase.getStudents().containsKey(student.getUsername())){
            return false;
        }
        else{
            DataBase.getStudents().put(student.getUsername(), student);
            return true;
        }
        
    }

    // 删除
    public static void del(String username) {
        DataBase.getStudents().remove(username);
    }

    // 改
    public static void update(Student student) {
        DataBase.getStudents().put(student.getUsername(), student);
    }

    // 查所有
    public static List<Student> find() {
        Map<String, Student> stus = DataBase.getStudents();
        Set<String> kSet = stus.keySet();
        Object[] objs = kSet.toArray();
        List<Student> list = new ArrayList<Student>();
        for (int i = 0; i < objs.length; i++) {
            String sid = (String) (objs[i]);
            list.add(stus.get(sid));
        }
        return list;
    }

    // 查一个
    public static Student findByUserName(String username) {
        return DataBase.getStudents().get(username);
    }

    // 登录
    public static boolean login(String username,String password){
        Student stu=DataBase.getStudents().get(username);
        try {
            if(password.equals(stu.getPassword())){
                //登录成功
                DataBase.getRequest().put("login", stu);
                return true;
            }
            else{
                //登录失败
                return false;
            }
        } catch (Exception e) {
            return false;
        }
        
    }
}

4.pojo包
Course类

public class Course {
    private String id;//课程的id
    private String name;//课程的名字
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return " [课程编号=" + id + ", 课程名=" + name + "]";
    }}

Student类

import java.util.HashMap;
import java.util.Map;

public class Student extends Person {
    private Map<Course, Double> results=new HashMap<Course,Double>();//学生的成绩

    public Map<Course, Double> getResults() {
        return results;
    }

    public void setResults(Map<Course, Double> results) {
        this.results = results;
    }

    @Override
    public String toString() {
        return super.toString();
    }
    
}

Person类

import java.util.Date;

import tools.Tools;

public class Person {
    protected String username;//用户的账户和id
    protected String password;//用户的密码
    protected String name;//用户的姓名
    protected int sex;//用户的性别0女,1男,2不详
    protected int age;//年龄
    protected Date createDate;//用户添加的时间
    protected String address;//用户的地址
    
    public Person() {
        super();
    }
    public Person(String username, String password, String name, int sex, int age, Date createDate, String address) {
        super();
        this.username = username;
        this.password = password;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.createDate = createDate;
        this.address = address;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getSex() {
        return sex;
    }
    public void setSex(int sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getCreateDate() {
        return Tools.format.format(createDate);
    }
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }
    @Override
    public String toString() {
        return "[用户名=" + username + ",  姓名=" + name + ", 性别=" + Tools.getSex(sex) + ", 年龄="
                + age + ", 创建时间=" + Tools.format.format(createDate) + ", 地址=" + address + "]";
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((username == null) ? 0 : username.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Person other = (Person) obj;
        if (username == null) {
            if (other.username != null)
                return false;
        } else if (!username.equals(other.username))
            return false;
        return true;
    }
}

ManagerPerson类

public class ManagerPerson extends Person{
    private int rank;//管理员的等级,0为超级管理员,1为普通管理员

    public int getRank() {
        return rank;
    }

    public void setRank(int rank) {
        this.rank = rank;
    }
}

5.view包
CourseView类

import java.util.List;

import pojo.Course;
import manager.CourseManager;
import tools.Tools;

public class CourseView {

    /**
     * 添加一个课程
     */
    public static void add() {
        // 请输入课程的编号
        System.out.println("请输入课程的编号:");
        Course course = new Course();
        course.setId(Tools.scanner.next());
        System.out.println("请输入课程的名字:");
        course.setName(Tools.scanner.next());

        if (CourseManager.add(course)) {
            System.out.println("添加成功");
        } else {
            System.out.println("添加失败,课程的编号可能已经存在");
        }

    }

    /**
     * 修改课程的信息
     */
    public static void update() {
        // 请输入课程的编号
        System.out.println("请输入课程的编号:");
        Course course = CourseManager.find(Tools.scanner.next());
        if (course == null) {
            System.out.println("输入的课程查不到,请查证后输入");
        } else {
            System.out.println("请输入新的课程的名字:");
            course.setName(Tools.scanner.next());
            System.out.println("修改成功");
        }
    }

    /**
     * 查找所有课程的信息
     */
    public static void find() {
        List<Course> list = CourseManager.find();
        for (Course course : list) {
            System.out.println(course);
        }
    }
    
    
    /**
     * 查询指定的课程的信息
     */
    public static Course findById(String id) {
        Course course = CourseManager.find(id);
        if (course == null) {
            System.out.println("输入的课程查不到,请查证后输入");
        } else {
            System.out.println(course);
        }
        return course;
    }

    /**
     * 查询指定的课程的信息
     */
    public static void findById() {
        // 请输入课程的编号
        System.out.println("请输入课程的编号:");
        Course course = CourseManager.find(Tools.scanner.next());
        if (course == null) {
            System.out.println("输入的课程查不到,请查证后输入");
        } else {
            System.out.println(course);
        }
    }
}

GradeView类

import java.util.List;

import pojo.Student;
import manager.GradeManager;
import manager.StudentManager;
import tools.Tools;

public class GradeView {

    /**
     * 增加一个成绩
     */
    public static void add() {
        System.out.println("请输入要添加成绩的用户名:");
        String username = Tools.scanner.next();
        System.out.println("请输入课程的编号:");
        String code = Tools.scanner.next();
        System.out.println("请输入分数:");
        double result = Tools.getDouble(Tools.scanner.next(), 0);
        try {
            if (GradeManager.add(username, code, result)) {
                System.out.println("添加成功");
            } else {
                System.out.println("添加失败,您输入的信息错误");
            }

        } catch (Exception e) {
            System.out.println("添加失败,您输入的信息错误");
        }
    }

    /**
     * 删除用户的成绩
     */
    public static void del() {
        System.out.println("请输入要删除成绩的用户名:");
        String username = Tools.scanner.next();
        System.out.println("请输入课程的编号:");
        String code = Tools.scanner.next();
        try {
            GradeManager.del(username, code);
            System.out.println("删除成功");
        } catch (Exception e) {
            System.out.println("删除失败。您输入的信息错误");
        }
    }

    /**
     * 修改用户的成绩
     */
    public static void update() {
        System.out.println("请输入要修改成绩的用户名:");
        String username = Tools.scanner.next();
        System.out.println("请输入课程的编号:");
        String code = Tools.scanner.next();
        System.out.println("请输入新的分数:");
        double result = Tools.getDouble(Tools.scanner.next(), 0);
        try {
            if(GradeManager.update(username, code, result)){
                System.out.println("修改成功");
            }
            else{
                System.out.println("修改失败,可能成绩信息不存在");
            }
        } catch (Exception e) {
            System.out.println("修改失败,您输入的信息错误");
        }
    }

    /**
     * 查询指定用户的成绩
     */
    public static void find() {
        System.out.println("请输入要查询成绩的用户名:");
        String username = Tools.scanner.next();
        try {
            Student student = StudentManager.findByUserName(username);
            String[][] result = GradeManager.find(username);

            for (int i = 0; i < result.length; i++) {
                System.out.println("用户账户:" + student.getUsername() + "姓名:" + student.getName() + ":课程编号:" + result[i][0]
                        + "课程名称:" + result[i][1] + "成绩:" + result[i][2]);
            }

        } catch (Exception e) {
            System.out.println("查询失败,您输入的信息有误");
        }
    }

    /**
     * 查询指定用户的成绩
     */
    public static void find(String username) {
        try {
            Student student = StudentManager.findByUserName(username);
            String[][] result = GradeManager.find(username);

            for (int i = 0; i < result.length; i++) {
                System.out.println("用户账户:" + student.getUsername() + "姓名:" + student.getName() + ":课程编号:" + result[i][0]
                        + "课程名称:" + result[i][1] + "成绩:" + result[i][2]);
            }

        } catch (Exception e) {
            System.out.println("查询失败,您输入的信息有误");
        }
    }

    /**
     * 查询所有用户的成绩
     */
    public static void findAll() {
        List<Student> list = StudentManager.find();

        try {
            for (int i = 0; i < list.size(); i++) {
                Student student = list.get(i);
                String[][] result = GradeManager.find(student.getUsername());

                for (int j = 0; j < result.length; j++) {
                    System.out.println("用户账户:" + student.getUsername() + "姓名:" + student.getName() + ":课程编号:"
                            + result[j][0] + "课程名称:" + result[j][1] + "成绩:" + result[j][2]);
                }
            }

        } catch (Exception e) {
            System.out.println("查询失败");
        }

    }
}

StudentView类

import java.util.Date;
import java.util.List;

import data.DataBase;
import pojo.Student;
import manager.StudentManager;
import tools.Tools;

/**
 * 学生的交互界面
*/
public class StudentView {
/**
     * 用户登录
     * @return
     */
    public static boolean login(){
        System.out.println("请输入学生的账户:");
        String username=Tools.scanner.next();
        System.out.println("请输入学生的密码:");
        String password=Tools.scanner.next();
        //判断是否登录成功,如果成功将登录用户的信息存放到request login中
        return StudentManager.login(username, password);
    }
    /**
     * 增加一个学生
     */
    public static void add() {
        // 新建一个学生的对象
        Student student = new Student();
        // 添加创建用户的时间
        student.setCreateDate(new Date());
        System.out.println("请输入用户的账户:");
        student.setUsername(Tools.scanner.next());
        System.out.println("请输入用户的密码:");
        student.setPassword(Tools.scanner.next());
        System.out.println("请输入用户的姓名:");
        student.setName(Tools.scanner.next());
        System.out.println("请选择用户的性别:");
        System.out.println("0:女;  1:男;  2:不详");

        // 输入用户的性别,并进行数据的校验
        int sex = Math.abs(Tools.getInteger(Tools.scanner.next(), 2));
        student.setSex(sex > 2 ? 2 : sex);

        System.out.println("请输入用户年龄:");
        student.setAge(Tools.getInteger(Tools.scanner.next(), 0));
        student.setCreateDate(new Date());// 添加用户的时间
        System.out.println("请输入用户的地址:");
        student.setAddress(Tools.scanner.next());

        if(StudentManager.add(student)){
            System.out.println("添加成功");
        }
        else{
            System.out.println("添加失败,输入的信息有误,或者用户的学号重复");
        }
        
    }

    /**
     * 删除一个学生
     */
    public static void del() {
        System.out.println("请输入用户的账户:");
        String username = Tools.scanner.next();
        Student student = StudentManager.findByUserName(username);
        if (student == null) {
            System.out.println("删除的用户不存在");
        } else {
            StudentManager.del(username);
            System.out.println("删除成功");
        }
    }
    
    /**
     * 查找一个用户
     */
    public static void findByUsername(){
        System.out.println("请输入用户的学号:");
        String username=Tools.scanner.next();
        Student student= StudentManager.findByUserName(username);
        if(student==null){
            System.out.println("你输入的学号找不到");
        }
        else{
            System.out.println(student);
        }
    }
    
    
    
    /**
     * 查找所有的用户
     */
    public static void find(){
        List<Student> list= StudentManager.find();
        for (Student student : list) {
            System.out.println(student);
        }
    }
        /**
     * 用户修改自己的密码
     */
    public static void updatePwd() {
        Student student = StudentManager.findByUserName(((Student)DataBase.getRequest().get("login")).getUsername());
        if (student == null) {
            System.out.println("要修改的用户不存在");
        } else {

            System.out.println("用户的密码是:*****" );
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入用户的密码:");
                student.setPassword(Tools.scanner.next());
            }
            System.out.println("修改成功");
        }
    }
    /**
     * 修改用户的信息,这是所有的信息
     */
    public static void update() {
        System.out.println("请输入用户的账户:");
        String username = Tools.scanner.next();
        Student student = StudentManager.findByUserName(username);
        if (student == null) {
            System.out.println("要修改的用户不存在");
        } else {
            System.out.println("用户的姓名是:" + student.getName());
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入用户的姓名:");
                student.setName(Tools.scanner.next());
            }

            System.out.println("用户的密码是:*****" );
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入用户的密码:");
                student.setPassword(Tools.scanner.next());
            }

            System.out.println("用户的性别是:" + Tools.getSex(student.getSex()));
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请选择用户的性别:");
                System.out.println("0:女;  1:男;  2:不详");

                // 输入用户的性别,并进行数据的校验
                int sex = Math.abs(Tools.getInteger(Tools.scanner.next(), 2));
                student.setSex(sex > 2 ? 2 : sex);
            }

            System.out.println("用户的年龄是:" + student.getAge());
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入用户的年龄:");
                student.setAge(Tools.getInteger(Tools.scanner.next(), 0));
            }

            System.out.println("用户的地址是:" + student.getAddress());
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入用户的地址:");
                student.setAddress(Tools.scanner.next());
            }
            System.out.println("修改成功");
        }
    }
}

ManagerPersonView类

import java.util.Date;
import java.util.List;

import data.DataBase;
import pojo.ManagerPerson;
import manager.ManagerPersonManager;
import tools.Tools;

/**
 * 管理员的交互界面
 */
public class ManagerPersonView {

    /**
     * 管理员登录
*/
    public static boolean login() {
        System.out.println("请输入管理员的账户:");
        String username = Tools.scanner.next();
        System.out.println("请输入管理员的密码:");
        String password = Tools.scanner.next();
        // 判断是否登录成功,如果成功将登录管理员的信息存放到request login中
        if (ManagerPersonManager.login(username, password)) {
            if (((ManagerPerson) DataBase.getRequest().get("login")).getRank() == 0) {
                System.out.println("欢迎超级管理员");
            } else {
                System.out.println("欢迎管理员");
            }
            return true;
        } else {
            System.out.println("登录失败");
            return false;
        }
    }

    /**
     * 增加一个管理员
     */
    public static void add() {
        if (((ManagerPerson) DataBase.getRequest().get("login")).getRank() == 0) {
            // 新建一个学生的对象
            ManagerPerson managerPerson = new ManagerPerson();
            // 添加创建管理员的时间
            managerPerson.setCreateDate(new Date());
            managerPerson.setRank(1);
            System.out.println("请输入管理员的账户:");
            managerPerson.setUsername(Tools.scanner.next());
            System.out.println("请输入管理员的密码:");
            managerPerson.setPassword(Tools.scanner.next());
            System.out.println("请输入管理员的姓名:");
            managerPerson.setName(Tools.scanner.next());
            System.out.println("请选择管理员的性别:");
            System.out.println("0:女;  1:男;  2:不详");

            // 输入管理员的性别,并进行数据的校验
            int sex = Math.abs(Tools.getInteger(Tools.scanner.next(), 2));
            managerPerson.setSex(sex > 2 ? 2 : sex);

            System.out.println("请输入管理员年龄:");
            managerPerson.setAge(Tools.getInteger(Tools.scanner.next(), 0));
            managerPerson.setCreateDate(new Date());// 添加管理员的时间
            System.out.println("请输入管理员的地址:");
            managerPerson.setAddress(Tools.scanner.next());

            if(ManagerPersonManager.add(managerPerson)){
                System.out.println("添加成功");
            }
            else{
                System.out.println("添加失败,用户可能已经存在");
            }
            
        }
        else{
            System.out.println("您的权限不足");
        }
    }

    /**
     * 删除一个管理员
     */
    public static void del() {
        if (((ManagerPerson) DataBase.getRequest().get("login")).getRank() == 0) {
            System.out.println("请输入管理员的账户:");
            String username = Tools.scanner.next();
            ManagerPerson managerPerson = ManagerPersonManager.findByUserName(username);
            if (managerPerson == null) {
                System.out.println("删除的管理员不存在");
            } else {
                if(managerPerson.getRank()==1){
                    ManagerPersonManager.del(username);
                    System.out.println("删除成功");
                }
                else{
                    System.out.println("删除失败,您的权限不足");
                }
                
            }
        } else {
            System.out.println("您的权限不足");
        }
    }

    /**
     * 查找一个管理员
     */
    public static void findByUsername() {
        if (((ManagerPerson) DataBase.getRequest().get("login")).getRank() == 0) {
            System.out.println("请输入管理员的编号:");
            String username = Tools.scanner.next();
            ManagerPerson managerPerson = ManagerPersonManager.findByUserName(username);
            if (managerPerson == null) {
                System.out.println("你输入的编号找不到");
            } else {
                System.out.println(managerPerson);
            }
        } else {
            System.out.println("您的权限不足");
        }
    }

    /**
     * 查找所有的管理员
     */
    public static void find() {
        if (((ManagerPerson) DataBase.getRequest().get("login")).getRank() == 0) {

            List<ManagerPerson> list = ManagerPersonManager.find();
            for (ManagerPerson managerPerson : list) {
                System.out.println(managerPerson);
            }
        } else {
            System.out.println("您的权限不足");
        }
    }

    /**
     * 修改本人的信息
     */
    public static void updateMy() {

        ManagerPerson managerPerson = ((ManagerPerson) DataBase.getRequest().get("login"));
        if (managerPerson == null) {
            System.out.println("要修改的管理员不存在");
        } else {
            System.out.println("管理员的姓名是:" + managerPerson.getName());
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入管理员的姓名:");
                managerPerson.setName(Tools.scanner.next());
            }

            System.out.println("管理员的密码是:*****");
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入管理员的密码:");
                managerPerson.setPassword(Tools.scanner.next());
            }

            System.out.println("管理员的性别是:" + Tools.getSex(managerPerson.getSex()));
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请选择管理员的性别:");
                System.out.println("0:女;  1:男;  2:不详");

                // 输入管理员的性别,并进行数据的校验
                int sex = Math.abs(Tools.getInteger(Tools.scanner.next(), 2));
                managerPerson.setSex(sex > 2 ? 2 : sex);
            }

            System.out.println("管理员的年龄是:" + managerPerson.getAge());
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入管理员的年龄:");
                managerPerson.setAge(Tools.getInteger(Tools.scanner.next(), 0));
            }

            System.out.println("管理员的地址是:" + managerPerson.getAddress());
            System.out.println("修改请选择1,不修改请选择2");
            if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                System.out.println("请输入管理员的地址:");
                managerPerson.setAddress(Tools.scanner.next());
            }
            
            System.out.println("修改成功");
        }
    }

    /**
     * 修改管理员的信息
     */
    public static void update() {
        if (((ManagerPerson) DataBase.getRequest().get("login")).getRank() == 0) {

            System.out.println("请输入管理员的账户:");
            String username = Tools.scanner.next();
            ManagerPerson managerPerson = ManagerPersonManager.findByUserName(username);
            if (managerPerson == null) {
                System.out.println("要修改的管理员不存在");
            } else {
                System.out.println("管理员的姓名是:" + managerPerson.getName());
                System.out.println("修改请选择1,不修改请选择2");
                if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                    System.out.println("请输入管理员的姓名:");
                    managerPerson.setName(Tools.scanner.next());
                }

                System.out.println("管理员的密码是:*****");
                System.out.println("修改请选择1,不修改请选择2");
                if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                    System.out.println("请输入管理员的密码:");
                    managerPerson.setPassword(Tools.scanner.next());
                }

                System.out.println("管理员的性别是:" + Tools.getSex(managerPerson.getSex()));
                System.out.println("修改请选择1,不修改请选择2");
                if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                    System.out.println("请选择管理员的性别:");
                    System.out.println("0:女;  1:男;  2:不详");

                    // 输入管理员的性别,并进行数据的校验
                    int sex = Math.abs(Tools.getInteger(Tools.scanner.next(), 2));
                    managerPerson.setSex(sex > 2 ? 2 : sex);
                }

                System.out.println("管理员的年龄是:" + managerPerson.getAge());
                System.out.println("修改请选择1,不修改请选择2");
                if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                    System.out.println("请输入管理员的年龄:");
                    managerPerson.setAge(Tools.getInteger(Tools.scanner.next(), 0));
                }

                System.out.println("管理员的地址是:" + managerPerson.getAddress());
                System.out.println("修改请选择1,不修改请选择2");
                if (Tools.getInteger(Tools.scanner.next(), 2) == 1) {
                    System.out.println("请输入管理员的地址:");
                    managerPerson.setAddress(Tools.scanner.next());
                }
                System.out.println("修改成功");
            }
        } else {
            System.out.println("您的权限不足");
        }
    }
}

6.tools包
Stulint类

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import java.util.Set;

import data.DataBase;
import pojo.Course;
import pojo.ManagerPerson;
import pojo.Student;
import view.CourseView;
public class StuInit {
public static void start() {
        FileReader fileReader = null;
        BufferedReader bufferedReader = null;
        File file = new File(StuInit.class.getProtectionDomain().getCodeSource().getLocation().getPath() + "StuManagerConfig.ini");

        if (file.exists()) {
            // 配置文件存在,读取
            System.out.println("正在读取数据...");
            String courseStr = "";
            String managerPersonStr = "";
            String studentsStr = "";
            try {
                fileReader = new FileReader(file);
                bufferedReader = new BufferedReader(fileReader);
                courseStr = bufferedReader.readLine();// 课程信息的读取
                managerPersonStr = bufferedReader.readLine();// 管理信息的读取
                studentsStr = bufferedReader.readLine();// 用户信息的读取

            } catch (Exception e) {
                System.out.println("数据被破坏,不能读取,请删除数据重试");
            } finally {
                try {
                    bufferedReader.close();
                    fileReader.close();
                } catch (IOException e) {
                    System.out.println("数据读取异常,数据可能已经被破坏");
                    e.printStackTrace();
                }

            }


            // 初始化课程
            setCourses(courseStr);

            // 初始化管理员
            setManagerPersons(managerPersonStr);

            // 初始化用户
            setStudents(studentsStr);

        } else {
            // 不存在,初始化管理员
            ManagerPerson person = new ManagerPerson();
            person.setUsername("admin");
            person.setPassword("admin");
            person.setName("老李");
            person.setCreateDate(new Date());
            person.setSex(1);
            person.setAge(20);
            person.setRank(0);
            person.setAddress("陕西省");
            DataBase.getManagerPersons().put(person.getUsername(), person);
        }
    }

    /**
     * 程序结束的时候保存数据
     */
    public static void stop() {
        FileWriter fileWriter = null;
        BufferedWriter bufferedWriter = null;
        File file = new File(StuInit.class.getProtectionDomain().getCodeSource().getLocation().getPath() + "StuManagerConfig.ini");

        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                System.out.println("配置文件保存失败");
                e.printStackTrace();
            }
        }

        try {
            fileWriter = new FileWriter(file);
            bufferedWriter = new BufferedWriter(fileWriter);

            // 写入课程的信息
            bufferedWriter.write(getCourses());
            bufferedWriter.newLine();

            // 写入管理员的信息
            bufferedWriter.write(getManagerPersons());
            bufferedWriter.newLine();

            // 写入学生的信息
            bufferedWriter.write(getStudents());

        } catch (IOException e) {
            System.out.println("数据保存失败,可能出现异常");
            e.printStackTrace();
        } finally {
            try {
                bufferedWriter.close();
                fileWriter.close();
            } catch (IOException e) {
                System.out.println("数据保存出现异常,数据可能损坏");
                e.printStackTrace();
            }

        }

    }

    /**
     * 组织课程的信息
     * 
     * @return
     */
    public static String getCourses() {
        String string = "{";
        Set<String> set = DataBase.getCourses().keySet();

        Object[] objects = set.toArray();
        for (int i = 0; i < objects.length; i++) {
            String id = (String) objects[i];
            Course course = DataBase.getCourses().get(id);
            string = string + "<" + course.getId() + ":" + course.getName() + ">";
            if (i != objects.length - 1) {
                string += "╋";
            }
        }
        string += "}";
        return string;
    }
    
    /**
     * 初始化学生的信息
     * @param string
     */
    public static void setStudents(String string){

        //去掉两边的{}
        string = string.substring(1, string.length() - 1);
        if (string.length() != 0) {
            
            // 分别取出每个学生
            String[] strings = string.split("╋");

            // 创建每个学生
            for (int i = 0; i < strings.length; i++) {

                // 取出一个学生
                String oneStudent = strings[i];


                // 去掉学生的<>
                oneStudent = oneStudent.substring(1, oneStudent.length() - 1);


                // 分割信息
                String[] oneStudentSplit = oneStudent.split(",");

                // 新建一个课程
                Student student = new Student();

                //设置账户
                student.setUsername(oneStudentSplit[0]);
                student.setPassword(oneStudentSplit[1]);
                student.setName(oneStudentSplit[2]);
                student.setSex(Tools.getInteger(oneStudentSplit[3], 1));
                student.setAge(Tools.getInteger(oneStudentSplit[4], 0));
                student.setCreateDate(Tools.getDate(oneStudentSplit[5]));
                student.setAddress(oneStudentSplit[6]);
                
                
                //学生的成绩
                if(oneStudentSplit.length>7){
                    //有成绩的信息
                    String resultStr=oneStudentSplit[7];
                    
                    //分割成绩
                    
                    String[] results=resultStr.split("\\|");
                    
                    for(int j=0;j<results.length;j++){
                        //有几个成绩
                        
                        String[] oneResult=results[j].split(":");
                        //根据编号查课程
                        Course course=CourseView.findById(oneResult[0]);
                        student.getResults().put(course, Tools.getDouble(oneResult[1], 0));
                    }
                }
                
                

                // 存储
                DataBase.getStudents().put(student.getUsername(), student);
                
            

            }
        } else {
            // 无学生信息
            System.out.println("没有学生信息,跳过...");
        }
    }
    
    /**
     * 初始化管理员的信息
     * @param string
     */
    public static void setManagerPersons(String string){

        //去掉两边的{}
        string = string.substring(1, string.length() - 1);
        if (string.length() != 0) {
            
            // 分别取出每个管理员
            String[] strings = string.split("╋");

            // 创建每个管理员
            for (int i = 0; i < strings.length; i++) {

                // 取出一个管理员
                String oneManagerPerson = strings[i];


                // 去掉管理员的<>
                oneManagerPerson = oneManagerPerson.substring(1, oneManagerPerson.length() - 1);


                // 分割id和名字
                String[] oneManagerPersonSplit = oneManagerPerson.split(",");

                // 新建一个课程
                ManagerPerson managerPerson = new ManagerPerson();

                //设置账户
                managerPerson.setUsername(oneManagerPersonSplit[0]);
                managerPerson.setPassword(oneManagerPersonSplit[1]);
                managerPerson.setName(oneManagerPersonSplit[2]);
                managerPerson.setSex(Tools.getInteger(oneManagerPersonSplit[3], 1));
                managerPerson.setAge(Tools.getInteger(oneManagerPersonSplit[4], 0));
                managerPerson.setCreateDate(Tools.getDate(oneManagerPersonSplit[5]));
                managerPerson.setAddress(oneManagerPersonSplit[6]);
                managerPerson.setRank(Tools.getInteger(oneManagerPersonSplit[7], 1));
                
                

                // 存储
                DataBase.getManagerPersons().put(managerPerson.getUsername(), managerPerson);
                
                

            }
        } else {
            // 无管理员信息
            System.out.println("没有管理员信息,跳过...");
        }
    }

    /**
     * 初始化课程的信息
     * 
     * @param
     */
    public static void setCourses(String string) {
        
        //去掉两边的{}
        string = string.substring(1, string.length() - 1);
        if (string.length() != 0) {
            

            
            // 分别取出每个课程
            String[] strings = string.split("╋");

            // 创建每个课程
            for (int i = 0; i < strings.length; i++) {

                // 取出一个课程
                String oneCourse = strings[i];


                // 去掉课程的<>
                oneCourse = oneCourse.substring(1, oneCourse.length() - 1);


                // 分割id和名字
                String[] onCourseSplit = oneCourse.split(":");

                // 新建一个课程
                Course course = new Course();

                // 设置id
                course.setId(onCourseSplit[0]);

                // 设置名称
                course.setName(onCourseSplit[1]);

                // 存储
                DataBase.getCourses().put(course.getId(), course);

            }
        } else {
            // 无课程信息
            System.out.println("没有课程信息,跳过...");
        }
    }

    /**
     * 组织管理员的信息
     * 
     * @return
     */
    public static String getManagerPersons() {
        String string = "{";
        Set<String> set = DataBase.getManagerPersons().keySet();
        Object[] objects = set.toArray();

        for (int i = 0; i < objects.length; i++) {
            String id = (String) objects[i];
            ManagerPerson managerPerson = DataBase.getManagerPersons().get(id);
            string = string + "<" + managerPerson.getUsername() + "," + managerPerson.getPassword() + ","
                    + managerPerson.getName() + "," + managerPerson.getSex() + "," + managerPerson.getAge() + ","
                    + managerPerson.getCreateDate() + "," + managerPerson.getAddress() + "," + managerPerson.getRank()
                    + ">";
            if (i != objects.length - 1) {
                string += "╋";
            }
        }
        string += "}";
        return string;

    }

    /**
     * 组织学生的信息
     * 
     * @return
     */
    public static String getStudents() {
        String string = "{";

        Set<String> set = DataBase.getStudents().keySet();
        Object[] objects = set.toArray();

        for (int i = 0; i < objects.length; i++) {
            String id = (String) objects[i];
            Student student = DataBase.getStudents().get(id);
            string = string + "<" + student.getUsername() + "," + student.getPassword() + "," + student.getName() + ","
                    + student.getSex() + "," + student.getAge() + "," + student.getCreateDate() + ","
                    + student.getAddress();

            // 学生的成绩
            Map<Course, Double> map = student.getResults();

            if (!map.isEmpty()) {
                // 不是空的
                string += ",";
                Set<Course> courses = map.keySet();
                Object[] objs = courses.toArray();
                for (int j = 0; j < objs.length; j++) {
                    Course course = (Course) objs[j];
                    string += course.getId() + ":" + map.get(course);
                    if (j != objs.length - 1) {
                        string += "|";
                    }
                }
            }
            string += ">";

            if (i != objects.length - 1) {
                string += "╋";
            }
        }

        string += "}";
        return string;
    }

}

Tools类

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;


public class Tools {
    // 时间格式化
    public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    // 这是一个输入
    public static Scanner scanner = new Scanner(System.in);
    
    /**
     * 时间的格式化
     * @param string
     * @return
     */
    public static Date getDate(String string){
        try {
            return format.parse(string);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return new Date();
    }
    
    /**
     * 将字符串转为整型数,如果输入的字符串不是整型数,则返回参数中的int数
     * 
     * @param numStr
     *            要转换的字符串
     * @param deInt
     *            默认的整型数
     * @return 返回转换的结果
     */
    public static int getInteger(String numStr, int deInt) {
        int num=0;
        try {
            num=Integer.parseInt(numStr);
        } catch (Exception e) {
            num=deInt;
        }
        return num;
    }

    /**
     * 输入用户的性别编码,输出用户的性别字符
     * 
     * @param sex
     *            用户的性别的编码
     * @return 用户的性别的字符
     */
    public static String getSex(int sex) {
        if (sex == 0) {
            return "女";
        } else if (sex == 1) {
            return "男";
        } else {
            return "不详";
        }
    }

    /**
     * 将一个数字转为double,如果格式错误,就转为默认的数
     * 
     * @param numStr
     *            要转的数字
     * @param num
     *            默认的数字
     * @return 转换的结果
     */
    public static double getDouble(String numStr, double num) {
        double num2 = 0;
        try {
            num2 = Double.parseDouble(numStr);
        } catch (NumberFormatException e) {
            System.out.println("你输入的数字的格式错误,已经存为默认的数");
            num2 = num;

        }
        return num2;
    }

}

六.部分测试截图

1.登录功能

2.添加一个用户

3.显示第二步添加的用户

4.修改管理员信息

小结
设计程序时,若要判断某一段程序是否被执行,可合理设置flag布尔型变量进行判断。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容