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

正文內(nèi)容

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

2025-08-23 15:31本頁面

【導(dǎo)讀】的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以。已在文中作了明確的說明并表示了謝意。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文。不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。全意識(shí)到本聲明的法律后果由本人承擔(dān)。同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論。涉密論文按學(xué)校規(guī)定處理。用戶管理功能分為添加,刪除用戶以及用戶權(quán)限的授予和撤消。其中權(quán)限設(shè)計(jì)使用了較為靈。32種權(quán)限,并且易于管理和判斷。象結(jié)合在一起完成數(shù)據(jù)的顯示。據(jù)庫的設(shè)計(jì)思想、具體編程的細(xì)節(jié),以及設(shè)計(jì)中的重點(diǎn)、難點(diǎn)技術(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 )。 //組合成一個(gè)數(shù)據(jù)庫可接受的日期 ( %s/%s/%s, strYear, strMonth, strDay )。 return strRet。 } /*該方法完成在組合框中選中一個(gè)字符串,也就是使字符串呈現(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é)考試計(jì)算機(jī)應(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ù)很多,實(shí)際調(diào)用時(shí)使用宏進(jìn)行了簡化 */ ( 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í)間。該方法主要用在要設(shè)置默認(rèn)時(shí)間的時(shí)候,例如:在新建班信息時(shí)要指定成立時(shí)間,這系統(tǒng)獲取當(dāng)前日期作為日期輸入框中的默認(rèn)值。 這些方法只是為了處理不同數(shù)據(jù)類型和簡化編 程而對(duì)上面介紹的方法的簡單封裝。這里不再贅述。 設(shè)計(jì)這組宏的目的是為了簡化組合日期和顯示日期時(shí)傳遞的參數(shù)。從上面的程序清單可以看出組和日期要傳遞 3 個(gè)參數(shù),顯示日期最多時(shí)可能要傳遞 6 個(gè)參數(shù),所以有必要考慮對(duì)它的調(diào)用進(jìn)行簡化。下面是該組宏的代碼: //該宏完成組合日期字符串,返回組合的日期字符串。 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)約定:對(duì)出現(xiàn)在不同地方的所有日期組合框使用統(tǒng)一的命名,年的組合框?yàn)椋?m_ctlYear、月的組合框?yàn)椋簃_ctlMonth、日的組合框?yàn)椋?m_ctlDay。這樣,這組宏就可以正常工作了。實(shí)際編程中發(fā)現(xiàn)這高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 24 頁 幾個(gè)宏很好用。 167。 用戶權(quán)限管理的設(shè)計(jì) 登錄過程完成用 戶名,密碼的驗(yàn)證,驗(yàn)證通過后確定操作權(quán)限。設(shè)計(jì)的思路是用一張數(shù)據(jù)庫表記錄用戶名,密碼,和權(quán)限標(biāo)記。登錄時(shí)在表中查找用戶名,找到用戶名后再比較密碼,如果兩項(xiàng)都匹配,則從用戶信息表中讀權(quán)限標(biāo)記,參照該權(quán)限標(biāo)記確定該用戶能使用系統(tǒng)哪些功能。登錄進(jìn)程流程圖如下: 權(quán)限標(biāo)記用二進(jìn)制表示,共 32 位,每一位代表一項(xiàng)功能,值為 1 一表示有操作權(quán)限,值為 0 表示沒有操作權(quán)限。系統(tǒng)內(nèi)設(shè)置一張系統(tǒng)功能與權(quán)限標(biāo)記映射表,將每一項(xiàng)功能與一個(gè)特定權(quán)限標(biāo)記建立起聯(lián)系,這樣就能用“位或”操作給用戶賦予權(quán)限,用“位與”操作判斷用戶的具體權(quán)限。 權(quán)限映射表設(shè)計(jì)如下: //與權(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)限映射表項(xiàng)目 { 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}, 起動(dòng)登錄提示框 (圖 ) 用戶輸入用戶名和密碼 驗(yàn)證用戶名與密碼 用戶數(shù)據(jù) 未通過 通過 按照權(quán)限設(shè)置菜單 圖 登錄流程圖 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 25 頁 { 0x00000010,課程管理 , 4}, { 0x00000020,班級(jí)管理 , 5}, { 0x00000040,成績查詢 , 6} }。 記錄用戶名與密碼的數(shù)據(jù)庫表結(jié)構(gòu)如圖 所示 。 a 記錄用戶信息的數(shù)據(jù)表 b 登錄對(duì)話框 圖 登錄對(duì)話框和記錄用戶信息的數(shù)據(jù)表 驗(yàn)證用戶名與密碼可以用 SQL 語句。實(shí)現(xiàn)的 SQL 語句如下 : 其中 $UserName,$Password 為用戶輸入 Select UserName From User Where UserName = $UserName AND Password = $Password 如果該查詢沒有結(jié)果,則驗(yàn)證不能通過。 按照權(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 項(xiàng)功能,所以權(quán)限映射 表并沒有全部填滿。沒有填 的各項(xiàng)都是 0,所以系統(tǒng)會(huì)誤判為沒有權(quán)限,而設(shè)置 posMenu所指菜單為無效, 但這里 posMenu 也是 0,程序會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。所以要加上 PT[I].posMenu != NULL。 */ //下面的語句設(shè)置菜單項(xiàng)無效 systemMenuEnableMenuItem( PT[I].posMenu 1, MF_BYPOSITION | MF_GRAYED )。 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 26 頁 } } } 授予或撤消權(quán)限時(shí)只要讀取數(shù)據(jù)庫表中的一個(gè)字段,授予時(shí) 進(jìn)行位或操作,撤消時(shí)進(jìn)行位與操作。在編程時(shí)因?yàn)闄?quán)限映射表中記錄了權(quán)限名所以方便了很多。權(quán)限管理的面如下: 權(quán)限管理界面 167。 增加、刪除、修改方面的設(shè)計(jì) 數(shù)據(jù)的增刪改是系統(tǒng)的重要功能之一,占用比重較大,編程任務(wù)重,并且增刪改涉及到數(shù)據(jù)的安全性和完整性,特別是參照完整性。所以要仔細(xì)設(shè)計(jì)。 對(duì)于修改數(shù)據(jù)的操作引發(fā)的參照完整性問題 Microsoft Access2020 提供的級(jí)聯(lián)更新的功能可以滿足要求,所以不需要再設(shè)計(jì)了。 對(duì)于刪除數(shù)據(jù)的操作引發(fā)的參照完整性問題 Microsoft Access2020 提供 的級(jí)聯(lián)刪除的功能不能滿足系統(tǒng)的要求,因?yàn)閯h除操作引發(fā)參照完整性問題時(shí)可能不需要級(jí)聯(lián)刪除,大多數(shù)情況下只要將值設(shè)為空。所以設(shè)計(jì)系統(tǒng)時(shí)要考慮刪除操作引發(fā)參照完整性問題。這方面的問題在本章的“數(shù)據(jù)庫訪問的組織”一節(jié)中討論過,其主要的設(shè)計(jì)思想是把這類特殊的刪除操作分配給記錄集,讓記錄集維護(hù)相關(guān)字段的參照完整性,具體的刪除細(xì)節(jié)對(duì)調(diào)用者來說是不可見,這樣就可以將主要精力集中到處理業(yè)務(wù)的操作上,從邏輯上來看,每個(gè)記錄集知道怎樣刪除自己維護(hù)的字段也是合理的。 對(duì)于增加數(shù)據(jù)的操作引發(fā)的參照完整性問題主要是要防止引用不存在的元 組。例如:為學(xué)生指定班時(shí)不能指定不存在的班。又如:成績表中的學(xué)生號(hào)、課程號(hào)都必需在相應(yīng)的其它的表中存在。設(shè)計(jì)時(shí)解決這類問題的方法是:當(dāng)用戶要輸入這類數(shù)據(jù)時(shí)系統(tǒng)將已經(jīng)存在的數(shù)據(jù)收集到組合框供用戶選擇而不由用戶輸入。在數(shù)據(jù)庫方面也使用了 Microsoft Access2020提供的完整性檢查功能,但實(shí)際上,只要用戶不脫離本系統(tǒng)進(jìn)行數(shù)據(jù)庫操作就不會(huì)引發(fā)這類完整性問題,因?yàn)橛脩艚缑嬖谶@方面已經(jīng)做得很好了。這在界面設(shè)計(jì)中曾提過。 下面通過系統(tǒng)中的一個(gè)實(shí)例來說明設(shè)計(jì)的方法和具體的編程。編程時(shí)利用了前面設(shè)計(jì)的擴(kuò)展了的組合 框控件、擴(kuò)展了的列表框控件、擴(kuò)展了的記錄集類來完成數(shù)據(jù)的顯示、數(shù)據(jù)庫完整性的維護(hù)、界面方面的所有細(xì)節(jié),使得編程時(shí)可以將主要精力放在與業(yè)務(wù)相關(guān)的操作上。 擴(kuò)展組合框控件、擴(kuò)展列表框控件的方法和主要源程序在前面已列出過,下面只介紹擴(kuò)高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 27 頁 展記錄集編程的具體做法。擴(kuò)展的做法是使用 C++的繼承從原始記錄集類派生一個(gè)新類,在新類中加入要擴(kuò)展的方法。新類的類名是 rsClass,在其中擴(kuò)展了以下主要方法:刪除一個(gè)班、在組合框中顯示某一年級(jí)所有班的班號(hào)、在列表中顯示某一年級(jí)所班的班信息。其中,在組合框中顯示班號(hào)是為了方便用戶操作 和保證不引用不存在的實(shí)體,這個(gè)辦法在系統(tǒng)中很多地方都有運(yùn)用;另外,在列表中顯示所有班信息是為了供用戶參考。其類的具體編程如下: 說明:使用 static 修飾符是為了使類的方法在類沒有實(shí)例化為對(duì)象時(shí)也可以使用。 記錄集只組織顯示,實(shí)際的顯示是由擴(kuò)展了的列表控件 (ListCtrlEx)和擴(kuò)展了的 組合框控件 (MyComboBox)完成的。 class rsClass : public CdaoRecordset { public: static void DelClass(CString ClassCode)。//刪除一個(gè)班 //在列表中顯示一個(gè)年級(jí)的所有班信息 static void ShowAllClass( ListCtrlEx amp。rList, CString strGrade)。 // 在列表中顯示所有班的班信息,是為瀏覽模塊設(shè)計(jì),這里沒有用。 static void ShowAllClass(ListCtrlEx amp。rList)。//重載函數(shù) // 獲取字段英文名與中文名的映射,在列表中顯示數(shù)據(jù)時(shí)要調(diào)用 ,它的返回值應(yīng)隨著表 結(jié)構(gòu)的改變而改變 static char* GetFieldNameMap() { return _T( Codeamp。班 號(hào) |Nameamp。別 名 |Directoramp。班主任 |Capabilityamp。可容納人數(shù) | Dateamp
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1