亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? examserviceimpl.java

?? 在線考試系統
?? JAVA
字號:
package org.yeeku.service.impl;

import org.yeeku.dao.*;
import org.yeeku.model.*;
import java.util.List;

import org.yeeku.exception.ExamException;
/**
 * @author  yeeku.H.lee kongyeeku@163.com
 * @version  1.0
 * <br>Copyright (C), 2005-2008, yeeku.H.Lee
 * <br>This program is protected by copyright laws.
 * <br>Program Name:
 * <br>Date: 
 */
public class ExamServiceImpl implements org.yeeku.service.ExamService
{
    private ExamUserDao examUserDao;
    private StudentDao studentDao;
    private ExamTypeDao examTypeDao;
    private QuestionDao questionDao;

	public void setExamUserDao(ExamUserDao examUserDao)
	{
		this.examUserDao = examUserDao;
	}
	public void setStudentDao(StudentDao studentDao)
	{
		this.studentDao = studentDao;
	}
	public void setExamTypeDao(ExamTypeDao examTypeDao)
	{
		this.examTypeDao = examTypeDao;
	}
	public void setQuestionDao(QuestionDao questionDao)
	{
		this.questionDao = questionDao;
	}
	
	/**
	 * 增加一個學生實例,對應為增加一條學生的記錄
	 * @param stuNumber 學生學號。
	 * @param name 學生學號。
	 * @param classname 學生學號。
	 * @param humanId 學生學號。
	 * @param email 學生學號。
	 * @param address 學生地址。
	 * @param phone 學生電話。
	 * @return 新增學生的主鍵
	 */
	public int addStudent(String stuNumber , String name , 
		String classname , String humanId , String email ,
		String address , String phone) throws ExamException
	{
		try
		{
			Student student = new Student(stuNumber, name, classname, humanId,
				email, address, phone);
			studentDao.save(student);
			return student.getId();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("添加學生時出現異常,請重試!");
		}
	}

	/**
	 * 根據學生I刪除學生
	 * @param id 需要刪除的學生的主鍵。
	 * @return 刪除學生的記錄數
	 */
	public void deleteStudent(int id) throws ExamException
	{
		try
		{
			studentDao.delete(id);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("刪除學生時出現異常,請重試!");
		}
	}

	/**
	 * 根據頁碼列出學生列表
	 * @param pageNo 頁碼
	 * return 列出的學生列表
	 */
	public List<Student> listStudent(int pageNo) throws ExamException
	{
		try
		{
			return studentDao.findAllByPage(pageNo , STUDENT_PAGE_SIZE);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("列出學生時出現異常,請重試!");
		}
	}

	/**
	 * 增加一個試題,增加一條試題記錄
	 * @param quTitle 試題題目。
	 * @param quHard 試題難度。
	 * @param quScore 試題分數。
	 * @param quAnswer 試題答案。
	 * @param quType 試題類型。
	 * @param selectOption 試題選項。
	 * @param examTypeId 試題對應的考試類型
	 * @return 新增試題的主鍵
	 */
	public int addQuestion(String quTitle,String quHard,String quScore,
		String quAnswer,String quType,String selectOption , int examTypeId) throws ExamException
	{
		try
		{
			ExamType examType = examTypeDao.get(examTypeId);
			if (examType == null)
			{
				throw new ExamException("不存在該考試類型,請重新選擇");
			}
			Question question = new Question(quTitle,quHard, quScore,
				 quAnswer, quType, selectOption, examType);
			questionDao.save(question);
			return question.getId();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("添加學生時出現異常,請重試!");
		}
	}

	/**
	 * 根據試題ID刪除試題
	 * @param id 需要刪除的試題的主鍵。
	 */
	public void deleteQuestion(int id) throws ExamException
	{
		try
		{
			questionDao.delete(id);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("刪除試題時出現異常,請重試!");
		}
	}

