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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-c語(yǔ)言題庫(kù)管理系統(tǒng)設(shè)計(jì)—論文(編輯修改稿)

2025-01-06 17:26 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 LSE。 return DB_NOT_OPEN。 } AND_CATCH(CMemoryException,pEx) { pExReportError()。 m_IsDBOpen = FALSE。 return MEMORY_EXCEPTION。 } AND_CATCH(CException,e) { m_IsDBOpen = FALSE。 return MS_OTHER_EXCEPTION。 } END_CATCH m_IsDBOpen = TRUE。 return S_OK。 } void COdbcDB::DisConnect() { m_IsDBOpen = FALSE。 ()。 } void COdbcDB::ExecuteQueryValue(LPCTSTR lpszSQL,CStringamp。 value) { if(!()){ return。 } TRY{ CRecordset rs(amp。m_db)。 //打開(kāi)記錄集 . (CRecordset::dynaset, lpszSQL)。 if (!()) { ((short)0, value)。 } ()。 }//異常處理 CATCH(CDBException,ex) { AfxMessageBox (exm_strError)。 AfxMessageBox (exm_strStateNativeOrigin)。 } AND_CATCH(CMemoryException,pEx) { pExReportError()。 AfxMessageBox (memory exception)。 } AND_CATCH(CException,e) { TCHAR szError[100]。 eGetErrorMessage(szError,100)。 AfxMessageBox (szError)。 } END_CATCH } void COdbcDB::ExecuteQuery(LPCTSTR lpszSQL,CDStrsamp。 Fields) { if(!()){ return。 } TRY{ CRecordset rs(amp。m_db)。 //打開(kāi)所有的信息記錄 . (CRecordset::dynaset, lpszSQL)。 while (!()) { CStrs strs。 CString temp。 //獲取一條記錄中的所有字段值保存到字符串?dāng)?shù)組 strs 中 for(short i = 0 。 i 。 i++){ ((short)i, temp)。 (temp)。 } //保存一條記錄到二維字符串?dāng)?shù)組中 (strs)。 //轉(zhuǎn)到下一條紀(jì)錄 ()。 } ()。 }//異常處理 CATCH(CDBException,ex) { AfxMessageBox (exm_strError)。 AfxMessageBox (exm_strStateNativeOrigin)。 } AND_CATCH(CMemoryException,pEx) { pExReportError()。 AfxMessageBox (memory exception)。 } AND_CATCH(CException,e) { TCHAR szError[100]。 eGetErrorMessage(szError,100)。 AfxMessageBox (szError)。 } END_CATCH } 以上是 用于數(shù)據(jù)庫(kù)操作的封裝類(lèi),只要在本系統(tǒng)的工程中引入上面四個(gè)文件 , , , ,然后在系統(tǒng)的 文件中加上 include 就可以在本工程中的所有類(lèi)中使用 對(duì)象 g_odbcDB 進(jìn)行數(shù)據(jù)庫(kù)操作了。 系統(tǒng)登錄 系統(tǒng) 登錄,是系統(tǒng)安全的關(guān)口,可以限制沒(méi)有操作權(quán)限的用戶對(duì)系統(tǒng)的重要信息的更改,所以在登錄窗口中要對(duì)用戶的合法性進(jìn)行檢查,還要對(duì)用戶的權(quán)限進(jìn)行確定。 所以要在用戶輸入用戶名和密碼后,查詢數(shù)據(jù)庫(kù)來(lái)確認(rèn)用戶合法性,和賦予用戶對(duì)應(yīng)的權(quán)限,關(guān)于用戶的權(quán)限和用戶信息都 放在表: user_stu: 字段名 數(shù)據(jù)類(lèi)型 字段大小 主鍵 stuid 文本 50 是 stuname 文本 8 否 stupwd 文本 20 否 user_admi 數(shù)字 長(zhǎng)整型 否 用戶登錄界面要簡(jiǎn)潔明了 ,其中的圖片是要從外部引入,效果如下: 對(duì)應(yīng)的對(duì)話框要接受用戶名和密碼,然后查詢數(shù)據(jù)庫(kù)表,來(lái)進(jìn)行確認(rèn),并讀取user_admi 字段來(lái)設(shè)定用戶的權(quán)限。如果,沒(méi)有通過(guò)確認(rèn),則提示用戶:用戶名或密碼有錯(cuò)。本對(duì)話框?yàn)榱烁菀撞僮鳎诘卿泴?duì)話框的初始化中把用戶表中的用戶名讀取出來(lái), 放到用戶名欄(接受用戶名的控件是一個(gè)可以下拉的組合框);對(duì)應(yīng)對(duì)話框的的控件綁定的變量如下: 給 對(duì)話框的 登錄 按鈕添加消息響應(yīng)函數(shù): OnOk();為對(duì)話框添加初始化函數(shù):OnInitDialog(); 實(shí)現(xiàn)代碼如下: BOOL CLoginDlg::OnInitDialog() { CDialog::OnInitDialog()。 CDStrs m_name。 CString strSQL。 UpdateData(TRUE)。 //(select * from password where user=39。%s39。 AND passwd=39。%s39。,m_strUser,m_strPass)。 strSQL=select stuid from user_stu。 (strSQL,m_name)。 for(int i=0。i()。i++) { CStrs strs=m_name[i]。 (strs[0])。 // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } // TODO: Add extra initialization here return TRUE。 // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CLoginDlg::OnOK() { // TODO: Add extra validation here CDStrs value。 CString strSQL。 CTestingApp* ptheApp = (CTestingApp *) AfxGetApp()。 UpdateData(TRUE)。 //檢查用戶名是否輸入 if(()) { AfxMessageBox(請(qǐng)輸入用戶名! )。 ()。 return。 } if(()) { AfxMessageBox(請(qǐng)輸入密碼! )。 ()。 return。 } //從用戶表中檢查用戶名密碼是否正確 (select * from user_stu where stuid=39。%s39。 AND stupwd=39。%s39。,m_strUser,m_strPwd)。 (strSQL,value)。 if(()==0) { //密碼錯(cuò)誤處理 MessageBox(密碼錯(cuò)誤,請(qǐng)重新輸入 )。 m_strPwd=。 ()。 UpdateData(FALSE)。 } else { //分配用戶權(quán)限 if(value[0][3]==0) ptheAppm_bIsAdmin = FALSE。 else ptheAppm_bIsAdmin = TRUE。 Userid=m_strUser。 CStrs strs。 CDStrs strShijName。 (select shijname from chengj_tab where stuid=39。%s39。 and handup=39。no39。 ,Userid)。 (strSQL,strShijName)。 if(()!=0) { HavEx=TRUE。 } else { HavEx=FALSE。 } CDialog::OnOK()。 } } 試題庫(kù)系統(tǒng)主界面 用戶登錄后,要出現(xiàn)一個(gè)主界面,用戶的所有操作都在這里實(shí)現(xiàn)。主界面包括了菜單的設(shè)計(jì),和工具欄的設(shè)計(jì): 菜單如下: 在菜單的設(shè)計(jì)中,給每一個(gè)菜單設(shè)定一個(gè)不同的 ID,但是工具欄的設(shè)計(jì)中要用到菜單的 ID,對(duì)應(yīng)特定的菜單的工具按鈕,是為了實(shí)現(xiàn)菜單功能的一個(gè)快捷途徑。所以工具欄按鈕的 ID都對(duì)應(yīng)一個(gè)菜單項(xiàng)。 工具欄設(shè)計(jì): 要 使用數(shù)據(jù)庫(kù)中的表中的信息,要在程序運(yùn)行前的初始化中連接數(shù)據(jù)庫(kù),所以要在主程序的初始化函數(shù) BOOL CTestingApp::InitInstance()中添加如下語(yǔ)句: CString a,b,c。 a=shitiku。 (a,b,c)。 AfxEnableControlContainer()。 要 控制系統(tǒng)安全,必須使登錄界面早于主界面運(yùn)行,所以要在主程序初始化函數(shù)中上面的語(yǔ)句后添加如下代碼: CLoginDlg loginDlg。 if(()!=IDOK) { return FALSE。 } 并且在主程序的 文件開(kāi)始處添加 include ,聲明對(duì) CLoginDlg 的對(duì)象的使用。 要處理用戶對(duì)菜單和工具條按鈕的操作信息,要在主框架類(lèi) CMainFrame的 CPP 文件中添加對(duì)應(yīng)按鈕和菜單的 COMMAND 消息響應(yīng)函數(shù):并且要在主程序中添加一個(gè)變量 BOOL m_bIsAdmin 用來(lái)標(biāo)識(shí)管理員用戶,在非管理員和管理員不能同時(shí)使用的功能,要給對(duì)應(yīng)的菜單添加 UPDATE_COMMACD_UI 類(lèi)型的消息響應(yīng)函數(shù),并且在菜單的 pCmdUIEnable()。函數(shù)中用主函數(shù) CTstingApp 中的變量m_bIsAdmin 作為 pCmdUIEnable()。的參數(shù),就能限制非管理員用戶使用對(duì)應(yīng)的菜單。 關(guān)于添加菜單響應(yīng)函數(shù),如下圖: 函數(shù)具體實(shí)現(xiàn)如下: void CMainFrame::OnSysQuit() { // TODO: Add your mand handler code here if(AfxMessageBox( 您確定要退出系統(tǒng)嗎 ?,MB_OKCANCEL)==IDCANCEL) { return。 } CFrameWnd::OnClose()。 } void CMainFrame::OnSysReload() { // TODO: Add your mand handler code here CLoginDlg Dlg。 ()。 } void CMainFrame::OnSysUser() { // TODO: Add your mand handler code here CUserDlg UserDlg。 ()。 } void CMainFrame::OnUpdateSysUser(CCmdUI* pCmdUI) { // TODO: Add your mand update UI handler code here CTestingApp* ptheApp = (CTest
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1