C語言學(xué)習(xí)系統(tǒng)_第1頁
C語言學(xué)習(xí)系統(tǒng)_第2頁
C語言學(xué)習(xí)系統(tǒng)_第3頁
C語言學(xué)習(xí)系統(tǒng)_第4頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

目錄TOC\o"1-5"\h\z冃U百 I\o"CurrentDocument"第一章需求分析 2\o"CurrentDocument".!需求概述 2\o"CurrentDocument"各子系統(tǒng)的功能模塊及數(shù)據(jù)流程圖 3\o"CurrentDocument"數(shù)據(jù)字典 11\o"CurrentDocument"第二章數(shù)據(jù)庫設(shè)計(jì) 12モロキ勾.設(shè)vF 12\o"CurrentDocument"邏輯結(jié)構(gòu)設(shè)計(jì) 15\o"CurrentDocument"第三章系統(tǒng)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn) 19\o"CurrentDocument"數(shù)據(jù)庫連接方案 19\o"CurrentDocument"登錄模塊的設(shè)計(jì) 20\o"CurrentDocument"基礎(chǔ)知識(shí)管理模塊設(shè)計(jì) 22基礎(chǔ)知識(shí)學(xué)習(xí)管理模塊設(shè)計(jì) 22函數(shù)學(xué)習(xí)管理模塊設(shè)計(jì) 23\o"CurrentDocument"經(jīng)典例題管理模塊設(shè)計(jì) 24\o"CurrentDocument"章節(jié)試題管理模塊設(shè)計(jì) 25\o"CurrentDocument"二級(jí)模擬測試管理模塊設(shè)計(jì) 29\o"CurrentDocument"我的題庫管理模塊設(shè)計(jì) 31\o"CurrentDocument"維護(hù)管理模塊設(shè)計(jì) 33系統(tǒng)管理模塊設(shè)計(jì) 36用戶管理模塊設(shè)計(jì) 36權(quán)限管理模塊設(shè)計(jì) 37\o"CurrentDocument"第四章軟件調(diào)試 38\o"CurrentDocument"軟件測試的目標(biāo) 38f\o"CurrentDocument"應(yīng)用軟件測試方法 38\o"CurrentDocument"各功能模塊測試 39\o"CurrentDocument"整體測試 39\o"CurrentDocument"第五章結(jié)論 40\o"CurrentDocument"參考文獻(xiàn) 41\o"CurrentDocument"致謝 42\o"CurrentDocument"附錄A 43前百C語言程序設(shè)計(jì)作為大學(xué)理工課必修的課程,是其它編程語言的必學(xué)入門課程,要求用一種結(jié)構(gòu)化設(shè)計(jì)的編程思想,學(xué)好C語言可以很好地掌握一般程序設(shè)計(jì)的方法,這對(duì)學(xué)生來說是非常重要的。學(xué)習(xí)C語言不僅需要一定的基礎(chǔ)知識(shí),而且要求上機(jī)練習(xí),而歷年來我校學(xué)生參加C語言二級(jí)考試通過率偏低。由于C語言概念比較復(fù)雜,規(guī)則繁多,使用靈活,學(xué)生在剛剛學(xué)習(xí)c語言普遍覺得難度太大,學(xué)習(xí)起來枯燥乏味,不感興趣。有些同學(xué)不能獨(dú)立解決編譯錯(cuò)誤問題,有些復(fù)雜程序的編程思路不清晰,鑒于這種情況,開發(fā)ー款功能強(qiáng)大、界面友好的c語言輔助學(xué)習(xí)軟件是很有必要的,它讓您在短時(shí)間內(nèi)學(xué)懂、學(xué)通C語言。本系統(tǒng)作為輔助教學(xué)軟件實(shí)現(xiàn)“以學(xué)生為中心”的開放式管理,使學(xué)生能夠做到自我學(xué)習(xí)、自我指導(dǎo)、自我檢驗(yàn)。本系統(tǒng)在學(xué)習(xí)數(shù)據(jù)庫的基礎(chǔ)上,靈活運(yùn)用數(shù)據(jù)庫開發(fā)軟件Delphi和數(shù)據(jù)庫管理軟件SQLServer,開發(fā)出能供教學(xué)使用的C語言學(xué)習(xí)系統(tǒng),以方便教學(xué)。本系統(tǒng)可供學(xué)生使用,學(xué)生可以通過使用本系統(tǒng),鞏固C語言基礎(chǔ)知識(shí),對(duì)自己進(jìn)行測試,模擬考試國家計(jì)算機(jī)二級(jí)C語言。創(chuàng)建自己的C語言題庫。因此,C語言學(xué)習(xí)系統(tǒng)應(yīng)有以下功能:1)基礎(chǔ)知識(shí)管理:收集了常用C語言知識(shí)點(diǎn)和函數(shù),可以供用戶瀏覽和查詢。2)經(jīng)典例題管理:收錄了一些經(jīng)典編程實(shí)例,并作了詳細(xì)注釋,給同學(xué)們起到拋磚引玉的作用,使用戶了解編程算法,并提高用戶閱讀程序的能力。3)章節(jié)試題管理:用戶可以通過此模塊測試自己,了解自己的不足,起到查缺補(bǔ)漏的作用。4)二級(jí)模擬測試管理:真實(shí)模擬二級(jí)筆記考試,使用戶熟悉二級(jí)C語言考試,提高通過國家二級(jí)C語言考試的可能。5)系統(tǒng)維護(hù)管理:用戶可以建立自己特有的題庫,提高學(xué)習(xí)效率。第一章需求分析需求概述C語言學(xué)習(xí)系統(tǒng)從大的方面分主要集中在C語言基礎(chǔ)知識(shí)的學(xué)習(xí)、上機(jī)學(xué)習(xí)、例題詳解等。所以該系統(tǒng)主要是實(shí)現(xiàn)對(duì)數(shù)據(jù)的錄入、插入、刪除、查詢、等功能。其次,開發(fā)這個(gè)系統(tǒng)的目的就是幫助學(xué)生學(xué)好C語言、通過國家二級(jí)C語言等級(jí)考試,再者,為了幫助學(xué)生攻破易錯(cuò)點(diǎn)、難點(diǎn),系統(tǒng)還應(yīng)包含我的題庫功能,用于構(gòu)建學(xué)生自己獨(dú)特的C語言題庫。根據(jù)這個(gè)系統(tǒng)所要實(shí)現(xiàn)的目的和任務(wù),調(diào)查分析總結(jié)出這個(gè)系統(tǒng)最終實(shí)現(xiàn)的主要功能如下:1)基礎(chǔ)知識(shí)管理:通過對(duì)18大類70多個(gè)知識(shí)點(diǎn),通過對(duì)C語言的ー些最基本的語法知識(shí)、函數(shù)解釋和算法詳盡的解釋說明,學(xué)習(xí)C語言的基礎(chǔ)知識(shí),使學(xué)生打牢基礎(chǔ)?;A(chǔ)知識(shí)管理主要包含基礎(chǔ)知識(shí)學(xué)習(xí)和函數(shù)學(xué)習(xí)兩個(gè)部分。主要通過瀏覽和査詢功能來實(shí)現(xiàn)。知識(shí)瀏覽,用戶可以對(duì)自己感興趣的知識(shí)點(diǎn)進(jìn)行查看。知識(shí)查詢,用戶輸入自己想查看的知識(shí)點(diǎn)或函數(shù),然后系統(tǒng)顯示對(duì)應(yīng)信息。2)經(jīng)典例題管理:收錄ー些經(jīng)典編程實(shí)例,配有詳細(xì)的實(shí)例代碼,從而給學(xué)生起到拋磚引玉的作用,使他們能快速的進(jìn)階C語言學(xué)習(xí)。經(jīng)典例題管理主要包括題目定位、加入題庫和答案及分析的査看。題目定位,可以查看上ー題、下?ー題,也可以自由轉(zhuǎn)到某ー題。答案及分析的查看,用戶可以對(duì)例題的答案和分析進(jìn)行查看。加入題庫,用戶把做錯(cuò)的題目或者認(rèn)為比較好的題目加入到自己的題庫中。3)章節(jié)試題管理:通過對(duì)每章的測試,了解自己的不足,實(shí)現(xiàn)自我檢測的功能。章節(jié)試題管理主要包括題目定位、用戶答題、加入我的題庫和作答情況顯示。題目定位,用戶可以查看上一題、下ーー題,也可以自由轉(zhuǎn)到某ーー題。用戶答題,用戶根據(jù)題目內(nèi)容選擇答案。加入題庫,用戶把做錯(cuò)的題目或者認(rèn)為比較好的題目加入到自己的題庫中。作答情況顯示,系統(tǒng)把用戶所選擇的答案及作答情況進(jìn)行顯示。4)二級(jí)模擬測試管理:模擬考試國家計(jì)算機(jī)C,使您輕松通過國家計(jì)算機(jī)等級(jí)考試二級(jí)C語言。二級(jí)模擬測試管理主要包括題目定位、用戶答題、作答情況顯示和計(jì)時(shí)。計(jì)時(shí),顯示乘余時(shí)間,交卷時(shí)間到時(shí)系統(tǒng)自動(dòng)提示用戶交卷。5)我的題庫管理:方便用戶對(duì)題目的管理,用戶可以添加自己的注釋。我的題庫管理主要包括題目定位、編輯刪除題庫、題庫情況顯示。題目定位,用戶可以查看上ー題、下ー題,也可以自由轉(zhuǎn)到某ー題。編輯刪除題庫,用戶可添加自己的注釋,也可以編輯、刪除題冃。題庫情況顯示,顯示題庫數(shù)量及加入的時(shí)間。6)系統(tǒng)維護(hù)管理:管理員可增加刪除系統(tǒng)操作人員,并設(shè)定操作人員的權(quán)限。通過對(duì)用戶進(jìn)行權(quán)限管理范圍設(shè)定,減輕操作內(nèi)容,也可對(duì)單個(gè)用戶權(quán)限及范圍進(jìn)行修訂,從而保證系統(tǒng)在實(shí)施中的靈活性。1.2各子系統(tǒng)的功能模塊及數(shù)據(jù)流程圖C語言學(xué)習(xí)系統(tǒng)包括系統(tǒng)管理模塊、維護(hù)模塊、基礎(chǔ)知識(shí)管理模塊、經(jīng)典例題模塊、章節(jié)試題管理模塊、二級(jí)模擬管理模塊和我的題庫管理模塊。系統(tǒng)框圖如圖1.1所示。圖1.1C語言學(xué)習(xí)系統(tǒng)功能模塊框圖

