- 相關(guān)推薦
delphi源代碼+可執(zhí)行文件+考試系統(tǒng)(一)
中文摘要
考試系統(tǒng)為學(xué)校教師舉行考試提供方便與快捷的條件與查詢手段,擁有與真實(shí)考試同樣的題目分值計(jì)算,自動(dòng)閱卷試題分析等功能.其開發(fā)內(nèi)容主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。利用DELPHI 6.0軟件及其提供的各種面向?qū)ο蟮拈_發(fā)工具,建立完整性強(qiáng)、安全性好的數(shù)據(jù)庫,開發(fā)出功能完備,易使用的應(yīng)用程序。經(jīng)過調(diào)試、編譯與實(shí)現(xiàn),該程序界面友好、程序設(shè)計(jì)風(fēng)格樸素,使用起來美觀大方、方便易用。尤其是系統(tǒng)的“自動(dòng)閱卷模塊”的功能極大的減輕工作人員的工作量,并以快速、準(zhǔn)確等優(yōu)點(diǎn)取代人工操作,提高了教師管理考試的工作效率。
關(guān)鍵詞 : DELPHI 6.0 信息管理系統(tǒng) 數(shù)據(jù)庫 模塊 考試系統(tǒng)
引 言 1
1 Delphi語言概述 2
1.1 Delphi簡介 2
1.2 數(shù)據(jù)庫系統(tǒng)簡介 2
1.3 本應(yīng)用軟件的基本介紹 3
2 本應(yīng)用程序的構(gòu)成和開發(fā)步驟 4
2.1 可行性研究 4
2.1.1 經(jīng)濟(jì)可行性 4
2.1.2 時(shí)間可行性 4
2.1.3 技術(shù)可行性 4
2.1.4 社會(huì)可行性 5
2.2 數(shù)據(jù)庫的建立和連接 5
2.3 系統(tǒng)的總體設(shè)計(jì) 5
3 本程序的技術(shù)實(shí)現(xiàn)及具體功能 13
3.1 登錄的界面與程序設(shè)計(jì)實(shí)現(xiàn) 13
3.2 得分界面與代碼設(shè)計(jì)實(shí)現(xiàn) 13
3.3 關(guān)于界面與代碼設(shè)計(jì)實(shí)現(xiàn)14,
3.4 考試題目界面與代碼設(shè)計(jì)15
3.5 考試系統(tǒng)主界面設(shè)計(jì)與代碼設(shè)計(jì) 16
結(jié) 論 21
致 謝 22
參 考 文 獻(xiàn) 23
引 言
隨著經(jīng)濟(jì)的發(fā)展,社會(huì)的進(jìn)步,計(jì)算機(jī)越來越深入到我們?nèi)粘5墓ぷ鲗W(xué)習(xí)及生活中,成為我們?nèi)粘I钪胁豢扇鄙俚妮o助工具。 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。它已經(jīng)深入到日常工作和生活的方方面面,比如文字處理、信息管理、輔助設(shè)計(jì)、圖形圖像處理、教育培訓(xùn)以及游戲娛樂等。各行各業(yè)的人們無須經(jīng)過特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了多如牛毛的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發(fā)適合自己特殊需求的軟件。以前開發(fā)Windows應(yīng)用軟件是專業(yè)人員的工作,需要掌握許多專業(yè)知識(shí)和經(jīng)過特殊的培訓(xùn)才能勝任,F(xiàn)在不同了,即使你沒有接受過嚴(yán)格的程序設(shè)計(jì)訓(xùn)練,使用Delphi編程語言也一樣能夠開發(fā)出功能強(qiáng)大、適合自己特殊需求的應(yīng)用程序了。Delphi編程語言繼承了其他語言易學(xué)易用的特點(diǎn),特別適合于初學(xué)者學(xué)習(xí)Windows系統(tǒng)編程。 考試系統(tǒng)用計(jì)算機(jī)管理學(xué)生考試活動(dòng)的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前學(xué)生考試都是由教師或工作人員人工管理,閱卷的方式來操作的.現(xiàn)在一般的學(xué)校管理都擁有實(shí)施計(jì)算機(jī)考試系統(tǒng)的硬件條件,完全可以采用采用計(jì)算機(jī)智能化管理,方便師生,提高教師工作效率,節(jié)省紙張的使用.符合我國的現(xiàn)代化發(fā)展方向,采用計(jì)算機(jī)作為工具的實(shí)用的計(jì)算機(jī)智能化管理程序來幫助前臺(tái)管理員進(jìn)行更有效的考試管理工作?荚囅到y(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。 經(jīng)過分析,我們使用 Delphi編程語言開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對象,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),直到形成用戶滿意的可行系統(tǒng)。
因?yàn)楸救四芰τ邢,加上時(shí)間緊迫,所以設(shè)計(jì)出來的本系統(tǒng)可能功能比較簡單,另外本系統(tǒng)是單機(jī)版,不能實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)操作,這些都有待于我在以后的工作學(xué)習(xí)中進(jìn)一步改進(jìn)。
Delphi簡介
1.1 Delphi簡介
Delphi是Inprise公司出品的一個(gè)優(yōu)秀的可視化程序開發(fā)工具軟件,它短小精悍,但功能卻可以與龐大的visual c++媲美。它易學(xué)易用,如同VB,因而被稱為“第四代編程語言”。
從1995年推出Delphi1.0至今已經(jīng)經(jīng)歷了7個(gè)版本,Delphi7.0運(yùn)行在win9x或winme,win2000,winxp,windowsNT等操作系統(tǒng)下,是一個(gè)32位的應(yīng)用程序開發(fā)工具。這里把“VB”比作是傻瓜相機(jī),Delphi是帶有自動(dòng)功能的專業(yè)相機(jī)。前些年,軟件界流行一句話叫“真正的程序員用VC,聰明的程序員用Delphi”。也有的把Delphi稱作VB殺手。
1.2 數(shù)據(jù)庫系統(tǒng)簡介
數(shù)據(jù)庫系統(tǒng)是一個(gè)實(shí)際可運(yùn)行的存儲(chǔ)、維護(hù)和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲(chǔ)介質(zhì)、處理對象和管理系統(tǒng)的集合體。它通常由軟件、數(shù)據(jù)庫和數(shù)據(jù)管理員組成。其軟件主要包括操作系統(tǒng)、各種宿主語言,實(shí)用程序以及數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫是依照某種數(shù)據(jù)模型組織起來并存放二級(jí)存儲(chǔ)器中的數(shù)據(jù)集合。這些數(shù)據(jù)為多個(gè)應(yīng)用服務(wù),獨(dú)立于具體的應(yīng)用程序。數(shù)據(jù)庫由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理,數(shù)據(jù)的插入、修改和檢索均要通過數(shù)據(jù)庫管理系統(tǒng)進(jìn)行。數(shù)據(jù)庫管理系統(tǒng)是一種系統(tǒng)軟件,它的主要功能是維護(hù)數(shù)據(jù)庫并有效地訪問數(shù)據(jù)庫中任意部分?jǐn)?shù)據(jù)。對數(shù)據(jù)庫的維護(hù)包括保持?jǐn)?shù)據(jù)的完整性、一致性和安全性。數(shù)據(jù)管理員負(fù)責(zé)創(chuàng)建、監(jiān)控和維護(hù)整個(gè)數(shù)據(jù)庫,使數(shù)據(jù)能被任何有權(quán)使用的人有效使用。數(shù)據(jù)庫管理員一般是由業(yè)務(wù)水平較高、資歷較深的人員擔(dān)任。
數(shù)據(jù)庫系統(tǒng)的個(gè)體含義是指一個(gè)具體的數(shù)據(jù)庫管理系統(tǒng)軟件和用它建立起來的數(shù)據(jù)庫;它的學(xué)科含義是指研究、開發(fā)、建立、維護(hù)和應(yīng)用數(shù)據(jù)庫系統(tǒng)所涉及的理論、方法、技術(shù)所構(gòu)成的學(xué)科。在這一含義下,數(shù)據(jù)庫系統(tǒng)是軟件研究領(lǐng)域的一個(gè)重要分支,常稱為數(shù)據(jù)庫領(lǐng)域。 數(shù)據(jù)庫研究跨越于計(jì)算機(jī)應(yīng)用、系統(tǒng)軟件和理論三個(gè)領(lǐng)域,其中應(yīng)用促進(jìn)新系統(tǒng)的研制開發(fā),新系統(tǒng)帶來新的理論研究,而理論研究又對前兩個(gè)領(lǐng)域起著指導(dǎo)作用。數(shù)據(jù)庫系統(tǒng)的出現(xiàn)是計(jì)算機(jī)應(yīng)用的一個(gè)里程碑,它使得計(jì)算機(jī)應(yīng)用從以科學(xué)計(jì)算為主轉(zhuǎn)向以數(shù)據(jù)處理為主,并從而使計(jì)算機(jī)得以在各行各業(yè)乃至家庭普遍使用。在它之前的文件系統(tǒng)雖然也能處理持久數(shù)據(jù),但是文件系統(tǒng)不提供對任意部分?jǐn)?shù)據(jù)的快速訪問,而這對數(shù)據(jù)量不斷增大的應(yīng)用來說是至關(guān)重要的。為了實(shí)現(xiàn)對任意部分?jǐn)?shù)據(jù)的快速訪問,就要研究許多優(yōu)化技術(shù)。這些優(yōu)化技術(shù)往往很復(fù)雜,是普通用戶難以實(shí)現(xiàn)的,所以就由系統(tǒng)軟件(數(shù)據(jù)庫管理系統(tǒng))來完成,而提供給用戶的是簡單易用的數(shù)據(jù)庫語言。由于對數(shù)據(jù)庫的操作都由數(shù)據(jù)庫管理系統(tǒng)完成,所以數(shù)據(jù)庫就可以獨(dú)立于具體的應(yīng)用程序而存在,從而數(shù)據(jù)庫又可以為多個(gè)用戶所共享。因此,數(shù)據(jù)的獨(dú)立性和共享性是數(shù)據(jù)庫系統(tǒng)的重要特征。數(shù)據(jù)共享節(jié)省了大量人力物力,為數(shù)據(jù)庫系統(tǒng)的廣泛應(yīng)用奠定了基礎(chǔ)。數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使得普通用戶能夠方便地將日常數(shù)據(jù)存入計(jì)算機(jī)并在需要的時(shí)候快速訪問它們,從而使的計(jì)算機(jī)走出科研機(jī)構(gòu)進(jìn)入各行各業(yè)、進(jìn)入家庭。
1.3 本應(yīng)用軟件的基本介紹
本應(yīng)用軟件先是打開一個(gè)啟動(dòng)窗口,就可以進(jìn)入應(yīng)用程序的主窗口了。主界面是一個(gè)圖型界面窗口,整個(gè)平臺(tái)顯示采用人性化方式,可以非常方便的進(jìn)行學(xué)生上機(jī)考試,自動(dòng)閱卷統(tǒng)計(jì)分?jǐn)?shù),等基本信息,管理日常經(jīng)營的基本情況,通過各種條件查詢出考試情況的基本信息,以及打印出查詢出的基本信息,總之一切學(xué)生考試基本信息都會(huì)顯示在系統(tǒng)平臺(tái)上,大大提高了管理人員的工作效率。
本應(yīng)用程序的構(gòu)成和開發(fā)步驟
下面從軟件工程的角度介紹本程序的基本開發(fā)步驟。Delphi 應(yīng)用程序一般包含以下三個(gè)基本部分: 應(yīng)用程序運(yùn)行的接口:負(fù)責(zé)系統(tǒng)整體環(huán)境的設(shè)置,運(yùn)行狀態(tài)的監(jiān)視,應(yīng)用程序的啟動(dòng)等。 應(yīng)用程序的主體:主要完成用戶的業(yè)務(wù)邏輯功能,如題庫的組建,題目的隨即抽取,自動(dòng)生成試卷,自動(dòng)閱卷統(tǒng)計(jì)分?jǐn)?shù)等等信息.
應(yīng)用程序的輔助部分:協(xié)助程序主體完成的一些工作。 下面從軟件工程的角度描述本程序的開發(fā)生命周期,開發(fā)過程和組織過程。
2.1 可行性研究
任何一個(gè)系統(tǒng)或一項(xiàng)工程,在建立之前,必須首選進(jìn)行可行性分析,可行性分析包括兩層含義,一是可能性,二是必要性?赡苄灾搁_發(fā)信息系統(tǒng)的條件是否具備,必要性是指客觀上是否真正需要,通過可行性研究,可避免盲目投資,減少政治性要的損失。下面從四方面來討論:
2.1.1 經(jīng)濟(jì)可行性
主要是只指算一個(gè)新的系統(tǒng)開發(fā)所需要的投資費(fèi)用和運(yùn)算費(fèi)用,并與估計(jì)的新系統(tǒng)收益進(jìn)行比較,看是否有利。本系統(tǒng)所需的軟硬件成本比較低,投資小,具有一定的通過性,因此 ,在經(jīng)濟(jì)上是可行的。
2.1.2 時(shí)間可行性
主要包括系統(tǒng)在目前環(huán)境下能否正常運(yùn)行,運(yùn)行后所引起的各方面,以及這些變化對社會(huì)或人的因素所產(chǎn)生的影響。本系統(tǒng)對人事的管理比較全面,可長期使用。
2.1.3 技術(shù)可行性
利用現(xiàn)有的設(shè)備,軟件及技術(shù)人員,新系統(tǒng)的目標(biāo)能否達(dá)到,這也是可行性研究中需要考慮的一個(gè)問題。關(guān)系型數(shù)據(jù)庫的高速發(fā)展使管理信息系統(tǒng)具備了良好的開發(fā)環(huán)境。本系統(tǒng)使用的Delphi 普及性好,操作簡單,用戶可以很快掌握使用方法,因此,在技術(shù)上是完全可行的。
2.1.4 社會(huì)可行性
人類社會(huì)文明的發(fā)展已進(jìn)入信息化的高速發(fā)展時(shí)期,傳統(tǒng)的手工方式支持下的管理模式,已經(jīng)不能滿足各方面的需要。開發(fā)本系統(tǒng)的目標(biāo)不僅是提高工作效率,減輕勞動(dòng)強(qiáng)度,而且減少出錯(cuò)率,具有很好的社會(huì)意義。
2.2 數(shù)據(jù)庫的建立和連接
這個(gè)程序采用的數(shù)據(jù)庫是Microsoft Access2000,Delphi作為數(shù)據(jù)庫的前臺(tái)開發(fā)工具,必須與后臺(tái)數(shù)據(jù)庫進(jìn)行連接,這樣才能控制和進(jìn)行操作數(shù)據(jù)庫,數(shù)據(jù)庫的連接方式有兩種,ODBC和ADO。
ODBC是數(shù)據(jù)庫的通用接口,其缺點(diǎn)是效率低;專用接口調(diào)用直接速度快,但是通用性差,如果用ODBC連接數(shù)據(jù)庫一般要兩個(gè)步驟:1.要?jiǎng)?chuàng)建數(shù)據(jù)源;2.創(chuàng)建描述文件。數(shù)據(jù)庫的建立則時(shí)在access2000中建立的,在這里你可以設(shè)置數(shù)據(jù)庫的密碼,對數(shù)據(jù)庫進(jìn)行保護(hù)。在創(chuàng)建數(shù)據(jù)源時(shí)可以通過BDE administrator進(jìn)行創(chuàng)建,也可以通過系統(tǒng)控制面板中的ODBC數(shù)據(jù)源進(jìn)行建立。而描述文件則可以在Delphi的主程序中用Database Profile中進(jìn)行建立,之后進(jìn)行數(shù)據(jù)庫的連接。接下來的工作是建表。同樣建表的過程也不是唯一的,但是最終實(shí)現(xiàn)的結(jié)果是唯一的。你可以通過Access進(jìn)行建表,也可以通過在 Visual Basic 主程序中建表,也可以通過powerdesigner進(jìn)行可視化的建立,不過用這種方法,在導(dǎo)入的時(shí)候要把數(shù)據(jù)庫要先斷開,否則數(shù)據(jù)庫的數(shù)據(jù)容易丟失。建表的過程注意規(guī)范化命名規(guī)則,如表的字段名等等。同時(shí)也要注意表的字段長度和可否為空。因?yàn)橐院笠O(shè)計(jì)到主鍵,外鍵的問題。如果字段名不同,同一字段長度不同則主鍵和外鍵將會(huì)連接不上?梢娊ū頃r(shí)應(yīng)做好全局的打算。我在程序開發(fā)的初期,同樣犯了這個(gè)錯(cuò)誤,導(dǎo)致數(shù)據(jù)庫出錯(cuò),有時(shí)還要向表中新加入字段。導(dǎo)致數(shù)據(jù)窗口不好用的連鎖反映。
2.3 系統(tǒng)的總體設(shè)計(jì)
這個(gè)管理系統(tǒng)從4月1日開始著手設(shè)計(jì)開發(fā),經(jīng)過一段時(shí)間的分析,并根據(jù)對教師考試管理的具體要求及需要本軟件實(shí)現(xiàn)的功能,將本軟件分為4個(gè)大的模塊,分別是:第一部分:設(shè)置姓名;第二部分:選擇考試題目;第三部分:設(shè)定考試時(shí)間; 第四部分:統(tǒng)計(jì)分?jǐn)?shù)。
程序流程圖如下:
3 本程序的技術(shù)實(shí)現(xiàn)及具體功能
登錄的界面與程序設(shè)計(jì)實(shí)現(xiàn)
代碼設(shè)計(jì):
unit kaoshi1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, DBTables, ComCtrls;
type
TKaoShi1Form = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Label2: TLabel;
ComboBox1: TComboBox;
Query1: TQuery;
Label3: TLabel;
shijian: TEdit;
UpDown1: TUpDown;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
KaoShi1Form: TKaoShi1Form;
implementation
uses Kaishi,KaoShi2;
{$R *.DFM}
procedure TKaoShi1Form.Button1Click(Sender: TObject);
begin
if trim(Edit1.text)='' then
begin
showmessage('請輸入姓名');
Edit1.SetFocus;
end
else
begin
if MessageDlg('真的要開始考試嗎?',mtConfirmation, [mbYes, mbNo], 0)
= mrYes then
begin
KaiShiform.renming:=Edit1.Text;
Application.CreateForm(TKaoshi2Form, Kaoshi2Form);
KaoShi2Form.Show;
KaoShi1Form.Release;
end
end;
end;
procedure TKaoShi1Form.FormCreate(Sender: TObject);
var i:byte;
begin
query1.DatabaseName:=kaishiform.AppPath;
Query1.SQL.Add('Select zu from 題庫.db group by zu');
Query1.open;
i:=1;
if query1.RecordCount>0 then
begin
while i<=query1.RecordCount do
begin
combobox1.Items.Add(Query1.fieldbyname('zu').asstring);
i:=i+1;
query1.RecNo:=i;
end;
combobox1.Text:=trim( combobox1.Items.Strings[0]);
end;
end;
end.
得分界面與代碼設(shè)計(jì)實(shí)現(xiàn)
unit Defen;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TDeFenForm = class(TForm)
Label1: TLabel;
Label2: TLabel;
renming: TListBox;
defen: TListBox;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DeFenForm: TDeFenForm;
implementation
uses kaishi;
{$R *.DFM}
procedure TDeFenForm.FormCreate(Sender: TObject);
begin
renming.Items.LoadFromFile(kaishiform.AppPath+'\rm.sav');
defen.Items.LoadFromFile(kaishiform.AppPath+'\df.sav');
end;
procedure TDeFenForm.Button1Click(Sender: TObject);
begin
renming.Items.Clear;
defen.Items.Clear;
renming.Items.SaveToFile(kaishiform.AppPath+'\rm.sav');
defen.Items.SaveToFile(kaishiform.AppPath+'\df.sav');
end;
end.
關(guān)于界面與代碼設(shè)計(jì)實(shí)現(xiàn)
代碼設(shè)計(jì):
unit GuanYu;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
type
TGuanYuForm = class(TForm)
Label1: TLabel;
Label3: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
GuanYuForm: TGuanYuForm;
implementation
{$R *.DFM}
end.
考試題目界面與代碼設(shè)計(jì)
代碼設(shè)計(jì):
unit kaoshi2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Db, DBTables, Buttons, DBCtrls, Mask;
type
TKaoshi2Form = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Timer1: TTimer;
Panel1: TPanel;
Panel2: TPanel;
GroupBox1: TGroupBox;
shijian: TLabel;
Label2: TLabel;
jiaojuanbt: TBitBtn;
Bianhao: TDBText;
Label1: TLabel;
Panel3: TPanel;
Panel4: TPanel;
Timu: TDBText;
Label5: TLabel;
Bevel1: TBevel;
Panel5: TPanel;
Panel6: TPanel;
Label4: TLabel;
DBNavigator1: TDBNavigator;
DBEdit1: TDBEdit;
Label3: TLabel;
DBText1: TDBText;
DBText2: TDBText;
DBText3: TDBText;
DBText4: TDBText;
Panel7: TPanel;
DBImage1: TDBImage;
BatchMove1: TBatchMove;
jiaojuan: TButton;
Label6: TLabel;
Panel8: TPanel;
DBText5: TDBText;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure jiaojuanbtClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure jiaojuanClick(Sender: TObject);
procedure Label4DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Kaoshi2Form: TKaoshi2Form;
implementation
uses kaishi,kaoshi1,Jieguo;
{$R *.DFM}
procedure TKaoshi2Form.Timer1Timer(Sender: TObject);
begin
shijian.Caption:=intTostr(strToint(shijian.Caption)-1);
IF StrToInt(shijian.Caption)=0 then
begin
if MessageDlg('時(shí)間已到,考試結(jié)束,請點(diǎn)[確定]查看分?jǐn)?shù)。',mtConfirmation, [mbOk], 0)
= mrOk then
begin
jiaojuan.OnClick(Sender);
end;
end;
end;
procedure TKaoshi2Form.FormCreate(Sender: TObject);
var ii,zongfen:byte;
begin
kaoshi2form.Caption:='第'+kaoshi1form.ComboBox1.Text+'組試題';
shijian.Caption:=kaoshi1form.shijian.Text;
ii:=1;
zongfen:=0;
Table1.DatabaseName:=kaishiform.AppPath;
Table1.TableName:='題庫1.DB';
table1.EmptyTable;
Table1.Open;
kaoshi1form.Query1.Close;
kaoshi1form.Query1.Sql.Clear;
kaoshi1form.Query1.sql.Add('Select * from 題庫.db where zu="'+kaoshi1form.ComboBox1.Text+'"');
kaoshi1form.Query1.Open;
batchMove1.Source:=kaoshi1form.Query1;
batchMove1.Destination:=Table1;
batchMove1.Execute;
table1.First;
While ii<=Table1.RecordCount do
begin
zongfen:=zongfen+table1.fieldbyname('fenshu').Asinteger;
Table1.Edit;
Table1.FieldByName('DaTi').AsString:='';
ii:=ii+1;
Table1.RecNo:=ii;
end;
kaishiform.jigefenshu:=Zongfen*0.6;
label6.Caption:='本套題共'+inttostr(zongfen)+'分,'+'及格分?jǐn)?shù)為'+floattostr(kaishiform.jigefenshu)+'分。';
Table1.First;
end;
procedure TKaoshi2Form.jiaojuanbtClick(Sender: TObject);
begin
if MessageDlg('交卷后不能再答題,真的要交卷嗎?',mtConfirmation, [mbYes, mbNo], 0)
= mrYes then
begin
jiaojuan.OnClick(Sender);
end
end;
procedure TKaoshi2Form.FormShow(Sender: TObject);
begin
DBEdit1.SetFocus;
end;
procedure TKaoshi2Form.jiaojuanClick(Sender: TObject);
var i:byte;
begin
i:=1;
Table1.First;
while i<=Table1.RecordCount do
begin
if (ansicomparetext(trim(Table1.FieldByName('DaAn').AsString),
trim(Table1.FieldByName('DaTi').AsString))=0) then //比較
kaishiform.FenShu:=kaishiform.FenShu+Table1.FieldByName('fenshu').AsInteger;//計(jì)算分?jǐn)?shù)
i:=i+1;
Table1.RecNo:=i;
end;
Application.CreateForm(TJieguoForm, JieguoForm);
JieGuoForm.show;
kaoshi2form.Release;
end;
procedure TKaoshi2Form.Label4DblClick(Sender: TObject);
begin
dbtext5.Visible:=not dbtext5.Visible;
end;
end.
考試系統(tǒng)主界面設(shè)計(jì)與代碼設(shè)計(jì)
代碼設(shè)計(jì):
unit KaiShi;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ToolWin, ComCtrls, StdCtrls;
type
TKaiShiForm = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
ToolBar1: TToolBar;
N4: TMenuItem;
procedure N3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
AppPath,RenMing:string;
FenShu:Byte;
jigefenshu:double;
{ Public declarations }
end;
var
KaiShiForm: TKaiShiForm;
implementation
uses defen,Guanyu;
{$R *.DFM}
procedure TKaiShiForm.N3Click(Sender: TObject);
begin
//Action:=caFree;
if MessageDlg('真的要退出嗎?',mtConfirmation, [mbYes, mbNo], 0)
= mrYes then
Close;
end;
procedure TKaiShiForm.FormCreate(Sender: TObject);
begin
AppPath:=ExtractFileDir(Application.ExeName);
FenShu:=0;//開始分?jǐn)?shù)為0分
end;
procedure TKaiShiForm.N4Click(Sender: TObject);
begin
if FileExists(AppPath+'\df.sav') then
begin
Application.CreateForm(TDefenForm, DefenForm);
DefenForm.show;
end
end;
procedure TKaiShiForm.N2Click(Sender: TObject);
begin
Application.CreateForm(TGuanYuForm, GuanYuForm);
GuanYuForm.show;
end;
end.
總 結(jié)
考試系統(tǒng)是一個(gè)典型的信息管理系統(tǒng),其主要通過軟件工程方面的選擇課題、需求分析、總體設(shè)計(jì)、選用工具、程序模塊、系統(tǒng)測試等幾個(gè)步驟來實(shí)現(xiàn)。開發(fā)本系統(tǒng)的過程中,首先要對學(xué)?荚嚨牧鞒踢M(jìn)行系統(tǒng)調(diào)研,熟悉其中的試題設(shè)計(jì)、題庫組建的流程、步驟;其次在系統(tǒng)需求分析過程中,要透過現(xiàn)象看本質(zhì),敏銳觀察到考試管理中存在的各種問題,并在總體設(shè)計(jì)把握好對問題的分析、理解,進(jìn)而解決問題;選用開發(fā)工具要選用自己最熟悉、應(yīng)用較多的開發(fā)工具,本系統(tǒng)開發(fā)選用DELPHI 6.0,其具有語言簡單、功能強(qiáng)大、組件眾多的優(yōu)點(diǎn)。程序模塊的編制中,重點(diǎn)把握系統(tǒng)內(nèi)部完整性、功能性、實(shí)用性、便捷性,使其能夠協(xié)調(diào)統(tǒng)一、運(yùn)行無誤。
致 謝
我首先感謝我的指導(dǎo)老師呂老師,在他嚴(yán)格的要求下我懂得了開發(fā)軟件要有一種極其認(rèn)真負(fù)責(zé)的態(tài)度。無論做什么事都要大膽的去想去做,這樣會(huì)有好的創(chuàng)意,才能更有作為。
在這里我還要感謝我們宿舍的其它5個(gè)同學(xué)。他們和我共同生活了四年,在生活和學(xué)習(xí)上給了我很大的幫助。
參 考 文 獻(xiàn)
1 張春林.Delphi 6程序設(shè)計(jì)導(dǎo)學(xué).北京:清華大學(xué)出版社,2002.5
2 飛思科技. Delphi6開發(fā)者手冊. 北京:電子工業(yè)出版社,2002.3
3 飛思科技. Delphi6數(shù)據(jù)庫開發(fā). 北京:電子工業(yè)出版社, 2002.1
4 丁寶康.數(shù)據(jù)庫原理. 北京:經(jīng)濟(jì)科學(xué)出版社,2004.1
5 何旭洪.Delphi 6.0數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例導(dǎo)航.北京:人民郵電出版社, 2002.4
6周璋鵬. 基于B/S結(jié)構(gòu)的學(xué)生信息管理系統(tǒng)垢研究與開發(fā).西北電力技術(shù).2003,31(4):15~17,26
7 李全彬, 顧明亮. 基于ASP技術(shù)的學(xué)生信息管理系統(tǒng)的研究與開發(fā). 徐州師范大學(xué)學(xué)報(bào)(自然科學(xué)版).2001,19(2):25~28
8 谷軍.用Authorware開發(fā)學(xué)生信息管理系統(tǒng).計(jì)算機(jī)與與現(xiàn)代化.2003(7):40~41,44
9李丹榮,杜維.基于Delphi6.0的實(shí)時(shí)數(shù)據(jù)采集與分析系統(tǒng) 機(jī)電工程.2003,20(5): 64~67
【delphi源代碼+可執(zhí)行文件+考試系統(tǒng)(一)】相關(guān)文章:
delphi+access網(wǎng)絡(luò)考試系統(tǒng)[開題報(bào)告+論文+源代碼+答辯ppt+03-07
delphi題庫系統(tǒng)(一)03-07
文件自動(dòng)分類系統(tǒng)Delphi03-08
基于Delphi的試卷智能生成系統(tǒng)設(shè)計(jì)Delphi+SQL11-23
C語言上機(jī)考試系統(tǒng)Delphi7+Access11-23
排課系統(tǒng)的實(shí)現(xiàn)Delphi+SQL11-23
家庭理財(cái)系統(tǒng)Delphi+SQL11-23
計(jì)算機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)Delphi03-08