freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

無(wú)紙化考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-閱讀頁(yè)

2025-07-07 21:16本頁(yè)面
  

【正文】 )。 this(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP)。 this(1,_T(試卷類(lèi)別),LVCFMT_LEFT,width/5,1)。 this(3,_T(命題時(shí)間),LVCFMT_LEFT,width/5,1)。 displayItem()。 m_psocket = new CMysocket()。//這是消息處理的需要 //偵聽(tīng) thisListen()。 // return TRUE unless you set the focus to a control // 異常: OCX 屬性頁(yè)應(yīng)返回FALSE}當(dāng)偵聽(tīng)套接字開(kāi)始偵聽(tīng)時(shí),如果有客戶(hù)端來(lái)連接(即使用connect函數(shù)),則該套接字類(lèi)的onAccept函數(shù)會(huì)被調(diào)用,下面是onAccept函數(shù)的內(nèi)容:void CstartexamDlg::OnAccept(void){ ASSERT(m_psocket != NULL)。 thism_sever_socketAccept(*m_psocket)。//確保是有效的連接 if(m_psocketm_hSocket != INVALID_SOCKET) { CString ip,msg。 m_psocketGetPeerName(ip,port)。//set the state as connected this(m_psocket)。 if(!GetDlgItem(IDC_BN_SENDPAPER)IsWindowEnabled())//設(shè)置控件為可用狀態(tài) GetDlgItem(IDC_BN_SENDPAPER)EnableWindow(TRUE)。//重新分配一個(gè)空套接字,用于下一次連接 m_psocketm_pControlDlg = this。 (IDS_SOURSE_PAPERS)。 fullfilename += filename。 TCHAR sz[256]。 int len = ()。//發(fā)送試卷文件名 try { while(1) { int num = (sz,255)。//發(fā)送這255個(gè)字節(jié)的數(shù)據(jù) if(num 255)//如果讀取的數(shù)據(jù)個(gè)數(shù)小于255,我們認(rèn)為文件讀取完畢 { sz[num]= 39。 break。//finish send file//設(shè)置當(dāng)前狀態(tài)為試卷發(fā)送完成 } catch(CFileException *e) { AfxMessageBox(em_strFileName)。 ZeroMemory(Buffer,256)。//設(shè)置狀態(tài)為獲得試卷文件名 int num = (Buffer,256)。\039。 CString fullfilename。 fullfilename += _T(\\)。 CFile file(fullfilename,CFile::modeCreate)。//讀取數(shù)據(jù) Buffer[num/2] = 39。 CString fullfilename。 fullfilename += _T(\\)。 CFile file。//打開(kāi)文件,寫(xiě)入數(shù)據(jù) ()。//寫(xiě)入數(shù)據(jù) if(num 255) {//接受到的數(shù)據(jù)下于255,我們認(rèn)為數(shù)據(jù)接受完畢因此設(shè)置狀態(tài)為接受完成,當(dāng)判斷狀態(tài)不是列出的兩種時(shí),將不會(huì)作出任何處理 (3)。//使得答卷按鈕可用 } }}剛才的過(guò)程就是客戶(hù)端如何獲得試卷的過(guò)程,到現(xiàn)在位置,相應(yīng)的目錄下應(yīng)該已經(jīng)出現(xiàn)了一個(gè)時(shí)間文件了,點(diǎn)擊答題,就可以答題了。 else { (2)。 //read it and display ()。在讀取試卷后可獲得試卷的規(guī)定時(shí)間,在開(kāi)始答題后建立一個(gè)計(jì)時(shí)器,時(shí)間用盡即產(chǎn)生消息,消息響應(yīng)中即可進(jìn)行控制。//卷面總分 int subject_type_num。//單選題數(shù) int single_value。//多選題數(shù) int multi_value。//填空題數(shù) int fillblank_value。//判斷題數(shù) int judge_value。//主觀題數(shù) CString password。//創(chuàng)建時(shí)間 int used_times。//創(chuàng)建者 CString path。//匹配碼}題目的存儲(chǔ)結(jié)構(gòu)依次如下:①選擇題Struct select_subject{ CString Title。//存儲(chǔ)答案選項(xiàng) int ans_num。 //指示正確答案,如正確答案為A,B則mask = A|B。//本題分值}②填空題Struct fillblank_subject{ CString Title。//答案 int ans_num。//本題分值}③判斷題Struct judge_subject{ CString Title。//答案,為T(mén)RUE,FALSE。//本題分值}④主觀題Struct subjective_subject{ CString Title。//答案分析 int score。按照這個(gè)順序,就可以一次將一個(gè)試卷文件完全的讀入內(nèi)存。理論上講我們可以將文件中的數(shù)據(jù)一個(gè)一個(gè)讀取,但為了操作方便,而且每個(gè)結(jié)構(gòu)的內(nèi)容是固定的,在實(shí)際的使用中我將這些結(jié)構(gòu)封裝成類(lèi),提供了一個(gè)串行化接口函數(shù),非常的方便,例如:void CSjudge_subject::Serialize(CArchiveamp。 } else { ar m_Title m_ans m_score。CSjudge_subject m_information。file,CArchive::store)。}這就完成了類(lèi)CSjudge_subject的寫(xiě)入文件過(guò)程。對(duì)于題目來(lái)講,都是調(diào)用的一個(gè)函數(shù),沒(méi)有任何的不同。注銷(xiāo)部分只需要填寫(xiě)兩種信息,號(hào)碼和姓名,當(dāng)匹配時(shí)認(rèn)為不是誤操作,即可執(zhí)行刪除操作。像這樣一個(gè)輕量級(jí)的考試系統(tǒng),服務(wù)器是唯一能夠訪問(wèn)數(shù)據(jù)庫(kù)的部分,從傳統(tǒng)考試來(lái)看,試卷由老師批閱后將成績(jī)發(fā)放到學(xué)生手中,而本系統(tǒng)采用的方式即是模仿這種方式,如果是局部考試,這種方式是完全可以滿(mǎn)足需求的,而像CET那樣的考試的確需要B/S的查詢(xún)方式,那樣更方便,而本系統(tǒng)所針對(duì)的考試方式而言是不需要的。實(shí)現(xiàn)代碼如下:BOOL CscoreDlg::OnInitDialog(){ CDialog::OnInitDialog()。 (_T(查詢(xún)個(gè)人信息))。 CRect listRect。listRect)。 this(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP)。 this(1,_T(選擇題分?jǐn)?shù)),LVCFMT_LEFT,width/6,1)。 this(3,_T(判斷題分?jǐn)?shù)),LVCFMT_LEFT,width/6,1)。 this(5,_T(總分),LVCFMT_LEFT,width/6,1)。}其次是根據(jù)用戶(hù)的選項(xiàng)來(lái)調(diào)整查詢(xún)條件,響應(yīng)函數(shù):void CscoreDlg::OnBnClickedButton2(){ // TODO: 在此添加控件通知處理程序代碼 if(this() == 0)//班級(jí) { int index = this()。 //找出所有在此班級(jí)的人的學(xué)號(hào) CSETstu_info stuset(amp。 CString strSQL。 //異常處理 try { (CRecordset::dynaset,strSQL)。 CSETstu_score_detail stuscoreSet(amp。 (_T(select * from stu_score_detail where stu_no = %d),xuehao)。 int i=0。 (_T(%d),)。 (_T(%d),)。 (_T(%d),)。 (index,_T(SD))。 (index,1,selects)。 (index,3,judges)。 (index,5,all)。 ()。 } ()。 }} else if(this() == 1)//個(gè)人 { //當(dāng)關(guān)鍵詞是姓名時(shí) CSETstu_info stuSet(amp。 CString strSQL。 (keyword,256)。%s39。 try { (CRecordset::dynaset,strSQL)。 return。 CSETstu_score_detail stuscoreSet(amp。 (_T(select * from stu_score_detail where stu_no = %d),xuehao)。 int i=0。 (_T(%d),)。 (_T(%d),)。 (_T(%d),)。 (index,_T(SD))。 (index,1,selects)。 (index,3,judges)。 (index,5,all)。 ()。 ()。 } } else { MessageBox(_T(請(qǐng)選擇查詢(xún)方式!))。(1)答卷的存儲(chǔ)和試卷的存儲(chǔ)類(lèi)似的結(jié)構(gòu),原理相同。原因在于如果根據(jù)試卷名也就是文件名來(lái)查找答案是不可靠的,有可能文件名被更改。(2)答卷的存儲(chǔ)讀取與試卷的存儲(chǔ)類(lèi)似,在此不再累述。//收集到的答卷數(shù)目 int ans_num。//匹配碼 CString create_time。 //已批改的答卷數(shù)目}②選擇題typedef Struct select_subject{ DWORD ans。 CString str_ans。 //答案}⑤主觀題typedef Struct subjective_subject{ CString Title。}本系統(tǒng)對(duì)與文件傳輸?shù)募夹g(shù)要求不高,人工的考試時(shí)將試卷發(fā)送到學(xué)生手里,本系統(tǒng)則是用發(fā)送數(shù)據(jù)的方式講試卷的數(shù)據(jù)發(fā)送到客戶(hù)端。本系統(tǒng)沒(méi)有在網(wǎng)絡(luò)方面實(shí)現(xiàn)復(fù)雜的功能,也沒(méi)有考慮過(guò)多意外的情況,也就是文件的完整和正確性是沒(méi)有保證的,這是需要在以后考慮的問(wèn)題。CString filepath = m_pfileDlgGetPathName()。m_pfile = new CFile(filepath,CFile::modeRead)。UINT nBytesRead = 100。while(nBytesRead == 100){ nBytesRead = m_pfileRead(Buffer,100)。}int num = strlen(Buffer)。\039。}m_pfileClose()。圖10 新建試卷教師用戶(hù)登陸后,點(diǎn)擊“新建試卷”按鈕,出現(xiàn)如圖10所示界面,點(diǎn)擊“試卷生成向?qū)А卑粹o,出現(xiàn)如圖11所示界面。選擇題型后點(diǎn)擊“下一步”,進(jìn)入如圖12所示界面。其他題目的輸入操作類(lèi)似。圖13 點(diǎn)擊“試卷科目”右邊的下拉列表進(jìn)行相應(yīng)選擇,并在下面的三項(xiàng)中輸入相應(yīng)的內(nèi)容,點(diǎn)擊“完成”。點(diǎn)擊“開(kāi)始考試”按鈕,等學(xué)生連接到服務(wù)器后,出現(xiàn)如圖15所示界面。圖16客戶(hù)端列表彈出“試卷發(fā)送成功”對(duì)話(huà)框,點(diǎn)擊“確定”,則試卷發(fā)送成功。圖18連接服務(wù)器點(diǎn)擊“連接服務(wù)器”按鈕,等教師發(fā)送試卷后,再點(diǎn)擊“答題”按鈕進(jìn)行答題。圖19答題點(diǎn)擊“答題”按鈕后出現(xiàn)如圖19所示界面,學(xué)生答題后點(diǎn)擊“確定”按鈕。圖21用戶(hù)管理輸入教師的姓名、性別、年齡、聯(lián)系方式及密碼后,點(diǎn)擊“快速注冊(cè)”,系統(tǒng)彈出“注冊(cè)用戶(hù)成功”對(duì)話(huà)框,點(diǎn)擊“確定”,用戶(hù)注冊(cè)成功。用戶(hù)的注冊(cè),實(shí)際上就是往表teacher_iofo中添加了一天記錄,而注銷(xiāo)就是刪除指定的記錄。 int sex=0,age=23。 //取值 this(strno)。 this(strpass)。 age= _wtoi(())。 sex = this()。//男 else sex=0。 thisGetDlgItem(IDC_STATIC_WARN)SetWindowText(m_warn_msg)。 } //插入數(shù)據(jù)庫(kù)的teacher_info表中 CString strSQL。g_db)。 try { (CRecordset::dynaset,strSQL)。 int num = 。 CString strNewTeaNum。 (strNewTeaNum)。 = strname。 = age。 = strpass。 ()。 MessageBox(warmessage)。 } if(result) { MessageBox(_T(注冊(cè)用戶(hù)成功!))。 this(_T())。 this(_T())。 }}注銷(xiāo)代碼:void CManageDlg::OnBnClickedBnLogout(){ // TODO:注銷(xiāo)用戶(hù) CString strno,strnam
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1