其中每個(gè)功能都由若干相關(guān)聯(lián)的子功能模塊組成。c語言學(xué)習(xí)系統(tǒng)的數(shù)據(jù)流圖如圖L2所示。圖1.2C語言學(xué)習(xí)系統(tǒng)數(shù)據(jù)流圖1)基礎(chǔ)知識(shí)管理基礎(chǔ)知識(shí)管理主要包含基礎(chǔ)知識(shí)學(xué)習(xí)和函數(shù)學(xué)習(xí)兩個(gè)部分。主要通過瀏覽和查詢功能來實(shí)現(xiàn)。包含的功能模塊如圖L3所示?;A(chǔ)知識(shí)管理函數(shù)查詢函數(shù)學(xué)習(xí)I函數(shù)瀏覽函數(shù)查詢函數(shù)學(xué)習(xí)I函數(shù)瀏覽基礎(chǔ)知識(shí)學(xué)習(xí)知識(shí)瀏覽圖1.3基礎(chǔ)知識(shí)管理模塊功能框圖從以上的分析可以得出其數(shù)據(jù)流程圖,如圖1.4所示?;A(chǔ)知識(shí)基礎(chǔ)知識(shí)管理圖1.4基礎(chǔ)知識(shí)管理模塊數(shù)據(jù)流圖1)2函數(shù)記錄2)經(jīng)典例題管理經(jīng)典例題管理主要包括題目定位、用戶答題、加入我的題庫和作答情況顯示功能模塊如圖L5所示。

經(jīng)典例題管理圖1.5經(jīng)典例題管理模塊功能框圖其對(duì)應(yīng)的數(shù)據(jù)流程圖如圖2.6所示。圖2.6經(jīng)典例題管理模塊數(shù)據(jù)流圖3)章節(jié)試題管理通過對(duì)每章的測試,了解自己的不足,實(shí)現(xiàn)自我檢測的功能。章節(jié)試題管理主要包括題目定位、用戶答題、加入我的題庫和作答情況顯示。功能模塊如圖L7所示。加入題庫答案查看題目定位加入題庫答案查看題目定位圖1.7章節(jié)試題管理模塊功能框圖其對(duì)應(yīng)的數(shù)據(jù)流程圖如圖1.8所示。圖1.8圖1.8章節(jié)試題管理模塊數(shù)據(jù)流圖章節(jié)試題管理4)二級(jí)模擬測試管理二級(jí)模擬測試管理用于模擬考試國家計(jì)算機(jī)C,使您輕松通過國家計(jì)算機(jī)等級(jí)考試二級(jí)C語言。包含的功能模塊如圖L9所示。二級(jí)模擬測試管理統(tǒng)分計(jì)時(shí)作答情況顯示題目定位統(tǒng)分計(jì)時(shí)作答情況顯示題目定位圖L9ニ級(jí)模擬測試管理模塊功能框圖其對(duì)應(yīng)的數(shù)據(jù)流程圖如圖1.10所示。圖!.10二級(jí)模擬測試模塊數(shù)據(jù)流圖5)我的題庫管理方便用戶對(duì)題目的管理,用戶可以添加自己的注釋。我的題庫管理主要包括題目定位、編輯刪除題庫、題庫情況顯示。功能模塊如圖1.11所示。我的題庫管理題庫情況顯示編輯刪除題庫題目定位題庫情況顯示編輯刪除題庫題目定位圖1.11我的題庫管理模塊功能框圖其對(duì)應(yīng)的數(shù)據(jù)流程圖如圖!.12所示。圖1.圖1.12我的題庫管理模塊數(shù)據(jù)流圖6)系統(tǒng)管理管理員可增加刪除系統(tǒng)操作人員,并設(shè)定操作人員的權(quán)限。通過對(duì)用戶進(jìn)行權(quán)限管理范圍設(shè)定,減輕操作內(nèi)容,也可對(duì)單個(gè)用戶權(quán)限及范圍進(jìn)行修訂,從而保證系統(tǒng)在實(shí)施中的靈活性。功能模塊如圖1.13所示。圖1.13系統(tǒng)管理模塊功能框圖系統(tǒng)管理其對(duì)應(yīng)的數(shù)據(jù)流程圖如圖1.14所示。圖1.14系統(tǒng)管理模塊數(shù)據(jù)流圖D7用戶權(quán)限記錄3數(shù)據(jù)字典根據(jù)以上對(duì)各功能模塊及其數(shù)據(jù)流圖的分析,可以得出系統(tǒng)的數(shù)據(jù)字典如表1所示。表1C語言學(xué)習(xí)系統(tǒng)數(shù)據(jù)字典基礎(chǔ)知識(shí)信息編號(hào),名稱,內(nèi)容章節(jié)試題信息章節(jié)編號(hào)、章節(jié)名稱、內(nèi)容、答案經(jīng)典例題信息例題ー題號(hào),內(nèi)容,分析,答案二級(jí)測試信息套數(shù).編號(hào),題型,答案、題目內(nèi)容我的題庫信息題庫ー編號(hào),用戶名、題號(hào),題目內(nèi)容、用戶注釋用戶信息用戶編號(hào),用戶名、密碼、權(quán)限函數(shù)信息編號(hào),函數(shù)名稱,函數(shù)內(nèi)容第二章數(shù)據(jù)庫設(shè)計(jì)在概念結(jié)構(gòu)的設(shè)計(jì)過程中,設(shè)計(jì)者要對(duì)用戶需求進(jìn)行綜合、歸納和抽象,形成ー個(gè)獨(dú)立于具體計(jì)算機(jī)和數(shù)據(jù)庫管理系統(tǒng)的概念模型。數(shù)據(jù)邏輯設(shè)計(jì)的主要任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換為SQLServer2000支持的數(shù)據(jù)模型,并將性能進(jìn)行優(yōu)化。2.!概念結(jié)構(gòu)設(shè)計(jì)根據(jù)以上分析可以得出各個(gè)實(shí)體關(guān)系圖如下:1)基礎(chǔ)知識(shí)E-R圖C語言基礎(chǔ)知識(shí)\\(編號(hào)つ1名稱 內(nèi)圖2.1基礎(chǔ)知識(shí)E-R圖2)函數(shù)E-R圖函數(shù)編號(hào): 函數(shù)名 介紹 ? ヽ___圖2.2函數(shù)E-R圖3)經(jīng)典例題E-R圖經(jīng)典例題題號(hào) 分析 內(nèi)容容、ー答案- 一ー圖2.4章節(jié)試題E-R圖5)二級(jí)試題E-R圖6)我的題庫E-R圖用戶圖2.7用戶E-R圖8)系統(tǒng)E-R圖系統(tǒng)E-R圖如圖2.8所示。甬戶る號(hào)圖2.8系統(tǒng)甬戶る號(hào)圖2.8系統(tǒng)E-R圖2邏輯結(jié)構(gòu)設(shè)計(jì)1)C語言基礎(chǔ)知識(shí)表C語言基礎(chǔ)知識(shí)表用于記錄各個(gè)C語言基礎(chǔ)知識(shí)點(diǎn)的信息,C語言基礎(chǔ)知識(shí)表包括編號(hào),名稱,內(nèi)容,C語言基礎(chǔ)知識(shí)表的設(shè)計(jì)如表2.1所示。