	/**
	 * 新增考試類型
	 * @param testName 新增的考試名稱。
	 * @param testTime 新增的考試時間
	 * @return 新增的考試類型的ID
	 */
	public int addExamType(String testName , String testTime) throws ExamException
	{
		ExamType et = new ExamType(testName , testTime);
		examTypeDao.save(et);
		return et.getId();
	}

	/**
	 * 獲取所有考試類型
	 * @return 所有考試類型
	 */
	public List<ExamType> getAllExamType() throws ExamException
	{
		return examTypeDao.findAll();
	}

	/**
	 * 根據考試類型ID刪除考試類型
	 * @param id 需要刪除的考試類型的主鍵。
	 */
	public void deleteExamType(int id) throws ExamException
	{
		try
		{
			examTypeDao.delete(id);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("刪除考試類型時出現異常,請重試!");
		}
	}

	/**
	 * 根據頁碼列出試題列表
	 * @param pageNo 頁碼
	 * return 列出的試題列表
	 */
	public List<Question> listQuestion(int pageNo) throws ExamException
	{
		try
		{
			return 	questionDao.findAllByPage(pageNo , QUESTION_PAGE_SIZE);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("列出考試試題時出現異常,請重試!");
		}

	}

	/**
	 * 根據用戶名和密碼判斷用戶是否可以成功登錄
	 * @param user 登錄用的用戶名
	 * @param pass 登錄用的密碼
	 * @return 是否可以成功登錄
	 */
	public boolean adminLogin(String user , String pass) throws ExamException
	{
		try
		{
			List result = examUserDao.findExamUserByNameAndPass(user, pass);
			if (result != null && result.size() > 0)
			{
				return true;
			}
			return false;
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("系統管理員登錄出現異常,請重試!");
		}
	}

	public int getStudentCount()throws ExamException
	{
		try
		{
			return (int)studentDao.getStudentCount();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("獲取學生數量時出現異常,請重試!");
		}
	}

	/**
	 * 獲取試題數量
	 * @return 試題的個數
	 */
	public int getQuestionCount()throws ExamException
	{
		try
		{
			return (int)questionDao.getQuestionCount();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("獲取試題數量時出現異常,請重試!");
		}
	}

	/**
	 * 根據每頁記錄數,總記錄數獲取總頁數
	 * @param count 總記錄數
	 * @param pageSize 每頁顯示的記錄數
	 * @return 計算得到的總頁數
	 */
	public int getPageCount(int count , int pageSize)
	{
		return (count + pageSize - 1 ) / pageSize;
	}


	/**
	 * 判斷學生是否可以成功登錄。
	 * @param name 登錄用的學生姓名
	 * @param stuNumber 登錄用的學號
	 */
	public String studentLogin(String name , String stuNumber)throws ExamException
	{
		try
		{
			List result = studentDao.findStudentByNameAndStuNumber(name , stuNumber);
			if (result != null && result.size() > 0)
			{
				return name;
			}
			return null;
		}
		catch (Exception e)
		{
			throw new ExamException("學生登錄出現異常,請重試!");
		}
	}

