学生系统管理(Java)

package com.stu.dao;

import java.util.ArrayList;
import java.util.LinkedList;

import com.stu.entity.StuManager;
import com.stu.entity.Student;
import com.stu.util.BaseUtil;
import com.stu.util.StuManagerUtil;
import com.stu.util.StudentUtil;

/**
* util 系统工具类封装
* entity 系统涉及的实体对象或业务对象
* service 系统的功能业务实现
* dao(data access object) 数据访问对象—持久层
* action 系统所有操作(动作、行为)入口
*
* */
public class StudentDao extends Student {

// 将添加的学生插入学生集合
public static void insertStudent(Student student) {

    ArrayList<Student> stuList = Student.getStuList();

    stuList.add(student);

}

// 添加学生姓名
public static void addStuName(Student student) {

    String stuName = BaseUtil.inputString();
    boolean StuNameFlag = StudentUtil.checkStuName(stuName);// 校验学生姓名

    while (true) {
        if (StuNameFlag) {
            student.setName(stuName);
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");
            stuName = BaseUtil.inputString();
            StuNameFlag = StudentUtil.checkStuName(stuName);
        }
    }
}

// 添加学生学号
public static void addStuId(Student student) {

    String stuId = BaseUtil.inputString();

    boolean stuIdFlag = StudentUtil.checkStuId(stuId);// 校验学号,纯数字.唯一

    while (true) {
        if (stuIdFlag) {
            student.setStuId(stuId);
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");
            stuId = BaseUtil.inputString();
            stuIdFlag = StudentUtil.checkStuId(stuId);
        }
    }

}

// 添加学生年龄
public static void addStuAge(Student student) {
    String stuAge = BaseUtil.inputString();

    boolean stuAgeFlag = StudentUtil.checkStuAge(stuAge);
    while (true) {
        if (stuAgeFlag) {
            student.setAge(stuAge);
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");
            stuAge = BaseUtil.inputString();
            stuAgeFlag = StudentUtil.checkStuId(stuAge);
        }
    }

}

// 添加学生性别
public static void addStuSex(Student student) {
    String stuSex = BaseUtil.inputString();
    boolean stuSexFlag = StudentUtil.checkStuSex(stuSex);

    while (true) {
        if (stuSexFlag) {
            student.setSex(stuSex);
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");
            stuSex = BaseUtil.inputString();
            stuSexFlag = StudentUtil.checkStuId(stuSex);
        }
    }
}

// 添加学生住址
public static void addStuAddress(Student student) {

    String stuAddress = BaseUtil.inputString();
    boolean stuAddressFlag = StudentUtil.checkStuAddress(stuAddress);
    while (true) {
        if (stuAddressFlag) {
            student.setAddress(stuAddress);
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");
            stuAddress = BaseUtil.inputString();
            stuAddressFlag = StudentUtil.checkStuId(stuAddress);
        }
    }
}

// 添加学生选修课
public static void addElectiveCourse(Student student) {

    BaseUtil.printInfo("选修课有:-java-   -c-   -lol-  -0-跳过");
    String electiveCourse = BaseUtil.inputString();
    boolean addElectiveCourseFlag = StudentUtil
            .checkElectiveCourse(electiveCourse);
    while (!electiveCourse.equals("0")) {
        if (addElectiveCourseFlag) {
            student.getElectiveCourse().add(electiveCourse);
            BaseUtil.printInfo("选课成功,继续");
            electiveCourse = BaseUtil.inputString();
        } else {
            BaseUtil.printInfo("请重新选课:");
            electiveCourse = BaseUtil.inputString();
            addElectiveCourseFlag = StudentUtil
                    .checkElectiveCourse(electiveCourse);
        }
    }
}

// 添加学生成绩
public static void addStuGrade(Student student) {

    // 输入必修课成绩
    BaseUtil.printInfo("输入高数成绩:");
    String gaosuScore = BaseUtil.inputString();
    boolean addGradeFlag = StudentUtil.checkStuGrade(gaosuScore);
    while (true) {
        if (addGradeFlag) {
            student.getGrade().put((student.getRequiredCourse())[0],
                    Integer.valueOf(gaosuScore));
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");
            gaosuScore = BaseUtil.inputString();
            addGradeFlag = StudentUtil.checkStuId(gaosuScore);
        }
    }

    BaseUtil.printInfo("输入马原成绩:");
    String mayuanScore = BaseUtil.inputString();
    addGradeFlag = StudentUtil.checkStuGrade(mayuanScore);
    while (true) {
        if (addGradeFlag) {
            student.getGrade().put((student.getRequiredCourse())[1],
                    Integer.valueOf(mayuanScore));
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");
            mayuanScore = BaseUtil.inputString();
            addGradeFlag = StudentUtil.checkStuId(mayuanScore);
        }
    }

    // 输入选修课成绩
    for (int i = 0; i < student.getElectiveCourse().size(); i++) {
        BaseUtil.printInfo("输入" + (student.getElectiveCourse().get(i))
                + "成绩:");
        String electiveCourseScore = BaseUtil.inputString();
        addGradeFlag = StudentUtil.checkStuGrade(electiveCourseScore);

        while (true) {
            if (addGradeFlag) {
                student.getGrade().put(student.getElectiveCourse().get(i),
                        Integer.valueOf(electiveCourseScore));
                break;
            } else {
                BaseUtil.printInfo("请重新输入:");
                electiveCourseScore = BaseUtil.inputString();
                addGradeFlag = StudentUtil.checkStuId(electiveCourseScore);
            }
        }
    }
}

// 删除学生信息
public static void deleteStudent(int index) {

    BaseUtil.printInfo("学生信息如下:");
    BaseUtil.printInfo(Student.getStuList().get(index));

    BaseUtil.printInfo("是否要删除学生"
            + Student.getStuList().get(index).getStuId() + "(y/n)");
    String deleteChoice = BaseUtil.inputString();

    if (deleteChoice.equals("y")) {
        // 输入验证码
        int code = (int) (Math.random() * 10000);
        System.out.println("验证码:" + code);
        System.out.print("输入验证码");
        int codeInput = BaseUtil.inputInt();
        while (code == codeInput) {
            BaseUtil.printInfo("验证码有误,重新输入");
            code = (int) (Math.random() * 10000);
            BaseUtil.printInfo("验证码:" + code + "输入:");
            codeInput = BaseUtil.inputInt();
        }
        Student.getStuList().remove(index);
        BaseUtil.printInfo("成功删除");
    }
}

public static int stuIdQuery() {

    String stuId = BaseUtil.inputString();
    while (true) {
        for (int i = 0; i < Student.getStuList().size(); i++) {
            if (stuId.equals(Student.getStuList().get(i).getStuId())) {
                return i;
            }
        }
        BaseUtil.printInfo("没有此账号,重新输入");
        stuId = BaseUtil.inputString();
    }
}

// 按*姓名*查询学生信息
public static void stuNameQuery(StuManager stuManager) {

    String stuName = BaseUtil.inputString();
    StuManagerUtil.stuIdFind(stuName, 0);// 找到输入的姓名对应的学生的存储下标

}

// 按*学号*查询学生信息
public static void stuIdQuery(StuManager stuManager) {

    String stuId = BaseUtil.inputString();
    StuManagerUtil.stuIdFind(stuId, 1);// 找到输入的学号对应的学生的存储下标

}

// 按*年龄*查询学生信息
public static void stuAgeQuery(StuManager stuManager) {
    BaseUtil.printInfo("输入查询年龄的范围:\n" + "从->");
    int ageStart = BaseUtil.inputInt();
    BaseUtil.printInfo("到->");
    int ageEnd = BaseUtil.inputInt();
    StuManagerUtil.stuAgeQuery(ageStart, ageEnd);// 找到输入的年龄对应的学生的存储下标

}

// 按*性别*查询学生信息
public static void stuSexQuery(StuManager stuManager) {

    String stuSex = BaseUtil.inputString();
    StuManagerUtil.stuIdFind(stuSex, 2);// 找到输入的性别对应的学生的存储下标,并输出

}

// 按*住址*查询学生信息
public static void stuAddressQuery(StuManager stuManager) {
    String stuAddress = BaseUtil.inputString();
    StuManagerUtil.stuIdFind(stuAddress, 3);// 找到输入的住址对应的学生的存储下标

}

// 按*选修课*查询学生信息
public static void stuElectiveCourseQuery(StuManager stuManager) {

    ArrayList<String> electiveCourseTemp = new ArrayList<String>();
    System.out.println("选择要查询的选修课:\t*c*\t*java*\t*lol*\t\t*0*跳过");
    String electiveCourse = BaseUtil.inputString();

    while (!electiveCourse.equals("0")) {
        if (electiveCourse.equals("c") || electiveCourse.equals("java")
                || electiveCourse.equals("lol")) {
            electiveCourseTemp.add(electiveCourse);
            System.out.println("ok");
            electiveCourse = BaseUtil.inputString();
        } else {
            System.out.println("没有这门课,重新选课");
            electiveCourse = BaseUtil.inputString();
        }
    }

    int number = electiveCourseTemp.size();

    switch (number) {
    case 1:
        electiveCourseQuery(electiveCourseTemp.get(0));
        break;
    case 2:
        electiveCourseQuery(electiveCourseTemp.get(0),
                electiveCourseTemp.get(1));
        break;
    case 3:
        electiveCourseQuery(electiveCourseTemp.get(0),
                electiveCourseTemp.get(1), electiveCourseTemp.get(2));
        break;
    default:
        break;

    }

}

// 选修课查询---查询科目数一个
public static void electiveCourseQuery(String eCOne) {

    // 比对含有这些选修课的学生
    for (int i = 0; i < Student.getStuList().size(); i++) {
        if (courseCheck(eCOne, i)) {

            if (Student.getStuList().get(i).getElectiveCourse().size() == 1) {

                System.out.println(Student.getStuList().get(i));
            }
        }

    }
    System.out.println("查询结束!");

}

// 选修课查询--查询科目数2个
public static void electiveCourseQuery(String eCOne, String eCTwo) {

    // 比对含有这些选修课的学生
    for (int i = 0; i < Student.getStuList().size(); i++) {
        if (courseCheck(eCOne, i)) {

            if (courseCheck(eCTwo, i)) {
                if (Student.getStuList().get(i).getElectiveCourse().size() == 2) {

                    System.out.println(Student.getStuList().get(i));
                }

            }

        }

    }
    System.out.println("查询结束!");

}

// 选修课查询--查询科目数3个
public static void electiveCourseQuery(String eCOne, String eCTwo,
        String eCThree) {

    // 比对含有这些选修课的学生
    for (int i = 0; i < Student.getStuList().size(); i++) {
        if (courseCheck(eCOne, i)) {

            if (courseCheck(eCTwo, i)) {

                if (courseCheck(eCThree, i)) {

                    if (Student.getStuList().get(i).getElectiveCourse()
                            .size() == 3) {

                        System.out.println(Student.getStuList().get(i));
                    }
                }
            }
        }
    }
    System.out.println("查询结束!");

}

// 检测是否有这门课
public static boolean courseCheck(String course, int i) {

    for (int j = 0; j < Student.getStuList().get(i).getElectiveCourse()
            .size(); j++) {

        if ((Student.getStuList().get(i).getElectiveCourse().get(j))
                .equals(course)) {

            return true;

        }

    }

    return false;
}

// 按*成绩*查询学生信息
public static void stuGradeQuery(StuManager stuManager) {
    LinkedList<String> courseTemp = new LinkedList<String>();

    // 必修课是确定的,,,选择查询的必修课
    System.out.println("选择查询成绩的科目:\n必修课:\t*高数*\t*马原* "
            + " \n选修课:\t*c*\t*java*\t*lol* \n*0*跳过");
    String course = BaseUtil.inputString();
    while (!course.equals("0")) {
        if (course.equals("gaosu") || course.equals("mayuan")
                || course.equals("c") || course.equals("java")
                || course.equals("lol")) {
            courseTemp.addLast(course);
            System.out.println("ok!");
            course = BaseUtil.inputString();
        } else {
            System.out.println("没有这门课,重新选择");
            course = BaseUtil.inputString();
        }
    }

    // 根据选择的选修课,选择要查询的成绩的范围
    int[] scoreBefore = new int[courseTemp.size()];
    int[] scoreAfter = new int[courseTemp.size()];
    for (int i = 0; i < courseTemp.size(); i++) {
        System.out.print("输入" + courseTemp.get(i) + "成绩:从->");
        int scoreTempB = BaseUtil.inputInt();
        scoreBefore[i] = scoreTempB;
        System.out.print("到->");
        int scoreTempA = BaseUtil.inputInt();
        scoreAfter[i] = scoreTempA;
    }

    // 根据选择好的科目和成绩范围,查询符合条件的学生的信息
    for (int i = 0; i < Student.getStuList().size(); i++) {

        for (int j = 0; j < courseTemp.size(); j++) {
            if (null == Student.getStuList().get(i).getGrade()
                    .get((courseTemp.get(j)))) {
                break;
            }
            if (Student.getStuList().get(i).getGrade()
                    .get((courseTemp.get(j))) >= scoreBefore[j]
                    && Student.getStuList().get(i).getGrade()
                            .get((courseTemp.get(j))) <= scoreAfter[j]) {

                if (j == (courseTemp.size() - 1)) {
                    System.out.println(Student.getStuList().get(i));
                }
                continue;
            }
        }
    }
}

// 学生必修课分数统计查询
public static void rcScoreQuery(StuManager stuManager, String course) {
    int num = 0;// 这门课的学生数目
    int sum = 0;// 这门课的学生总分

    for (int i = 0; i < Student.getStuList().size(); i++) {

        for (int j = 0; j < Student.getStuList().get(i).getRequiredCourse().length; j++) {

            if (course.equals(Student.getStuList().get(i)
                    .getRequiredCourse()[j])) {// 如果检测到一个学生选了这门课,记录人数和分数

                num++;
                sum += Student.getStuList().get(i).getGrade().get(course)
                        .intValue();

                BaseUtil.printInfo("课程: ["
                        + course
                        + "] 分数: ["
                        + Student.getStuList().get(i).getGrade()
                                .get(course) + "] 学生姓名 ["
                        + Student.getStuList().get(i).getName() + "] 学号 ["
                        + Student.getStuList().get(i).getStuId() + "] ");// 输出学生信息
            }
        }
    }
    if (num > 0) {

        BaseUtil.printInfo(course + "平均分:" + (sum / num));

    }

}

// 学生选修课分数统计查询
public static void ecScoreQuery(StuManager stuManager, String course) {

    int num = 0;
    int sum = 0;

    for (int i = 0; i < Student.getStuList().size(); i++) {

        for (int j = 0; j < Student.getStuList().get(i).getElectiveCourse()
                .size(); j++) {

            if (course.equals(Student.getStuList().get(i)
                    .getElectiveCourse().get(j))) {

                num++;
                sum += Student.getStuList().get(i).getGrade().get(course)
                        .intValue();
                BaseUtil.printInfo("课程: ["
                        + course
                        + "] 分数: ["
                        + Student.getStuList().get(i).getGrade()
                                .get(course) + "] 学生姓名 ["
                        + Student.getStuList().get(i).getName() + "] 学号 ["
                        + Student.getStuList().get(i).getStuId() + "] ");// 输出学生信息
            }
        }

    }

    if (num > 0) {
        BaseUtil.printInfo(course + "平均分:" + (sum / num));
    }
}

}