表2.1C語言基礎(chǔ)知識(shí)表字段名數(shù)據(jù)類型氏度允許空說明編號(hào)int4主鍵名稱varchar30內(nèi)容varchar1000V2)函數(shù)表函數(shù)表用于記錄各個(gè)函數(shù)的信息,函數(shù)表包括編號(hào),函數(shù)名稱,函數(shù)內(nèi)容,函數(shù)表的設(shè)計(jì)如表2.2所示。表2.2函數(shù)表字段名數(shù)據(jù)類型長度允許空說明編號(hào)int4主鍵函數(shù)名稱varchar30函數(shù)內(nèi)容varchar1000V3)經(jīng)典例題表經(jīng)典例題表主要記錄經(jīng)典例題的相關(guān)信息,包括例題號(hào),內(nèi)容,分析,答案等基本字段,表的設(shè)計(jì)如表2.3所示。表2.3經(jīng)典例題表字段名數(shù)據(jù)類型長度允許空說明題號(hào)int4主鍵內(nèi)容varchar500分析varchar300J答案varchar5

4)章節(jié)試題測試表章節(jié)試題測試表表用于記錄章節(jié)試題測的信息,主要包括編號(hào),章節(jié)名稱,題號(hào),題目內(nèi)容,題目答案等這些字段,表的設(shè)計(jì)如表2.4所示。表2.4章節(jié)試題測試表字段名數(shù)據(jù)類型長度允許空說明編號(hào)int4主鍵章節(jié)名稱varchar30題目內(nèi)容varchar1000題目答案varchar105)二級(jí)試題表二級(jí)試題表用于記錄教職工學(xué)歷的信息,主要包括編號(hào),套數(shù),題型,題目內(nèi)容,答案等字段,表的設(shè)計(jì)如表2.5所示。表2.5二級(jí)試題表字段名數(shù)據(jù)類型長度允許空說明編號(hào)int4主鍵套數(shù)varchar20題型varchar2()題目內(nèi)容varchar1000答案varchar306)我的題庫表我的題庫表表用于記錄我的題庫的信息,主要包括題編號(hào),日期,內(nèi)容,用戶名,答案,注釋等字段,表的設(shè)計(jì)如表2.6所示。表2.6我的題庫表字段名數(shù)據(jù)類型長度允許空說明用戶編號(hào)int4主鍵題目編號(hào)datatime8用戶編號(hào)varchar1000注釋varchar200日期datatime87)用戶表用戶表用于記錄用戶的信息,主要包括編號(hào),用戶名,密碼,權(quán)限,P_0,P_N等字段,表的設(shè)計(jì)如表2.7所示。表2.7用戶表字段名數(shù)據(jù)類型長度允許空說明編號(hào)int4主鍵用戶名varchar20密碼varchar10權(quán)限varchar15P_Obit1VP_Nbit1J第三章系統(tǒng)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)該系統(tǒng)設(shè)計(jì)主要包括九大模塊,分別為登錄模塊、主界面模塊、系統(tǒng)管理模塊、基礎(chǔ)知識(shí)管理模塊、經(jīng)典例題模塊、章節(jié)試題管理模塊、二級(jí)模擬管理模塊和我的題庫管理模塊、維護(hù)模塊。數(shù)據(jù)庫連接方案.1方案分析SQLServer2000數(shù)據(jù)庫連接方案就是通過驅(qū)動(dòng)程序與數(shù)據(jù)庫建立連接,對(duì)數(shù)據(jù)庫進(jìn)行訪問。SQLServer2000是C/S類型的數(shù)據(jù)庫,客戶端應(yīng)用程序可以通過ADO技術(shù),選擇合適的驅(qū)動(dòng)程序連接服務(wù)器端的數(shù)據(jù)庫,能夠使多客戶連接同一數(shù)據(jù)庫,從而實(shí)現(xiàn)數(shù)據(jù)共享??蛻舳诉B接數(shù)據(jù)庫的過程如圖3.1所示。.2實(shí)施過程在delphi中新新建?,個(gè)工程,再在工程中新建?,個(gè)數(shù)據(jù)模塊DataModule,在DataModule中放置一-個(gè)TADOConnection和其它數(shù)據(jù)庫訪問組件(如圖3.2),其它數(shù)據(jù)庫組件都引用模塊中的TADOConnection組件作為數(shù)據(jù)源,這種方式保證ー個(gè)工程中只建立了一個(gè)數(shù)據(jù)庫連接,減少了對(duì)資源的占用。卜DataBodule1酒て國J"空AD0Connectionl ADOTwoDataSourceTwcAD0QueryADOUserADOQuery2ADOCust獨(dú)ADOLianADOQuerylDataSourceFiADOQuefyWoDataSourcel.___ _ADOQueryFun,3DataSourceWoDataSourceCust_._DataSourceJc卜DataBodule1酒て國J"空AD0Connectionl ADOTwoDataSourceTwcAD0QueryADOUserADOQuery2ADOCust獨(dú)ADOLianADOQuerylDataSourceFiADOQuefyWoDataSourcel.___ _ADOQueryFun,3DataSourceWoDataSourceCust_._DataSourceJcDataSou.ceLianAD0Querjdc圖3.1ADO通過驅(qū)動(dòng)程序連接數(shù)據(jù)庫 圖3.2DataModule窗體雙擊TADOConnection組件,打開ConnectionString屬性對(duì)話框,進(jìn)行數(shù)據(jù)庫連接設(shè)置,如圖3.3所示。

圖3.3TADOConnection組件連接3.2登錄模塊的設(shè)計(jì)本系統(tǒng)的登錄模塊采用的是用戶級(jí)別登錄,進(jìn)入系統(tǒng)時(shí),必須輸入正確的用戶名和密碼才能進(jìn)入,并且登錄時(shí)按不同的權(quán)限進(jìn)行登錄,這各登錄方式可以將用戶的使用權(quán)分為不同的等級(jí),以防止普通用戶對(duì)程序的錯(cuò)誤操作。登錄模塊流程圖如圖3.4所示。開始輸入用戶名、密碼和級(jí)別 Nn用戶名是否正確

