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

正文內(nèi)容

中學(xué)教務(wù)管理軟件本科畢業(yè)論文(編輯修改稿)

2024-10-07 15:31 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 M 設(shè)置 考試 N 學(xué)生 課程 學(xué)習(xí) N 成績(jī) M 班 管理 N 老師 1 圖 實(shí)體聯(lián)系圖 學(xué)生 課程 班 學(xué)習(xí) 分?jǐn)?shù) 組成 N 1 N M 考試 P 圖 全局 ER 圖 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 9 頁(yè) 167。 數(shù)據(jù)庫(kù)關(guān)系模式 由于概念設(shè)計(jì)的結(jié)果是與 DBMS無(wú)關(guān)的 ER 圖,在設(shè)計(jì)本系統(tǒng)時(shí)選用的是關(guān)系型數(shù)據(jù)庫(kù),因此有必要將數(shù)據(jù)庫(kù)轉(zhuǎn)化為關(guān)系模式。將 ER 圖轉(zhuǎn)化為關(guān)系模式有幾點(diǎn)原則: ? 對(duì)于實(shí)體類型,將每個(gè)實(shí)體類型轉(zhuǎn)換成一個(gè)關(guān)系模式,實(shí)體的屬性即為關(guān)系模式的屬性,實(shí)體的標(biāo)識(shí)符即為關(guān)系模式的鍵。 ? 對(duì)于聯(lián)系類型有以下原則: ? 如果聯(lián)系是 1: 1 的聯(lián)系型,可以在兩個(gè)實(shí)體類型轉(zhuǎn)換成的兩個(gè)關(guān)系模式之中的任意一個(gè)加入另一個(gè)關(guān)系模式 的鍵和聯(lián)系類型的屬性。 ? 如果聯(lián)系是 1: N,則在 N 端加入 1 端實(shí)體關(guān)系模式的鍵和聯(lián)系類型的屬性。 ? 如果聯(lián)系是 M: N,則將聯(lián)系也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實(shí)體的鍵加上聯(lián)系的屬性,所組成的關(guān)系模式的鍵則為兩端實(shí)體鍵的組合。 按照上面的原則和前面設(shè)計(jì)的 ER 圖設(shè)計(jì)的教務(wù)助理系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系模式如下表 (下劃線標(biāo)記的屬性為主鍵) : 表 32 班 ( 班代號(hào) ,別名,班主任,可容納人數(shù),成立時(shí)間,所屬年級(jí),文 /理科) 學(xué)生 ( 學(xué)號(hào) ,班號(hào),姓名,性別,民族,家庭住址,電話) 成績(jī) ( 學(xué)號(hào) , 課程號(hào)#,考試名, 分?jǐn)?shù)) 課程 ( 課程代號(hào) ,課 程名稱,課程性質(zhì),場(chǎng)地要求) 老師 ( 老師 編號(hào) ,姓名,性別,民族,職務(wù),職稱,專業(yè),聯(lián)系電話) 考試 ( 考試名 ,名稱,性質(zhì),建立時(shí)間,滿分,優(yōu)秀分,及格分) 167。 數(shù)據(jù)庫(kù)的物理設(shè)計(jì) 在設(shè)計(jì)該系統(tǒng)時(shí)選用的是 Microsoft Access2020。設(shè)計(jì)的方法是,首先按照關(guān)系模式生成基本數(shù)據(jù)庫(kù)表,然后根據(jù)全局 ER 圖,建立各個(gè)表之間的聯(lián)系。下面是用 Microsoft Access2020 設(shè)計(jì)的物理數(shù)據(jù)庫(kù): 圖 課程信息表結(jié)構(gòu) 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 10 頁(yè) 圖 班信息表結(jié)構(gòu) 圖 考試設(shè)置信息表結(jié)構(gòu) 圖 3..7 老師信息表結(jié)構(gòu) 圖 學(xué)習(xí)成績(jī)信息表結(jié)構(gòu) 圖 學(xué)生信息表結(jié)構(gòu) 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 11 頁(yè) 圖 各表間聯(lián)系 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 12 頁(yè) 第四章 軟件系統(tǒng)的具體設(shè)計(jì) 167。 軟件結(jié)構(gòu)圖 通過(guò)已得出的需求分析繪制的軟件結(jié)構(gòu)圖如下: 圖 軟件結(jié)構(gòu)圖 中學(xué)教務(wù)管理軟件 學(xué)生資料管理 教師資料管理 考試管理 班級(jí)信息管理 課程設(shè)置 系統(tǒng)管理 成績(jī)查詢 增加刪除修改資料 查詢 \瀏覽 修改用戶密碼 用戶權(quán)限授予與撤消 增加刪除用戶 錄入學(xué)生資料 瀏 覽 增加刪除修改班信息 考試設(shè)置 瀏覽 \分析 \打印成績(jī) 增加刪除改修成績(jī) 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 13 頁(yè) 167。 數(shù)據(jù)庫(kù)訪問(wèn)的組織 DAO對(duì)象 系統(tǒng)設(shè)置了三個(gè)全局 DAO 對(duì)象,它們的命名及作用見(jiàn)表 41,其中前綴 g_表示是全局變量,以后系統(tǒng)中所有全局變量都遵循這一命名規(guī)則。 表 41 // 全局?jǐn)?shù)據(jù)庫(kù)對(duì)象 CDaoDatabaseg_Db。 // 用于執(zhí)行除 Select 之外的 所有 SQL 語(yǔ)句 CDaoQueryDef g_Qd。 // 用于執(zhí)行只涉及多個(gè)表的 Select 語(yǔ)句 CDaoRecordset g_Qd(amp。g_Db)。 // 用于收集 Select 語(yǔ)句的結(jié)果 系統(tǒng)中除了這三個(gè)全局?jǐn)?shù)據(jù)庫(kù)對(duì)象外,還設(shè)置了只與每一張表相關(guān)的專用記錄集。這些專用記錄集可以執(zhí)行只涉及一張表的查詢以及收集查詢結(jié)果。實(shí)際上,設(shè)置專用記錄集最重要的原因不在此,而在于讓它完成與表相關(guān)的其它任務(wù)。也就是說(shuō)專用記錄集已不再只是收集數(shù)據(jù)的簡(jiǎn)單對(duì)象了,設(shè)計(jì)時(shí)對(duì)它進(jìn)行了擴(kuò)展,具體的擴(kuò)展方法在下一節(jié)中討論。 數(shù)據(jù)庫(kù)已經(jīng)有全局記錄集對(duì)象了,它可以執(zhí)行所有查詢,不管是涉及一張表的還是多張表的查詢。但是,仍有必要為每一張表設(shè)計(jì)一個(gè)專用記錄集,這是因?yàn)?,表間有聯(lián)系,必須維護(hù)它們之間的參照完整性,而且記錄集中的數(shù)據(jù)最終要顯示給用戶。這些任務(wù)如果留給每一個(gè)模塊自己解決,勢(shì)必會(huì)增加編程量,并且在編寫(xiě)與業(yè)務(wù)相關(guān)的模塊時(shí)還要分一部分精力來(lái)編寫(xiě)與顯示和維護(hù)完整性有關(guān)代碼。其中,由記錄集維護(hù)參照完整性是指由記錄集負(fù)責(zé)刪除或更新有參照完整性要求的字段的細(xì)節(jié)。而在安排顯示任務(wù)的時(shí)候并沒(méi)有將顯示的底層操作安排在記錄集, 因?yàn)轱@示的底層與記錄集不相關(guān),實(shí)際上記錄集只是組織顯示。這就要求記錄集知道它的數(shù)據(jù)應(yīng)該顯示在什么地方以及顯示哪些字段,并給負(fù)責(zé)顯示的其它類發(fā)送顯示請(qǐng)求完成實(shí)際的顯示。顯示的底層是由列表控件和組合框控件完成的,在后面的設(shè)計(jì)中也對(duì)它們進(jìn)行了擴(kuò)展,擴(kuò)展后它們能與記錄集結(jié)合在一起很方便地完成顯示任務(wù),這在后面的章節(jié)中會(huì)提到。具體擴(kuò)展記錄集的做法是使用 C++語(yǔ)言的繼承,從 CdaoRecordset類派生專用記錄集類,擴(kuò)展的記錄集對(duì)象的類結(jié)構(gòu)如下: 擴(kuò)展的記錄集類 方法: 顯示所有字段的值 顯示指定字段的值 刪除特定 字段 更新特定字段 獲取字段中文名與英文名的映射 其中,“獲取字段中文名與英文名的映射”的方法是為了完成顯示任務(wù)而設(shè)計(jì)的。因?yàn)閿?shù)據(jù)庫(kù)中的字段名是英文而顯示給用戶的字段名要求是中文,所以必需要知道它們之間的映射關(guān)系,很顯然,這個(gè)映射由記錄集來(lái)維護(hù)最合適。這個(gè)方法主要是在設(shè)置列表表頭時(shí)被調(diào)用。高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 14 頁(yè) 如圖 ,學(xué)生信息列表的表頭文字就是調(diào)用這個(gè)方法獲得的。 圖 列表表頭樣式 系統(tǒng)定義了擴(kuò)展的記錄集共六個(gè)。它們類名與對(duì)應(yīng)的數(shù)據(jù)表如表 42 所示,其中前綴 Rs表示該類是記錄集,以后系統(tǒng)中所有記錄集類都遵照該命名 規(guī)則。 表 42 六個(gè)專用記錄集 類名 對(duì)應(yīng)的表 RsClass Class RsStudent Students RsTeacher Teachers RsExam Exam RsCourses Courses RsScore Score 當(dāng)記錄集知道怎樣顯示自已的數(shù)據(jù)后,其它模塊要顯示數(shù)據(jù)時(shí)只要向上面 6 個(gè)記錄集之一發(fā)送消息即可,如上圖中學(xué)生列表中的數(shù)據(jù)是由刪除學(xué)生模塊向 rsStudent 記錄集發(fā)送“顯示 C025 班學(xué)生”消息( rsStudent::ShowStudent(m_ctlStudentList,”C025”))的運(yùn)行結(jié)果。同樣,因?yàn)槊總€(gè)記錄集都知道怎樣維護(hù)參照完整性,所以當(dāng)要?jiǎng)h除有參照完整性要求的字段時(shí),也只要向上面 6 個(gè)記錄集之一發(fā)送消息即可,記錄集會(huì)維護(hù)其參照完整性,例如: 要?jiǎng)h除一個(gè)班就要考慮到參照完整性,通過(guò)分析數(shù)據(jù)庫(kù)關(guān)系模式可以發(fā)現(xiàn)在“學(xué)生表”中有一個(gè)外鍵 班代號(hào),所以不能只作簡(jiǎn)單的刪除,這類操作是一類特殊的刪除操作, 將這類刪除操作設(shè)計(jì)到記錄集類中可以簡(jiǎn)化編程,也易于維護(hù),若關(guān)系發(fā)生變化只要修改一處代碼而且不會(huì)影響其它模塊。 對(duì)記錄集進(jìn)行這樣擴(kuò)展的好處是:很多與業(yè)務(wù)無(wú)關(guān)的 細(xì)節(jié)被封裝起來(lái)了,設(shè)計(jì)查詢時(shí)可以將主要精力放在 SQL 語(yǔ)句的設(shè)計(jì)上,至于如何與數(shù)據(jù)庫(kù)交互和如何顯示查詢結(jié)果以及維護(hù)參照完整性,都完全由記錄集實(shí)現(xiàn)。同時(shí)封裝還具有很強(qiáng)的適應(yīng)性,只要不改變方法名、參數(shù)個(gè)數(shù)及類型、返回值類型,修改方法內(nèi)部實(shí)現(xiàn)細(xì)節(jié)是不會(huì)影響到其它模塊的,并且隨時(shí)可以添加新的方法而不影響其它模塊。 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 15 頁(yè) 167。 用戶界面的設(shè)計(jì) 為了方便用戶輸入,查詢,瀏覽。系統(tǒng)為用戶收集已存在的數(shù)據(jù)和系統(tǒng)生成周期中固定不變的數(shù)據(jù),并將其放在組合框中供用戶選擇, 這樣做的好處還可以減少輸入錯(cuò)誤,特別是日期,它是只能是數(shù)字并 且還有取值范圍 ,如果日期格式不正確,寫(xiě)入數(shù)據(jù)庫(kù)時(shí)程序會(huì)發(fā)生異常,雖然不會(huì)導(dǎo)致系統(tǒng)崩潰但會(huì)影響用戶界面。還有一類數(shù)據(jù),它要滿足參照完整性要求。例如:在其它地方要引用老師姓名,那么這個(gè)老師姓名就必須已經(jīng)以存在,如果老師姓名不存系統(tǒng)也會(huì)發(fā)生異常。另外,查詢結(jié)果的顯示、數(shù)據(jù)的瀏覽以及系統(tǒng)自動(dòng)為用戶收集的供參考的數(shù)據(jù)都是由列表控件完成。其中,瀏覽數(shù)據(jù)時(shí)用戶可能還想刪除或修改某一些數(shù)據(jù)。除了顯示數(shù)據(jù)外,如果列表還具有單擊列表表頭就能對(duì)相應(yīng)的列進(jìn)行排序的功能,那將為界面增色不少并且更具實(shí)用價(jià)值。 下圖就是一個(gè)界面實(shí)例。 圖 界面實(shí)例 當(dāng)用戶在年級(jí)組合框中選擇了某個(gè)年級(jí)之后,在列表框中會(huì)自動(dòng)列出該年級(jí)已有的班,供用戶參考,當(dāng)用戶輸入一個(gè)新班后列表框中的內(nèi)容也會(huì)變化以反應(yīng)更新情況。并且組合框中的數(shù)據(jù)改變會(huì)影響到列表控件的內(nèi)容,也就是說(shuō)數(shù)據(jù)是動(dòng)態(tài)的。實(shí)際上組合框的改變也會(huì)影響其它組合框的內(nèi)容,如:班級(jí)組合框中列出的班應(yīng)該只是屬于某一年級(jí)的班,而不是全校所有的班(列出全校所有的班級(jí)由于班可能很多反而還不利用戶操作),那么年級(jí)組合框的改變則班級(jí)組合框中的內(nèi)容也要改變。另外在列表控件中可進(jìn)行選擇操作,并且可進(jìn)行多項(xiàng)選擇,主要是 考慮到用戶刪除數(shù)據(jù)時(shí)的方便性。圖 就是一個(gè)完成刪除操作的對(duì)話框,其中的列表是可進(jìn)行多項(xiàng)選擇的。 高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 16 頁(yè) 圖 刪除班對(duì)話框 167。 對(duì)列表控件和組合框控件的擴(kuò)展 列表控件和組合框控件不僅是主要的界面元素之一,而且還是主要的數(shù)據(jù)容器。他的功能強(qiáng)大與否將影響到以后的編程效率,所以有必要對(duì)其進(jìn)行擴(kuò)展使其能適合本系統(tǒng)的要求。擴(kuò)展的做法是使用 C++的繼承。 系統(tǒng)所用的列表控件和組合框控件樣式如下: 圖 列表控件樣式 圖 組合框樣式 列表控件在系統(tǒng)中使用頻率相當(dāng)高, 擴(kuò)展的重點(diǎn)是要使它操作方便、界面美觀、每一列都可按升 /降序排序。操作方便的具體要求是:只要發(fā)一個(gè)方法就能完成數(shù)據(jù)的顯示,同時(shí)要高等教育自學(xué)考試計(jì)算機(jī)應(yīng)用專業(yè)本科生畢業(yè)論文 第 17 頁(yè) 能方便地獲取用戶雙擊的列中任意單元格的內(nèi)容;界面美觀具體要求是:要與原始控件有較大的區(qū)別;排序的具體要求是:?jiǎn)螕袅斜肀眍^能對(duì)相應(yīng)的列進(jìn)行升 /降序排列。對(duì)列表控件擴(kuò)展了三個(gè)方法和一個(gè)處理單擊列表表頭事件的函數(shù),由于雙擊事件與具體的應(yīng)用有關(guān)所以不由列表控件負(fù)責(zé),這里只擴(kuò)展了獲取用戶雙擊的行中某一單元格(列)的內(nèi)容的方法。事件的處理函數(shù)的源程序在附件中,源程序中有詳細(xì)注釋,這里不作詳細(xì)介紹 。 為列表控件擴(kuò)展的三個(gè)方法是: void SetListStyle(DWORD s = 0)。 CString GetSelectedStr( CString strCol )。 void FillList(CDaoRecordset amp。rDbSet, char *pField)。 三個(gè)方法完成的功能是: ? FillList方法 :在列表中填充 rDbSet 所指記錄集中的數(shù)據(jù), pField 指示要填充哪些字段。 ? GetSelectedStr方法: 獲取用戶雙擊的行中某一單元格(列)的內(nèi)容,單元格由參數(shù)指出,如果不封 裝就只能使用無(wú)意義的數(shù)字訪問(wèn)單元格,封裝后就可以用行號(hào)和列名來(lái)訪問(wèn)單元格。 ? SetListSytle 方法: 設(shè)置列表控件風(fēng)格,設(shè)置的風(fēng)格有:顯示表格網(wǎng)格、整行選中等。修改該方法將影響所有列表控件風(fēng)格 這三個(gè)方法在程序中使用頻度很高。其中,這里的 FillList 方法與組合框控件中的 FillList方法幾乎完成所有的具體顯示任務(wù),實(shí)際上有三個(gè) FillList 方法,因?yàn)樵诮M合框控件中有一個(gè)重載版。下面對(duì)列表控件的三個(gè)方法進(jìn)行具體編程,編程思路在代碼中作了詳細(xì)解釋。 Void ListCtrlEx::FillList(CDaoRecordset amp。rDbSet, char *pField) { /*rDbSet 是數(shù)據(jù)庫(kù)記錄集,是要顯示數(shù)據(jù)的來(lái)源。其中可能有多個(gè)字段,但并不一定都要顯出來(lái),這要看具體應(yīng)用。 究竟要顯示哪些字段?由 *pField 指定, *pField 包含有字段名信息,如果有多個(gè)字段則用|分 隔 ,由于數(shù)數(shù)據(jù)庫(kù)中的字段名是英文,而要顯示給用戶看的字段名要求是中文,解決的辦法就是在 pField 中加入中文信息,也用一個(gè)符號(hào)分開(kāi),這里選擇的符號(hào)是 39。amp。39。號(hào) ,因此, pField中的內(nèi)容的格式是: 英文字段名 amp。中文 字段名 |英文字段名 amp。中文字段名| ....。下面舉一個(gè)系統(tǒng)中的實(shí)例來(lái)說(shuō)明該方法的使用:系統(tǒng)要在列表中顯示學(xué)生的信息,于是傳遞的pField=Codeamp。 學(xué) 號(hào) |Nameamp。 姓 名 |Sexamp。性別 |C
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1