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

正文內(nèi)容

中學教務管理軟件本科畢業(yè)論文(參考版)

2025-07-01 03:02本頁面
  

【正文】 //將該班的成立日期顯示到組合框中 (//在班主。// 記錄指針定位到查詢結(jié)果,因為class表中沒有重復的班號,所以查詢結(jié)果只有一條,也就是第一條,這里只要將指針移到第一條即可。//打開記錄集執(zhí)行SQL //如果沒有查詢到該班的信息,程序返回 if( () = 0 ) return TRUE。, m_strClassCode )。 //準備獲取與指定班號對應的班信息的SQL,其中的班號就是啟動對話框時傳入的班號 (select * from Class Where Code=39。 if( () ) return FALSE。 rsClass set。//調(diào)用基類的啟動對話框的函數(shù)}//小對話框的初始化函數(shù)。}//重載的啟動小對話框的函數(shù)int dlgUpdateClassInfo2::DoModal(CString strClassCode){ //將參數(shù)中的班號保存在小對話框的成員變量中 m_strClassCode = strClassCode。//這里程序會暫停,直到小對話框返回// 當用戶修改數(shù)據(jù)后,數(shù)據(jù)庫中的數(shù)據(jù)已經(jīng)發(fā)生了變化,所以要在列表中反映出數(shù)據(jù)的變化 rsClass:: ShowAllClass(m_ctlClassList,(TRUE))。 //啟動對話框,原始的啟動對話框的函數(shù)是沒有參數(shù)的,為了能夠滿足本系統(tǒng)的要求,對其進行了重載,使它能接受一個字符串類型的參數(shù),這個參數(shù)的值就是班號。//準備小對話框?qū)ο?/獲取雙擊的班的班號,該方法封裝在擴展的列表控件中, 在“對列表控件的擴展”一節(jié)中有源程序和詳細解釋 CString strClassCode = (班號)。處理用戶雙擊列表的程序要完成兩個任務:第一,獲取用戶雙擊的班的班號,這個方法已經(jīng)封裝,這里只要發(fā)送消息即可;第二,啟動小對話框并向它傳入班號。 // 在組合框中顯示所有屬于當前選擇年級的班 rsClass::ShowAllClass( m_ctlClassList, strGrade )。初始化時大對話框中的班級設置情況列表中并沒有數(shù)據(jù),只有當用戶選擇了一個年級后才在列表中填入數(shù)據(jù),當用戶選擇了一個年級后執(zhí)行以下程序:void dlgUpdateClassInfo::OnSelendokComboSslj() { CString strGrade = ( TRUE )。完整的處理過程如下:顯示界面系統(tǒng)在組合框中列出本校所有年級用戶在組合框中選擇要修改班所在的年級系統(tǒng)根據(jù)選擇在列表中列出此年級的所有班用戶雙擊擇要修改的班系統(tǒng)讀出用戶雙擊的班的班信息用戶修改操作完畢返回主界面,界面的設計如下: 修改班信息界面該界面有兩個對話框,大一點的對話框用來列出數(shù)據(jù)供用戶選擇并處理用戶雙擊列表的事件,小一點的對話框用來修改班信息。所以要做到用組合框收集老師姓名已經(jīng)變得很簡單了。前面已對組合框進行過擴展,擴展后的組合框能顯示記錄集中的數(shù)據(jù)。從關(guān)系模式可知班主任來自表Teachers,所以在修改班主任時不能指定Teachers表中不存在的班主任。 } } CDialog::OnOK()。 iIndex ++ ){ if( ( iIndex ) == 1 ){// 遇到打勾的班 ( iIndex, strBh )。//初始化數(shù)據(jù)庫 //遍歷列表,如果遇到打勾的班就將其從數(shù)據(jù)庫中刪除 for( iIndex = 0。 DEL_YN()。//班號 // DEL_YN宏詢問是否真的要進行刪除操作,如果用戶回答No則程序返回。}當用戶點擊“刪除”按鈕后執(zhí)行以下程序執(zhí)行刪除操作:void dlgDelClass::OnOK() { int iIndex。 ()。初始化對話框的程序如下:BOOL dlgDelClass::OnInitDialog() { CDialog::OnInitDialog()。界面的設計如下: 刪除班界面這個對話框初始化時只要做一件事:設置年級組合框的默認值。具體做法是:刪除一個班時將“學生表”中的班代號設置為空,這個操作已經(jīng)封裝到記錄集類中了,這里只要指定刪除的班的班號再向記錄集發(fā)送刪除消息即可,記錄集知道怎樣刪刪除。刪除班的設計要刪除一個班要考慮到參照完整性,通過分析數(shù)據(jù)庫關(guān)系模式發(fā)現(xiàn)在“學生表”中有一個外鍵班代號。這就是前面的設計所帶來的好處。//關(guān)閉記錄集 // 將更新反映到界面中班級列表,只需向rsClass記錄集發(fā)消息 rsClass::ShowAllClass( m_ctlClassList, strGrade )。 ()。 =( TRUE )。 = strGrade。// 將“成立日期”中的年月日組合成一個日期字符串 ( (0) )。 = m_iCapability。//打開記錄集準備將用戶輸入的數(shù)據(jù)添加到數(shù)據(jù)庫 ()。 rsClass set。該方法封裝在擴展的組合框中,并且會將“請選擇”這個字符串用NULL替換 CString strGrade = ()。當用戶輸入完數(shù)據(jù)按下“確定”按鈕后執(zhí)行以下程序?qū)⒂脩糨斎氲臄?shù)據(jù)寫入數(shù)據(jù)庫:void dlgAddNewClass::OnButtonAdd() { CString strTime。}從上面可以看出,通過對類的封裝后,只需用兩行代碼就可完成年級組合框與列表控件的動態(tài)更新。 //年級不能為空,為空的情況是用戶重新選擇了“請選擇”這個字符串 if( () ) return。這樣可使編程從煩瑣的界面設計中解脫出來。//在成立時間一欄設置系統(tǒng)當前時間 return TRUE。 /在班主任老師組合框中填入老師,向rsTeacher記錄集發(fā)消息即可 rsTeacher::ShowAllTeacher( m_ctlDirector )。 this()。這四行代碼構(gòu)造了一個界面友好、操作方便、可防止輸入錯誤并且有排序功能的用戶界。處理過程如下:顯示錄入界面用戶輸入數(shù)據(jù)驗證輸入合法性 寫入數(shù)據(jù)庫錄入結(jié)束返回主界面錄入界面的設計如下: 新建班界面這個對話框初始化時要完成四件事:設置列表控件風格、在成立時間一欄設置系統(tǒng)當前時間、在年級組合框中設置默認值,在班主任老師組合框中填入老師。設計時充分利用了擴展的記錄集、擴展的列表控件、擴展的組合框控件。余下的時間就可以將主要精力放在與業(yè)務相關(guān)的操作之上了。 ::ExecuteSql( strSql )。%s39。 ::ExecuteSql( strSql )。%s39。 if( () ) return。 (g_Rs, (0))。 (Name, )。 //獲取查詢結(jié)果 strField = GetFieldNameMap()。 //執(zhí)行查詢 ( amp。 } ::initDbRsQd()。, strGrade)。 if( ! () ){ ( Where Grade=39。class表中的班主任是用代號表示的,而顯示給用戶的應該是姓名,老師姓 //名在teachers表中,所以將兩張表以老師號為關(guān)鍵字進行連接。 (全部,)。rList, CString strGrade){ // 如果strGrade是空則顯示所有班信息 CString strSql,strWhere,strField。rList){ ShowAllClass( rList, _T() )。 // 獲取查詢結(jié)果 (g_Rs, Code)// 請求擴展的組合框控件顯示g_Rs記錄集中Code字段的數(shù)據(jù)}/*在列表中顯示所有的班的班信息,是為瀏覽模塊設計,這里沒有用到。 //執(zhí)行查詢 ( amp。 ::initDbRsQd()。%s39。 if( () ) return。//在組合框中顯示一個年級的所有班的班代號void rsClass::ShowClass(MyComboBox amp。 rsClass(CDaoDatabase* pDatabase = NULL)。 } //在組合框中顯示一個年級的所有班的班代號 static void ShowClass(MyComboBox amp。所屬年級|Propertyamp。可容納人數(shù)| Dateamp。別 名|Directoramp。//重載函數(shù) // 獲取字段英文名與中文名的映射,在列表中顯示數(shù)據(jù)時要調(diào)用,它的返回值應隨著表結(jié)構(gòu)的改變而改變 static char* GetFieldNameMap() { return _T( Codeamp。 static void ShowAllClass(ListCtrlEx amp。rList, CString strGrade)。class rsClass : public CdaoRecordset{public: static void DelClass(CString ClassCode)。其類的具體編程如下:說明:使用static修飾符是為了使類的方法在類沒有實例化為對象時也可以使用。新類的類名是rsClass,在其中擴展了以下主要方法:刪除一個班、在組合框中顯示某一年級所有班的班號、在列表中顯示某一年級所班的班信息。擴展組合框控件、擴展列表框控件的方法和主要源程序在前面已列出過,下面只介紹擴展記錄集編程的具體做法。下面通過系統(tǒng)中的一個實例來說明設計的方法和具體的編程。在數(shù)據(jù)庫方面也使用了Microsoft Access2000提供的完整性檢查功能,但實際上,只要用戶不脫離本系統(tǒng)進行數(shù)據(jù)庫操作就不會引發(fā)這類完整性問題,因為用戶界面在這方面已經(jīng)做得很好了。又如:成績表中的學生號、課程號都必需在相應的其它的表中存在。對于增加數(shù)據(jù)的操作引發(fā)的參照完整性問題主要是要防止引用不存在的元組。所以設計系統(tǒng)時要考慮刪除操作引發(fā)參照完整性問題。對于修改數(shù)據(jù)的操作引發(fā)的參照完整性問題Microsoft Access2000提供的級聯(lián)更新的功能可以滿足要求,所以不需要再設計了。 增加、刪除、修改方面的設計數(shù)據(jù)的增刪改是系統(tǒng)的重要功能之一,占用比重較大,編程任務重,并且增刪改涉及到數(shù)據(jù)的安全性和完整性,特別是參照完整性。在編程時因為權(quán)限映射表中記錄了權(quán)限名所以方便了很多。*/ //下面的語句設置菜單項無效 systemMenuEnableMenuItem( PT[I].posMenu 1, MF_BYPOSITION | MF_GRAYED )。沒有填 的各項都是0,所以系統(tǒng)會誤判為沒有權(quán)限,而設置posMenu所指菜單為無效, 但這里posMenu也是0,程序會出現(xiàn)運行時錯誤。amp。 if( ! ( PT[I].iPermission amp。 I MAXFUNCTION。 CMenu *systemMenu = thisGetMainWnd()GetMenu()。實現(xiàn)的SQL語句如下:其中$UserName,$Password為用戶輸入Select UserName From UserWhere UserName = $UserName AND Password = $Password如果該查詢沒有結(jié)果,則驗證不能通過。 // 與某一功能相關(guān)的菜單}PermissionTable。 // 與某一功能相關(guān)的權(quán)限標記 char strName[50]。系統(tǒng)內(nèi)設置一張系統(tǒng)功能與權(quán)限標記映射表,將每一項功能與一個特定權(quán)限標記建立起聯(lián)系,這樣就能用“位或”操作給用戶賦予權(quán)限,用“位與”操作判斷用戶的具體權(quán)限。登錄時在表中查找用戶名,找到用戶名后再比較密碼,如果兩項都匹配,則從用戶信息表中讀權(quán)限標記,參照該權(quán)限標記確定該用戶能使用系統(tǒng)哪些功能。 用戶權(quán)限管理的設計登錄過程完成用戶名,密碼的驗證,驗證通過后確定操作權(quán)限。實際編程中發(fā)現(xiàn)這幾個宏很好用。系統(tǒng)約定:對出現(xiàn)在不同地方的所有日期組合框使用統(tǒng)一的命名,年的組合框為:m_ctlYear、月的組合框為:m_ctlMonth、日的組合框為:m_ctlDay。define COMB_DATE() ( MyComboBox::CombDateStr(m_ctlYear, m_ctlMonth, m_ctlDay) )//該宏完成顯示系統(tǒ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日期。從上面的程序清單可以看出組和日期要傳遞3個參數(shù),顯示日期最多時可能要傳遞6個參數(shù),所以有必要考慮對它的調(diào)用進行簡化。這里不再贅述。該方法主要用在要設置默認時間的時候,例如:在新建班信息時要指定成立時間,這系統(tǒng)獲取當前日期作為日期輸入框中的默認值。 rDay)。 rYear,MyComboBoxamp。l void SelectDefault()。 rDay, COleDateTime dt)。 rYear,MyComboBoxamp。 ( 1, (0))。該方法參數(shù)很多,實際調(diào)用時使用宏進行了簡化*/ ( 1, (0) )。 rMonth, MyComboBoxamp。// 選擇默認字符 } }}/*該方法完成在組合框中顯示日期*/void MyComboBox::ShowDate(MyComboBoxamp。 iItem = AddString( DEFAULT_LIST_CONTENT )。// 調(diào)用基類選擇字符串的
點擊復制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1