用戶登錄窗體設(shè)計(jì)界面含tlabel和tedit及tbutton,窗體的運(yùn)行界面如圖3.5所圖3.5用戶登錄窗體登錄窗體顯示后,在窗體中輸入用戶名、密碼和用戶級(jí)別,單擊確定按鈕,在該按鈕的OnClick事件中對(duì)用戶名、密碼和用戶級(jí)別進(jìn)行判斷,如果與數(shù)據(jù)表中的某行記錄相同,則進(jìn)入主窗體;否則,清空用戶名、密碼和用戶級(jí)別文本框,進(jìn)行重新輸入,當(dāng)?shù)卿洿螖?shù)超過3次時(shí),退出本系統(tǒng)。為了美化界面,本模塊中使用了一副登錄圖片。3.3主界面模塊設(shè)計(jì)主界面承擔(dān)整個(gè)應(yīng)用程序?qū)Ш降淖饔?是應(yīng)用程序的導(dǎo)航界面,使用戶更直觀、更清晰地了解程序業(yè)務(wù)流程和操作流程。主界面的設(shè)計(jì)在保證界面美觀的同時(shí)還要注意主界面的易于操作性,使用戶方便、快捷地通過主界面導(dǎo)航引擎進(jìn)入業(yè)務(wù)界面。主程序界面如圖3.6所示。

4基礎(chǔ)知識(shí)管理模塊設(shè)計(jì)基礎(chǔ)知識(shí)管理基礎(chǔ)知識(shí)管理主要包含基礎(chǔ)知識(shí)學(xué)習(xí)和函數(shù)學(xué)習(xí)兩個(gè)部分。實(shí)現(xiàn)的主要是瀏覽和查詢功能?;A(chǔ)知識(shí)學(xué)習(xí)管理模塊設(shè)計(jì)基礎(chǔ)知識(shí)學(xué)習(xí)管理的流程圖如圖3.7所示。瀏覽y顯示瀏覽y顯示選擇滿足條

件的函數(shù)瀏覽結(jié)束顯示顯示圖3.圖3.7基礎(chǔ)知識(shí)學(xué)習(xí)管理的流程圖圖3.8函數(shù)學(xué)習(xí)管理的查詢流程圖在窗體設(shè)計(jì)中,基礎(chǔ)知識(shí)學(xué)習(xí)管理使用了Treeview和數(shù)據(jù)感知控件DBmemo,用戶在Treeview捽件中單擊想查看的C語言知識(shí)點(diǎn)后,通過DBmemo來顯示知識(shí)點(diǎn)內(nèi)容。基礎(chǔ)知識(shí)學(xué)習(xí)管理窗體如圖3.9所示。

.r基。.r基。S知識(shí)テ習(xí)!t*二rシ圖3.9基礎(chǔ)知識(shí)學(xué)習(xí)管理窗體函數(shù)學(xué)習(xí)管理模塊設(shè)計(jì)函數(shù)學(xué)習(xí)管理又分兩個(gè)模塊,分別是瀏覽和查詢模塊,瀏覽模塊流程圖如圖3.7所示,查詢流程圖如圖3.8所示。函數(shù)學(xué)習(xí)管理使用了Combobox、DBmemo、Edit和button,函數(shù)學(xué)習(xí)管理除了瀏覽功能外,還有查詢功能,在Edit中輸入想查詢的函數(shù)名稱,單擊確定按鈕后,函數(shù)內(nèi)容就顯示在DBmemo中。函數(shù)學(xué)習(xí)管理窗體如圖3.10所示。3.5經(jīng)典例題管理模塊設(shè)計(jì)經(jīng)典例題管理主要是對(duì)ー些經(jīng)典編程實(shí)例進(jìn)行查看,經(jīng)典例題管理的流程圖如圖3.1I所示。開始Iー廠I顯示第一題是否轉(zhuǎn)到某題YI▼N 顯示題目信息N 是否查看答案 ▼一Y顯示答案 -r-—— N::是否查看分析、、「1▼——是否退出丁Y結(jié)束圖3.11經(jīng)典例題管理的流程圖

.r展或例顔管機(jī)「?□回.r展或例顔管機(jī)「?□回図圖3.12經(jīng)典例題管理窗體經(jīng)典例題管理主要用了button、DBedit、DBmemo和Groupbox等控件。經(jīng)典例題管理窗體如圖3.12所示。查看分析按鈕代碼如下:ifbtnjie.Caption士查看分析’thenbeginbtnjie.Caption:='MX消查看‘;dbmemo2.DataField:='題目分析,;endelsebegindbmemo2.DataField:=";btnjie.Caption:二'查看分析';end;通過以上代碼可以自由切換查看狀態(tài)。3.6章節(jié)試題管理模塊設(shè)計(jì)用戶在進(jìn)行章節(jié)試題測試時(shí),可以選擇綜合練習(xí)方式或者章節(jié)練習(xí)方式,在設(shè)計(jì)綜合練習(xí)方式時(shí),自定義了一個(gè)過程,用于生成互不相同的隨機(jī)數(shù),隨機(jī)數(shù)存放在數(shù)組中。在題目定位中,定義了一個(gè)位置指針,通過試題起始位置和位置位置指針便可以定位出題目編號(hào)。作答情況通過StringGrid顯示。相關(guān)流程圖如圖3.13、3.14和3.15所示。Y結(jié)束開始結(jié)束圖3.13綜合練習(xí)流程圖圖3.14章節(jié)練習(xí)流程圖結(jié)束章節(jié)試題管理窗體設(shè)計(jì)中,練習(xí)方式的選擇用了Radiobutton,題目定位用了Button,作答情況的顯示用了StringGrid,此外還使用了RadioGroup,Panel等控件。章節(jié)試題管理窗體如圖3.16所示。圖3.16章節(jié)試題管理窗體相關(guān)代碼:?隨機(jī)數(shù)組生成代碼procedurecreatrandon;varj,k,compare:integer;beginj:=l;whilej<Frm_Interface.she_number-i-1do〃She_number為設(shè)定練習(xí)的題冃數(shù)量beginRandomize;compare:=trunc(l+random(ti_counts))〃ti_counts為題目總數(shù)fork:=ltojdobeginifcompare=a[k]thenbreak;end;ifk=j+lthenbegina[j]:二compare;j:可+1;end;end;end;〃該過程用于生成在題目總數(shù)范圍內(nèi)的個(gè)數(shù)為設(shè)定數(shù)量的互不相同的隨機(jī)數(shù)?插入題庫代碼DataModulel.adoquery.Close;DataModule1.adoquery.SQL.Clear;DataModule1.adoquery.SQL.Addf^elect*from我的題庫表’);DataModulel.adoquery.Open;counts:=DataModule1.adoquery.RecordCount+1;〃我的題庫中的題目數(shù)量DataModulel.adoquery.Close;DataModule1.adoquery.SQL.Add('insertinto我的題庫表(題目編號(hào),題目內(nèi)容,題目答案,日期)values(:a,:b,:c,:d)');DataModulel.adoquery.Parameters.ParamByName('a').Value:=counts;DataModulel.adoquery.Parameters.ParamByName('b').Value:=DataModule1.ADOLian.fieIdbyname('題目內(nèi)容’).AsString;DataModule1.adoquery.Parameters.ParamByName('c').Value:=DataModule1.ADOLian.fieIdbyname('答案,).AsString;DataModulel.adoquery.Parameters.ParamByName(d).Value:=datetimetostr(now());showmessage('加入成功');3.7ニ級(jí)模擬測試管理模塊設(shè)計(jì)二級(jí)模擬測試主要實(shí)現(xiàn)的功能有計(jì)時(shí)、作答情況顯示、題目定位和題目顯示。流程圖如圖317所示。開始是否到交卷時(shí)間統(tǒng)分,然后顯示用戶作

