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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? examserviceimpl.java

?? 一個(gè)基于j2ee的在線考試文檔
?? 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;
	}
	
	/**
	 * 增加一個(gè)學(xué)生實(shí)例,對應(yīng)為增加一條學(xué)生的記錄
	 * @param stuNumber 學(xué)生學(xué)號。
	 * @param name 學(xué)生學(xué)號。
	 * @param classname 學(xué)生學(xué)號。
	 * @param humanId 學(xué)生學(xué)號。
	 * @param email 學(xué)生學(xué)號。
	 * @param address 學(xué)生地址。
	 * @param phone 學(xué)生電話。
	 * @return 新增學(xué)生的主鍵
	 */
	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("添加學(xué)生時(shí)出現(xiàn)異常,請重試!");
		}
	}

	/**
	 * 根據(jù)學(xué)生I刪除學(xué)生
	 * @param id 需要?jiǎng)h除的學(xué)生的主鍵。
	 * @return 刪除學(xué)生的記錄數(shù)
	 */
	public void deleteStudent(int id) throws ExamException
	{
		try
		{
			studentDao.delete(id);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("刪除學(xué)生時(shí)出現(xiàn)異常,請重試!");
		}
	}

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

	/**
	 * 增加一個(gè)試題,增加一條試題記錄
	 * @param quTitle 試題題目。
	 * @param quHard 試題難度。
	 * @param quScore 試題分?jǐn)?shù)。
	 * @param quAnswer 試題答案。
	 * @param quType 試題類型。
	 * @param selectOption 試題選項(xiàng)。
	 * @param examTypeId 試題對應(yīng)的考試類型
	 * @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("添加學(xué)生時(shí)出現(xiàn)異常,請重試!");
		}
	}

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

	/**
	 * 新增考試類型
	 * @param testName 新增的考試名稱。
	 * @param testTime 新增的考試時(shí)間
	 * @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();
	}

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

	/**
	 * 根據(jù)頁碼列出試題列表
	 * @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("列出考試試題時(shí)出現(xiàn)異常,請重試!");
		}

	}

	/**
	 * 根據(jù)用戶名和密碼判斷用戶是否可以成功登錄
	 * @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("系統(tǒng)管理員登錄出現(xiàn)異常,請重試!");
		}
	}

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

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

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


	/**
	 * 判斷學(xué)生是否可以成功登錄。
	 * @param name 登錄用的學(xué)生姓名
	 * @param stuNumber 登錄用的學(xué)號
	 */
	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("學(xué)生登錄出現(xiàn)異常,請重試!");
		}
	}

	/**
	 * 根據(jù)考試類型ID獲取下一個(gè)試題
	 * @param alreadys 已經(jīng)回答的試題ID
	 * @param examTypeId 考試類型ID
	 * return 該考試類型的下一個(gè)試題
	 */
	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;
				//如果已答題的數(shù)組不為空,判斷獲取的題是否已在已答題數(shù)組中
				if (alreadys != null)
				{
					for (int alreadyId :alreadys)
					{
						if (alreadyId == randomId)
						{
							continue REPEAT_TRY;
						}
					}
				}
				Question question = null;
				//如果獲取題目出現(xiàn)異常,重新開始循環(huán)來獲取下一題.
				try
				{
					question = questionDao.findQuestionByExamType(randomId , examType );				
				}
				catch (Exception e)
				{
					continue;
				}
				return question;
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new ExamException("獲取下一道試題時(shí)出現(xiàn)異常,請重試!");
		}
	}

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

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

	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产资源在线一区| 亚洲人成亚洲人成在线观看图片| 亚洲成人在线观看视频| 欧美影院精品一区| 天天综合日日夜夜精品| 91精品欧美久久久久久动漫 | 亚洲一区二区三区在线| 在线免费观看成人短视频| 亚洲va韩国va欧美va| 91精品视频网| 国产99久久久久| 一区二区三区在线免费观看| 欧美日韩高清一区二区三区| 精品午夜久久福利影院| 中文av一区二区| 欧美视频一区二区三区在线观看| 美美哒免费高清在线观看视频一区二区 | 婷婷中文字幕一区三区| 日韩欧美亚洲国产精品字幕久久久 | 日韩在线播放一区二区| 日韩欧美的一区二区| 不卡视频在线观看| 免费一级片91| 国产精品色呦呦| 欧美酷刑日本凌虐凌虐| 国产毛片精品一区| 亚洲图片欧美色图| 亚洲精品一区二区三区影院| av在线不卡电影| 免费在线看成人av| 亚洲欧美自拍偷拍色图| 精品奇米国产一区二区三区| 99久久综合色| 狠狠网亚洲精品| 午夜亚洲福利老司机| 国产日本欧洲亚洲| 欧美一级日韩不卡播放免费| av影院午夜一区| 激情欧美日韩一区二区| 亚洲成人av在线电影| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久午夜羞羞影院免费观看| 色婷婷久久久亚洲一区二区三区| 狠狠色丁香婷婷综合| 亚洲成a人在线观看| 国产精品色婷婷| 欧美大片免费久久精品三p| www.欧美日韩| 国产伦精品一区二区三区免费迷 | 2014亚洲片线观看视频免费| 欧美精品一二三四| 色综合久久综合中文综合网| 国产成人精品免费网站| 免费看精品久久片| 亚洲成va人在线观看| 亚洲欧美日韩久久| 国产精品青草久久| 久久久五月婷婷| 日韩片之四级片| 制服丝袜成人动漫| 欧美影院一区二区| 91福利国产精品| 97精品久久久午夜一区二区三区| 国产精品一二二区| 国产麻豆精品视频| 久久精品av麻豆的观看方式| 午夜亚洲福利老司机| 亚洲不卡av一区二区三区| 亚洲综合另类小说| 亚洲色图都市小说| 亚洲图片另类小说| 最新欧美精品一区二区三区| 中文字幕第一区二区| 亚洲国产电影在线观看| 国产欧美一区二区精品秋霞影院 | 国产成人免费视频一区| 国产精品456| 国产成人一级电影| 成人少妇影院yyyy| 99在线精品视频| 色呦呦网站一区| 在线免费观看日本欧美| 欧美日韩精品一区二区天天拍小说| 欧美亚一区二区| 欧美日韩精品福利| 欧美一区二区三区免费在线看| 6080日韩午夜伦伦午夜伦| 欧美一区永久视频免费观看| 精品欧美一区二区久久| 精品国产乱码久久久久久闺蜜| 精品国产免费一区二区三区四区| 久久亚洲捆绑美女| 国产精品久久久久精k8| 亚洲一区精品在线| 日韩av不卡一区二区| 精品午夜一区二区三区在线观看| 国产成人综合亚洲91猫咪| 99久久精品免费观看| 欧美视频三区在线播放| 精品久久久久一区二区国产| 国产女主播一区| 一区二区三区在线观看网站| 天天免费综合色| 国产一区免费电影| 色丁香久综合在线久综合在线观看| 欧美喷水一区二区| 久久久久久久久一| 亚洲伦理在线精品| 青青草成人在线观看| 国产成人无遮挡在线视频| 色天天综合久久久久综合片| 91麻豆精品国产| 国产精品美女一区二区在线观看| 亚洲伊人色欲综合网| 精品在线亚洲视频| 在线观看中文字幕不卡| 久久综合九色综合97婷婷女人| 亚洲日本中文字幕区| 日韩va欧美va亚洲va久久| 成人免费看黄yyy456| 欧美猛男男办公室激情| 亚洲国产精品99久久久久久久久| 五月激情六月综合| 99免费精品视频| 久久青草国产手机看片福利盒子| 一区二区三区欧美久久| 国产成人精品免费看| 欧美日韩精品专区| 亚洲三级电影网站| 国产精品一区二区黑丝 | 91麻豆精品国产91久久久使用方法 | 日韩欧美视频一区| 亚洲综合在线第一页| 国产宾馆实践打屁股91| 欧美一卡二卡在线观看| 亚洲精品美国一| 国产 欧美在线| 精品国产一区二区三区不卡| 午夜精品一区二区三区三上悠亚 | 亚洲午夜久久久久久久久久久 | 亚洲已满18点击进入久久| 成人国产精品免费观看视频| 日韩一区二区在线看片| 亚洲成人在线免费| 色婷婷av一区| 亚洲免费观看在线视频| 国产.欧美.日韩| 国产偷v国产偷v亚洲高清| 免费成人在线观看视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 91国偷自产一区二区使用方法| 国产欧美日韩另类一区| 激情偷乱视频一区二区三区| 欧美一二三区在线观看| 午夜精品久久一牛影视| 欧美调教femdomvk| 亚洲精选视频在线| 91麻豆精东视频| 亚洲免费视频中文字幕| 成年人国产精品| 亚洲欧美一区二区视频| 99综合影院在线| 亚洲精品免费在线观看| 色天天综合久久久久综合片| 亚洲精品菠萝久久久久久久| 91香蕉视频污| 亚洲综合av网| 欧美美女网站色| 日韩精品一二区| 精品久久久久久综合日本欧美| 久久99九九99精品| 久久久久久久精| 波波电影院一区二区三区| 国产精品久久久久久久浪潮网站| 成人免费va视频| 亚洲三级电影网站| 在线亚洲人成电影网站色www| 一区二区三区在线视频免费 | 欧美羞羞免费网站| 天堂成人国产精品一区| 日韩精品资源二区在线| 黄一区二区三区| 国产精品久久久久aaaa樱花 | 91精品国产综合久久精品app| 秋霞成人午夜伦在线观看| 久久久三级国产网站| 9色porny自拍视频一区二区| 亚洲国产成人av网| 亚洲精品一区二区三区香蕉| 成人在线视频首页| 亚洲丶国产丶欧美一区二区三区| 3751色影院一区二区三区| 国产一区二区在线观看免费| 国产精品美女久久久久av爽李琼| 在线亚洲免费视频| 国内成人自拍视频| 亚洲激情图片一区| 精品国产乱码久久久久久夜甘婷婷| 波多野洁衣一区| 日韩黄色小视频|