版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 基于VC開(kāi)發(fā)與設(shè)計(jì)考試系統(tǒng)</p><p><b> 摘 要</b></p><p> 隨著社會(huì)的發(fā)展,考試要求、類(lèi)型和規(guī)模的不斷變化,普通的手工閱卷已無(wú)法滿足考試形式和內(nèi)容日益復(fù)雜多樣的需求。如何更好的實(shí)現(xiàn)公平公正,充分發(fā)揮考試的作用,使之真
2、正成為選拔錄用人才的工具,這個(gè)問(wèn)題已經(jīng)成為社會(huì)關(guān)注的焦點(diǎn)。隨著國(guó)家對(duì)創(chuàng)新型、高素質(zhì)人才需求的增加,對(duì)考生實(shí)踐能力和創(chuàng)新意識(shí)進(jìn)行考察的發(fā)散思維和主觀性試題在教育考試中所占比重越來(lái)越多,這就給評(píng)閱工作的公平、公正性提出了新的挑戰(zhàn),傳統(tǒng)手工閱卷諸多弊端逐漸顯現(xiàn),如何更好的控制閱卷誤差成為急待解決的問(wèn)題。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、信息處理技術(shù)以及計(jì)算機(jī)的普及,計(jì)算機(jī)考試系統(tǒng)應(yīng)運(yùn)而生。計(jì)算機(jī)考試系統(tǒng)的出現(xiàn)可以說(shuō)是我國(guó)考試領(lǐng)域的重大變革,近年來(lái)高考、中考
3、、全國(guó)英語(yǔ)等級(jí)考試、公務(wù)員考試等大型考試中考試系統(tǒng)備受關(guān)注。</p><p> 本論文針對(duì)班級(jí)考試開(kāi)發(fā)設(shè)計(jì)了一個(gè)學(xué)校信息管理系統(tǒng)的一個(gè)子系統(tǒng)——班級(jí)考試系統(tǒng)。經(jīng)過(guò)對(duì)多種主流數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行比較分析之后,選擇Office Access作為數(shù)據(jù)庫(kù)管理系統(tǒng),使用VC++6.0作為開(kāi)發(fā)平臺(tái),MFC類(lèi)庫(kù)輔助。通過(guò)計(jì)算機(jī)對(duì)信息的管理簡(jiǎn)化了教師對(duì)試卷的管理過(guò)程,優(yōu)化了試卷的管理。首先對(duì)考試系統(tǒng)進(jìn)行簡(jiǎn)單地緒論和定義,隨后對(duì)考
4、試系統(tǒng)的可行性進(jìn)行了多方面的研究,并從需求分析下手,對(duì)考試系統(tǒng)粗略的分析,構(gòu)建起考試系統(tǒng)的基本結(jié)構(gòu),并對(duì)系統(tǒng)架構(gòu)和功能架構(gòu)進(jìn)行設(shè)計(jì)。在總體設(shè)計(jì)中劃分功能模塊,并對(duì)系統(tǒng)的功能模塊進(jìn)行描述,對(duì)各個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行闡述,列舉了一些關(guān)鍵代碼幫助理解,并對(duì)系統(tǒng)界面進(jìn)行了人性化的設(shè)計(jì)。最后對(duì)本次開(kāi)發(fā)和研究進(jìn)行了總結(jié)和展望。</p><p> 關(guān)鍵詞:VC++;Access;MFC;考試系統(tǒng)</p><
5、;p><b> 目 錄</b></p><p> 第一章 緒 論1</p><p> 1.1 考試系統(tǒng)的定義1</p><p> 1.2 考試系統(tǒng)的特點(diǎn)1</p><p> 第二章 需求分析3</p><p> 2.1 功能需求3</p><p&
6、gt; 2.2 可行性分析3</p><p> 2.3 開(kāi)發(fā)及運(yùn)行環(huán)境4</p><p> 2.3.1 硬件環(huán)境4</p><p> 2.3.2 軟件環(huán)境4</p><p> 2.3.3 開(kāi)發(fā)工具及其技術(shù)的選擇5</p><p> 2.4 開(kāi)發(fā)系統(tǒng)的應(yīng)用技術(shù)6</p><p&
7、gt; 2.4.1 Access數(shù)據(jù)庫(kù)的介紹及其優(yōu)缺點(diǎn)6</p><p> 2.4.2 MFC的介紹及其優(yōu)缺點(diǎn)7</p><p> 第三章 系統(tǒng)總體設(shè)計(jì)9</p><p> 3.1 功能模塊設(shè)計(jì)9</p><p> 3.1.1 學(xué)生考試子模塊圖9</p><p> 3.1.2 教師管理子模塊圖1
8、0</p><p> 3.2 系統(tǒng)流程圖10</p><p> 3.3 用例圖11</p><p> 3.3.1 系統(tǒng)總用例圖11</p><p> 3.3.2 學(xué)生考試子模塊用例圖11</p><p> 3.3.3 教師管理子模塊用例圖12</p><p> 第四章 數(shù)據(jù)
9、庫(kù)設(shè)計(jì)13</p><p> 4.1 E-R分析13</p><p> 4.2 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)14</p><p> 4.3 數(shù)據(jù)庫(kù)的生成15</p><p> 第五章 系統(tǒng)實(shí)現(xiàn)17</p><p><b> 結(jié) 論24</b></p><p>&
10、lt;b> 致 謝25</b></p><p><b> 參考文獻(xiàn)26</b></p><p><b> 附 錄27</b></p><p><b> 第一章 緒 論</b></p><p> 隨著家長(zhǎng)對(duì)孩子教育方面的不斷重視,教育行業(yè)在
11、人民心中的地位越來(lái)越重,老師們的負(fù)擔(dān)與壓力也越來(lái)越重。如何減輕老師的負(fù)擔(dān)及壓力,已經(jīng)成為廣大學(xué)校校長(zhǎng)需要解決的頭號(hào)難題。在教育工作中,為學(xué)生考試出試卷和批改改卷是老師們最頭痛的,不僅消耗大量的時(shí)間,而且消耗大量的精力體力。因此,考試過(guò)程由人工操作轉(zhuǎn)向計(jì)算機(jī)操作是必然的結(jié)果。</p><p> 1.1 考試系統(tǒng)的定義</p><p> 考試系統(tǒng)是以財(cái)政部印發(fā)的《從業(yè)資格考試大綱》為依據(jù)、
12、以優(yōu)化的題庫(kù)資源為基礎(chǔ)、以現(xiàn)代信息技術(shù)為手段,通過(guò)隨機(jī)組合生成無(wú)紙化考試試卷進(jìn)行考試,并及時(shí)生成考試成績(jī),集考試報(bào)名、試卷生成、上機(jī)考試、閱卷、成績(jī)生成等為一體的、多元化,新型的從業(yè)考試管理模式。計(jì)算機(jī)考試系統(tǒng)的出現(xiàn)可以說(shuō)是我國(guó)考試領(lǐng)域的重大變革。</p><p> 1.2 考試系統(tǒng)的特點(diǎn)</p><p> 傳統(tǒng)考試從出題、組卷、印刷,到試卷的分發(fā),答題、收卷,再到判卷,公布成績(jī),統(tǒng)計(jì)
13、分析考試結(jié)果整個(gè)過(guò)程都需要人工參與,周期長(zhǎng),工作量大,容易出錯(cuò),還要有適當(dāng)?shù)谋C芄ぷ?,使得整個(gè)學(xué)習(xí)考試成本較大。而考試系統(tǒng)相對(duì)于傳統(tǒng)考試擁有了很多優(yōu)勢(shì):</p><p> 1.減少工作人員人工輸入分?jǐn)?shù)的環(huán)節(jié),減少過(guò)程中出現(xiàn)錯(cuò)誤的可能性,提高準(zhǔn)確性。</p><p> 2.減少紙質(zhì)試卷封裝加工環(huán)節(jié),節(jié)省費(fèi)用開(kāi)支,減少出錯(cuò)機(jī)率。</p><p> 3.?dāng)?shù)據(jù)全部電子
14、化,可以做到永久保存,管理也更加方便高效。</p><p> 4.具有評(píng)閱質(zhì)量監(jiān)控功能。由于所有考試信息保留在服務(wù)器,所以可以實(shí)時(shí)掌握閱卷質(zhì)量,如果出現(xiàn)偏差可以及時(shí)糾正。</p><p> 5.真正實(shí)現(xiàn)無(wú)干擾閱卷,盡量減小人為誤差,真正實(shí)現(xiàn)公平公正,這是傳統(tǒng)手工閱卷所無(wú)法比擬的。</p><p> 6.傳統(tǒng)手工閱卷中需要專人核對(duì),而且需要搬用試卷,考試系統(tǒng)自動(dòng)
15、分配,大大節(jié)省人力。</p><p> 7.?dāng)?shù)據(jù)信息方便深度挖掘,可以作為教學(xué)和決策依據(jù)。</p><p><b> 第二章 需求分析</b></p><p><b> 2.1 功能需求</b></p><p> 查閱大量相關(guān)的文獻(xiàn)資料,對(duì)題目進(jìn)行了深入地研究。通過(guò)對(duì)班級(jí)考試和師生相關(guān)人物角
16、色關(guān)系的調(diào)研,并對(duì)考試相關(guān)情況進(jìn)行了解,得出系統(tǒng)需具有以下功能:</p><p> 1.由于考試的需要和保密性,也為了便于管理,系統(tǒng)用戶具有不同的等級(jí),即不同的權(quán)限。用戶按等級(jí)分為兩個(gè)等級(jí):學(xué)生、教師。不同權(quán)限的用戶登錄后進(jìn)入系統(tǒng)的頁(yè)面也不同(系統(tǒng)的功能菜單不同)。其中學(xué)生只有對(duì)考試現(xiàn)場(chǎng)進(jìn)行操作,不能對(duì)試題管理做任何操作。</p><p> 2.從現(xiàn)有的考試模式來(lái)看,系統(tǒng)開(kāi)發(fā)要具有兩大
17、主要功能模塊:學(xué)生考試模塊和教師后臺(tái)管理模塊。</p><p> 3. 學(xué)生考試模塊主要是對(duì)學(xué)生考試的處理,在這個(gè)功能模塊里主要是學(xué)生的考試功能,進(jìn)入時(shí)選擇考試科目,進(jìn)入后開(kāi)始考試,考試時(shí)間設(shè)為1個(gè)小時(shí)。為了公平,每人每科只能考一次。</p><p> 4.教師后臺(tái)管理模塊根據(jù)不同需求對(duì)所需要的數(shù)據(jù)進(jìn)行分類(lèi)管理統(tǒng)計(jì)分析,對(duì)于教師來(lái)說(shuō),所需要做的就是對(duì)考生所考的科目、試題和考試所的分?jǐn)?shù)進(jìn)
18、行分類(lèi)管理。根據(jù)要求設(shè)置不同的考試科目和考試題目,以便對(duì)學(xué)生的學(xué)習(xí)成績(jī)進(jìn)行考核,這些考生的考試數(shù)據(jù)對(duì)教師來(lái)說(shuō),能更好的了解學(xué)生學(xué)習(xí)的情況。對(duì)以后的教學(xué)有更好的幫助。增加、修改、刪除和查詢等數(shù)據(jù)操作是維護(hù)系統(tǒng)所必須的。</p><p><b> 2.2 可行性分析</b></p><p> 本系統(tǒng)的開(kāi)發(fā)宗旨,以及總體任務(wù)就是要實(shí)現(xiàn)考試的自動(dòng)化﹑規(guī)范化、系統(tǒng)化、科學(xué)化
19、和人性化。通過(guò)對(duì)論文的調(diào)查與分析,復(fù)查了系統(tǒng)的規(guī)模和目標(biāo),所以為了能夠?qū)崿F(xiàn)編制這個(gè)軟件所設(shè)定的目標(biāo),在程序的開(kāi)發(fā)前的可行性析是有必要的。本章對(duì)開(kāi)發(fā)該系統(tǒng)的可行性從以下幾個(gè)方面進(jìn)行了分析。</p><p> 1.社會(huì)可行性:隨著國(guó)內(nèi)外軟件開(kāi)發(fā)的日益發(fā)展壯大,各種中小企事業(yè)單位已具備獨(dú)立開(kāi)發(fā)各種類(lèi)型的軟件的能力,能夠滿足不同行業(yè)的特別的需求。目前很多的學(xué)校在考試的管理運(yùn)行中都采用科學(xué)的信息系統(tǒng)管理方法加以統(tǒng)一管理,
20、運(yùn)用科學(xué)的管理方法可以使考試的投入的相對(duì)減少而獲得更加可觀的考試效果。這是沒(méi)個(gè)學(xué)校都愿意的,因此,考試系統(tǒng)的開(kāi)發(fā)是可行的。</p><p> 2.技術(shù)可行性:這個(gè)系統(tǒng)盡管其在組織關(guān)系上存在著很大的復(fù)雜性,繁瑣性,但是就整個(gè)系統(tǒng)的技術(shù)構(gòu)成上來(lái)看,它還是屬于一個(gè)數(shù)據(jù)庫(kù)應(yīng)用類(lèi)的系統(tǒng)。其基本操作還是對(duì)存在數(shù)據(jù)庫(kù)進(jìn)行添加、刪除、查找、編輯等。所以就單純的數(shù)據(jù)庫(kù)應(yīng)用來(lái)看,不存在太大的技術(shù)問(wèn)題。該系統(tǒng)初步的設(shè)想是運(yùn)用C語(yǔ)言開(kāi)
21、發(fā)的,采用B/S模式,在開(kāi)發(fā)中不會(huì)存在技術(shù)的問(wèn)題,所以在技術(shù)上是可行的,能夠?qū)崿F(xiàn)這個(gè)系統(tǒng)。</p><p> 3.經(jīng)濟(jì)可行性:開(kāi)發(fā)本系統(tǒng)的成本是很低的,能夠滿足經(jīng)濟(jì)要求。</p><p> 根據(jù)可行性研究的結(jié)果,認(rèn)為可以開(kāi)發(fā)這個(gè)系統(tǒng)。 </p><p> 2.3 開(kāi)發(fā)及運(yùn)行環(huán)境</p><p> 2.3.1 硬件環(huán)境</p>
22、;<p> 可以根據(jù)班級(jí)的大小選擇合適的硬件的配置,如表2-1所示</p><p> 表2-1考試系統(tǒng)的硬件選擇</p><p> 以上這些硬件的配置不是絕對(duì)的,這些數(shù)據(jù)只是參考數(shù)據(jù),具體的配置還要根據(jù)用戶的需求來(lái)選擇,本人由于設(shè)備有限選用Pentium CPU/1G 內(nèi)存/1G 磁盤(pán)/300GB個(gè)人PC。</p><p> 2.3.2 軟件環(huán)
23、境</p><p> 軟件配置主要包括操作系統(tǒng)、數(shù)據(jù)庫(kù)和開(kāi)發(fā)工具及其技術(shù)的選擇。</p><p><b> 1.操作系統(tǒng)的選擇</b></p><p> 服務(wù)器操作系統(tǒng)的選擇,根據(jù)用戶量的大小選擇不同的操作系統(tǒng),一般是選擇用戶比較熟悉的如Windows 2000﹑Windows XP Professional或者 Windows 2000
24、 Server操作系統(tǒng)。而UNIX﹑Linux﹑Windows NT操作復(fù)雜,界面對(duì)用戶來(lái)說(shuō)很陌生。經(jīng)比較選擇 Windows XP Professional操作系統(tǒng)。用戶操作系統(tǒng)的選擇,因?yàn)楸鞠到y(tǒng)對(duì)客戶機(jī)的要求非常的簡(jiǎn)單,所有操作系統(tǒng)最好選擇我們大家都非常的熟悉的Windows操作系統(tǒng)如:Windows 98、 Windows 2000、Windows XP、Windows 2000 Server等都可以,本人選擇 Windows X
25、P操作系統(tǒng)。</p><p><b> 2.?dāng)?shù)據(jù)庫(kù)的選擇</b></p><p> 可以根據(jù)數(shù)據(jù)的大小選擇不同的數(shù)據(jù)庫(kù),如表2-2所示</p><p><b> 表2-2數(shù)據(jù)庫(kù)選擇</b></p><p> 上面列舉出來(lái)的數(shù)據(jù)庫(kù)配置也并不是絕對(duì)的。對(duì)于超大型班級(jí)的數(shù)據(jù)信息量是非常大的,要求數(shù)
26、據(jù)庫(kù)的吞吐量和穩(wěn)定性較高,同時(shí)對(duì)維護(hù)性要求也很高,能夠在定時(shí)的較短時(shí)間內(nèi)恢復(fù)系統(tǒng)和數(shù)據(jù),這需要選擇更好的數(shù)據(jù)庫(kù)。但是對(duì)于一般的中小型班級(jí),由于學(xué)生較少,數(shù)據(jù)信息量相對(duì)也比較小,為了節(jié)約成本和資金,可以選擇免費(fèi)的數(shù)據(jù)庫(kù)或者是較為便宜的數(shù)據(jù)庫(kù),這要根據(jù)用戶的需求來(lái)確定。數(shù)據(jù)庫(kù)的選擇還要考慮與操作系統(tǒng)的配合,本人為了免去數(shù)據(jù)庫(kù)的開(kāi)支,選擇的是Access數(shù)據(jù)庫(kù)。</p><p> 2.3.3 開(kāi)發(fā)工具及其技術(shù)的選擇&
27、lt;/p><p> 系統(tǒng)開(kāi)發(fā)使用VC++開(kāi)發(fā)平臺(tái),MFC類(lèi)庫(kù)輔助,采用Access數(shù)據(jù)庫(kù),在Windows平臺(tái)上運(yùn)行,它有一個(gè)很友好和人性化的圖形用戶界面,有很好的可擴(kuò)展性,使用非常的方便簡(jiǎn)單,其優(yōu)勢(shì)很明顯。</p><p> 2.4 開(kāi)發(fā)系統(tǒng)的應(yīng)用技術(shù)</p><p> 2.4.1 Access數(shù)據(jù)庫(kù)的介紹及其優(yōu)缺點(diǎn)</p><p>&
28、lt;b> 1.基本介紹</b></p><p> Microsoft Office Access(前名 Microsoft Access)是由微軟發(fā)布的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng)。它結(jié)合了 Microsoft Jet Database Engine 和 圖形用戶界面兩項(xiàng)特點(diǎn),是 Microsoft Office的成員之一。</p><p> Access能夠存取 Acc
29、ess/Jet、Microsoft SQL Server、Oracle(甲骨文軟件公司),或者任何 ODBC 兼容數(shù)據(jù)庫(kù)內(nèi)的資料。熟練的軟件設(shè)計(jì)師和資料分析師利用它來(lái)開(kāi)發(fā)應(yīng)用軟件,而一些不熟練的程序員和非程序員的"進(jìn)階用戶"則能使用它來(lái)開(kāi)發(fā)簡(jiǎn)單的應(yīng)用軟件。雖然它支援部份面向?qū)ο螅∣O)技術(shù),但是未能成為一種完整的面向?qū)ο箝_(kāi)發(fā)工具?! ∵@個(gè)軟件能夠有效地處理大量記錄但是測(cè)試顯示在某些情況下會(huì)導(dǎo)致數(shù)據(jù)損毀.比如說(shuō),大小
30、超過(guò)700MB的文件常會(huì)出問(wèn)題。(值得注意的是在1.0版廣泛應(yīng)用的時(shí)候大多數(shù)硬盤(pán)是小于700MB的。)軟件的使用指南指出過(guò)時(shí)的設(shè)備驅(qū)動(dòng)和錯(cuò)誤的配置可能回導(dǎo)致數(shù)據(jù)丟失。</p><p> 與一般的CS關(guān)系型數(shù)據(jù)庫(kù)管理不同,Access不執(zhí)行數(shù)據(jù)庫(kù)觸發(fā),預(yù)存程序或交互式登錄操作。Access 2010包括了嵌入ACE數(shù)據(jù)引擎的表級(jí)觸發(fā)和預(yù)存程序,因此,客戶-服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)對(duì)于Access 2010就不是必需的了。
31、在Access 2010中,表格,查詢,圖表,報(bào)表和宏現(xiàn)在基于網(wǎng)絡(luò)的應(yīng)用上能夠進(jìn)行分別開(kāi)發(fā)。</p><p> 2.Access數(shù)據(jù)庫(kù)的的優(yōu)點(diǎn) (1)存儲(chǔ)方式單一 Access管理的對(duì)象有表、查詢、窗體、報(bào)表、頁(yè)、宏和模塊,以上對(duì)象都存放在后綴為(.mdb)的數(shù)據(jù)庫(kù)文件種,便于用戶的操作和管理。 (2)面向?qū)ο?Access是一個(gè)面向?qū)ο蟮拈_(kāi)發(fā)工具,利用面向?qū)ο蟮姆绞綄?shù)據(jù)庫(kù)系統(tǒng)中的各種功能對(duì)
32、象化,將數(shù)據(jù)庫(kù)管理的各種功能封裝在各類(lèi)對(duì)象中。它將一個(gè)應(yīng)用系統(tǒng)當(dāng)作是由一系列對(duì)象組成的,對(duì)每個(gè)對(duì)象它都定義一組方法和屬性,以定義該對(duì)象的行為和外國(guó),用戶還可以按需要給對(duì)象擴(kuò)展方法和屬性。通過(guò)對(duì)象的方法、屬性完成數(shù)據(jù)庫(kù)的操作和管理,極大地簡(jiǎn)化了用戶的開(kāi)發(fā)工作。同時(shí),這種基于面向?qū)ο蟮拈_(kāi)發(fā)方式,使得開(kāi)發(fā)應(yīng)用程序更為簡(jiǎn)便。 (3)界面友好、易操作 Access是一個(gè)可視化工具,是風(fēng)格與Windows完全一樣,用戶想要生成對(duì)象并應(yīng)用,只
33、要使用鼠標(biāo)進(jìn)行拖放即可,非常直觀方便。系統(tǒng)還提供了表生成器、查詢生成器、報(bào)表設(shè)計(jì)器以及數(shù)據(jù)庫(kù)向?qū)?、表向?qū)?、查詢向?qū)?、窗體向?qū)А?bào)表向?qū)У裙ぞ?,使得操作?jiǎn)便,容易使用和掌握。 (4)集成環(huán)境、處理多種數(shù)據(jù)信息 Access基于Windows操作系統(tǒng)</p><p> 2.4.2 MFC的介紹及其優(yōu)缺點(diǎn)</p><p><b> 1.MFC的介紹</b>&
34、lt;/p><p> 微軟基礎(chǔ)類(lèi)(Microsoft Foundation Classes),同VCL類(lèi)似,是一種應(yīng)用程序框架,隨微軟Visual C++ 開(kāi)發(fā)工具發(fā)布。目前最新版本為10.0(截止2011年3月),并且發(fā)布了中文版。該類(lèi)庫(kù)提供一組通用的可重用的類(lèi)庫(kù)供開(kāi)發(fā)人員使用,大部分類(lèi)均從C Object 直接或間接派生,只有少部分類(lèi)例外。</p><p> MFC 應(yīng)用程序的總體結(jié)構(gòu)
35、通常由開(kāi)發(fā)人員從MFC類(lèi)派生的幾個(gè)類(lèi)和一個(gè)CWinApp類(lèi)對(duì)象(應(yīng)用程序?qū)ο螅┙M成。MFC 提供了MFC AppWizard 自動(dòng)生成框架。</p><p> Windows 應(yīng)用程序中,MFC 的主包含文件為"Afxwin。h"。</p><p> 此外MFC的部分類(lèi)為MFC/ATL 通用,可以在Win32 應(yīng)用程序中單獨(dú)包含并使用這些類(lèi)。由于它的易用性,初學(xué)者常
36、誤認(rèn)為VC++開(kāi)發(fā)必須使用MFC,這種想法是錯(cuò)誤的。作為Application Framework,MFC的使用只能提高某些情況下的開(kāi)發(fā)效率,只起到輔助作用,而不能替代整個(gè)Win32 程序設(shè)計(jì)。</p><p><b> 2.MFC的優(yōu)點(diǎn)</b></p><p> 隨著編程語(yǔ)言的推陳出新,MFC一些缺點(diǎn)日益突出。最重要的就是入門(mén)門(mén)檻相對(duì)其他語(yǔ)言要高,而且同樣完成一
37、個(gè)任務(wù)代碼量相對(duì)較多。而原有的優(yōu)勢(shì)如運(yùn)行速度快等,也因?yàn)槠渌幊陶Z(yǔ)言的日臻完善和個(gè)人電腦的運(yùn)算速度增加而顯得不那么突出。MFC似乎江河日下。</p><p> 但是MFC真的沒(méi)有任何優(yōu)勢(shì)了嗎?不是,面對(duì)底層程序,它能很輕松的與Windows API或驅(qū)動(dòng)程序結(jié)合,就是在自己的代碼中直接使用API函數(shù),而API和驅(qū)動(dòng)程序的資料都是以C語(yǔ)言為基礎(chǔ)的,這使得VC程序員能夠更輕松的使用Windows API。這樣造成了
38、一個(gè)很有意思的現(xiàn)象,即入門(mén)時(shí)VC程序員要付出更多的努力來(lái)學(xué)習(xí),但是一旦掌握后,開(kāi)發(fā)其他領(lǐng)域的程序或使用第三方軟件時(shí),如工業(yè)控制類(lèi)的程序,由于底層的程序都是用C語(yǔ)言編寫(xiě),反倒是VC程序員能夠更快的掌握該領(lǐng)域的編程技術(shù)。而很多其他的編程語(yǔ)言甚至找不到相關(guān)的資料。這就說(shuō)明VC(MFC)實(shí)際上是一種入門(mén)困難,但是擴(kuò)展學(xué)習(xí)卻很輕松的語(yǔ)言框架。如果局限于某一領(lǐng)域的話VC毫無(wú)優(yōu)勢(shì)可言,但是如果開(kāi)發(fā)一個(gè)新的領(lǐng)域的應(yīng)用程序或者該程序涉及多個(gè)應(yīng)用領(lǐng)域的話,
39、可減少重復(fù)學(xué)習(xí)的頻率和難度,VC(MFC)的優(yōu)勢(shì)會(huì)立刻顯現(xiàn)出來(lái)。</p><p> 第三章 系統(tǒng)總體設(shè)計(jì)</p><p> 3.1 功能模塊設(shè)計(jì)</p><p> 功能模塊設(shè)計(jì)在整個(gè)系統(tǒng)設(shè)計(jì)當(dāng)中站有非常重要的地位,通過(guò)它可以對(duì)系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì)。如圖3-1是系統(tǒng)模塊圖。</p><p> 圖3-1 系統(tǒng)模塊圖</p>&
40、lt;p> 3.1.1 學(xué)生考試子模塊圖</p><p> 圖3-2 學(xué)生考試模塊圖</p><p> 3.1.2 教師管理子模塊圖</p><p> 圖3-3 教師管理模塊圖</p><p><b> 3.2 系統(tǒng)流程圖</b></p><p> 系統(tǒng)流程圖又叫事務(wù)流程圖,是在
41、計(jì)算機(jī)事務(wù)處理應(yīng)用進(jìn)行系統(tǒng)分析時(shí)常用的一種描述方法(另一個(gè)是數(shù)據(jù)流圖),它描述了計(jì)算機(jī)事務(wù)處理中從數(shù)據(jù)輸入開(kāi)始到獲得輸出為止,各個(gè)處理工序的邏輯過(guò)程。</p><p> 圖3-4 系統(tǒng)流程圖</p><p><b> 3.3 用例圖</b></p><p> 用例圖是簡(jiǎn)單的形象的描述用戶對(duì)整個(gè)系統(tǒng)的操作,當(dāng)然不同權(quán)限的用戶擁有的用例關(guān)系也
42、不同。</p><p> 3.3.1 系統(tǒng)總用例圖</p><p> 系統(tǒng)用例圖如圖3-5所示,是用來(lái)形象的描述系統(tǒng)業(yè)務(wù)處理以及業(yè)務(wù)與業(yè)務(wù)之間的內(nèi)在關(guān)系。</p><p> 在整個(gè)系統(tǒng)的用例中,兩個(gè)不同權(quán)限的用戶,對(duì)應(yīng)他們的業(yè)務(wù)處理也是不同的,教師和學(xué)生擁有的權(quán)限是完全不同的,教師不對(duì)學(xué)生考試進(jìn)行任何干預(yù),學(xué)生不對(duì)試題、成績(jī)、數(shù)據(jù)庫(kù)做任何操作。</p&g
43、t;<p> 圖3-5 系統(tǒng)總用例圖</p><p> 3.3.2 學(xué)生考試子模塊用例圖</p><p> 學(xué)生考試用例圖如圖3-6所示,該用例圖有且僅有一個(gè)用戶,也就是只有學(xué)生這一用戶,該用戶僅對(duì)考試科目進(jìn)行選擇并對(duì)試題作答,此外不能做其他操作。</p><p> 圖3-6 學(xué)生管理模塊用例圖</p><p> 3.
44、3.3 教師管理子模塊用例圖</p><p> 教師管理管理用例圖如圖3-7所示,該用例圖描述了教師在后臺(tái)對(duì)學(xué)生信息的管理的具體情況和流程。 </p><p> 圖3-7 教師管理模塊用例圖</p><p><b> 第四章 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p><b> 4.1 E-R分析</b&
45、gt;</p><p> 在整個(gè)系統(tǒng)中,所存在的實(shí)體有試卷實(shí)體、學(xué)生實(shí)體和教師實(shí)體。</p><p> 對(duì)考試系統(tǒng)的E-R分析,從大的方面設(shè)計(jì)出各個(gè)實(shí)體之間的關(guān)系,再在這個(gè)關(guān)系的基礎(chǔ)上進(jìn)行細(xì)化。</p><p> 圖4-1 學(xué)生實(shí)體圖</p><p> 圖4-2 教師實(shí)體圖</p><p> 圖4-3 試卷實(shí)
46、體圖</p><p> 4.2 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)</p><p> 通過(guò)E-R圖的分析,本系統(tǒng)所要求的數(shù)據(jù)庫(kù)的框架已經(jīng)確定。下面實(shí)現(xiàn)數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)即將數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)轉(zhuǎn)化為access數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型。數(shù)據(jù)庫(kù)由下面5個(gè)表組成,每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。</p><p> 各個(gè)表的詳細(xì)信息如下:</p><p>
47、注冊(cè)信息表 register</p><p> 表4-1 register</p><p> 考試情況表 result</p><p> 表4-2 result</p><p> 科目表 subject</p><p> 表4-3 subject</p><p><b>
48、試題表 test</b></p><p><b> 表4-4 text</b></p><p> 5.試題答案表 testanswer</p><p> 表4-5 testanswer</p><p> 4.3 數(shù)據(jù)庫(kù)的生成</p><p> 1.生成表register(注冊(cè)
49、信息)</p><p> 圖4-4 表register生成情況</p><p> 2.生成表result(考試情況)</p><p> 圖4-5 表result生成情況</p><p> 3.生成表subject(科目)</p><p> 圖4-6 表subject生成情況</p><
50、;p> 4.生成表test(試題)</p><p> 圖4-7 表test生成情況</p><p> 5.生成表testanswer(試題答案)</p><p> 圖4-8 表testanswer生成情況</p><p><b> 第五章 系統(tǒng)實(shí)現(xiàn)</b></p><p>
51、本系統(tǒng)采用VC++6.0軟件開(kāi)發(fā),具有完整的應(yīng)用開(kāi)發(fā)功能,同時(shí)支持多種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),采用面向?qū)ο蠹夹g(shù),圖形化的應(yīng)用開(kāi)發(fā)環(huán)境,是數(shù)據(jù)庫(kù)的前端開(kāi)發(fā)工具。以下是系統(tǒng)運(yùn)行情況。</p><p><b> 用戶的登錄界面:</b></p><p> 打開(kāi)(ExamOnline.exe)文件后出現(xiàn)用戶登錄界面,如下圖所示:</p><p> 圖
52、5-1 用戶登錄界面</p><p> 2.用戶的注冊(cè)界面:</p><p> 登錄失敗后會(huì)提醒注冊(cè)或找回密碼,如下圖所示:</p><p> 圖5-2 注冊(cè)提醒</p><p> 圖5-3 密碼錯(cuò)誤提醒</p><p> 注冊(cè)提醒狀態(tài)下選擇”是(Y)”則會(huì)出現(xiàn)注冊(cè)界面,當(dāng)然在登陸界面選擇注冊(cè)也會(huì)出現(xiàn)注
53、冊(cè)界面。如下圖所示:</p><p> 圖5-4 注冊(cè)界面</p><p> 錯(cuò)誤提醒狀態(tài)下選”是(Y)”則會(huì)出現(xiàn)找回密碼界面。如下圖所示:</p><p> 圖5-5 密碼找回界面</p><p> 3.學(xué)生選擇考試科目界面:</p><p> 學(xué)生登陸成功后就會(huì)進(jìn)入考試科目選擇,如下圖所示:</
54、p><p> 圖5-6 學(xué)生考試科目選擇界面</p><p><b> 4.學(xué)生考試界面:</b></p><p> 學(xué)生選擇考試科目后則會(huì)進(jìn)行該科目的考試,如下圖所示:</p><p> 圖5-7 學(xué)生考試界面</p><p> 5.教師對(duì)試卷的操作界面:</p><
55、;p> 教師權(quán)限使用測(cè)試用戶名tsoft 密碼123進(jìn)行登錄,登錄成功后則會(huì)直接進(jìn)入對(duì)試卷的操作界面,如下圖所示</p><p> 圖5-8 試卷管理界面</p><p> 6.教師對(duì)學(xué)生成績(jī)的操作界面:</p><p> 圖5-9 學(xué)生成績(jī)管理界面</p><p> 7.教師對(duì)數(shù)據(jù)庫(kù)的管理界面:</p>&
56、lt;p> 圖5-10 數(shù)據(jù)庫(kù)管理界面</p><p><b> 結(jié) 論</b></p><p> 在整個(gè)設(shè)計(jì)的過(guò)程中,我對(duì)VC6.0++和Access等內(nèi)容不僅從理論方面有了深入的學(xué)習(xí),而且將其實(shí)踐的過(guò)程融入到設(shè)計(jì)之中,這樣就使得理論知識(shí)與實(shí)際很好的結(jié)合在一起,讓我感受了軟件開(kāi)發(fā)的整個(gè)過(guò)程。畢業(yè)設(shè)計(jì)不僅是對(duì)我在大學(xué)所學(xué)知識(shí)的一個(gè)綜合運(yùn)用,也是一次增長(zhǎng)
57、知識(shí)和經(jīng)驗(yàn)的好機(jī)會(huì),同時(shí)也使我學(xué)會(huì)了許多處理、解決問(wèn)題的方法,大大提高了自己的動(dòng)手能力,為以后走上工作崗位打下了良好的基礎(chǔ)。</p><p> 由于本人是在校大學(xué)生,沒(méi)有參加過(guò)具體的商業(yè)項(xiàng)目,開(kāi)發(fā)經(jīng)驗(yàn)不足,考慮事情的能力有限,在做論文的過(guò)程中撰寫(xiě)代碼還存在一定的難度,所以開(kāi)發(fā)出的系統(tǒng)軟件還不夠完善,功能實(shí)現(xiàn)的還不完全,保密性還不夠高,安全性還不夠好,雖然基本上實(shí)現(xiàn)了各個(gè)功能系統(tǒng)的實(shí)際應(yīng)用,但也有一定的限制。這都
58、是我們以后在系統(tǒng)設(shè)計(jì)需要應(yīng)該重點(diǎn)注意和解決的問(wèn)題。</p><p><b> 致 謝</b></p><p> 在論文完成之際,首先衷心地感謝張珍老師。在這幾個(gè)月的畢業(yè)設(shè)計(jì)中,張珍老師,給我的畢業(yè)設(shè)計(jì)提出了許多關(guān)鍵性的建議和指導(dǎo),讓我在設(shè)計(jì)過(guò)程中,避免了一些錯(cuò)誤,少走了一些彎路。更重要的是,在交流過(guò)程中,老師的一些創(chuàng)造性思維和方法,讓我受益無(wú)限。而且無(wú)論是在學(xué)術(shù)
59、上,還是在思想上,張珍老師都給予了我很大的幫助和鼓勵(lì),使我順利的完成了畢業(yè)設(shè)計(jì)和畢業(yè)論文,在這再次向張珍老師您表示感謝。還要感謝三年來(lái)曾教過(guò)我的所有的老師們,是他們認(rèn)真的備課、嚴(yán)謹(jǐn)?shù)慕虒W(xué),讓我在大學(xué)三年的時(shí)間里學(xué)到了在以后的工作中強(qiáng)有力的理論知識(shí),為以后的工作奠定了良好的基礎(chǔ)。</p><p> 在畢業(yè)設(shè)計(jì)和論文寫(xiě)作過(guò)程中,一些同學(xué)和朋友也給了我巨大的幫助和鼓勵(lì),在這也向他們表示感謝。</p>&
60、lt;p> 再次感謝評(píng)委老師們辛勤的評(píng)閱工作!</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 張榮梅,梁曉林.Visual C++實(shí)用教程[M].冶金工業(yè)出版社,2004:90.</p><p> [2] 鄭阿奇.Visual C++ 實(shí)用教程(第2版)[M].電子工業(yè)出版社,2003:56.</p&
61、gt;<p> [3] 孫鑫,余安萍.VC++深入詳解[M].電子工業(yè)出版社,2006:110.</p><p> [4] 陳清華等.Visual C++課程設(shè)計(jì)案例精選與編程指導(dǎo)[C].東南大學(xué)出版社,2004:152.</p><p> [5] 嚴(yán)華峰等.VISUAL C++課程設(shè)計(jì)案例精編(第二版)[A].中國(guó)水利水電出版社,2004:100.</p&
62、gt;<p> [6] 周鳴揚(yáng).VISUAL C++界面編程技術(shù)[M].北京希望電子,2003:30.</p><p> [7] 榮欽科技.Visual C++游戲編程基礎(chǔ)[M].電子工業(yè)出版社,2004:140.</p><p> [8] 羅偉堅(jiān).Visual C++經(jīng)典游戲程序設(shè)計(jì)[Z].人民郵電出版社,2006:15.</p><p>
63、 [9] 榮欽科技.VISUAL C++游戲設(shè)計(jì)[M].北京科海電子出版社,2005:64.</p><p> [10] 侯俊杰著.深入淺出MFC(第2版)[EB/OL].華中科技大學(xué)出版社:76.</p><p> [11] 劉宗田/邢大紅/孫慧杰 等譯.C++編程思想[J].Bruce Eckel著.機(jī)械工業(yè)出版社:198.</p><p> [12]
64、康博創(chuàng)作室譯.21天學(xué)通C++[M].Jesse Liberty著.人民郵電出版社:68.</p><p><b> 附 錄</b></p><p> 以下是系統(tǒng)是實(shí)現(xiàn)各界面的關(guān)鍵代碼:</p><p> 1.實(shí)現(xiàn)用戶登錄界面的關(guān)鍵代碼:</p><p> void CLOGIN::OnButtonOk() &
65、lt;/p><p><b> {</b></p><p> UpdateData();</p><p> CString str;</p><p> m_TypeList.GetLBText(m_TypeList.GetCurSel(),str);</p><p> if(m_UserNam
66、e.IsEmpty())</p><p><b> {</b></p><p> AfxMessageBox("用戶名不能為空");</p><p><b> return;</b></p><p><b> }</b></p><
67、;p> if(m_UserPasswd.IsEmpty())</p><p><b> {</b></p><p> AfxMessageBox("密碼不能為空");</p><p><b> return;</b></p><p><b> }<
68、/b></p><p> CString sql="select*from register where username='"+m_UserName+"' and [password]='"+m_UserPasswd+"' and power='"+str+"'";</p
69、><p><b> try</b></p><p><b> {</b></p><p> _RecordsetPtr m_pRs;</p><p> ADOConn m_AdoConn;</p><p> m_AdoConn.OnInitADOConn();</
70、p><p> m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);</p><p> if(m_pRs->adoEOF)</p><p><b> {</b></p><p> sql="select*from register where username='
71、;"+m_UserName+"'";</p><p> m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);</p><p> if(!m_pRs->adoEOF)</p><p><b> {</b></p><p> if(m_Us
72、erPasswd!=(char*)(_bstr_t)m_pRs->GetCollect("password"))</p><p><b> {</b></p><p> if(MessageBox("密碼錯(cuò)誤是否找回密碼?","提示",MB_YESNO)==IDYES)</p><
73、;p><b> {</b></p><p> CFind dlg;</p><p> dlg.Name=m_UserName;</p><p> CDialog::OnCancel();</p><p> dlg.DoModal();</p><p><b>
74、; }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(str!=(char*)(_bstr_t)m_pRs->GetCollect(&
75、quot;power"))</p><p><b> {</b></p><p> AfxMessageBox("權(quán)限錯(cuò)誤");</p><p><b> return;</b></p><p><b> }</b></p>
76、<p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(MessageBox("用戶名不存在是否注冊(cè)&quo
77、t;,"提示",MB_YESNO)==IDYES)</p><p><b> {</b></p><p> CDialog::OnCancel();</p><p> CRegister dlg;</p><p> dlg.m_UserName=m_UserName;</p&g
78、t;<p> dlg.DoModal();</p><p><b> }</b></p><p><b> else</b></p><p> CDialog::OnCancel();</p><p><b> }</b></p><
79、p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(str=="教職工")</p><p><b> {</b></p>&l
80、t;p> CDialog::OnCancel();</p><p> CBack dlg;</p><p> dlg.DoModal();</p><p><b> }</b></p><p><b> else</b></p><p> CDialog::
81、OnOK();</p><p><b> }</b></p><p> m_AdoConn.ExitConn();</p><p><b> }</b></p><p> catch(...)</p><p><b> {</b></p&
82、gt;<p> AfxMessageBox("操作失敗");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> 2.實(shí)現(xiàn)用戶的注冊(cè)界面的關(guān)鍵
83、代碼:</p><p> void CRegister::OnReg() </p><p><b> {</b></p><p> UpdateData();</p><p> if(m_UserName.IsEmpty())</p><p><b> {</b>&
84、lt;/p><p> AfxMessageBox("請(qǐng)輸入用戶名");</p><p><b> return;</b></p><p><b> }</b></p><p> if(m_Passwd.IsEmpty())</p><p><b&
85、gt; {</b></p><p> AfxMessageBox("請(qǐng)輸入密碼");</p><p><b> return;</b></p><p><b> }</b></p><p> if(m_Passwd!=m_PasswdRepeat)</
86、p><p><b> {</b></p><p> AfxMessageBox("兩次輸入密碼不一致,請(qǐng)從新輸入");</p><p><b> return;</b></p><p><b> }</b></p><p> i
87、f(m_QuestionCombo.GetCurSel()==-1||m_QuestionCombo.GetCurSel()==0)</p><p><b> {</b></p><p> AfxMessageBox("請(qǐng)選擇密碼提示問(wèn)題");</p><p><b> return;</b>&l
88、t;/p><p><b> }</b></p><p> if(m_Answer.IsEmpty())</p><p><b> {</b></p><p> AfxMessageBox("請(qǐng)輸入提示問(wèn)題答案");</p><p><b>
89、 return;</b></p><p><b> }</b></p><p> if(m_RealName.IsEmpty())</p><p><b> {</b></p><p> AfxMessageBox("請(qǐng)輸入真實(shí)姓名");</p>
90、<p><b> return;</b></p><p><b> }</b></p><p> if(m_IDcard.GetLength() != 18)</p><p><b> {</b></p><p> AfxMessageBox("
91、輸入身份證無(wú)效");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> i
92、nt num=0;</p><p><b> char ch;</b></p><p> for(int i=0;i<17;i++)</p><p><b> {</b></p><p> ch = m_IDcard.GetAt(i);</p><p> if
93、(ch>47 && ch<58)</p><p><b> num++;</b></p><p><b> }</b></p><p><b> if(i==17)</b></p><p><b> {</b></
94、p><p> ch = m_IDcard.GetAt(i);</p><p> if((ch>47 && ch<58) || (ch==88 || ch==120))</p><p><b> num++;</b></p><p><b> }</b></p&
95、gt;<p> if(num != 18)</p><p><b> {</b></p><p> AfxMessageBox("輸入身份證無(wú)效");</p><p><b> return;</b></p><p><b> }</b&g
96、t;</p><p><b> else</b></p><p><b> {</b></p><p> CString syear = m_IDcard.Mid(6,4);</p><p> int year = atoi(syear);</p><p> CSt
97、ring smonth = m_IDcard.Mid(10,2);</p><p> int month = atoi(smonth);</p><p> CString sday = m_IDcard.Mid(12,2);</p><p> int day = atoi(sday);</p><p> BOOL leap;</
98、p><p> if(month<1||month>12)</p><p><b> {</b></p><p> AfxMessageBox("輸入身份證無(wú)效");</p><p><b> return;</b></p><p>
99、<b> }</b></p><p> switch(month)</p><p><b> {</b></p><p> case 1:case 3: case 5: case 7: case 8: case 10: case 12:</p><p> if(day<0 || d
100、ay>31)</p><p><b> {</b></p><p> AfxMessageBox("輸入身份證無(wú)效");</p><p><b> return;</b></p><p><b> }</b></p><p&
101、gt;<b> break;</b></p><p> case 4:case 6: case 9: case 11:</p><p> if(day<0 || day>30)</p><p><b> {</b></p><p> AfxMessageBox("輸
102、入身份證無(wú)效");</p><p><b> return;</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 2:</b></p><p
103、> if(year % 4 == 0)</p><p><b> {</b></p><p> if(year % 100 != 0)</p><p> leap = TRUE;</p><p> else if(year % 400 == 0)</p><p> leap =
104、TRUE;</p><p><b> else</b></p><p> leap = FALSE;</p><p><b> }</b></p><p><b> else</b></p><p> leap = FALSE;</p&g
105、t;<p><b> if(leap)</b></p><p> if(day<0 || day>29)</p><p><b> {</b></p><p> AfxMessageBox("輸入身份證無(wú)效");</p><p><b>
106、; return;</b></p><p><b> }</b></p><p><b> else</b></p><p> if(day<0 || day>28)</p><p><b> {</b></p><p>
107、; AfxMessageBox("輸入身份證無(wú)效");</p><p><b> return;</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b>
108、;</p><p><b> }</b></p><p><b> }</b></p><p> CString str;</p><p> m_QuestionCombo.GetLBText(m_QuestionCombo.GetCurSel(),str);</p><
109、p> CString sex;</p><p> if(radio==0)</p><p> sex.Format("");</p><p> if(radio==1)</p><p> sex.Format("男");</p><p> if(radio==2
110、)</p><p> sex.Format("女");</p><p> CTime time;</p><p> time=CTime::GetCurrentTime();</p><p> CString nowtime=time.Format("%Y-%m-%d");</p>
111、<p><b> int id;</b></p><p><b> try</b></p><p><b> {</b></p><p> m_AdoConn.OnInitADOConn();</p><p> CString sql="sele
112、ct*from register where username='"+m_UserName+"'";m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);</p><p> if(!m_pRs->adoEOF)</p><p><b> {</b></p>&
113、lt;p> AfxMessageBox("用戶名已存在");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</
114、b></p><p> sql.Format("select studentid from register");</p><p> m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);</p><p> if(m_pRs->adoEOF)</p><p><b&g
115、t; id=1001;</b></p><p><b> else</b></p><p><b> {</b></p><p> m_pRs->MoveLast();</p><p> id=atoi((_bstr_t)m_pRs->GetCollect(&qu
116、ot;studentid"));</p><p><b> id+=1;</b></p><p><b> }</b></p><p> sql.Format("insert into register(username,[password],question,answer,name,age,
117、sex,phone,studentid,power,idcard,login_date)</p><p> values('%s','%s','%s','%s','%s',%d,'%s',%d,%d,'學(xué)生','%s','%s')",m_UserName,m_
118、Passwd,str,m_Answer,m_RealName,m_Age,sex,m_Phone,id,m_IDcard,nowtime);</p><p> m_AdoConn.ExecuteSQL((_bstr_t)sql);</p><p> m_AdoConn.ExitConn();</p><p> AfxMessageBox("注冊(cè)成功&
119、quot;);</p><p> CDialog::OnCancel();</p><p> CLOGIN dlg;</p><p> dlg.DoModal();</p><p><b> }</b></p><p><b> }</b></p>
120、<p> catch(...)</p><p><b> {</b></p><p> AfxMessageBox("操作失敗");</p><p><b> return;</b></p><p><b> }</b></p&
121、gt;<p><b> }</b></p><p> void CRegister::OnSexmale() </p><p><b> {</b></p><p><b> radio=1;</b></p><p><b> }</b
122、></p><p> void CRegister::OnSexfemale() </p><p><b> {</b></p><p><b> radio=2;</b></p><p><b> }</b></p><p> voi
123、d CRegister::OnCheckname() </p><p><b> {</b></p><p> UpdateData();</p><p> _bstr_t sql="select*from register where username='"+m_UserName+"'&qu
124、ot;;</p><p><b> try</b></p><p><b> {</b></p><p> m_AdoConn.OnInitADOConn();</p><p> m_pRs=m_AdoConn.GetRecordSet(sql);</p><p>
125、 if(m_pRs->adoEOF)</p><p> m_TiShiStatic.SetWindowText("用戶名可以使用");</p><p><b> else</b></p><p> m_TiShiStatic.SetWindowText("用戶名已存在");</p>
126、<p><b> }</b></p><p> catch(...)</p><p><b> {</b></p><p> AfxMessageBox("操作失敗");</p><p><b> return;</b></p&
127、gt;<p><b> }</b></p><p> m_AdoConn.ExitConn();</p><p><b> }</b></p><p> void CRegister::OnChangeUsername() </p><p><b> {</
128、b></p><p> m_TiShiStatic.SetWindowText("");</p><p><b> }</b></p><p> void CRegister::OnReset() </p><p><b> {</b></p>&l
129、t;p> m_UserName="";</p><p> m_Passwd="";</p><p> m_PasswdRepeat="";</p><p> m_QuestionCombo.SetCurSel(0);</p><p> m_Answer="&
130、quot;;</p><p> m_RealName="";</p><p> m_Phone=0;</p><p><b> m_Age=0;</b></p><p><b> radio=0;</b></p><p> UpdateData(
131、FALSE);</p><p><b> }</b></p><p> BOOL CRegister::OnInitDialog() </p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p> m_Q
132、uestionCombo.AddString("請(qǐng)選擇一個(gè)問(wèn)題");</p><p> m_QuestionCombo.AddString("你的父親生日是哪天的?");</p><p> m_QuestionCombo.AddString("你的母親生日是哪天的?);</p><p> m_QuestionC
133、ombo.AddString("你的女朋友生日是哪天的?");</p><p> m_QuestionCombo.AddString("你家養(yǎng)的貓叫什么?);</p><p> m_QuestionCombo.AddString("你的車(chē)牌號(hào)后三位是什么?");</p><p> m_QuestionCombo
134、.SetCurSel(0);</p><p> return TRUE; </p><p><b> }</b></p><p> 3.實(shí)現(xiàn)學(xué)生登錄后選擇考試科目界面的關(guān)鍵代碼:</p><p> void CExamInfo::OnButtonOk() </p><p><b&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 考試系統(tǒng)畢業(yè)設(shè)計(jì)論文 基于vc開(kāi)發(fā)與設(shè)計(jì)考試系統(tǒng)
- 畢業(yè)設(shè)計(jì)---在線考試系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)
- 基于vc的語(yǔ)音傳輸系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)論文基于vc管理系統(tǒng)開(kāi)發(fā)
- 軟件開(kāi)發(fā)畢業(yè)設(shè)計(jì)論文--基于mvc在線考試系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)
- 畢業(yè)設(shè)計(jì)---基于vc++的視頻采集系統(tǒng)的開(kāi)發(fā)
- 畢業(yè)設(shè)計(jì)(論文)--基于vc++簡(jiǎn)易心電圖分析系統(tǒng)的開(kāi)發(fā)
- 畢業(yè)設(shè)計(jì)----在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 網(wǎng)絡(luò)考試系統(tǒng)畢業(yè)設(shè)計(jì)
- 在線考試系統(tǒng)畢業(yè)設(shè)計(jì)
- 在線考試系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì) ----網(wǎng)上考試系統(tǒng)
- 網(wǎng)上考試系統(tǒng)畢業(yè)設(shè)計(jì)
- delphi考試系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-在線考試系統(tǒng)
- [畢業(yè)設(shè)計(jì)資料]在線考試模擬系統(tǒng)開(kāi)發(fā)
- 在線考試系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----在線考試系統(tǒng)
- 網(wǎng)上考試系統(tǒng)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論