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

正文內(nèi)容

無紙化考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(參考版)

2025-06-25 21:16本頁面
  

【正文】 int n。 this(_T())。 this(_T())。 this(_T())。 result=0。 } } catch(CDBException* e) { CString warmessage = em_strError+_T(,請(qǐng)更改教師號(hào)再重試!)。 ()。 = strinfo。 = (sex == 1)。 ()。 (_T(%d),num)。 num++。 if(!()) { ()。 (_T(select * from teacher_info))。 CSETteacher_info tea_set(amp。 return。//女 //信息不能為空 if(()||()||()) { thism_warn_msg = (***請(qǐng)?zhí)顚懰斜仨毜淖?cè)信息***)。 if(0 == sex) sex=1。 this(strinfo)。 this(strage)。 this(strname)。 int result=1。相關(guān)代碼如下:注冊(cè)代碼:void CManageDlg::OnBnClickedBnRegister(){ // TODO: 注冊(cè)新用戶 //不考慮數(shù)據(jù)為空,不考慮插入失敗 CString strno,strname,strinfo,strpass,strage。在如圖21界面中輸入教師號(hào),如3,點(diǎn)擊“快速注銷”,系統(tǒng)彈出“確認(rèn)注銷用戶章子怡?”對(duì)話框,并在“姓名”右邊顯示教師姓名,點(diǎn)擊“確定”,彈出“注銷用戶成功”對(duì)話框,再點(diǎn)擊“確定”,用戶注銷成功。6.3管理員操作圖20管理員登錄管理員登陸后(系統(tǒng)默認(rèn)用戶名root,密碼good),點(diǎn)擊“用戶管理”出現(xiàn)如圖21所示界面。如圖18所示。圖17學(xué)生登錄學(xué)生輸入姓名、學(xué)號(hào)和服務(wù)器IP后,點(diǎn)擊“確定”按鈕,登陸后進(jìn)入下一界面。圖15開始考試點(diǎn)擊“發(fā)送試卷”按鈕,彈出如圖16所示窗口,選擇需要發(fā)送試卷的學(xué)生,點(diǎn)擊“發(fā)送”。圖14題庫點(diǎn)擊“現(xiàn)有題庫”中的“刷新”按鈕,出現(xiàn)如圖14所示的界面。點(diǎn)擊“下一步”后彈出一個(gè)對(duì)話框,選擇“確定”,出現(xiàn)如圖13所示界面。圖12 題目輸入點(diǎn)擊“單選題第1題”,在“題目”下方空白部分輸入題目?jī)?nèi)容,然后在“選項(xiàng)及答案”下各項(xiàng)輸入相應(yīng)的答案。圖11 題型選擇教師有五個(gè)題型可供選擇,至少選擇一種題型。 6 系統(tǒng)界面設(shè)計(jì)圖9 教師登陸界面教師登陸服務(wù)器端(系統(tǒng)默認(rèn)教師號(hào)yuer,密碼good),可以開始創(chuàng)建試卷。 this(Buffer,num)。if(num 100){ Buffer[num] = 39。 /*發(fā)送*/ this( Buffer,100)。char Buffer[100]。m_pfileSeekToBegin()。if(m_pfile != NULL) delete m_pfile。下面是一些代碼片段://讀取文件并發(fā)送ASSERT(m_pfileDlg!=NULL)。這些文件也可以通過拷貝的方式放到客戶端指定的目錄下。//題目,讓閱卷者能看到題目 CString str_ans。 //答案}④判斷題typedef Struct judge_subject{ DWORD ans。 //答案A,B,C,D,E OR A|B}③填空題typedef Struct fillblank_subject{ CString Title。//創(chuàng)建時(shí)間 int checked_num。//應(yīng)當(dāng)收集到的答卷總數(shù) CString matchcode。(3)相關(guān)結(jié)構(gòu)設(shè)計(jì)如下:①文件頭typedef struct ans_files{ int ans_collected_num。如果在試卷中加入匹配碼就不一樣了,只要匹配碼匹配,該文件中的答案就是要找的答案了。答卷中增加了一個(gè)匹配碼,用于閱卷時(shí)查找答案。 }}成績(jī)查詢流程圖如圖9所示 圖9成績(jī)查詢流程圖本系統(tǒng)在成績(jī)查詢功能上的設(shè)置相對(duì)簡(jiǎn)陋,但由于每次考試的成績(jī)都被錄入了數(shù)據(jù)庫,要對(duì)這些數(shù)據(jù)進(jìn)行復(fù)雜的分類和統(tǒng)計(jì)也是容易實(shí)現(xiàn)的,首先需要增加一些查詢條件,如果數(shù)據(jù)庫內(nèi)部使用的是存儲(chǔ)過程,直接更改存儲(chǔ)過程或新增加一些存儲(chǔ)過程,然后在程序中調(diào)用即可。 } catch(CDBException* e) { MessageBox(em_strError)。 } ()。 index++。 (index,4,subjects)。 (index,2,fillblanks)。 (index,0,stuno)。 (_T(%d),)。 (_T(%d),)。 (_T(%d),)。 while(!()) { CString stuno,selects,fillblanks,judges,subjects,all。 (CRecordset::dynamic,strSQL)。g_db)。 } long xuehao = 。 if(()) { ()。),keyword)。 (_T(select * from stu_info where stu_name = 39。 CString keyword。g_db)。 } catch(CDBException* e) { MessageBox(em_strError)。 } ()。 index++。 (index,4,subjects)。 (index,2,fillblanks)。 (index,0,stuno)。 (_T(%d),)。 (_T(%d),)。 (_T(%d),)。 while(!()) { CString stuno,selects,fillblanks,judges,subjects,all。 (CRecordset::dynamic,strSQL)。g_db)。 while(!()) { long xuehao = 。 (_T(select * from stu_info where classno = %d),index)。g_db)。 this(index,classname)。 return TRUE。 this(4,_T(主觀題分?jǐn)?shù)),LVCFMT_LEFT,width/6,1)。 this(2,_T(填空題分?jǐn)?shù)),LVCFMT_LEFT,width/6,1)。 this(0,_T(學(xué)好),LVCFMT_LEFT,width/6,1)。 int width = ()+2。 this(amp。 (1)。 //TO DO (_T(查詢班級(jí)信息))。成績(jī)查詢分兩種方式,根據(jù)班級(jí)查詢:查詢的是某個(gè)班一次考試的成績(jī),根據(jù)學(xué)號(hào)查,查一個(gè)學(xué)生的所有考試成績(jī),可以根據(jù)不同條件,返回不同分類的結(jié)果。用戶管理流程圖如圖8所示:圖8用戶管理流程圖成績(jī)查詢?cè)诒鞠到y(tǒng)中只提供給服務(wù)器端使用,這意味著只能是老師和管理來查詢。用戶管理是管理員的權(quán)限之一,用于新建,刪除,修改老師及學(xué)生用戶,分為注冊(cè)和注銷兩部分,注冊(cè)部分填寫詳細(xì)資料,保證作為主關(guān)鍵字的部分不重復(fù),出錯(cuò)時(shí)提示出錯(cuò)的部分,為了界面的友好,本系統(tǒng)采用紅色字體來提示錯(cuò)誤而不是彈出會(huì)讓人討厭的對(duì)話框。(2)文件的存儲(chǔ)與文件的讀取實(shí)際上可以歸結(jié)為一個(gè)問題,只是方向不一樣而已,讀取是從文件讀入內(nèi)存,存儲(chǔ)從內(nèi)存寫入文件。 this(ar)。if((123,CFile::modeCreate|CFile::modeWrite)){ CArchive ar(amp。 }}調(diào)用方法:CFile file。 ar){ if(()) { ar m_Title m_ans m_score。在程序內(nèi)部我們采用的是結(jié)構(gòu)指針,在需要時(shí)動(dòng)態(tài)分配空間來存儲(chǔ)這些數(shù)據(jù)。//本題分值} 判斷和主觀題,個(gè)數(shù)在頭結(jié)構(gòu)中有說明。//題目 CString str_ans。 int score。//題目 DWORD ans。//幾個(gè)空,當(dāng)然也是答案的個(gè)數(shù) int score。//題目 CString szCSTR[5]。 int score。//答案?jìng)€(gè)數(shù),單選題一般四個(gè),多選題可能5個(gè) DWORD ans。//題目 CString szCSTR[5]。 CString matchcode。//使用次數(shù) CString creator。//試卷密碼 CTime create_date。 int subjective_num。 int judge_num。 int fillblank_num。 int multi_select_num。//題型數(shù) int single_select_num。(1)試卷的存儲(chǔ)采用文件存儲(chǔ),每個(gè)文件首先一個(gè)結(jié)構(gòu)說明了整個(gè)文件的內(nèi)容,該結(jié)構(gòu)說明如下:Struct filehead{ int standard_score。 }}自動(dòng)交卷即在試卷原來規(guī)定的時(shí)間到來時(shí)禁止用戶答題,并保存當(dāng)前答題數(shù)據(jù)。// will answer this paper //find the paper file (m_filename)。要開始答題,首先是要把試卷顯示出來,還記得前面提到的動(dòng)態(tài)鏈接庫嗎,它將在此再次被使用:void CExamClientDlg::OnBnClickedButton2(){ // TODO: 在此添加控件通知處理程序代碼 if(IsWindow(this)) (SW_SHOW)。 GetDlgItem(IDC_BUTTON2)EnableWindow(TRUE)。//注意數(shù)據(jù)是接著前面寫的,因此要移動(dòng)數(shù)據(jù)流指針到最后 (Buffer,num)。 (fullfilename,CFile::modeWrite)。 fullfilename += m_filename。 (IDS_RECEIVE_PAPERS)。\039。//創(chuàng)建一個(gè)文件 } else if(() == FILENAME_GETED)//狀態(tài)是剛剛獲得了文件名時(shí) { int num = (Buffer,256)。 fullfilename += m_filename。 (IDS_RECEIVE_PAPERS)。 thism_filename = CString(Buffer)。//讀取發(fā)送來的數(shù)據(jù) Buffer[num/2] = 39。 if(() == CONNECTED_SUCCEED)//狀態(tài)是剛剛連接成功時(shí) { (FILENAME_GETED)。 }}關(guān)于狀態(tài)其實(shí)是幾個(gè)宏定義:define CONNECTION_SUCCEED 0define NAME_GETED 1define FILESEND_BEGIN 2define FILESEND_END 3再看看客戶端接受數(shù)據(jù)的函數(shù):void CExamClientDlg::OnReceive(void){ TCHAR Buffer[256]。 } } thissetstate(3)。\039。//從文件中每次讀取255個(gè)字節(jié) thisSend(sz,num)。 thisSend((void*)(0),len*2)。 ZeroMemory(sz,256)。 CFile file(fullfilename,CFile::modeRead)。 fullfilename += _T(\\)。}這樣,只要客戶端來連接都會(huì)在被接受,套接字信息被存儲(chǔ)到map中,直至達(dá)到連接上限,只要有一個(gè)客戶端連接上來,服務(wù)器端的發(fā)送按鈕就成為可用狀態(tài),那么試卷如何發(fā)送呢,首先發(fā)送的其實(shí)是試卷的名稱,再接受和發(fā)送的過程中服務(wù)器端和客戶端會(huì)改變自己的狀態(tài),這樣做的目的就是讓套接字知道自己現(xiàn)在接受到的是什么數(shù)據(jù)應(yīng)該如何處理,下面看看服務(wù)器端發(fā)送試卷的函數(shù):void CMysocket::sendfile(CString filename){ CString fullfilename。 } m_psocket = new CMysocket()。//存儲(chǔ)到map中,方便以后查找,發(fā)送文件 thissocketmap[ip] = m_psocket。 m_psocketsetstate(CONNECTION_SUCCEED)。 UINT port。//接受客戶端的連接 ASSERT(m_psocketm_hSocket != INVALID_SOCKET)。 ASSERT(m_sever_socket != NULL)。//開始偵聽了 return TRUE。//這里動(dòng)態(tài)分配了一個(gè)套接字 m_psocketm_pControlDlg = this。 GetDlgItem(IDC_BN_SENDPAPER)EnableWindow(FALSE)。 this(4,_T(使用次數(shù)),LVC
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1