package com.stu.dao;

import com.stu.entity.StuManager;
import com.stu.util.BaseUtil;
import com.stu.util.StuManagerUtil;

public class StuManagerDao extends StuManager {

// 插入新注册成功的管理到管理员集合
public static void insertStuManager(StuManager stuManager) {

    stuManagerList.add(stuManager);

}


// 管理员账号注册
public  static void registrAccount(StuManager stuManager) {

    String account = BaseUtil.inputString();
    boolean accountFlag = StuManagerUtil.checkAccount(account);// 账号校验

    while (true) {
        if (accountFlag) {
            stuManager.setAccount(account);// 合格则账号注册成功
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");// 不合格重新输入并检测
            account = BaseUtil.inputString();
            accountFlag = StuManagerUtil.checkAccount(account);
        }
    }
}

// 设置管理员密码
public static void registrPassword(StuManager stuManager) {

    String password = BaseUtil.inputString();
    boolean passwordFlag = StuManagerUtil.checkPassword(password);// 密码校验

    while (true) {
        if (passwordFlag) {
            BaseUtil.printInfo("确认密码:");
            String passwordMakesure = BaseUtil.inputString();
            if (passwordMakesure.equals(password)) {// 确认密码是否一样
                stuManager.setPassword(password);// 合格则成功设置
                break;
            } else {
                System.out.println("两次输入的密码不一致");
            }
        } else {
            BaseUtil.printInfo("请重新设置:");// 不合格则重新设置并检测
            password = BaseUtil.inputString();
            passwordFlag = StuManagerUtil.checkPassword(password);
        }
    }
}

// 设置管理员邮箱
public static  void registrEmail(StuManager stuManager) {

    String email = BaseUtil.inputString();
    boolean emailFlag = Boolean.FALSE;// 邮箱校验

    while (true) {
        if (email.equals("0")) {// 输入0则不设置邮箱
            BaseUtil.printInfo("跳过邮箱设置");
            break;
        } else {
            emailFlag = StuManagerUtil.checkEmail(email);
            if (emailFlag) {
                stuManager.setEmail(email);// 合格则成功设置
                break;
            } else {
                BaseUtil.printInfo("请重新设置:");// 不合格则重新设置并检测
                email = BaseUtil.inputString();
                emailFlag = StuManagerUtil.checkPassword(email);
            }
        }
    }
}

// 输入管理员身份证号
public static void registrId(StuManager studentManager) {

    String id = BaseUtil.inputString();
    boolean idFlag = StuManagerUtil.checkId(id);// 身份证号校验

    while (true) {
        if (idFlag) {
            studentManager.setId(id);
            break;
        } else {
            BaseUtil.printInfo("请重新输入:");
            id = BaseUtil.inputString();
            idFlag = StuManagerUtil.checkId(id);
        }
    }
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值