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);
}
}
}
}