答情況及所得分?jǐn)?shù)結(jié)束二級(jí)模擬測試管理窗體設(shè)計(jì)中,使用了Timer、Radiobutton>RadioGroup>Panel和StringGrid等控件。窗體如圖3.18所示。圖3.18二級(jí)模擬測試管理窗體相關(guān)代碼:?定時(shí)器的OnTimer事件代碼procedureTFormErce.TimerlTimer(Sender:TObject);varn,s:integer;min,sec:string;beginiftimerl.Tag>0thenbegins:=timerl.Tag-l;timerl.Tag:=s;n:=sdiv60;s:=smod60;ifn<10thenmin:='0'+inttostr(n)elsemin:=inttostr(n);ifs<10thensec:=,0,+inttostr(s)elsesec:=inttostr(s);label2.Caption:=’剩余時(shí)間:'+min+T+secendelsebegintimerl.Enabled:=false;showmessageぐ時(shí)間到,請(qǐng)交卷!);BtnJiao.OnClick(sender);end;end;?作答情況顯示代碼if((point<=15)and(radiogroupl.Itemindex>=0)and(radiogroupl.Itemindex<=3))thenstring1:=radiogroup1.Itemsfradiogroup1.Itemindex] 〃1~15為選擇題elsestring1:=";if((point>15)and(point<=20))then 〃16?20為填空題string1:=edit1.Text;string2:=DataModule1.ADOQuery.Fields[4].AsString;stringgridl.Cells[l,point]:=string1,第二列顯示用戶所做答案ifstring1〇"thenbeginiftrim(string1)=trim(string2)thenbeginstringgridl.Cells[2,point]:二’/;〃第三列顯示對(duì)錯(cuò)right_count:=right_count+l;endelsestringgrid1.Cells[2,point]:='x';end;3.8我的題庫管理模塊設(shè)計(jì)我的題庫主要完成對(duì)題庫的編輯、添加、刪除等操作。流程圖如圖3.19所示。Y我的題庫管理窗體設(shè)計(jì)中,使用了Radiobutton、RadioGroup、Panel和StringGrid等控件。窗體如圖3.20示。圖3.20我的題庫管理窗體相關(guān)代碼:?刪除代碼Flag:=MessageBox(handle;警告:刪除是永久的不可恢復(fù)的!確認(rèn)刪除嗎?’,‘確認(rèn)刪除:MB一OKCANCELorMB」CONWaming); 〃flag為?整型變量ifflag=IDCANCELthenexit;DataModuiel.adoqueryWo.Close;DataModule1.adoqueryWo.SQL.Clear;DataModulel.adoqueryWo.SQL.Add('deletefrom我的題庫表where題目編號(hào)=:a');DataModulel.adoqueryWo.Parameters.ParamByName('a').Value:=point;DataModule1.adoqueryWo.ExecSQL;3.9維護(hù)管理模塊設(shè)計(jì)維護(hù)管理包括例題維護(hù)、章節(jié)維護(hù)和二級(jí)維護(hù)。維護(hù)流程圖如圖3.21、3.21和3.23所示。開始顯示添加題目信息保存/ヽ結(jié)束くノ圖3.開始顯示添加題目信息保存/ヽ結(jié)束くノ圖3.21添加流程圖圖3.22修改流程圖圖3.23刪除流程圖維護(hù)窗體有例題維護(hù)窗體、章節(jié)維護(hù)窗體和二級(jí)維護(hù)窗體。三個(gè)窗體很相似,現(xiàn)以二級(jí)維護(hù)為例。二以二級(jí)維護(hù)為例。二級(jí)維護(hù)窗體如圖3.24所示。相關(guān)代碼:修改代碼DataModulel.ADOTwo.Edit;刪除代碼DataModulel.ADOTwo.Delete;添加代碼DataModule1.ADOTwo.Append;保存代碼DataModule1.ADOTwo.Post;系統(tǒng)管理模塊包括操作員管理模塊和權(quán)限管理模塊。用戶管理模塊主要對(duì)用戶進(jìn)行添加、刪除和修改。權(quán)限管理模塊的功能是對(duì)用戶主窗體下的菜單項(xiàng)的使用權(quán)限進(jìn)行修改。3.10.I用戶員管理模塊設(shè)計(jì)操作員管理模塊流程圖如圖3.25、3.26和3.27所示。顯示用戶信息用戶名是否存在開始顯示;顯否刪除

