package com.it.service.impl;

import com.it.domain.ExamQuestion; import com.it.domain.Result; import com.it.domain.Student; import com.it.operation.QuestionOperation; import com.it.operation.ResultOperation; import com.it.operation.StudentOperation; import com.it.service.StudentService;

import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Scanner;

public class StudentServiceImpl implements StudentService {

private final Scanner sc = new Scanner(System.in);
private final StudentOperation studentDao = new StudentOperation();
private final QuestionOperation questionDao = new QuestionOperation();
private final ResultOperation resultDao = new ResultOperation();

/*中文学生注册*/
@Override
public void ChineseStudentRegister() {
    System.out.println('注册界面');
    System.out.println('请输入你的学号:');
    String id = sc.nextLine();
    System.out.println('请输入你的姓名:');
    String name = sc.nextLine();
    System.out.println('请输入你的电话:');
    String phone = sc.nextLine();
    System.out.println('请输入你的密码:');
    String password = sc.nextLine();

    Student student = new Student();
    student.setSno(Integer.parseInt(id));
    student.setPassword(password);
    student.setPhone(phone);
    student.setSname(name);

    int i = studentDao.insert(student);

    System.out.println(i > 0 ? '注册成功!' : '注册失败!');
}

/*中文登录*/
@Override
public void ChineseStudentLogin() {
    System.out.println('学生登录');
    System.out.println('请输入你的学号:');
    String id = sc.nextLine();
    System.out.println('请输入你的密码:');
    String password = sc.nextLine();
    System.out.println('您确定现在登录吗?');
    System.out.println('1.是');
    System.out.println('2.否');
    System.out.println('3.返回主页');
    String isNow = sc.nextLine();
    switch (isNow) {
        case '1':
            break;
        case '2':
            return;
        case '3':
            return;
        default:
            System.out.println('没有这个选项!');
            return;
    }

    Student student = new Student();
    student.setSno(Integer.parseInt(id));
    student.setPassword(password);

    Student one = studentDao.getOne(student);

    if (one == null) {
        System.out.println('学生信息不存在!请检查您的学号或密码');
        return;
    }
    //学生登录界面,选择是否考试
    loop:
    while (true) {
        System.out.println('学生界面');
        System.out.println('1.开始考试');
        System.out.println('2.退出');
        String choose = sc.nextLine();
        switch (choose) {
            case '1':
                ChineseExam();
                break;
            case '2':
                break loop;
            default:
                System.out.println('没有这个选项!');
                break;
        }
    }

}

/*英文学生注册*/
@Override
public void EnglishStudentRegister() {
    System.out.println('Welcome to register');
    System.out.println('Please enter your student id:');
    String id = sc.nextLine();
    System.out.println('Please enter your name:');
    String name = sc.nextLine();
    System.out.println('Please enter your phone number:');
    String phone = sc.nextLine();
    System.out.println('Please enter your password:');
    String password = sc.nextLine();

    Student student = new Student();
    student.setSno(Integer.parseInt(id));
    student.setPassword(password);
    student.setPhone(phone);
    student.setSname(name);

    int i = studentDao.insert(student);

    System.out.println(i > 0 ? 'registe Successful!' : 'registe Error');

}

/*英文学生登录*/
@Override
public void EnglishStudentLogin() {
    System.out.println('Student login');
    System.out.println('Please enter your student id:');
    String id = sc.nextLine();
    System.out.println('Please enter your password:');
    String password = sc.nextLine();
    System.out.println('Are you sure login now?');
    System.out.println('1.Yes');
    System.out.println('2.No');
    System.out.println('3.Back to the homePage');
    String isNow = sc.nextLine();
    switch (isNow) {
        case '1':
            break;
        case '2':
            return;
        case '3':
            return;
        default:
            System.out.println('No choose!');
            return;
    }

    Student student = new Student();
    student.setSno(Integer.parseInt(id));
    student.setPassword(password);

    Student one = studentDao.getOne(student);

    if (one == null) {
        System.out.println('No student!Please check your id or password');
        return;
    }
    //学生登录界面,选择是否考试
    loop:
    while (true) {
        System.out.println('Student board');
        System.out.println('1.Start exam');
        System.out.println('2.Quit');
        String choose = sc.nextLine();
        switch (choose) {
            case '1':
                EnglishExam();
                break;
            case '2':
                break loop;
            default:
                System.out.println('No choose!');
                break;
        }
    }
}

/*英文考试菜单*/
@Override
public void EnglishExam() {
    System.out.println('Exam Form');
    System.out.println('Please enter your student id:');
    String id = sc.nextLine();
    System.out.println('Please enter your name:');
    String name = sc.nextLine();
    Student student = studentDao.getByIdAndName(Integer.parseInt(id), name);
    if (student==null){
        System.out.println('No Student!Please check your id or name');
        return;
    }
    System.out.println('Please choose a course:');
    System.out.println('1.Java');
    System.out.println('2.MySQL');
    String course = sc.nextLine();
    String courseName;
    switch (course) {
        case '1':
            courseName = 'Java';
            break;
        case '2':
            courseName = 'MySQL';
            break;
        default:
            System.out.println('No choose!');
            return;
    }

    System.out.println('Do you want to start now?');
    System.out.println('1.Start');
    System.out.println('2.quit');
    String choose = sc.nextLine();

    switch (choose) {
        case '1':
            double core = startEnglishExam(courseName);

            Result result = new Result();
            result.setSno(Integer.parseInt(id));
            result.setSname(name);
            result.setCourse(courseName);
            result.setScore(core);
            result.setDate(new Date());

            int i = resultDao.insert(result);
            System.out.println(i>0?'submit success!':'submit error!');
            break;
        case '2':
            return;
        default:
            System.out.println('No choose!');
            break;
    }

}

/*中文考试菜单*/
@Override
public void ChineseExam() {
    System.out.println('考试表单');
    System.out.println('请输入你的学号:');
    String id = sc.nextLine();
    System.out.println('请输入你的姓名:');
    String name = sc.nextLine();
    Student student = studentDao.getByIdAndName(Integer.parseInt(id), name);
    if (student==null){
        System.out.println('学生信息不存在!请检查你的学号或姓名');
        return;
    }
    System.out.println('请选择一个课程:');
    System.out.println('1.Java');
    System.out.println('2.MySQL');
    String course = sc.nextLine();
    String courseName;
    switch (course) {
        case '1':
            courseName = 'Java';
            break;
        case '2':
            courseName = 'MySQL';
            break;
        default:
            System.out.println('没有这个选项!');
            return;
    }
    System.out.println('你想要现在开始考试吗?');
    System.out.println('1.开始');
    System.out.println('2.退出');
    String choose = sc.nextLine();

    switch (choose) {
        case '1':
            double core = startChineseExam(courseName);

            Result result = new Result();
            result.setSno(Integer.parseInt(id));
            result.setSname(name);
            result.setCourse(courseName);
            result.setScore(core);
            result.setDate(new Date());

            int i = resultDao.insert(result);
            System.out.println(i>0?'提交成功!':'提交失败!');
            break;
        case '2':
            return;
        default:
            System.out.println('没有这个选项!');
            break;
    }

}

/*中文答题界面*/
@Override
public double startChineseExam(String courseName) {
    double core = 0;
    String answer;
    List<ExamQuestion> questions = questionDao.list(courseName);
    Collections.shuffle(questions);

    int len = 10;
    if (questions.size()<10){
        len = questions.size();
    }
    for (int i = 0; i < len; i++) {
    	ExamQuestion question = questions.get(i);
        System.out.println(question.getQuestionName());
        System.out.println('A.' + question.getOption1());
        System.out.println('B.' + question.getOption2());
        System.out.println('C.' + question.getOption3());
        System.out.println('D.' + question.getOption4());
        System.out.println('请输入你的选择:');
        String choose = sc.nextLine();
        switch (choose) {
            case 'A':
                answer = question.getOption1();
                break;
            case 'a':
                answer = question.getOption1();
                break;
            case 'B':
                answer = question.getOption2();
                break;
            case 'b':
                answer = question.getOption2();
                break;
            case 'C':
                answer = question.getOption3();
                break;
            case 'c':
                answer = question.getOption3();
                break;
            case 'D':
                answer = question.getOption4();
                break;
            case 'd':
                answer = question.getOption4();
                break;
            default:
                System.out.println('没有这个选项!');
                answer = '';
                break;
        }
        if (question.getCorrectAnswer().equals(answer)){
            core += 10;
        }

        System.out.println('你想要继续下一题吗?');
        System.out.println('1.继续');
        System.out.println('2.交卷');
        String isContinue = sc.nextLine();
        switch (isContinue){
            case '1':
                if (i==len-1){
                    System.out.println('这已经是最后一个问题了');
                }
                break;
            case '2':
                return core;
            default:
                System.out.println('没有这个选项!');
                break;
        }
    }
    return core;
}

/*英文答题界面*/
@Override
public double startEnglishExam(String courseName) {
    double core = 0;
    String answer;
    List<ExamQuestion> questions = questionDao.list(courseName);
    Collections.shuffle(questions);

    int len = 10;
    if (questions.size()<10){
        len = questions.size();
    }
    for (int i = 0; i < len; i++) {
    	ExamQuestion ExamQuestion = questions.get(i);
        System.out.println(ExamQuestion.getQuestionName());
        System.out.println('A.' + ExamQuestion.getOption1());
        System.out.println('B.' + ExamQuestion.getOption2());
        System.out.println('C.' + ExamQuestion.getOption3());
        System.out.println('D.' + ExamQuestion.getOption4());
        System.out.println('Please enter your choose:');
        String choose = sc.nextLine();
        switch (choose) {
            case 'A':
                answer = ExamQuestion.getOption1();
                break;
            case 'a':
                answer = ExamQuestion.getOption1();
                break;
            case 'B':
                answer = ExamQuestion.getOption2();
                break;
            case 'b':
                answer = ExamQuestion.getOption2();
                break;
            case 'C':
                answer = ExamQuestion.getOption3();
                break;
            case 'c':
                answer = ExamQuestion.getOption3();
                break;
            case 'D':
                answer = ExamQuestion.getOption4();
                break;
            case 'd':
                answer = ExamQuestion.getOption4();
                break;
            default:
                System.out.println('No choose!');
                answer = '';
                break;
        }
        if (ExamQuestion.getCorrectAnswer().equals(answer)){
            core += 10;
        }

        System.out.println('Do you want to next now?');
        System.out.println('1.next');
        System.out.println('2.Finish');
        String isContinue = sc.nextLine();
        switch (isContinue){
            case '1':
                if (i==len-1){
                    System.out.println('The question is last');
                }
                break;
            case '2':
                return core;
            default:
                System.out.println('No choose!');
                break;
        }
    }
    return core;
}

}

Student Service Implementation for Exam System

原文地址: https://www.cveoy.top/t/topic/f0UX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录