	/**
	 * 根據考試類型ID獲取下一個試題
	 * @param alreadys 已經回答的試題ID
	 * @param examTypeId 考試類型ID
	 * return 該考試類型的下一個試題
	 */
	public Question getNextQuestion(List<Integer> alreadys , int examTypeId) throws ExamException
	{
		try
		{
			ExamType examType = examTypeDao.get(examTypeId);
			if (examType == null)
			{
				throw new ExamException("不存在該考試類型,請重新選擇");
			}
			int maxId = questionDao.getMaxId();
			REPEAT_TRY:
			while(true)
			{
				int randomId = (int)Math.round(Math.random() * maxId) + 1;
				//如果已答題的數組不為空,判斷獲取的題是否已在已答題數組中
				if (alreadys != null)
				{
					for (int alreadyId :alreadys)
					{
						if (alreadyId == randomId)
						{
							continue REPEAT_TRY;
						}
					}
				}
				Question question = null;
				//如果獲取題目出現異常,重新開始循環來獲取下一題.
				try
				{
					question = questionDao.findQuestionByExamType(randomId , examType );				
				}
				catch (Exception e)
				{
					continue;
				}
				return question;
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("獲取下一道試題時出現異常,請重試!");
		}
	}

	/**
	 * 根據試題ID獲取實體
	 * @param id 試題ID
	 * return 該ID對應的試題
	 */
	public Question getQuestionById(int id)throws ExamException
	{
		try
		{
			return questionDao.get(id);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("根據ID獲取試題出錯,請重試!");
		}
	}

	/**
	 * 根據考試類型ID獲取考試類型
	 * @param typeId 考試類型ID
	 * return 該ID對應的考試類型名
	 */
	public String getExamTypeName(int typeId)throws ExamException		
	{
		try
		{
			return examTypeDao.get(typeId).getExamName();		
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("獲取考試類型出現異常,請重試!");
		}

	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区不卡视频| 国产一区二区电影| 国产一区二区在线免费观看| 91女人视频在线观看| 精品久久人人做人人爰| 亚洲激情图片小说视频| 国产精品白丝jk白祙喷水网站| 欧美日本一区二区三区| 国产精品家庭影院| 国产一区二区不卡在线| 欧美电影在哪看比较好| 亚洲三级在线看| 国产激情91久久精品导航| 欧美一级欧美三级在线观看| 亚洲黄色片在线观看| 大美女一区二区三区| 日韩欧美国产高清| 日韩国产欧美三级| 91国偷自产一区二区开放时间 | 六月婷婷色综合| 色欧美片视频在线观看在线视频| 国产日产亚洲精品系列| 久草热8精品视频在线观看| 欧美日韩小视频| 亚洲狠狠爱一区二区三区| 91丨九色丨尤物| 亚洲欧洲日韩综合一区二区| 国产精品一区二区x88av| 久久精品亚洲一区二区三区浴池| 免费在线成人网| 91精品国产黑色紧身裤美女| 日韩精品1区2区3区| 欧美日韩国产三级| 午夜一区二区三区视频| 欧美福利视频一区| 日本欧美一区二区三区| 欧美精品高清视频| 日本 国产 欧美色综合| 日韩一区二区三区免费看| 轻轻草成人在线| 精品美女一区二区| 国产成人超碰人人澡人人澡| 国产欧美综合在线| 91浏览器打开| 亚洲狠狠爱一区二区三区| 91精品国产91久久久久久最新毛片 | 欧美日韩久久一区| 七七婷婷婷婷精品国产| 日韩精品一区二区三区在线观看| 精品影院一区二区久久久| 久久久久久**毛片大全| 成人网在线播放| 亚洲一区二区三区在线播放| 欧美人xxxx| 国产精品66部| 日本道免费精品一区二区三区| 亚洲蜜臀av乱码久久精品| 97超碰欧美中文字幕| 亚洲综合视频网| 日韩欧美色综合| 国产成人8x视频一区二区| 中文字幕一区av| 在线播放视频一区| 国产乱码精品一区二区三区五月婷| 国产欧美日韩麻豆91| 色婷婷精品久久二区二区蜜臂av| 亚洲va欧美va国产va天堂影院| 日韩欧美精品在线视频| 国产91富婆露脸刺激对白| 亚洲与欧洲av电影| 精品卡一卡二卡三卡四在线| 99精品欧美一区二区三区小说 | 国产成人av电影在线| 亚洲欧美电影院| 免费成人小视频| 欧美激情综合五月色丁香| 91福利在线观看| 国产一区不卡在线| 一区二区三区资源| 久久久蜜桃精品| 欧美日韩在线观看一区二区| 国产高清在线观看免费不卡| 亚洲在线视频免费观看| 国产欧美一区二区三区鸳鸯浴| 在线观看网站黄不卡| 国产九九视频一区二区三区| 亚洲一区二区三区免费视频| 中文字幕欧美激情| 中文字幕制服丝袜一区二区三区 | 国产精品毛片久久久久久久| 在线成人av网站| 91网上在线视频| 国产精品一卡二卡在线观看| 日韩不卡一区二区三区| 一区二区三区毛片| 欧美韩日一区二区三区四区| 欧美一区二区三区喷汁尤物| 91麻豆免费视频| 成人免费黄色大片| 久久99精品久久久久久动态图| 亚洲一区二区三区爽爽爽爽爽| 中文字幕亚洲视频| 欧美激情一区三区| 久久婷婷久久一区二区三区| 日韩精品中午字幕| 欧美精三区欧美精三区| 在线视频你懂得一区| a4yy欧美一区二区三区| 国产成人在线观看免费网站| 韩国精品主播一区二区在线观看| 日韩不卡一区二区| 青草国产精品久久久久久| 亚洲国产成人91porn| 亚洲一区影音先锋| 亚洲丶国产丶欧美一区二区三区| 亚洲欧洲精品天堂一级 | 99久久久精品| 99久久夜色精品国产网站| 成人黄页在线观看| 成人久久视频在线观看| 成人免费视频免费观看| 成人久久视频在线观看| 北条麻妃一区二区三区| 亚洲精品免费在线观看| 国产欧美一区二区精品性| 精品精品国产高清一毛片一天堂| 欧美精品在线观看播放| 91超碰这里只有精品国产| 日本精品视频一区二区三区| 91麻豆免费观看| 精品久久久久久久久久久久久久久久久 | 日韩有码一区二区三区| 蜜臀av一级做a爰片久久| 国内久久婷婷综合| 不卡视频在线看| 色8久久人人97超碰香蕉987| 欧美男生操女生| 日韩美女在线视频| 国产欧美一二三区| 亚洲日本电影在线| 午夜国产精品一区| 久久精品免费看| 成人在线综合网站| 91福利在线看| 26uuu国产一区二区三区| 日韩一区中文字幕| 日韩av一级电影| 国产精品123区| 欧美亚洲一区二区三区四区| 日韩精品一区国产麻豆| 国产精品福利影院| 日本午夜一区二区| 成人国产亚洲欧美成人综合网| 欧美日韩午夜在线| 久久久亚洲欧洲日产国码αv| 亚洲免费观看高清在线观看| 日韩精品电影在线观看| 欧美日韩一区二区三区四区| 亚洲啪啪综合av一区二区三区| 亚洲国产综合人成综合网站| 国产在线不卡一卡二卡三卡四卡| 成人涩涩免费视频| 欧美一区二区国产| 亚洲丝袜另类动漫二区| 蜜臀av性久久久久蜜臀av麻豆| 99re这里只有精品首页| 91麻豆精品国产91久久久久| 国产精品久久久久aaaa樱花| 久久国产麻豆精品| 欧美在线一区二区| 国产精品天美传媒沈樵| 日本一道高清亚洲日美韩| aaa亚洲精品| 国产欧美日本一区二区三区| 日韩黄色片在线观看| 99精品热视频| 中文字幕第一区综合| 奇米777欧美一区二区| 日本伦理一区二区| 国产精品私人自拍| 国产精品亚洲一区二区三区在线| 欧美一级淫片007| 亚洲韩国一区二区三区| 99久久久精品免费观看国产蜜| 国产亚洲视频系列| 免费欧美高清视频| 欧美日韩不卡在线| 一区二区免费视频| 色综合一个色综合| 亚洲人成影院在线观看| 国产不卡一区视频| 国产午夜亚洲精品羞羞网站| 国产一区二区三区日韩| 精品人伦一区二区色婷婷| 日本女人一区二区三区| 欧美一级国产精品| 美女性感视频久久| 欧美一级xxx| 久久er99精品| 久久综合九色综合97婷婷女人|