、[,""Y刪除成功n圖3.25添加流程圖圖3.27顯示用戶信息用戶名是否存在開始顯示;顯否刪除

、[,""Y刪除成功n圖3.25添加流程圖圖3.27刪除流程圖圖3.26修改流程圖圖3.28用戶管理模塊窗體權(quán)限管理是將每個(gè)用戶對(duì)各窗體的操作權(quán)限進(jìn)行設(shè)置,本方案利用ー個(gè)公用數(shù)據(jù)來記錄登錄用戶對(duì)各窗體的使用權(quán)限,在用戶調(diào)用窗體時(shí),對(duì)相應(yīng)的數(shù)組元素進(jìn)行判斷,判斷是否有權(quán)調(diào)用本窗體。權(quán)限管理窗體如圖3.30所示。圖3.29權(quán)限管理窗體第四章軟件調(diào)試軟件測試的目標(biāo)1)測試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行的過程;2)好的測試方案實(shí)際可能發(fā)現(xiàn)迄今為止尚為發(fā)現(xiàn)的錯(cuò)誤的測試方案;3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤測試。應(yīng)用軟件測試方法測試任何產(chǎn)品都有兩種方法:如果已經(jīng)知道了產(chǎn)品的內(nèi)部工作過程,可以通過測試來檢驗(yàn)內(nèi)部是否每個(gè)功能都能正常使用;如果知道了產(chǎn)品的內(nèi)部工作過程,可以通過測試來檢驗(yàn)內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行。前ー個(gè)方法稱為黑盒測試,后ー個(gè)方法稱為白盒測試。對(duì)于軟件測試而言,黑盒測試法把程序看成一個(gè)黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。也就是說,黑盒測試是在程序的接口進(jìn)行測試。它只檢查程序功能是否按照規(guī)格說明書的規(guī)定正常使用,程序是否能接受輸入數(shù)據(jù)產(chǎn)生正確的輸出信息,并且保證外部數(shù)據(jù)(數(shù)據(jù)庫和文件)的完整性。黑盒測試又稱為功能測試。與黑盒測試法相反,白盒測試法的前提是可以把程序看成裝在一個(gè)透明的白盒子里,也就是完全了解程序的結(jié)構(gòu)和處理過程。這種方法按照程序內(nèi)部的邏輯測試程序,檢查程序中的每條通路是否能按預(yù)定的要求正確工作。白盒測試又稱為結(jié)構(gòu)測試。無論黑盒測試還是白盒測試都不可能做到窮盡測試。因?yàn)椴豢赡芨F盡測試,所以軟件測試中不可能發(fā)現(xiàn)程序中的所有錯(cuò)誤。也就是說,通過測試并不能證明程序是完全正確的。但是,我們的目的是要通過測試保證程序的可靠性。因此,必須仔細(xì)設(shè)計(jì)測試方案,力爭用可能少的測試發(fā)現(xiàn)盡可能多的錯(cuò)誤。在設(shè)計(jì)系統(tǒng)之初,還遇到了調(diào)研不充分的問題。由于以前根本未曾接觸過軟件的整體開發(fā)設(shè)計(jì),所以在前期的調(diào)研中相當(dāng)不充分,開題也有些盲目,對(duì)系統(tǒng)的整體結(jié)構(gòu)也沒有弄得很明白。以至于后期對(duì)系統(tǒng)進(jìn)行了重新布局,同時(shí)也對(duì)界面進(jìn)行了美化。4.3各功能模塊測試4.3.1章節(jié)練習(xí)模塊測試在進(jìn)行測試時(shí),不管測試用戶答題是否正確,作答情況顯示區(qū)都顯示答題錯(cuò)誤。最后,發(fā)現(xiàn)后臺(tái)的數(shù)據(jù)庫的數(shù)據(jù)類型定義不夠準(zhǔn)確。筆者把用答案定義為char類型,字符長度為10。而char類型是固定的,如果當(dāng)輸入的字符長度小于定義的長度,將會(huì)以空格填充。例如后臺(tái)數(shù)據(jù)庫中輸入A,在數(shù)據(jù)庫中將會(huì)保存為“A”,因此當(dāng)用戶名輸入為“A”,進(jìn)行字符串比較,就會(huì)顯示不相等,因此就不能登錄成功。后來,筆者使用了trim。函數(shù),用來去除空格。當(dāng)然另外一種更好的方法是將數(shù)據(jù)類型定義為varchar類型。Varchar類型存儲(chǔ)時(shí),只存入數(shù)據(jù)的實(shí)際值。定義的數(shù)據(jù)長度代表能夠存入的數(shù)據(jù)的最大長度。4.3.2系統(tǒng)管理模塊測試用戶管理模塊中,測試用戶對(duì)用戶進(jìn)行修改操作時(shí),如果不改變用戶名的話,單擊保存后,系統(tǒng)提示用戶名已存在。筆者分析完代碼后,發(fā)現(xiàn)在進(jìn)行用戶名重復(fù)判斷時(shí),沒有區(qū)分用戶的業(yè)務(wù)流程,當(dāng)管理員進(jìn)行添加操作時(shí),有必要進(jìn)行用戶名重復(fù)判斷,但是如果是修改操作,則無須進(jìn)行用戶名重復(fù)判斷。通過分析,在判斷用戶名重復(fù)前加了一個(gè)判斷條件,如果是進(jìn)行添加操作,則執(zhí)行用戶名重復(fù)判斷這段代碼。4.4整體測試總體測試是組裝軟件的系統(tǒng)技術(shù),本系統(tǒng)測試采用漸增集成測試,即測試單ーー模塊,將測試完的模塊加入系統(tǒng)中,進(jìn)行一次系統(tǒng)測試,依次類推將所有模塊加入系統(tǒng)中,在具體測試時(shí),采用自頂向下的結(jié)合方式,從主控模塊開始,沿各控制層向下移動(dòng),逐漸把所有模塊結(jié)合了。第五章結(jié)論經(jīng)過四個(gè)多月的設(shè)計(jì)和開發(fā),c語言學(xué)習(xí)系統(tǒng)基本開發(fā)完畢。這次畢業(yè)設(shè)計(jì)主要是對(duì)Delphi及SQLServer2000的學(xué)習(xí)和應(yīng)用,其功能基本符合用戶需求。當(dāng)然由于畢業(yè)設(shè)計(jì)時(shí)間較短,還有許多不盡人意的地方,很多地方還需要在實(shí)踐當(dāng)中不斷的完善。畢業(yè)設(shè)計(jì)是一次非常難得的實(shí)戰(zhàn)演練機(jī)會(huì),是對(duì)大學(xué)四年所學(xué)知識(shí)的總結(jié)和綜合運(yùn)用。它不僅使我對(duì)以往所學(xué)的理論知識(shí)有了更加系統(tǒng)的鞏固,同時(shí)也讓我學(xué)會(huì)了如何把這些知識(shí)具體運(yùn)用到實(shí)踐當(dāng)中,這必將為以后的工作打下堅(jiān)實(shí)的基礎(chǔ)。從畢業(yè)設(shè)計(jì)正式開始,到現(xiàn)在設(shè)計(jì)完成,四個(gè)月左右的時(shí)間里我體驗(yàn)到了實(shí)踐的苦與樂,也學(xué)到了很多東西。從剛開始拿到題目的盲目,毫無頭緒到后來開始靜心思考,調(diào)查,收集資料,之后終于設(shè)計(jì)出系統(tǒng)設(shè)計(jì)的大體框架,和設(shè)計(jì)所應(yīng)實(shí)現(xiàn)的總體功能。從中,我體會(huì)到了實(shí)踐的重要意義,明白了作為一名編程人員,必須對(duì)客戶需求有清晰的認(rèn)識(shí),才能設(shè)計(jì)出實(shí)用的軟件。所以,總的來講這次畢業(yè)設(shè)計(jì)我受益非淺,知識(shí)層次更加豐富了,實(shí)際解決問題的能力也有了很大提高,各個(gè)方面都得到了鍛煉。本文主要是C語言的設(shè)計(jì)流程進(jìn)行了詳細(xì)介紹,系統(tǒng)從需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和軟件調(diào)試這兒個(gè)方面進(jìn)行了闡述。我認(rèn)為還應(yīng)從以下幾方面完善:1)二級(jí)模擬部分加入上機(jī)模擬功能2)盡可能使用面向?qū)ο竦乃枷脒M(jìn)行編程,體現(xiàn)繼承性,封裝性。3)界面美化方面,使用三方控件,使界面更加美觀化、人性化。參考文獻(xiàn).譚浩強(qiáng).C程序設(shè)計(jì)[M].清華大學(xué)出版社,1997.梁冰,李鐘尉.Delphi技術(shù)方案寶典[M].人民郵電出版社,2007.張立科.Delphi7組件編程參考手冊(cè)[M].人民郵電出版社,2003.[美]〇'Neil,P.DATABASEPrinciplesProgrammingandPerformance.(secondeditionl)[M],北京:高等教育出版社,2001.王興東.viusalc++軟件項(xiàng)目開發(fā)案例.電子工業(yè)出版社,2004.陳發(fā)吉.VISualc十+案例開發(fā).中國水利電出版社,2004.郭盈發(fā),張紅娟.數(shù)據(jù)庫原理[M].西安:西安電子科技大學(xué),2002.趙應(yīng)丁.Delphi7課程設(shè)計(jì)案例精編[M].中國水利水電出版社,2004.長城工作室數(shù)據(jù)組.SQLSevrer2000高級(jí)應(yīng)用人民郵電出版社,2001.湯庸.Delphi6程序設(shè)計(jì)基礎(chǔ)教程[M].北京:冶金工業(yè)出版社,2004.8.黃明等.Delphi7信息系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例[M].機(jī)械工業(yè)出版社,2005.3.李富穎.delphi編程技巧典型案例解析[M].中國電カ出版社,2005.李進(jìn).軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,1998.1.劉前進(jìn)等.Delphi數(shù)據(jù)庫編程技術(shù)[M].北京:人民郵電出版社,2002.2.StuartWallaee.EleetroniePerformaneeSupPortSystemforMaraisdesCygnesValleyHighSehool[M].MastersProjeetDivisionoflnstruetiohalDesignandTeehnologyEmPoriaStateUniversity,2001.OUJP,YOSHIDA〇,SOONGTT,etal.Recentadvanceinresearchonapplicat-ionsofpassiveenergydissipationsystems[JJ.EarthquackEng,1997,38⑶.JameSR.Grof,PaulN.Weinberg.SQL完全參考手冊(cè),北京希望電子出版社,2000致謝在本次畢業(yè)設(shè)計(jì)中,我首先要感謝的是本課題指導(dǎo)老師方芳老師,在她身上我學(xué)到了很多東西。她嚴(yán)謹(jǐn)、認(rèn)真、負(fù)責(zé)的工作態(tài)度給我留下了深刻的印象。在選題、系統(tǒng)總體設(shè)計(jì)與解決方案上,給予寶貴的建議,指導(dǎo)建立了正確的設(shè)計(jì)思想,保證了此課題的研究和開發(fā)工作的順利完成。老師還會(huì)通過電話和E-mail和我進(jìn)行交流和傳遞信。這對(duì)于我以后的工作和學(xué)習(xí)都有一種巨大的幫助,衷心地感謝她耐心的輔導(dǎo)!其次我要感謝的是王耀光同學(xué),他以用戶的身份對(duì)本系統(tǒng)進(jìn)行了測試,提出了一些不足,對(duì)此表示感謝。最后,向在這次畢業(yè)設(shè)計(jì)中給予本人幫助的所有同學(xué)和老師表示真誠感謝!附錄A〃*****************************主窗體代碼**********************〃unitUnitl;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,Menus,ExtCtrls,jpeg;typeTFrm_Interface=class(TForm)Image1:TImage;MainMenuI:TMainMenu;N1:TMenuItem;N2:TMenuItem;N3:TMenuItem;N4:TMenuItem;N5:TMenuItem;N6:TMenuItem;N7:TMenuItem;N8:TMenuItem;N9:TMenuItem;N10:TMenuItem;Nil:TMenuItem;N12:TMenuItem;N13:TMenuItem;N14:TMenuItem;N15:TMenuItem;N16:TMenuItem;N17:TMenuItem;procedureFormShow(Sender:TObject);procedureN2Click(Sender:TObject);procedureN3Click(Sender:TObject)procedureN5Click(Sender:TObject);procedureN6Click(Sender:TObject);procedureN8Click(Sender:TObject);procedureN9Click(Sender:TObject);procedureN16Click(Sender:TObject);procedureN1lClick(Sender:TObject);procedureN12Click(Sender:TObject);procedureN13Click(Sender:TObject);procedureN15Click(Sender:TObject);procedureN17Click(Sender:TObject);procedureFormCreate(Sender:TObject);private{Privatedeclarations}publicAPopedom:Array[0..10]ofBoolean;Pop_Name:String;she_number:integer;time1Integer;{Publicdeclarations}end;varFrm_Interface:TFrm_Interface;implementationusesUnit2,unit4,Unit5,ExamForm,Twoform,unit6,unit7,unit8,unit9,UnitlO,unitlI,unitl2,unitl3;{$R*.dfm)procedureTFrm_Interface.FormShow(Sender:TObject);beginApplication.CreateForm(TFrm_Enter,Frm_Enter);Frm_Enter.ShowModal;Frm_Enter.Free;end;procedureTFrm_Interface.N2Click(Sender:TObject);beginifAPopedom[0]=TruethenbeginApplication.CreateForm(TFormJc,FormJc);FormJc.ShowModal;FormJc.Free;endelseshowmessage('無權(quán)限進(jìn)入本窗體’);end;procedureTFrm_Interface.N3Click(Sender:TObject);beginifAPopedom[1]=TruethenbeginApplication.CreateForm(TFormFun,FormFun);FormFun.ShowModal;FormFun.Free;endelseshowmessageC無權(quán)限進(jìn)入本窗體);end;procedureTFrm_Interface.N6Click(Sender:TObject);beginifAPopedom[3]=TruethenbeginApplication.CreateForm(TFormExam,FormExam);FormExam.ShowModal;FormExam.Free;endelseshowmessage,無權(quán)限進(jìn)入本窗體);end;procedureTFrm_Interface.N8Click(Sender:TObject);beginifAPopedom[4]=TruethenbeginApplication.CreateForm(TFormZhang,FormZhang);FormZhang.ShowModal;FormZhang.Free;endelseshowmessageぐ無權(quán)限進(jìn)入本窗體’);end;procedureTFrm_Interface.N16Click(Sender:TObject);beginifAPopedom[10]=TruethenbeginApplication.CreateForm(TFrm_Popedom,Frm_Popedom);Frm_Popedom.ShowModal;Frm_Popedom.Free;endelseshowmessage('無權(quán)限進(jìn)入本窗體’);end;procedureTFrm_Interface.N1lClick(Sender:TObject);beginifAPopedom[6]=TruethenbeginApplication.CreateForm(TFormErce,FormErce);formerce.ShowModal;formerce.Free;endelseshowmessage(‘無權(quán)限進(jìn)入本窗體’);end;procedureTFrm_Interface.N13Click(Sender:TObject);beginifAPopedom[8]=TruethenbeginApplication.CreateForm(TformWo,formWo);formWo.ShowModal;formWo.Free;endelseshowmessage('無權(quán)限進(jìn)入本窗體’);end;procedureTFrm_Interface.N15Click(Sender:TObject);beginifAPopedom[9]=TruethenbeginApplication.CreateForm(TFrm_ManageUser,Frm_ManageUser);Frm_ManageUser.ShowModal;Frm_ManageUser.Free;endelseshowmessage,無權(quán)限進(jìn)入本窗體);end;procedureTFrm_Interface.N12Click(Sender:TObject);beginifAPopedom[7]=TruethenbeginApplication.CreateForm(TformTwo,formTwo);formTwo.ShowModal;formTwo.Free;endelseshowmessagef無權(quán)限進(jìn)入本窗體,);end;procedureTFrm_Interface.N5Click(Sender:TObject);beginifAPopedom[2]=TruethenbeginApplication.CreateForm(TformLiG,formLiG);formLiGShowModal;formLiGFree;endelseshowmessagef無權(quán)限進(jìn)入本窗體");end;procedureTFrm_Interface.N9Click(Sender:TObject);beginifAPopedom[5]=TruethenbeginApplication.CreateForm(TformLian,formLian);formLian.ShowModal;formLian.Free;endelseshowmessage('無權(quán)限進(jìn)入本窗體’);end;procedureTFrm_Interface.N17Click(Sender:TObject);beginApplication.CreateForm(TformShe,formShe);formShe.ShowModal;formShe.Free;end;procedureTFrm_Interface.FormCreate(Sender:TObject);beginFrm_Interface.Left:=210;Frm_Interface.Top:=l17;she_number:=10;timel:=90;end;end.〃***************************** イ.C64**********************〃unitUnit2;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ExtCtrls,jpeg.Buttons;typeTFrm_Enter=class(TForm)Image1:TImage;EditkTEdit;Edit2:TEdit;ComboBox1:TComboBox;SpeedButtonl:TSpeedButton;SpeedButton2:TSpeedButton;procedureFormShow(Sender:TObject);procedureFormCiose(Sender:TObject;varAction:TCloseAction);procedureComboBox1Change(Sender:TObject);procedureSpeedButton1Click(Sender:TObject);procedureSpeedButton2Click(Sender:TObject);procedureFormCreate(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varFrm_Enter:TFrm_Enter;ifclose:Integer=0;Distin:Integer=0;EClose:Integer=0;implementationusesUnit3,Unitl;{$R?.dfm}procedureTFrm_Enter.FormShow(Sender:TObject);beginEdit1.Clear;Edit2.Clear;ComboBox1.Text:=M;end;procedureTFrm_Enter.FormClose(Sender:TObject;varAction:TCloseAction);beginififclose=0thenApplication.Terminate;end;procedureTFrm_Enter.ComboBoxlChange(Sender:TObject);beginifComboBoxl.ItemIndex=OthenDistin:=1elseifComboBoxl.ltemlndex=lthenDistin:=2elseDistin:=3;end;procedureTFrm_Enter.SpeedButton1Click(Sender:TObject);varM,J,i:Integer;E:Boolean;pp:String;beginE:=True;M:=0;J:=0;withDataModulel.ADO_UserdobeginClose;SQL.Clear;SQLAdd(,select*fromtb_OddPopedom_UserwhereUser_Name二’+""+Trim(Editl.Text)+"");Open;end;ifDataModule1.ADO_User.RecordCount>0thenbeginwhileNotDataModule1.ADO_User.EofdobeginifDataModulel.ADO_User.FieldByName('User_Pass,).AsVariant=Trim(Edit2.Text)thenbeginifDataModulel.ADO_User.FieldByName('User_Distinction').AsVariant=DistinthenbeginJ:=1;endelsebeginshowmessageC級(jí)別錯(cuò)誤碼,請(qǐng)重新選擇’);ComboBox1.Text:=";ComboBoxl.SetFocus;E:=False;end;M:=1;break;end;DataModulel.ADO_User.Next;end;if(M=l)and(J=l)thenbeginifclose:=1;fori:=0to10dobeginpp:='PJ+IntToStr(i);Frm_Interface.APopedom[i]:=DataModule1.ADO_User.fieldbyname(pp).AsVariant;end;Frm_Interface.Pop_Name:=Trim(Editl.Text);self.Close;endelsebeginifMo1thenbeginshowmessage('密碼錯(cuò)誤,請(qǐng)重新添寫’);Edit2.Clear;Edit2.SetFocus;E:=False;end;end;endelsebeginshowmessage('用戶名錯(cuò)誤,請(qǐng)重新添寫’);Edit1.Clear;Edit2.Clear;Editl.SetFocus;E:=False;end;ifE=FalsethenEClose:=EClose+1;ifEClose>=3thenbeginshowmessageぐ登錄用戶已超出3次登錄次數(shù)?!?;SpeedButton2.OnClick(Sender);end;end;procedureTFrm_Enter.SpeedButton2C)ick(Sender:TObject);beginifclose:=0;self.Close;end;procedureTFrm_Enter.FormCreate(Sender:TObject);beginFrm_Enter.Left:=210;Frm_Enter.Top:=l17;end;end.〃*****************************—?級(jí)筆試窗體代碼**********************〃unitUnitl3;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,Grids,Mask,DBCtrls,StdCtrls,ExtCtrls;typeTFormErce=class(TForm)GroupBox3:TGroupBox;Panel5:TPanel;ComboBoxl:TComboBox;GroupBox2:TGroupBox;Memol:TMemo;Panel1:TPanel;panel2:TPanel;BtnPrior:TButton;BtnNext:TButton;Btnstart:TButton;Panel3:TPanel;BtnExit:TButton;GroupBox1:TGroupBox;StringGrid1:TStringGrid;GroupBox4:TGroupBox;Label1:TLabel;RadioGroupl:TRadioGroup;EditkTEdit;BtnJiao:TButton;TimerkTTimer;Label2:TLabel;Label3:TLabel;procedureBtnstartClick(Sender:TObject);procedureFormCreate(Sender:TObject);procedureBtnNextClick(Sender:TObject);procedureBtnPriorClick(Sender:TObject);procedureStringGrid1Click(Sender:TObject);procedureTimer1Timer(Sender:TObject);procedureMemo1Change(Sender:TObject);procedureBtnExitClick(Sender:TObject);procedureBtnJiaoClick(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varFormErce:TFormErce;tao_counts:integer;point:integer;start:integer;right_count:integer;implementationusesunit3,Unitl;{$R*.dfm)procedureTFormErce.BtnstartClick(Sender:TObject);varjcount:integer;beginifBtnstart.Caption二‘開始測試‘thenbeginifcombobox1.Items.Strings[combobox1.Itemlndex]="thenshowmessage('請(qǐng)選擇套數(shù)’)elsebegintimer1.Enabled:=true;DataModule1.ADOQuery.Close;DataModule1.ADOQuery.SQL.Clear;DataModulel.ADOQuery.SQL.Add(,select*from二級(jí)測試表where套數(shù)=:b);DataModule1.ADOQuery.Parameters.ParamByName(*b*).Vaiue:=combobox1.Items.Strings[combobox1.Itemindex];DataModule1.ADOQuery.Open;memo1.Text:二DataModule1.adoquery.fieldbyname('題目內(nèi)容’).AsString;tao_counts:二DataModule1.ADOQuery.RecordCount;start:二DataModulel.ADOQuery.fieldbyname('二級(jí)ー編號(hào)').Aslnteger;forjcount:二1totao_countsdostringgrid1.Cells[〇,jcount]:二inttostr(jcount);Btnstart.Caption:二'暫停測試’;BlnPrior.Enabled:二true;BtnNext.Enabled:二true;BtnJiao.Enabled:二true;BtnJiao.Enabled:=true;end;endelseifBtnstart.C叩tion二‘暫停測試'thenbeginBtnstart.Caption:二'繼續(xù)測試’;timerl.Enabled:=false;endelsebeginBlnslart.Caplion:=‘暫停測試’;timer1.Enabled:=true;end;end;procedureTFormErce.FormCreate(Sender:TObject);beginFormErce.Left:=210;FormErce.Top:=l17;BtnPrior.Enabled:=false;BtnNext.Enabled:=false;BtnJiao.Enabled:=false;BtnJiao.Enabled:=false;radiogroup1.Visible:=false;editl.Visible:=false;point:=l;right_count:=0;timer1.Tag:=(Frm_Interface.time1)*60;timerl.Enabled:=false;end;procedureTFormErce.BtnNextClick(Sender:TObject);varstringl,string2:string;beginif((point<=15)and(radiogroup1.ltemindex>=0)and(radiogroup1.Itemindex<=3))thenstring1:=radiogroupl.Items[radiogroup1.Itemindex]elsestring!:=";if((point>15)and(point<=20))thenstring1:=editl.Text;string2:=DataModulel.ADOQuery.Fields[4].AsString;stringgrid1.Cells[1,point]:=string1;ifstringlonthenbeginiftrim(string1)=trim(string2)thenbeginstringgrid1.Cells[2,point]:='?;right_count:=right_count+l;endelsestringgrid1.Cells[2,point]:='x';end;ifpoint<tao_countsthenpoint:=point+l;DataModule1.ADOQuery.Close;DataModule1.ADOQuery.SQL.Clear;DataModulel.ADOQuery.SQL.AddC'select*from二級(jí)測試表where二級(jí)ー編號(hào)二:a);DataModule1.ADOQuery.Parameters.ParamByName(,a').Value:=start+point-1;DataModulel.ADOQuery.Open;memol.Text:=DataModulel.ADOquery.fieldbyname('SS目內(nèi)容’).AsSlring;radiogroupl.ltemlndex:=-l;editl.Text:=";end;procedureTFormErce.BtnPriorClick(Sender:TObject);beginifpoint>lthenpoint:=point-l;DataModule1.ADOQuery.Close;DataModule1.ADOQuery.SQL.Clear;DataModulel.ADOQuery.SQL.Add('select*from二級(jí)測試表where二級(jí)ー編號(hào)=:a);DataModule1.ADOQuery.Parameters.ParamByName('a').Value:=start+point-1;DataModule1.ADOQuery.Open;memo1.Text:=DataModule1.ADOquery.fieldbyname(,§0目內(nèi)容’).AsString;radiogroupl.ltemlndex:="l;end;procedureTFormErce.StringGridlClick(Sender:TObject);beginDataModule1.ADOQuery.Close;DataModule1.ADOQuery.SQL.Clear;DataModulel.ADOQuery.SQL.Add('select*from二級(jí)測試表where二級(jí)ー編號(hào)=:a');DataModulel.ADOQuery.Parameters.ParamByName('a').Value:=start+stringgridl.Selection.Bottom-1;DataModule1.ADOQuery.Open;memo1.Text:二DataModulel.ADOquery.fieldbyname('題目內(nèi)容').AsString;point:=stringgrid1.Selection.Bottom;end;procedureTFormErce.Timer1Timer(Sender:TObject);varn,s:integer;min,sec:string;beginiftimerl.Tag>0thenbegins:=timerl.Tag-l;timerl.Tag:=s;n:=sdiv60;s:=smod60;ifn<10thenmin:='0'+inttostr(n)elsemin:=inttostr(n);ifs<10thensec:='0'+inttostr(s)elsesec:=inttostr(s);label2.Caption:二’剩余時(shí)間:'+min+T+secendelsebegintimer1.Enabled:=false;showmessage('時(shí)間到,請(qǐng)交卷!);BtnJiao.OnClick(sender);end;end;procedureTFormErce.Memo1Change(Sender:TObject);varpandan:string;beginpandan:二trim(DataModule1.ADOquery.fieldbyname('題型').AsString);ifpandan='選擇'thenbeginradiogroup1.Visible:=true;edit1.Visible:=false;label3.Caption:二'選擇題‘;end;ifpandan二'填空'thenbeginradiogroupl.Visible:=false;editl.Visible:=true;label3.Caption:二'填空題';end;end;procedureTFormErce.BtnExitClick(Sender:TObject);beginclose;end;

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論