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

正文內(nèi)容

中學(xué)教務(wù)管理軟件本科畢業(yè)論文-資料下載頁

2025-08-23 15:31本頁面

【導(dǎo)讀】的指導(dǎo)下進行的研究工作及取得的成果。盡我所知,除文中特別加以。已在文中作了明確的說明并表示了謝意。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文。不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。究做出重要貢獻的個人和集體,均已在文中以明確方式標(biāo)明。全意識到本聲明的法律后果由本人承擔(dān)。同意學(xué)校保留并向國家有關(guān)部門或機構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論。涉密論文按學(xué)校規(guī)定處理。用戶管理功能分為添加,刪除用戶以及用戶權(quán)限的授予和撤消。其中權(quán)限設(shè)計使用了較為靈。32種權(quán)限,并且易于管理和判斷。象結(jié)合在一起完成數(shù)據(jù)的顯示。據(jù)庫的設(shè)計思想、具體編程的細節(jié),以及設(shè)計中的重點、難點技術(shù)和解決方案。本系統(tǒng)使用的開發(fā)工具是VC++。本系統(tǒng)所附的軟盤中有系統(tǒng)的可執(zhí)行程序和所有源程序。

  

【正文】 x amp。rCtlYear, CComboBox amp。rCtlMonth, CComboBox amp。rCtlDay) { //參數(shù) rCtlYear,rCtlMonth, rCtlDay 是日期組合框的引用。 CString strRet。 CString strYear,strMonth,strDay。 // 保存從組合框中獲取的字符串的變量 //從組合框中獲取的字符串 ( strYear )。 ( strMonth )。 ( strDay )。 //組合成一個數(shù)據(jù)庫可接受的日期 ( %s/%s/%s, strYear, strMonth, strDay )。 return strRet。 } /*該方法完成在組合框中選中一個字符串,也就是使字符串呈現(xiàn)在組合框的編輯框中。如果字符串在組合框中不存在 ,則選中默認(rèn)字符串 */ void MyComboBox::SelectStr(CString str) { int iItem = SelectString( 1, (0) )。// 調(diào)用基類選擇字符串的方法 if( iItem 0 ){// 要選擇的字符串不在組合框中,試著選擇默認(rèn)字符串 iItem = SelectString( 1, DEFAULT_LIST_CONTENT )。 if( iItem 0 ){ // 默認(rèn)字符串也不在組合框中,那么先添加默認(rèn)字符串再選擇。 高等教育自學(xué)考試計算機應(yīng)用專業(yè)本科生畢業(yè)論文 第 23 頁 iItem = AddString( DEFAULT_LIST_CONTENT )。 // 添加默認(rèn)字符 SetCurSel( iItem )。// 選擇默認(rèn)字符 } } } /*該方法完成在組合框中顯示日期 */ void MyComboBox::ShowDate(MyComboBoxamp。 rYear, MyComboBoxamp。 rMonth, MyComboBoxamp。 rDay, CString strYear, CString strMonth, CString strDay) {/*參數(shù) Year,rMonth,rDay 是日期組合框引用 ,strYear,strMonth,strDay 是要顯示的日期。該方法參數(shù)很多,實際調(diào)用時使用宏進行了簡化 */ ( 1, (0) )。 ( 1, (0))。 ( 1, (0))。 } 除了上面列出的方法外,該類還包括以下方法: ? Void ShowOleDate(MyComboBoxamp。 rYear,MyComboBoxamp。 rMonth,MyComboBoxamp。 rDay, COleDateTime dt)。//用于顯示 Ole 類型的日期。 ? void SelectDefault()。 //選中默認(rèn)字符串 ? void ShowCurrentDate(MyComboBoxamp。 rYear,MyComboBoxamp。 rMonth,MyComboBoxamp。 rDay)。//顯示當(dāng)前時間。該方法主要用在要設(shè)置默認(rèn)時間的時候,例如:在新建班信息時要指定成立時間,這系統(tǒng)獲取當(dāng)前日期作為日期輸入框中的默認(rèn)值。 這些方法只是為了處理不同數(shù)據(jù)類型和簡化編 程而對上面介紹的方法的簡單封裝。這里不再贅述。 設(shè)計這組宏的目的是為了簡化組合日期和顯示日期時傳遞的參數(shù)。從上面的程序清單可以看出組和日期要傳遞 3 個參數(shù),顯示日期最多時可能要傳遞 6 個參數(shù),所以有必要考慮對它的調(diào)用進行簡化。下面是該組宏的代碼: //該宏完成組合日期字符串,返回組合的日期字符串。 define COMB_DATE() ( MyComboBox::CombDateStr(m_ctlYear, m_ctlMonth, m_ctlDay) ) //該宏完成顯示 系統(tǒng)當(dāng)前日期 define SHOW_CUR_DATE() ( MyComboBox::ShowCurrentDate(m_ctlYear, m_ctlMonth, m_ctlDay) ) //該宏完成顯示日期,日期由參數(shù) y,m,d 指出, y,m,d 分別代表年月日 define SHOW_DATE(y,m,d) ( MyComboBox::ShowDate(m_ctlYear, m_ctlMonth, m_ctlDay, y, d, m) ) //該宏完成顯示 Ole 類型的日期,參數(shù) ODT 是要顯示的 Ole 日 期。 define SHOW_OLE_DATE(ODT) ( MyComboBox::ShowOleDate(m_ctlYear, m_ctlMonth, m_ctlDay,ODT) ) 要使上面這組宏正常工作,關(guān)鍵在于日期組合控件的命名規(guī)則。系統(tǒng)約定:對出現(xiàn)在不同地方的所有日期組合框使用統(tǒng)一的命名,年的組合框為: m_ctlYear、月的組合框為:m_ctlMonth、日的組合框為: m_ctlDay。這樣,這組宏就可以正常工作了。實際編程中發(fā)現(xiàn)這高等教育自學(xué)考試計算機應(yīng)用專業(yè)本科生畢業(yè)論文 第 24 頁 幾個宏很好用。 167。 用戶權(quán)限管理的設(shè)計 登錄過程完成用 戶名,密碼的驗證,驗證通過后確定操作權(quán)限。設(shè)計的思路是用一張數(shù)據(jù)庫表記錄用戶名,密碼,和權(quán)限標(biāo)記。登錄時在表中查找用戶名,找到用戶名后再比較密碼,如果兩項都匹配,則從用戶信息表中讀權(quán)限標(biāo)記,參照該權(quán)限標(biāo)記確定該用戶能使用系統(tǒng)哪些功能。登錄進程流程圖如下: 權(quán)限標(biāo)記用二進制表示,共 32 位,每一位代表一項功能,值為 1 一表示有操作權(quán)限,值為 0 表示沒有操作權(quán)限。系統(tǒng)內(nèi)設(shè)置一張系統(tǒng)功能與權(quán)限標(biāo)記映射表,將每一項功能與一個特定權(quán)限標(biāo)記建立起聯(lián)系,這樣就能用“位或”操作給用戶賦予權(quán)限,用“位與”操作判斷用戶的具體權(quán)限。 權(quán)限映射表設(shè)計如下: //與權(quán)限有關(guān)的定義 define PERM_TYPE __int32 // 權(quán)限標(biāo)記數(shù)據(jù)類型 define MAXFUNCTION 32 // 最大權(quán)限數(shù) typedef struct _PermissionTable //權(quán)限映射表項目 { PERM_TYPE iPermission。 // 與某一功能相關(guān)的權(quán)限標(biāo)記 char strName[50]。 // 權(quán)限名 int posMenu。 // 與某一功能相關(guān)的菜單 }PermissionTable。 PermissionTable PT[]={// 權(quán)限映射表 { 0x00000001,系統(tǒng)管理 , 7}, { 0x00000002,學(xué)生資料管理 , 1}, { 0x00000004,老師資料管理 , 2}, { 0x00000008,考試管理 , 3}, 起動登錄提示框 (圖 ) 用戶輸入用戶名和密碼 驗證用戶名與密碼 用戶數(shù)據(jù) 未通過 通過 按照權(quán)限設(shè)置菜單 圖 登錄流程圖 高等教育自學(xué)考試計算機應(yīng)用專業(yè)本科生畢業(yè)論文 第 25 頁 { 0x00000010,課程管理 , 4}, { 0x00000020,班級管理 , 5}, { 0x00000040,成績查詢 , 6} }。 記錄用戶名與密碼的數(shù)據(jù)庫表結(jié)構(gòu)如圖 所示 。 a 記錄用戶信息的數(shù)據(jù)表 b 登錄對話框 圖 登錄對話框和記錄用戶信息的數(shù)據(jù)表 驗證用戶名與密碼可以用 SQL 語句。實現(xiàn)的 SQL 語句如下 : 其中 $UserName,$Password 為用戶輸入 Select UserName From User Where UserName = $UserName AND Password = $Password 如果該查詢沒有結(jié)果,則驗證不能通過。 按照權(quán)限設(shè)置菜單的程序如下: // 根據(jù)權(quán)限標(biāo)記設(shè)置菜單的允許 /禁用 void CJwglApp::setMenu() { int I。 CMenu *systemMenu = thisGetMainWnd()GetMenu()。 // 獲取系統(tǒng)菜單 for(I = 0。 I MAXFUNCTION。 I++) {// 系統(tǒng)一開始所有菜單都是有效的,所以下面只要處理沒有權(quán)限的情況。 if( ! ( PT[I].iPermission amp。 m_iPermission ) amp。amp。 PT[I].posMenu !=NULL ) {/*當(dāng)前系統(tǒng)沒有 MAXFUNCTION 項功能,所以權(quán)限映射 表并沒有全部填滿。沒有填 的各項都是 0,所以系統(tǒng)會誤判為沒有權(quán)限,而設(shè)置 posMenu所指菜單為無效, 但這里 posMenu 也是 0,程序會出現(xiàn)運行時錯誤。所以要加上 PT[I].posMenu != NULL。 */ //下面的語句設(shè)置菜單項無效 systemMenuEnableMenuItem( PT[I].posMenu 1, MF_BYPOSITION | MF_GRAYED )。 高等教育自學(xué)考試計算機應(yīng)用專業(yè)本科生畢業(yè)論文 第 26 頁 } } } 授予或撤消權(quán)限時只要讀取數(shù)據(jù)庫表中的一個字段,授予時 進行位或操作,撤消時進行位與操作。在編程時因為權(quán)限映射表中記錄了權(quán)限名所以方便了很多。權(quán)限管理的面如下: 權(quán)限管理界面 167。 增加、刪除、修改方面的設(shè)計 數(shù)據(jù)的增刪改是系統(tǒng)的重要功能之一,占用比重較大,編程任務(wù)重,并且增刪改涉及到數(shù)據(jù)的安全性和完整性,特別是參照完整性。所以要仔細設(shè)計。 對于修改數(shù)據(jù)的操作引發(fā)的參照完整性問題 Microsoft Access2020 提供的級聯(lián)更新的功能可以滿足要求,所以不需要再設(shè)計了。 對于刪除數(shù)據(jù)的操作引發(fā)的參照完整性問題 Microsoft Access2020 提供 的級聯(lián)刪除的功能不能滿足系統(tǒng)的要求,因為刪除操作引發(fā)參照完整性問題時可能不需要級聯(lián)刪除,大多數(shù)情況下只要將值設(shè)為空。所以設(shè)計系統(tǒng)時要考慮刪除操作引發(fā)參照完整性問題。這方面的問題在本章的“數(shù)據(jù)庫訪問的組織”一節(jié)中討論過,其主要的設(shè)計思想是把這類特殊的刪除操作分配給記錄集,讓記錄集維護相關(guān)字段的參照完整性,具體的刪除細節(jié)對調(diào)用者來說是不可見,這樣就可以將主要精力集中到處理業(yè)務(wù)的操作上,從邏輯上來看,每個記錄集知道怎樣刪除自己維護的字段也是合理的。 對于增加數(shù)據(jù)的操作引發(fā)的參照完整性問題主要是要防止引用不存在的元 組。例如:為學(xué)生指定班時不能指定不存在的班。又如:成績表中的學(xué)生號、課程號都必需在相應(yīng)的其它的表中存在。設(shè)計時解決這類問題的方法是:當(dāng)用戶要輸入這類數(shù)據(jù)時系統(tǒng)將已經(jīng)存在的數(shù)據(jù)收集到組合框供用戶選擇而不由用戶輸入。在數(shù)據(jù)庫方面也使用了 Microsoft Access2020提供的完整性檢查功能,但實際上,只要用戶不脫離本系統(tǒng)進行數(shù)據(jù)庫操作就不會引發(fā)這類完整性問題,因為用戶界面在這方面已經(jīng)做得很好了。這在界面設(shè)計中曾提過。 下面通過系統(tǒng)中的一個實例來說明設(shè)計的方法和具體的編程。編程時利用了前面設(shè)計的擴展了的組合 框控件、擴展了的列表框控件、擴展了的記錄集類來完成數(shù)據(jù)的顯示、數(shù)據(jù)庫完整性的維護、界面方面的所有細節(jié),使得編程時可以將主要精力放在與業(yè)務(wù)相關(guān)的操作上。 擴展組合框控件、擴展列表框控件的方法和主要源程序在前面已列出過,下面只介紹擴高等教育自學(xué)考試計算機應(yīng)用專業(yè)本科生畢業(yè)論文 第 27 頁 展記錄集編程的具體做法。擴展的做法是使用 C++的繼承從原始記錄集類派生一個新類,在新類中加入要擴展的方法。新類的類名是 rsClass,在其中擴展了以下主要方法:刪除一個班、在組合框中顯示某一年級所有班的班號、在列表中顯示某一年級所班的班信息。其中,在組合框中顯示班號是為了方便用戶操作 和保證不引用不存在的實體,這個辦法在系統(tǒng)中很多地方都有運用;另外,在列表中顯示所有班信息是為了供用戶參考。其類的具體編程如下: 說明:使用 static 修飾符是為了使類的方法在類沒有實例化為對象時也可以使用。 記錄集只組織顯示,實際的顯示是由擴展了的列表控件 (ListCtrlEx)和擴展了的 組合框控件 (MyComboBox)完成的。 class rsClass : public CdaoRecordset { public: static void DelClass(CString ClassCode)。//刪除一個班 //在列表中顯示一個年級的所有班信息 static void ShowAllClass( ListCtrlEx amp。rList, CString strGrade)。 // 在列表中顯示所有班的班信息,是為瀏覽模塊設(shè)計,這里沒有用。 static void ShowAllClass(ListCtrlEx amp。rList)。//重載函數(shù) // 獲取字段英文名與中文名的映射,在列表中顯示數(shù)據(jù)時要調(diào)用 ,它的返回值應(yīng)隨著表 結(jié)構(gòu)的改變而改變 static char* GetFieldNameMap() { return _T( Codeamp。班 號 |Nameamp。別 名 |Directoramp。班主任 |Capabilityamp??扇菁{人數(shù) | Dateamp
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1