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

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

?? examserviceimpl.java

?? spring+hibenater+struts的考試系統
?? 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一区二区三区免费野_久草精品视频
日韩一区二区高清| 本田岬高潮一区二区三区| 中文字幕亚洲不卡| 精品国产电影一区二区| 欧美理论电影在线| 9191成人精品久久| 日韩三级精品电影久久久| 日韩一区二区在线免费观看| 制服.丝袜.亚洲.中文.综合| 欧美一区二区三区影视| 日韩一区二区视频| 久久亚洲欧美国产精品乐播| 国产日产欧美一区二区三区| 国产亚洲制服色| 中文字幕一区二区三区在线播放| 国产精品污网站| 亚洲精品免费电影| 午夜视频久久久久久| 免费在线观看一区| 国产激情偷乱视频一区二区三区| 懂色一区二区三区免费观看| 一本色道a无线码一区v| 欧美老年两性高潮| 久久麻豆一区二区| 亚洲女子a中天字幕| 日韩成人dvd| 国产91精品精华液一区二区三区| 一本久久a久久免费精品不卡| 欧美日韩高清不卡| 久久亚洲精品国产精品紫薇| 亚洲欧洲一区二区在线播放| 午夜精品成人在线| 国产成人aaa| 欧美在线观看18| 精品国产乱码久久久久久图片| 国产精品久久久久精k8| 视频一区二区国产| 97国产一区二区| 精品国产乱码久久久久久蜜臀| 亚洲日本一区二区三区| 国内精品伊人久久久久av一坑| 91免费在线播放| 久久亚洲春色中文字幕久久久| 亚洲日本欧美天堂| 国产自产视频一区二区三区 | 9191久久久久久久久久久| 久久久久久亚洲综合| 亚洲国产综合91精品麻豆| 国产精品夜夜爽| 日韩三级中文字幕| 亚洲国产日韩一区二区| av不卡在线播放| 久久久久久久久久久久久夜| 日韩二区三区四区| 欧美性xxxxxxxx| 亚洲免费观看高清完整版在线| 国模套图日韩精品一区二区| 3d动漫精品啪啪一区二区竹菊| 亚洲日本在线观看| 99精品久久99久久久久| 国产午夜精品理论片a级大结局| 秋霞午夜av一区二区三区| 91久久国产综合久久| 日韩久久一区二区| 99久久免费视频.com| 国产日韩精品一区二区三区在线| 蜜臀av性久久久久蜜臀aⅴ| 欧美久久久久免费| 午夜欧美视频在线观看| 在线免费观看视频一区| 亚洲精品亚洲人成人网在线播放| 不卡免费追剧大全电视剧网站| 久久久久久久综合日本| 激情综合网天天干| 久久久五月婷婷| 国产成人综合自拍| 国产偷国产偷精品高清尤物 | 国产福利精品导航| 国产欧美综合在线观看第十页 | 亚洲少妇30p| 色偷偷久久一区二区三区| 亚洲男人的天堂av| 欧美性一区二区| 日日夜夜精品视频免费| 日韩欧美国产一区二区三区| 麻豆精品新av中文字幕| 久久青草欧美一区二区三区| 国产成人精品三级| 日韩一区在线播放| 在线观看一区二区视频| 五月天一区二区三区| 精品久久久久久久久久久久包黑料 | 欧美性猛片xxxx免费看久爱| 亚洲丶国产丶欧美一区二区三区| 欧美男人的天堂一二区| 国产美女一区二区三区| **网站欧美大片在线观看| 欧美午夜电影网| 狠狠色狠狠色综合系列| ㊣最新国产の精品bt伙计久久| 欧美三级一区二区| 国产乱人伦偷精品视频不卡| 国产精品色噜噜| 欧美疯狂性受xxxxx喷水图片| 极品美女销魂一区二区三区| 一区免费观看视频| 日韩免费一区二区| 99久久伊人精品| 久久精品久久精品| 亚洲视频免费观看| 久久综合视频网| 在线一区二区三区做爰视频网站| 麻豆91在线播放| 一片黄亚洲嫩模| 国产日韩欧美不卡在线| 欧美日本在线观看| 91在线国内视频| 狠狠网亚洲精品| 日日夜夜一区二区| 亚洲免费在线视频| 国产欧美日韩在线视频| 欧美一卡二卡在线观看| 91麻豆文化传媒在线观看| 精品中文字幕一区二区| 亚洲第一二三四区| 亚洲欧美区自拍先锋| 久久久久国产一区二区三区四区| 欧美日本乱大交xxxxx| 一本色道久久加勒比精品| 国产aⅴ综合色| 国产尤物一区二区| 蜜桃视频第一区免费观看| 亚洲一区二区在线播放相泽| 中文字幕在线不卡国产视频| 久久久久99精品国产片| 欧美日韩一二区| 国产精品一区二区在线观看不卡| 一区二区三区不卡视频在线观看 | 午夜成人免费电影| 中文在线一区二区| 久久综合九色综合欧美就去吻| 欧美精品久久天天躁| 欧美四级电影在线观看| 91蜜桃在线观看| 99久久精品免费精品国产| 国产aⅴ精品一区二区三区色成熟| 麻豆91小视频| 韩国成人精品a∨在线观看| 麻豆精品一二三| 国产原创一区二区| 激情久久五月天| 国产精品麻豆久久久| 国产精品91xxx| 国模大尺度一区二区三区| 日本不卡1234视频| 看国产成人h片视频| 蜜桃av噜噜一区| 国产中文一区二区三区| 国产一区二区在线看| 国产成人午夜精品5599| 国产综合色精品一区二区三区| 日韩成人精品在线观看| 久久精品国产亚洲aⅴ| 国内精品免费**视频| 成人av高清在线| 91福利国产精品| 5566中文字幕一区二区电影| 日韩视频中午一区| 久久精品夜夜夜夜久久| 亚洲人成小说网站色在线 | 亚洲一区影音先锋| 亚瑟在线精品视频| 国产综合久久久久久久久久久久| 国产精品乡下勾搭老头1| 92精品国产成人观看免费 | 国产精华液一区二区三区| 精品一区二区免费视频| 国产999精品久久久久久绿帽| 91麻豆国产精品久久| 91精品午夜视频| 日本一区二区三区高清不卡| 亚洲精品国产a| 久久97超碰国产精品超碰| av中文字幕在线不卡| 911精品国产一区二区在线| 国产日韩欧美高清在线| 无码av免费一区二区三区试看 | 国产日本亚洲高清| 亚洲综合小说图片| 国产美女主播视频一区| 日本精品一区二区三区高清| 精品国产亚洲一区二区三区在线观看| 中文字幕精品一区二区精品绿巨人| 夜色激情一区二区| 国产精品一区二区久激情瑜伽 | 国产成人亚洲综合a∨婷婷 | 国产精品天干天干在线综合| 性久久久久久久| 99久久国产综合色|国产精品| 精品久久久久久久久久久久包黑料 |