畢業(yè)設(shè)計(jì)-考場安排系統(tǒng)的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)論文.doc
《畢業(yè)設(shè)計(jì)-考場安排系統(tǒng)的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)論文.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)-考場安排系統(tǒng)的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)論文.doc(45頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、考場安排系統(tǒng)的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘 要隨著社會(huì)的不斷進(jìn)步,各個(gè)領(lǐng)域?qū)π畔⒒枨蟛粩嘣黾?,同時(shí)智能化水平也在不斷提升,高等教育的教務(wù)管理信息化要求也越來越高。“考場安排系統(tǒng)”是根據(jù)的信息化需求進(jìn)行開發(fā)的。該系統(tǒng)采用了VC+6.0作為代碼編寫工具,并使用ACCESS數(shù)據(jù)庫來存儲(chǔ)和處理數(shù)據(jù)。通過對(duì)國內(nèi)外專家學(xué)者在考場安排系統(tǒng)中的研究成果的分析之后,我們總結(jié)出一些系統(tǒng)開發(fā)的思路,并根據(jù)高校的實(shí)際資源狀況進(jìn)行有效、合理的考場安排??紙鲫P(guān)鍵詞:考場安排,數(shù)據(jù)庫設(shè)計(jì),手工考場安排,數(shù)據(jù)集合,半自動(dòng)安排ZHEJIANG GONGSHANG UNIVERSITY NIGHT SCHOOL EXAMINATION A
2、RRANGEMENTS SYSTEM SYSTEM DESIGN AND SYSTEM TO IMPLEMENTATIONABSTRACTAs society advances in all fields of information technology increasing demand while intelligent level has also been upgraded. Our Zhejiang Gongshang University Night School Examination Arrangements System is based on requirement of
3、 development of Night School information. The system used as a code VC+6.0 preparation tools and the use of Access database to store and process data. Through examination arrangements for domestic and foreign experts and scholars in the research system analysis, we summed up the development of some
4、systems thinking, and based on the actual night of Zhejiang Gongshang University and resources for effective and rational examination place.KEYWORDS:Examination Arrangements,Database Design,Manual Examination Arrangements,Data Pool,Semi-automaticExamination Arrangement 目 錄 第一章 引言 81.1 選題背景和選題意義 81.1
5、.1 選題背景81.1.2 選題意義 81.2 當(dāng)前考場安排系統(tǒng)的研究現(xiàn)狀 8第二章 系統(tǒng)設(shè)計(jì) 102.1 系統(tǒng)功能分析 102.2 系統(tǒng)功能模塊設(shè)計(jì) 10第三章 數(shù)據(jù)庫設(shè)計(jì) 1031 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì) 1232 數(shù)據(jù)庫需求分析 1333 數(shù)據(jù)庫安全認(rèn)證以及基本數(shù)據(jù)操作 15第四章 各功能模塊建立 164.1 用戶登入模塊 164.2 資料管理模塊 174.2.1 教室資料管理模塊184.2.2 其他模塊 184.3 考場安排模塊 204.3.1 手工考場安排 204.3.2 半自動(dòng)考場安排244.3.3 考場安排基本條件 254.3.4 考場安排特殊條件 26第五章 系統(tǒng)實(shí)現(xiàn) 275.1
6、系統(tǒng)功能實(shí)現(xiàn)275.2 系統(tǒng)環(huán)境配置325.3 開發(fā)工具介紹335.4 系統(tǒng)測試34第六章 結(jié)論與展望 35致謝 36參考文獻(xiàn) 37附錄(核心代碼) 38 45考場安排系統(tǒng)的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)第一章 引言11 選題背景和選題意義111 選題背景隨著高校招生規(guī)模的不斷擴(kuò)大,高校在考場安排方面的花費(fèi)越來越大,因此如何更加有效、合理地安排考場并合理利用現(xiàn)有資源,進(jìn)一步提高現(xiàn)有資源的利用率已經(jīng)為各大高校的學(xué)校領(lǐng)導(dǎo)所關(guān)注。由于近些年來各大高校的不斷擴(kuò)招,考場安排管理工作越來越復(fù)雜,給學(xué)校成教考務(wù)管理工作帶來了巨大的壓力。傳統(tǒng)的考場安排工作基本是由人工來完成,其工作工程和基礎(chǔ)主要依賴操作人員的經(jīng)驗(yàn),類似相關(guān)工
7、作不僅比較煩瑣而且往往帶來的是花費(fèi)巨大并且質(zhì)量不高的后果。112 選題意義 考場安排系統(tǒng)能夠在一定程度上解決在考場安排中人力、物力財(cái)力浪費(fèi)以及資源的不合理調(diào)配,并且能夠適應(yīng)數(shù)據(jù)的動(dòng)態(tài)變化,做到真正意義上的一勞永逸??紙霭才攀且粋€(gè)學(xué)校整個(gè)考務(wù)系統(tǒng)中相當(dāng)重要的環(huán)節(jié),如果由于考場安排編排表的制作周期延長而影響了正常的考試,那么將給學(xué)校的正常運(yùn)做帶來難以估計(jì)的后果。所以從考場安排的周期來考慮的話,一個(gè)能夠快速制作,編排合理的考場安排系統(tǒng)就是一個(gè)優(yōu)秀的考場安排系統(tǒng)。12 當(dāng)前考場安排系統(tǒng)的研究現(xiàn)狀國內(nèi)在考場安排系統(tǒng)的研究中基本上是根據(jù)特定條件進(jìn)行的,一般都是某個(gè)或者某些學(xué)校的特定情況,很少有可以通用的考
8、場安排系統(tǒng)。因此對(duì)每個(gè)學(xué)校的不同情況都需要進(jìn)行一次系統(tǒng)設(shè)計(jì)和開發(fā)?,F(xiàn)在的排課系統(tǒng)大都是模擬手工排課過程,以“班級(jí)”為單位,運(yùn)用啟發(fā)式函數(shù)來進(jìn)行編排的。這種課表編排系統(tǒng)有優(yōu)勢(shì)也有劣勢(shì),優(yōu)勢(shì)在于實(shí)現(xiàn)比較容易,但是劣勢(shì)在于往往他兼容性較差,只能適合某類學(xué)校甚至某個(gè)學(xué)校。另外的一種應(yīng)用趨勢(shì)就是基于優(yōu)先級(jí)的自動(dòng)編排算法17,它是通過劃分等價(jià)類、計(jì)算優(yōu)先級(jí)等方法降低課程調(diào)度的算法復(fù)雜度, 采用簡潔高效的快速排序和考場安排表匹配的方法,并引用操作系統(tǒng)中優(yōu)先級(jí)調(diào)度的算法,對(duì)每一次的排序和考場安排表匹配進(jìn)行優(yōu)化控制,并且它引入了信號(hào)量的概念對(duì)每次考場安排結(jié)果進(jìn)行驗(yàn)證和評(píng)定,最后產(chǎn)生適合需求的編排表,從而可以以較
9、快的速度獲得較為滿意的考場安排結(jié)果,這種算法具有較高的兼容性。因此這種編排思想的可參考性較高,應(yīng)用到我們的考場安排系統(tǒng)的機(jī)會(huì)也比較大。采用網(wǎng)絡(luò)化的考場安排系統(tǒng)也是一個(gè)較新的研究方向,國內(nèi)已經(jīng)有了網(wǎng)絡(luò)化考場安排系統(tǒng)的成功案例,這種網(wǎng)絡(luò)化的考場安排系統(tǒng)是建立在學(xué)校校園網(wǎng)絡(luò)的基礎(chǔ)之上,為解決教師不能隨時(shí)隨地查詢考場安排情況,以及根據(jù)實(shí)際需要調(diào)整教室和時(shí)間,當(dāng)遇到某個(gè)教師臨時(shí)重要事件不能及時(shí)參加監(jiān)考時(shí)可以及時(shí)更換合適的監(jiān)考教師。這種網(wǎng)絡(luò)化的考場安排系統(tǒng)在發(fā)生突發(fā)事件時(shí)顯得很有效,而且對(duì)于未來考場安排發(fā)展可能會(huì)占據(jù)主流位置。解決考場安排問題還有很多方法,比如說圖論方法,拉格朗日松弛法模擬退火法,二次分配
10、型法等等。這些算法研究不僅僅依靠單純的數(shù)學(xué)方法來解決問題,而且還利用了運(yùn)籌學(xué)中比如最短路徑算法、著色算法等等。所以根據(jù)現(xiàn)在研究的經(jīng)驗(yàn)我們需要充分利用運(yùn)籌學(xué)思想將整個(gè)問題細(xì)化,并逐步進(jìn)行解決,這樣才能夠做出完美的考場安排系統(tǒng)。當(dāng)然對(duì)于一個(gè)考場安排系統(tǒng)來說最主要的是它的智能化程度,也就是系統(tǒng)對(duì)于考場安排的合理化程度。目前還沒有完全智能的考場安排系統(tǒng),主要原因是因?yàn)椴淮_定因素過多,而且考慮的情況也有千千萬萬。而不確定因素又往往根據(jù)高校的特殊情況又會(huì)產(chǎn)生其他不確定因素。所以,對(duì)于一個(gè)考場安排系統(tǒng)的研究我覺得不僅僅應(yīng)該在算法上做深入的研究,還要對(duì)實(shí)際情況進(jìn)行深入分析,如果能夠充分考慮到考場安排時(shí)可能產(chǎn)生
11、沖突的因素,那么這樣呈現(xiàn)在我們面前的將是一個(gè)好的考場安排系統(tǒng)。第二章 系統(tǒng)設(shè)計(jì)21 系統(tǒng)功能分析 本系統(tǒng)需要實(shí)現(xiàn)用戶登入、考場編排以及信息錄入等,所以主要模塊包括:用戶登入、資料管理和考場安排等模塊。其中包含的主要功能有:l 用戶登入,授權(quán)用戶通過輸入用戶名和密碼進(jìn)入本系統(tǒng)進(jìn)行相關(guān)操作。l 資料管理,包括教室資料、班級(jí)資料、監(jiān)考教師資料、專業(yè)課程等四項(xiàng)基本信息的添加、修改、刪除的操作。l 考場安排手動(dòng)生成,通過手工固定班級(jí)課程手動(dòng)安排具有固定記錄數(shù)的考場安排系統(tǒng)。l 考場安排半自動(dòng)生成,通過電腦隨機(jī)分配教室和教師來達(dá)到考場的半自動(dòng)安排。以上所列功能是考場安排系統(tǒng)所必需的功能,實(shí)現(xiàn)以上這些功能之
12、后我們就可以根據(jù)需要添加輔助功能。22 系統(tǒng)功能模塊設(shè)計(jì)對(duì)于“考場安排系統(tǒng)”來說,最重要的當(dāng)然是考場安排這個(gè)環(huán)節(jié),所以考場安排模塊是必不可少的。對(duì)于數(shù)據(jù)量小的情況我們采取手動(dòng)安排考場,當(dāng)數(shù)據(jù)量大的情況下我們考慮半自動(dòng)考場安排,也就是先電腦自動(dòng)進(jìn)行編排之后再人工手動(dòng)進(jìn)行修改,所以這樣我們就有必要建立兩個(gè)考場安排模式:手動(dòng)生成考場安排表和半自動(dòng)生成考場安排表。實(shí)現(xiàn)這兩個(gè)功能我們需要數(shù)據(jù)來支持,由于我們采用的是ACCESS數(shù)據(jù)庫,所以表名稱可以用中文來描述,這樣顯得比較直觀。根據(jù)考場安排所涉及的屬性我們將某些屬性集合在一起,并獨(dú)立在四張表中,即:教室表、教師表、班級(jí)表、專業(yè)課程表,其中班級(jí)表和專業(yè)課
13、程表又可以做一個(gè)視圖,用來存放班級(jí)和專業(yè)課程的數(shù)據(jù)集合。當(dāng)確定了表之后我們就需要考慮建立提供信息錄入的界面,并且需要提供增加、修改、刪除等功能。為了保證系統(tǒng)的安全性我們還需要考慮加入身份認(rèn)證功能,這是系統(tǒng)安全所必需的。當(dāng)然系統(tǒng)還需要美工,雖然這些不是系統(tǒng)的重點(diǎn),但是一個(gè)能夠吸引人眼球的系統(tǒng)能夠讓人有種舒適的感覺,使用者的心情會(huì)用的舒服。所以我們?cè)谙到y(tǒng)的設(shè)計(jì)中穿插幾張帶有輕松元素的圖片,增加了界面的美觀程度。系統(tǒng)設(shè)計(jì)時(shí)我們考慮實(shí)現(xiàn)一個(gè)查詢功能,可以根據(jù)班級(jí)查詢?cè)摪嗉?jí)的課程考試安排情況,根據(jù)考試時(shí)間和教室的編號(hào)來用于教學(xué)樓的考場安排情況,以便能夠讓自修的同學(xué)知道哪些教室安排考場,并到空的教室自修等
14、。還可以添加打印功能來提供考場安排表的打印。對(duì)于大的模塊設(shè)計(jì)框架基本搭建完畢。我們現(xiàn)在所要考慮的是系統(tǒng)的智能化以及考場編排表的制作周期、合理化程度。對(duì)于一個(gè)考場安排系統(tǒng)來說智能化水平看的是考場安排這個(gè)模塊,所以我們?cè)诳紙霭才艜r(shí)班級(jí)課程首先生成,這樣就能對(duì)所要安排的系統(tǒng)的記錄數(shù)固定下來,并且可適當(dāng)利用隨即數(shù)來增加課表編排的可換性。對(duì)于周期問題的改善主要還是依賴于算法對(duì)客觀不確定因素的可確定能力,也就是對(duì)不確定因素做一些限制,而除了這些限制條件以外都是系統(tǒng)可接受的,那么通過諸如隨即數(shù)或者其他方法就可以進(jìn)行有限制地選擇,這樣保證了沖突發(fā)生的概率不會(huì)過大。對(duì)系統(tǒng)不確定因素的分析是整個(gè)系統(tǒng)合理性的主要焦
15、點(diǎn)。第三章 數(shù)據(jù)庫設(shè)計(jì)31 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)利用實(shí)體-關(guān)系模型(E-R模型)可以表示數(shù)據(jù)庫表之間的關(guān)聯(lián),圖3.6是考場安排系統(tǒng)中數(shù)據(jù)庫表之間的E-R圖。從E-R圖中我們可以看出數(shù)據(jù)庫的各個(gè)模塊之間沒有直接的參數(shù)聯(lián)系以及庫的交叉關(guān)聯(lián),從而使數(shù)據(jù)庫其他數(shù)據(jù)能夠獨(dú)立運(yùn)行,并且在某一數(shù)據(jù)變動(dòng)的情況下不會(huì)影響其他數(shù)據(jù)的正常運(yùn)行。通過E-R圖我們可以很直觀的看出考場安排表中的班級(jí)名稱和課程名稱來源于班級(jí)表和專業(yè)課程表的關(guān)聯(lián),而他們之間關(guān)聯(lián)之后能夠?qū)紙霭才疟淼挠涗洈?shù)做出限制,也就是說班級(jí)名稱和課程名稱構(gòu)成了考場安排表的主鍵。在這個(gè)E-R圖中監(jiān)考教師表被使用兩次,用于調(diào)用教師一和教師二,但是在E-R圖里我
16、們把他們放在同一表內(nèi)。圖3.6 浙江工商大學(xué)夜大考場安排系統(tǒng)E-R圖N:1專業(yè)課程專業(yè)編號(hào)課程編號(hào)班級(jí)班級(jí)編號(hào)專業(yè)編號(hào)教室教室編號(hào)是否大教室監(jiān)考教師教師編號(hào)教師名稱考場安排表班級(jí)名稱課程名稱教室編號(hào)教師一教師二考試日期N:1N:1N:132 數(shù)據(jù)庫需求分析根據(jù)數(shù)據(jù)前面介紹的對(duì)數(shù)據(jù)的要求,我們可以列出考場安排系統(tǒng)中所需的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)(表3.1中為詳細(xì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)):l 教室:教室編號(hào)、是否大教室。符合第三范式。l 班級(jí):班級(jí)編號(hào)、班級(jí)名稱、專業(yè)編號(hào)、班級(jí)人數(shù)。符合第三范式。l 監(jiān)考教師:教師編號(hào)、教師名稱。符合第三范式。l 專業(yè)課程:專業(yè)編號(hào)、課程編號(hào)、專業(yè)名稱、課程名稱、考試時(shí)間。符
17、合第三范式。l 考場安排表:班級(jí)名稱、課程名稱、教室編號(hào)、教師一、教師二、考試日期。符合第三范式。存放關(guān)聯(lián)的數(shù)據(jù)的視圖以及一些臨時(shí)表:l 班級(jí)專業(yè)課程視圖:用于關(guān)聯(lián)班級(jí)和課程,包括班級(jí)名稱、專業(yè)編號(hào)、專業(yè)名稱、課程名稱、考試時(shí)間(如表3.2)。l 臨時(shí)班級(jí)課程教室表:存放半自動(dòng)考場安排臨時(shí)數(shù)據(jù)的表,包括班級(jí)名稱、課程名稱、考試時(shí)間、教室編號(hào)、教師一、教師二(如表3.3)。l 臨時(shí)班級(jí)課程表:用于存放臨時(shí)班級(jí)的班級(jí)課程,包括班級(jí)名稱、課程名稱、考試時(shí)間(如表3.4)。l 登入表:用于授權(quán)用戶登入認(rèn)證,包括用戶名、密碼。兩個(gè)屬性都是文本類型(如表3.5),該表符合第三范式。表3.1 考場安排系統(tǒng)中
18、所需的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫表字段名稱字段類型類型長度是否主鍵班級(jí)班級(jí)編號(hào)文本10是班級(jí)名稱文本20否專業(yè)編號(hào)文本10否班級(jí)人數(shù)數(shù)字整型否監(jiān)考教師教師編號(hào)文本10是教師姓名文本20否表3.1 考場安排系統(tǒng)中所需的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)教室教室編號(hào)文本10是是否大教室是/否(布爾)1否專業(yè)課程專業(yè)編號(hào)文本10是課程編號(hào)文本10否專業(yè)名稱文本20否課程名稱文本30否考試時(shí)間文本10否考試安排表班級(jí)名稱文本20是課程名稱文本30教室編號(hào)文本10否教師一文本20否教師二文本20否考試日期文本10否表3.2班級(jí)專業(yè)課程視圖字段名稱數(shù)據(jù)類型類型長度是否主鍵班級(jí)名稱文本20否專業(yè)編號(hào)文本10否專業(yè)名稱文本20否課
19、程名稱文本30否考試時(shí)間文本10否表3.3臨時(shí)班級(jí)課程教室表字段名稱字段類型類型長度是否主鍵班級(jí)名稱文本20是課程名稱文本30考試時(shí)間文本10否教室編號(hào)文本10否教師一文本20否教師二文本20否表3.4臨時(shí)班級(jí)課程表字段名稱字段類型類型長度是否主鍵班級(jí)名稱文本20否課程名稱文本30否考試時(shí)間文本10否表3.5 登入表字段名稱字段類型類型長度是否主鍵用戶名文本20是密碼文本20否33數(shù)據(jù)庫安全認(rèn)證以及基本數(shù)據(jù)操作對(duì)基本數(shù)據(jù)的操作需要通過安全認(rèn)證,也就是用戶的身份認(rèn)證對(duì)于基本數(shù)據(jù)的操作我們可以在進(jìn)入系統(tǒng)之后的,權(quán)限用戶通過對(duì)資料管理模塊中班級(jí)資料、教室資料、監(jiān)考教師資料以及專業(yè)課程的資料的添加、修
20、改和刪除的操作來對(duì)考場安排所需的數(shù)據(jù)進(jìn)行調(diào)整。在基本數(shù)據(jù)的輸入規(guī)則雖然沒有明確的定義,但是我們可以對(duì)格式進(jìn)行統(tǒng)一,比如根據(jù)習(xí)慣有的人喜歡將日期輸入為“某年.某月.某日”,有的人喜歡“某年-某月-某日”,而我們的數(shù)據(jù)表中定義了文本類型,所以可以根據(jù)習(xí)慣使用任何一種,但是為了美觀起見,最好格式統(tǒng)一。第四章 各功能模塊的創(chuàng)建41 用戶登入模塊用戶登入模塊是建立在主窗體上用于進(jìn)入系統(tǒng)的唯一通道。它包括了四個(gè)TLabel、一個(gè)Edit 、一個(gè)COMBOX、兩個(gè)Button。在兩個(gè)TEdit中分別輸入用戶名和密碼,然后通過點(diǎn)擊登陸按鈕對(duì)數(shù)據(jù)庫進(jìn)行查詢來驗(yàn)證用戶的合法性,并通過在輸入錯(cuò)誤信息后彈出對(duì)話框提示
21、用戶重新輸入.在程序初始化時(shí)從數(shù)據(jù)庫中取出所有權(quán)限用戶的用戶名,顯示在下拉列表框中。登入界面如圖4.1所示。在這個(gè)界面中最重要的是對(duì)記錄的對(duì)比,也就是用戶用戶名和密碼的校驗(yàn)。校驗(yàn)的核心代碼如下:CString strSQL,strName,strPas,passward,m_strJiaose;m_id.GetWindowText(strName);if(Degree=3)MessageBox(對(duì)不起!您無權(quán)登錄!,系統(tǒng)提示,MB_OK|MB_ICONSTOP);this-OnCancel();return;if(strName.IsEmpty()MessageBox(請(qǐng)選擇用戶名!,系統(tǒng)提示
22、,MB_OK|MB_ICONSTOP);Degree=Degree+1;return;strSQL.Format(Select * from 登陸 where 用戶名=%s, strName); m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(strSQL);m_psw.GetWindowText(passward);strPas=(char*)(_bstr_t)m_RecordsetPtr-GetCollect(密碼);strPas.TrimLeft();strPas.TrimRight();if (passward = strPas)CMyDlg dlg
23、;this-OnCancel();dlg.DoModal();elseMessageBox(您輸入的密碼不正確!請(qǐng)重新輸入!,系統(tǒng)提示,MB_OK|MB_ICONSTOP);Degree=Degree+1;圖4.1用戶登入界面42 資料管理模塊在Mainmenu組件中加入資料管理模塊,它主要包括了四個(gè)小模塊:教室資料、班級(jí)資料、監(jiān)考教師資料、專業(yè)課程資料。資料管理模塊及其子模塊顯示如圖4.2所示。圖4.2資料管理模塊421 教室資料管理模塊教室資料模塊的主要功能是輸入考場安排所需要的教室信息。其控件布局如圖4.3所示, 由一個(gè)listctrl控件來顯示所有的教室資料信息,教室資料的所有信息包括
24、列名,所有數(shù)據(jù)均由數(shù)據(jù)庫中取出自動(dòng)生成。當(dāng)用戶選擇其中的一行數(shù)據(jù)后,在下面的EDIT控件與COMBOX控件中就會(huì)自動(dòng)出現(xiàn)教室編號(hào)與教室是否為大教室的選擇。界面中有四個(gè)控制數(shù)據(jù)庫基本操作的BUTTON,分別完成插入、刪除、修改等數(shù)據(jù)庫的基本操作,并提供數(shù)據(jù)庫操作的合法性檢驗(yàn)。圖4.3教室資料管理422其它模塊除了教室資料管理模塊之外,模塊中還包括了班級(jí)資料、監(jiān)考教師資料、專業(yè)課程資料三大模塊。這三大模塊的設(shè)計(jì)基本與教室資料管理相似。這三個(gè)模塊所示如圖4.4。圖4.4 監(jiān)考教師資料管理、班級(jí)資料管理、專業(yè)課程資料界面43 考場安排模塊這個(gè)模塊是整個(gè)“考場安排系統(tǒng)”的核心,重要包含了手工考場安排和半
25、自動(dòng)考場安排兩個(gè)子模塊。對(duì)于這兩個(gè)模塊的實(shí)現(xiàn)要求和一些設(shè)計(jì)思路我們會(huì)在下面做詳細(xì)說明。431 手工考場安排界面設(shè)計(jì)如圖4.6所示,程序設(shè)計(jì)的步驟為:1、-如果同一監(jiān)考教師在同一時(shí)間在 兩個(gè)不同的地方進(jìn)行監(jiān)考,則發(fā)生錯(cuò)誤;2、課程名稱與考試時(shí)間對(duì)應(yīng),通過課程名稱檢索出考試時(shí)間;3、檢索考試安排表中,監(jiān)考教師對(duì)應(yīng)的考試時(shí)間,檢索出所有教師一或教師二對(duì)應(yīng)的考試時(shí)間;4、同一個(gè)教室在同一時(shí)間不可能提供兩門不同的課程的考試,課程名稱與考試時(shí)間對(duì)應(yīng),通過課程名稱檢索出考試時(shí)間;5、什么專業(yè)的學(xué)生考什么課程,班級(jí)名稱對(duì)應(yīng)一個(gè)專業(yè)編號(hào),專業(yè)編號(hào)對(duì)應(yīng)一個(gè)課程名稱;6、把合法的信息全部插入到考試安排表中,刷新所有
26、列表現(xiàn)實(shí)。圖4.6 手工考場安排界面在手動(dòng)考場安排中,最重要的是對(duì)用戶輸入的數(shù)據(jù)進(jìn)行糾錯(cuò),通過對(duì)話框的形式與用戶進(jìn)行交互。而通常我們所使用的糾錯(cuò)方法的代碼如下:CString strJS1,strJS2,strBJMC,strSQL;m_js1.GetWindowText(strJS1);m_js2.GetWindowText(strJS2);m_bjmc.GetWindowText(strBJMC);CString strKCMC,strKSSJ;m_kcmc.GetWindowText(strKCMC);strSQL.Format(select 考試時(shí)間 from 專業(yè)課程 where 課
27、程名稱 = %s,strKCMC);m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(strSQL);m_RecordsetPtr-MoveFirst();while(!m_RecordsetPtr-adoEOF)strKSSJ=(char*)(_bstr_t)m_RecordsetPtr-GetCollect(考試時(shí)間);m_RecordsetPtr-MoveNext();/-檢索考試安排表中,監(jiān)考教師對(duì)應(yīng)的考試時(shí)間-strSQL.Format(select 考試日期 from 考試安排 where 教師一=%s or 教師二=%s ,strJS1,strJ
28、S1);m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(strSQL);/檢索出所有教師一對(duì)應(yīng)的考試時(shí)間if (m_RecordsetPtr!=FALSE) m_RecordsetPtr-MoveFirst();while(!m_RecordsetPtr-adoEOF)if (strKSSJ=(char*)(_bstr_t)m_RecordsetPtr-GetCollect(考試日期) CString tmp;tmp.Format(%s在本日期已有其他考試安排,請(qǐng)安排其他老師監(jiān)考!,strJS1);AfxMessageBox(tmp);return;brea
29、k;m_RecordsetPtr-MoveNext();strSQL.Format(select 考試日期 from 考試安排 where 教師一=%s or 教師二=%s ,strJS2,strJS2);m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(strSQL);/檢索出所有教師一對(duì)應(yīng)的考試時(shí)間if (m_RecordsetPtr!=FALSE) m_RecordsetPtr-MoveFirst();while(!m_RecordsetPtr-adoEOF)if (strKSSJ=(char*)(_bstr_t)m_RecordsetPtr-GetCo
30、llect(考試日期) CString tmp;tmp.Format(%s在本日期已有其他考試安排,請(qǐng)安排其他老師監(jiān)考!,strJS2);AfxMessageBox(tmp);return;break;m_RecordsetPtr-MoveNext();/-同一個(gè)教室在同一時(shí)間不可能提供兩門不同的課程的考試-CString strJSID;m_kcmc.GetWindowText(strKCMC);m_jsbh.GetWindowText(strJSID);strSQL.Format(select 考試時(shí)間 from 專業(yè)課程 where 課程名稱 = %s,strKCMC);m_Record
31、setPtr=theApp.m_pAdo.ReadDataBase(strSQL);m_RecordsetPtr-MoveFirst();while(!m_RecordsetPtr-adoEOF)strKSSJ=(char*)(_bstr_t)m_RecordsetPtr-GetCollect(考試時(shí)間);m_RecordsetPtr-MoveNext();strSQL.Format(select * from 考試安排 where 考試日期 =%s and 教室編號(hào)=%s,strKSSJ,strJSID);m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(s
32、trSQL);if (m_RecordsetPtr!=FALSE) AfxMessageBox(該教室已有考試,請(qǐng)選擇另一教室!);return;strSQL.Format(select 專業(yè)編號(hào) from 班級(jí) where 班級(jí)名稱=%s,strBJMC);CString strZYBH;/取出專業(yè)編號(hào)m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(strSQL);m_RecordsetPtr-MoveFirst();while(!m_RecordsetPtr-adoEOF)strZYBH=(char*)(_bstr_t)m_RecordsetPtr-Ge
33、tCollect(專業(yè)編號(hào));m_RecordsetPtr-MoveNext();strSQL.Format(select 課程名稱 from 專業(yè)課程 where 專業(yè)編號(hào) =%s and 課程名稱=%s,strZYBH,strKCMC);m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(strSQL);if (m_RecordsetPtr=FALSE) /說明沒有找到AfxMessageBox(該班無該項(xiàng)考試,請(qǐng)選擇正確的考試安排!);return;strSQL.Format(select * from 考試安排 where 班級(jí)名稱=%s and 課程名
34、稱=%s,strBJMC,strKCMC);m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(strSQL);if (m_RecordsetPtr!=FALSE) /說明沒有找到AfxMessageBox(該班該項(xiàng)考試已安排完畢!);return;strSQL.Format(insert into 考試安排 values(%s,%s,%s,%s,%s,%s),strBJMC,strKCMC,strJSID,strJS1,strJS2,strKSSJ);theApp.m_pAdo.OperateRecord(strSQL);AfxMessageBox(添加成功!
35、);strSQL.Format(select * from 考試安排);m_RecordsetPtr=theApp.m_pAdo.ReadDataBase(strSQL);show(m_RecordsetPtr); 以上為當(dāng)判斷教師二在當(dāng)天是否被編排過的一種情況,對(duì)于這種情況我們是通過用戶在選擇未安排過的某個(gè)班級(jí)的某個(gè)課程之后,再選擇教師二中的教師,然后查詢數(shù)據(jù)庫臨時(shí)考場安排表中是否有符合在該門課程的考試時(shí)間中,有教師一與選擇的教師二想同,如果相同說明教師二的選擇有沖突,需要對(duì)教師二重新進(jìn)行選擇。同樣的情況判斷教師二在當(dāng)天是否被編排過還需要判斷選擇的教師二是否在數(shù)據(jù)庫臨時(shí)考場安排表中有該考試時(shí)
36、間內(nèi),有教師二與選擇的教師二相同的情況。同理,我們判斷教師一是否被編排過也是通過上面所描述的在該天教師一或者教師二中都不能有記錄。對(duì)于同一考試日期內(nèi),一個(gè)教室只能提供一次考試的情況,我們通過在選擇未安排過的某個(gè)班級(jí)的某個(gè)課程之后,選擇教室編號(hào),然后通過對(duì)班級(jí)專業(yè)課程表進(jìn)行查詢,查詢?cè)摪嗉?jí)該課程的考試時(shí)間,然后查詢?cè)摽荚嚂r(shí)間下是否有與用戶輸入的教室編號(hào)相同的,如果相同那么將輸入錯(cuò)誤提示:“該教室該天已經(jīng)安排考試,請(qǐng)輸入不同的數(shù)據(jù)!”。432 半自動(dòng)考場安排在半自動(dòng)考場安排中,由于考場的安排涉及到很多張數(shù)據(jù)庫表,例如:教室表、監(jiān)考教師表、班級(jí)表等等,我們主要是通過連接多個(gè)數(shù)據(jù)庫表查詢的復(fù)雜SQL語
37、句來實(shí)現(xiàn)自動(dòng)生成考場安排的算法。算法的具體實(shí)現(xiàn)步驟如下:1、 去處要安排考試的班級(jí),考試科目,考試時(shí)間。典型SQL語句分析:(select 班級(jí).班級(jí)名稱,專業(yè)課程.課程名稱,專業(yè)課程.考試時(shí)間 from班級(jí),專業(yè)課程 where 班級(jí).專業(yè)編號(hào)=專業(yè)課程.專業(yè)編號(hào))從班級(jí)與專業(yè)課程兩張表中去查找對(duì)應(yīng)班級(jí)與考試相關(guān)的班級(jí)名、考試時(shí)間、考試科目等信息。2、 開始分配考試教室,取出所有的教室名,查找自動(dòng)生成表,如果在本考試時(shí)間內(nèi)沒有安排就選擇它。典型SQL語句分析:(select 教師姓名 from 監(jiān)考教師 where 教師姓名 not in (select 教師一 from 自動(dòng)安排 wher
38、e 考試日期=%s ) and 教師姓名 not in (select 教師二 from 自動(dòng)安排 where 考試日期=%s )查詢所有在所選出的日期中沒有進(jìn)行監(jiān)考安排的老師,使用的是查詢的嵌套。3、 在步驟2中已通過循環(huán)生成了所有符合條件的考試安排信息,在步驟3中將其插入數(shù)據(jù)庫,同時(shí)刷新列表顯示。4、 在手動(dòng)調(diào)整功能模塊中,主要是針對(duì)已生成的考試安排數(shù)據(jù)表,在授權(quán)用戶進(jìn)行插入、刪除、修改等數(shù)據(jù)庫操作時(shí),根據(jù)考試安排的的基本條件(下文將詳細(xì)講述)拒絕執(zhí)行不合法的操作,并給出提示給用戶。圖4.7 半自動(dòng)考場安排Form1圖4.8半自動(dòng)考場安排Form2433考場安排基本條件1)同一監(jiān)考教師不可
39、能在同一時(shí)間在兩個(gè)不同的地方進(jìn)行監(jiān)考??紤]到這個(gè)情況,我們系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)時(shí)在考場安排表內(nèi)通過對(duì)新增加的數(shù)據(jù)與數(shù)據(jù)庫原有數(shù)據(jù)進(jìn)行比較,如果有同一時(shí)間內(nèi)有相同的教師一,或者相同的教師二,或者一條記錄的教師一與另外條記錄中教師二相同,那么都將被視為該類情況。對(duì)于監(jiān)考教師一和監(jiān)考教師二在一條記錄中出現(xiàn)也視為此類情況。2)同一班級(jí)不可能在同一時(shí)間考兩門不同的課程。為了直接避免這種情況的發(fā)生我們?cè)跀?shù)據(jù)庫專業(yè)課程表中直接考慮課程與時(shí)間上的對(duì)應(yīng),這樣就使得這種情況不會(huì)發(fā)生3)同一教室在同一時(shí)間不可能提供兩門不同的課程的考試。對(duì)于這種情況我們?cè)谙到y(tǒng)設(shè)計(jì)時(shí)將考場安排表中的班級(jí)和課程從班級(jí)專業(yè)課程表中取出,并從教
40、室表中取得教室,如果考場安排表內(nèi)教室編號(hào)和考試時(shí)間相同,將被視為此類情況。4)同一課程需要在同一時(shí)間內(nèi)進(jìn)行考試。對(duì)于這個(gè)我們?cè)趯I(yè)課程信息錄入時(shí)就將課程與時(shí)間安排好,并存儲(chǔ)在專業(yè)課程表中。5)由于存在大小班之分,所以必須根據(jù)學(xué)生人數(shù)數(shù)量安排教室的大小。我們的數(shù)據(jù)庫設(shè)計(jì)在這方面還有點(diǎn)不足之處,我們不排大教室,一般都是用小教室提供單班考試。當(dāng)系統(tǒng)考場編排半自動(dòng)結(jié)束之后,然后可以根據(jù)需求使用大教室,并且多余的大教室我們做最后考慮。6)參加監(jiān)考的兩位監(jiān)考教師不能為同一個(gè)人。但是還有種情況就是同名同姓的兩個(gè)不同老師,雖然在數(shù)據(jù)庫表中我們可以通過主鍵來區(qū)分,但是在界面顯示中還是不大會(huì)分清楚,所以對(duì)于這種情
41、況我們可以采用姓名之后加編號(hào)的方法,比如“王五1”、“王五2”等,這樣就可以在直觀上分清是哪位監(jiān)考教師參加監(jiān)考。434考場安排特殊條件1)對(duì)于監(jiān)考教師的安排我們需要考慮合理安排監(jiān)考教師的監(jiān)考次數(shù),這個(gè)可以采取當(dāng)監(jiān)考教師參加一次監(jiān)考之后,為監(jiān)考的監(jiān)考次數(shù)后面加上1,每次先去監(jiān)考次數(shù)小的教師。這種判定方法在實(shí)現(xiàn)方面比較復(fù)雜,為了能夠既考慮到教師的合理監(jiān)考次數(shù),又考慮系統(tǒng)實(shí)現(xiàn)的簡單性,我們采取了隨機(jī)數(shù)取值的方法。2)對(duì)于大小教室的安排,我們采取優(yōu)先安排小教室,然后特殊情況再使用大教室??紤]到這一點(diǎn)的原因是大教室的數(shù)量遠(yuǎn)遠(yuǎn)比小教室要少,因此考慮完小教室情況之后然后根據(jù)實(shí)際要求使用大教室。3)考試安排設(shè)
42、置在每天晚上這個(gè)時(shí)間段。對(duì)于這種情況,我們就可以在時(shí)間安排上將一天時(shí)間做為一個(gè)時(shí)間單位,并且只要顯示考試的日期就可以了,這樣一來在時(shí)間的判斷上我們的的工作量就可以減少很多。4)對(duì)于教師有特殊要求,比如該教師那段時(shí)期處于假期或者培訓(xùn),或者某些教師需要先做安排的情況,我們可以提高這些教師的優(yōu)先級(jí),讓這些教師先做安排。但目前由于算法上的原因我們的系統(tǒng)還未滿足此項(xiàng)需求。第五章 系統(tǒng)實(shí)現(xiàn)51 系統(tǒng)功能實(shí)現(xiàn)在雙擊DEBUG文件夾中的考場安排系統(tǒng).exe后,首先彈出一個(gè)用戶登入窗口,如圖5.1所示。當(dāng)輸入正確的用戶名和密碼之后將進(jìn)入主程序窗體,同時(shí)隱藏登入界面。如果連接失敗將會(huì)提示“連接數(shù)據(jù)庫出錯(cuò)!”或者“
43、輸入信息不完整,請(qǐng)重新輸入!”或者“用戶名密碼不正確,請(qǐng)重新輸入!”。進(jìn)入主程序窗體之后我們首先需要錄入考場安排所需要的數(shù)據(jù)。圖5.1 系統(tǒng)登入界面由于缺少后臺(tái)管理,所以管理員帳號(hào)和密碼需要事先輸入到數(shù)據(jù)庫中,這個(gè)是本系統(tǒng)的一個(gè)不足之處。進(jìn)入主程序窗口之后我們首先要輸入本次考場安排所需要的基本數(shù)據(jù),其中包括教室資料(如圖5.2)、班級(jí)資料(如圖5.3)、監(jiān)考教師資料(如圖5.4)、專業(yè)課程資料(如圖5.5)。這四部分的結(jié)構(gòu)基本上是相同的。由一列表顯示已經(jīng)輸入數(shù)據(jù)庫的信息。圖5.2考場安排系統(tǒng)中教室資料管理圖5.3考場安排系統(tǒng)中班級(jí)資料管理圖5.4考場安排系統(tǒng)中專業(yè)課程資料管理5.5考場安排系統(tǒng)
44、中監(jiān)考教師資料管理在信息錄入的時(shí)候我們需要特別注意的是專業(yè)課程資料管理。由于在設(shè)計(jì)時(shí)我們的考試時(shí)間在這里就已經(jīng)定好了,這樣做的目的是為了能夠減少不穩(wěn)定因素,使考場安排的編排出現(xiàn)不合理的幾率能夠降低。所以在信息錄入的時(shí)候我們需要做出判斷(如圖5.6),我們需要先判斷有多少班級(jí)的課程需要進(jìn)行編排,然后確定需要在多少時(shí)間內(nèi)將這些考試安排完。這個(gè)過程是一個(gè)取平均值的過程,通過對(duì)總的班級(jí)課程數(shù)目除以考試天數(shù),然后得到平均值,并通過數(shù)學(xué)方法或者運(yùn)籌學(xué)的方法得到最優(yōu)方案,避免了某天的考場安排時(shí)由于安排班級(jí)過多而導(dǎo)致教室的不足。在考試天數(shù)的計(jì)算問題上我們可以采取這種方法:取考試課程數(shù)量最大值X2。這樣的安排目
45、的是確??荚囍嗄軌蛱峁?fù)習(xí)時(shí)間,如果需要加長復(fù)習(xí)時(shí)間我們可以X2.5來計(jì)算天數(shù)。在安排課程和時(shí)間的時(shí)候我們需要主要注意:1)同一專業(yè)的不同課程的考試不能安排在同一天進(jìn)行,當(dāng)然視情況,最好安排間隔一天,中間的間隔天數(shù)能夠提供復(fù)習(xí)。2)同一專業(yè)的班級(jí)必須在同一天參加同一門考試。這種情況是明顯需要支持的。3)對(duì)于班級(jí)課程的安排要大致接近計(jì)算出來的平均數(shù),不能有太多偏差。由于專業(yè)課程的錄入是通過人工操作的,所以在時(shí)間上的編排需要人工來操作,系統(tǒng)在該點(diǎn)上還存在不足,如果能夠?qū)⒖荚嚂r(shí)間的安排能夠做一個(gè)自動(dòng)化安排將能夠減少更多的人力資源。在上面的教師資料管理中我們還需要注意一個(gè)問題,就是如果教師重名的情況
46、,對(duì)于這種情況我們需要在錄入的時(shí)候做好標(biāo)記,能夠明顯地區(qū)分兩者或者更多重名。全部班級(jí)課程考試時(shí)間1安排考試的天數(shù)考試時(shí)間2考試時(shí)間N部分課程1部分課程2部分課程N(yùn)圖5.6 課程與時(shí)間的合理安排當(dāng)完成相關(guān)的系統(tǒng)錄入之后我們便可以對(duì)這些數(shù)據(jù)進(jìn)行相關(guān)操作。首先我們先進(jìn)行一次考場安排手工編排。如圖 5.7所視,考慮到使手工編排不出現(xiàn)混亂的情況,我們可以將班級(jí)跟課程作為一個(gè)數(shù)據(jù)集合,然后分配教室和監(jiān)考教師,當(dāng)出現(xiàn)于本文中4.3.2所提到的基本要求相沖突的話系統(tǒng)將彈出一個(gè)對(duì)話框,告訴手工編排者選擇其他教室或者其他教師,直到系統(tǒng)判定選擇為合理的為止。當(dāng)記錄中包含了所有班級(jí)與課程的數(shù)據(jù)集之后,那么一個(gè)考場編排
47、基本成型,這個(gè)時(shí)候?yàn)榱藘?yōu)化考場編排,我們可以對(duì)記錄再進(jìn)行調(diào)整。圖5.7 考場安排手動(dòng)編排手工編排考場具有隨意性和主觀性,半自動(dòng)考場生成將這種隨意性和主觀性大大削弱。我們只要點(diǎn)擊半自動(dòng)考場安排界面中的“生成考場安排表”按鈕,系統(tǒng)就會(huì)自動(dòng)編排考場(如圖5.8所示)。記錄數(shù)與班級(jí)和課程的數(shù)據(jù)集合數(shù)量相同。圖5.8 半自動(dòng)生成考場安排表點(diǎn)擊“手動(dòng)調(diào)整”按鈕我們可以進(jìn)入半自動(dòng)考場安排表手動(dòng)調(diào)整界面對(duì)數(shù)據(jù)進(jìn)行相關(guān)操作(如圖5.9),在這里主要是針對(duì)已生成的考試安排數(shù)據(jù)表,在授權(quán)用戶進(jìn)行插入、刪除、修改等數(shù)據(jù)庫操作時(shí),根據(jù)考試安排的的基本條件(下文將詳細(xì)講述)拒絕執(zhí)行不合法的操作,并給出提示給用戶。 圖5.
48、9 半自動(dòng)考場安排表手動(dòng)調(diào)整52 系統(tǒng)環(huán)境配置本程序所使用的工具為VC+6.0.0,數(shù)據(jù)庫設(shè)計(jì)所用工具是Access 2000,軟件測試環(huán)境為Microsoft Windows XP.本系統(tǒng)具有良好的可移植性,通過解壓安裝可以在普通計(jì)算機(jī)上使用。系統(tǒng)對(duì)硬件和軟件配置有一定的要求,其中硬件配置:486以上檔次的計(jì)算機(jī),彩色顯示器,內(nèi)存8M,硬盤200M;軟件配置:Windows 98/2000/XP操作系統(tǒng),具有SP2補(bǔ)丁。53 開發(fā)工具介紹5.3.1 Visual C+簡介:幾乎所有世界級(jí)的軟件,從業(yè)界領(lǐng)先的Web瀏覽器到面向任務(wù)的企業(yè)應(yīng)用,都是使用Microsoft Visual C+開發(fā)系
49、統(tǒng)來開發(fā)的。要用C+來開發(fā)Windows和Web上的高性能應(yīng)用程序,Visual C+是效率最高的首選工具。Visual C+ 6.0在不犧牲靈活性、性能和控制力度的同時(shí),給C+帶來更高水平的生產(chǎn)效率。除了IntelliSense Technology(智能感應(yīng)技術(shù))和Edit and Continue(即編即調(diào))等顯著縮短開發(fā)時(shí)間的新特性外,Visual C+ 6.0還為Web開發(fā)和企業(yè)開發(fā)提供更良好的支持。Microsoft Visual C+ 6.0專業(yè)版的健壯的構(gòu)件開發(fā)、強(qiáng)大的數(shù)據(jù)庫工具和完備的Internet支持將使您從中受益,創(chuàng)建出策略性的商務(wù)解決方案來。Visual Studio
50、 C+6.0采用一種非常巧妙的方法將原本非常復(fù)雜的Windows編程步驟封裝起來,使編程人員可以輕松容易地編寫Windows應(yīng)用程序。Visual C+6.0是Microsoft Visual Studio6.0的一個(gè)子集,他對(duì)低版本開發(fā)程序兼容。它有如下的特點(diǎn):(1) Visual C+6.0提供了用于開發(fā)Windows環(huán)境下的應(yīng)用程序和簡捷、快速的開發(fā)環(huán)境。利用Visual C+6.0開發(fā)Windows應(yīng)用程序具有很高的效率。(2) Visual C+6.0提供了MFC類,開發(fā)者只需要做少量的工作就可以得到功能齊全的Windows應(yīng)用程序。與使用C和Windows SDK開發(fā)Windows
51、應(yīng)用程序相比,使用Visual C+6.0建立一個(gè)完美的Windows應(yīng)用程序所花費(fèi)的時(shí)間要少得多。(3) Visual C+6.0還提供了一個(gè)高度集成的工具集,使得在開發(fā)應(yīng)用程序的全過程中都保證了較高的效率。集成化便于程序開發(fā),開發(fā)者可以同時(shí)在編輯、建立、調(diào)試等不同任務(wù)之間快速切換,甚至可以同時(shí)進(jìn)行。(4)調(diào)試方便:在程序調(diào)試時(shí),在遇到編譯錯(cuò)誤時(shí),會(huì)在輸出窗口顯示出錯(cuò)誤類型、行號(hào)及錯(cuò)誤提示等信息。在輸出窗口中雙擊錯(cuò)誤提示時(shí),光標(biāo)會(huì)自動(dòng)指向出現(xiàn)錯(cuò)誤的代碼所在行應(yīng)方便快速找出錯(cuò)誤。Visual C+支持?jǐn)帱c(diǎn)調(diào)試,同時(shí)也可以在調(diào)試窗口觀察有關(guān)變量的值,以方便查找出有關(guān)的邏輯錯(cuò)誤。5.3.2 ADO
52、技術(shù)1) ADO的技術(shù)特點(diǎn) ADO的全稱是ActiveX Data Object,它是微軟公司為數(shù)據(jù)庫應(yīng)用程序開發(fā)的新接口。ADO基于COM,提供編程語言可利用的對(duì)象,它不僅面向Visual C+,同時(shí)還提供面向其他開發(fā)工具的應(yīng)用,如Visual Basic、VJ等,甚至還提供面向諸如 VBScript、JavaScript等腳本語言的應(yīng)用。ADO的底層是OLE DB,不僅能訪問關(guān)系數(shù)據(jù)庫,也能訪問非關(guān)系型數(shù)據(jù)庫。ADO對(duì)OLE DB的包裝是相當(dāng)成功的,相對(duì)于OLE DB中眾多的接口來說,ADO對(duì)象模型簡明扼要,沒有一點(diǎn)多余的東西,并且其功能還要比DAO強(qiáng)大的多。并且可以說到目前為止,ADO是
53、目前最快的數(shù)據(jù)庫訪問的中間層。2) ADO的結(jié)構(gòu)ADO模型包含了7個(gè)對(duì)象和4個(gè)集合,ADO的結(jié)構(gòu)圖如圖所示。連接對(duì)象(Connection)錯(cuò)誤集合(Errors)錯(cuò)誤對(duì)象(Error)屬性集合(Properties)屬性對(duì)象(Property)命令對(duì)象(Command)參數(shù)集合(Parameters)參數(shù)對(duì)象(Parameter)屬性集合(Properties)屬性對(duì)象(Property)記錄集對(duì)象(Recordset)域集合(Fields)域?qū)ο?Field)屬性集合(Properties)屬性對(duì)象(Property) 54 系統(tǒng)測試首先我們輸入教室資料、班級(jí)資料、監(jiān)考教師資料和專業(yè)課程資
54、料,在輸入這些小批量,大約40條左右的班級(jí)課程記錄和20來?xiàng)l教室以及20來位教師之后我們先利用手動(dòng)考場安排進(jìn)行系統(tǒng)的可行性測試,在測試中發(fā)現(xiàn)操作者的主觀因素占據(jù)了整個(gè)安排思路的關(guān)鍵,所以如果是一個(gè)考慮完全,并且經(jīng)驗(yàn)豐富的操作員的話,考場編排將是可行并且合理的。然后我們?cè)倮们懊嬗脕磉M(jìn)行手動(dòng)安排考場系統(tǒng)的信息進(jìn)行半自動(dòng)考場安排,在測試5次重新安排之后發(fā)現(xiàn)考場安排表基本能夠達(dá)到應(yīng)用的目的,但是還是需要手動(dòng)進(jìn)行調(diào)整,有些因素未完全考慮進(jìn)去。第六章 結(jié)論與展望本文為考場安排系統(tǒng)做了系統(tǒng)的闡述,主要從系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)以及系統(tǒng)功能的創(chuàng)建和實(shí)現(xiàn)等四個(gè)方面著手。在系統(tǒng)設(shè)計(jì)中我們著重描述我們?cè)陂_發(fā)系統(tǒng)功能前
55、如何合理布局,系統(tǒng)功能創(chuàng)建中著重闡述了如何去開發(fā)整個(gè)系統(tǒng),系統(tǒng)功能實(shí)現(xiàn)中闡述了系統(tǒng)該如何操作,數(shù)據(jù)庫設(shè)計(jì)中詳細(xì)地闡述了數(shù)據(jù)庫表之間的關(guān)聯(lián)。我們采用了具有強(qiáng)大組件庫和強(qiáng)大數(shù)據(jù)庫功能的VC+6.0做為開發(fā)工具,采用界面友好性較好,并適合小型數(shù)據(jù)量操作的Access數(shù)據(jù)庫,通過ADO技術(shù)進(jìn)行數(shù)據(jù)庫的完美連接。數(shù)據(jù)庫設(shè)計(jì)時(shí)主要考慮了數(shù)據(jù)的關(guān)聯(lián),在實(shí)際中本系統(tǒng)還存在許多有待解決的問題,比如當(dāng)數(shù)據(jù)量增大的過程中,系統(tǒng)的錯(cuò)誤率也隨著增大,以及一些算法的研究來對(duì)系統(tǒng)做全面優(yōu)化等等,這些希望能在日后的研究中得到解決。系統(tǒng)在網(wǎng)絡(luò)化方向可以做進(jìn)一步改進(jìn),可以利用學(xué)校的校園網(wǎng)做為依托,校內(nèi)所有連接內(nèi)網(wǎng)的電腦都可以作為
56、終端。在考場安排系統(tǒng)中現(xiàn)今有關(guān)蟻群算法的應(yīng)用,雖然由于對(duì)于蟻群算法如何應(yīng)用于考場安排系統(tǒng)還為能理解,并且也沒應(yīng)用到考場安排系統(tǒng)中,但是蟻群算法對(duì)于考場安排的優(yōu)化確是相當(dāng)好的,如果能夠應(yīng)用該算法來進(jìn)行考場編排將使我們的系統(tǒng)具有更好的健壯性。致 謝【參考文獻(xiàn)】1陳豫龍 ,何旭洪. VC+6.0數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例M.人民郵電出版社,2003,82吳志斌,陳淑珍,孫曉安. 回溯算法與計(jì)算機(jī)智能排課J.計(jì)算機(jī)工程,1999,33胡小兵,黃席樾. 蟻群優(yōu)化算法及其應(yīng)用J. 計(jì)算機(jī)仿真,2004年第5期4張林. 基于蟻群算法的學(xué)校排課系統(tǒng)J. 安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004第14,15期5寧正元,劉
57、雄恩,陳瓊. VC+6.0程序設(shè)計(jì)與應(yīng)用教程M.中國水利水電出版社,2005,16張花,王秀坤,孫燾. 蟻群算法在考試安排中的應(yīng)用J. 計(jì)算機(jī)工程與設(shè)計(jì) 2003,127高喜瑪,張萍. 大學(xué)自動(dòng)排課系統(tǒng)內(nèi)核算法設(shè)計(jì)J. 南陽師范學(xué)院學(xué)報(bào)(自然科學(xué)版), 2003年12月.8馬慧彬,張忠武,何麗麗. 智能型考試安排系統(tǒng)的監(jiān)考及考試安排算法J. 佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版) 2004,39左偉明,徐蘭云,張建明. 基于網(wǎng)絡(luò)的排課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)J. 湖南農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版)2004,210李莉,尉健慧,湯蓉華. 網(wǎng)絡(luò)智能排課系統(tǒng)J. 天津師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2005,911齊向明. 通用考務(wù)管理系統(tǒng)的需求分析與系統(tǒng)設(shè)計(jì)J. 遼寧工程技術(shù)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版)2003,512Youssef Hasson (UK), Roger Johnson(UK) , Steve Counsell(UK). Applications of dynamic proxies in distributed environmentsJ. SOFTWARE-PRACT
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案