已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 本文配套程序下載地址 : 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ()-大學(xué)生畢業(yè)設(shè)計(jì)站 ,免費(fèi)畢業(yè)設(shè)計(jì)論文 ,無(wú)憂無(wú)慮畢設(shè)網(wǎng) 大學(xué)生畢業(yè)設(shè)計(jì) ,出售各類(lèi)畢業(yè)設(shè)計(jì)源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費(fèi)視頻教程 ,我們將竭誠(chéng)為您服務(wù)! 摘 要 一般情況教師想出一份試卷,要么到龐大的題庫(kù)里一道一道的把題找出來(lái),或是從幾本相關(guān)的書(shū)里把題一道一道挑出來(lái)。這樣即費(fèi)時(shí)又費(fèi)力,而且很難保證試題的覆蓋面和把握好試卷的難度。正是為了能夠幫助教師輕松的出一份高質(zhì)量的試卷而開(kāi)發(fā)了本軟件。為了達(dá)到預(yù)期的目標(biāo)我們最終選擇了 Microsoft Office Word 做為本軟件的終端輸出。本軟件是在對(duì)現(xiàn)有控件的改進(jìn)和 VBA 編程的研究的基礎(chǔ)上開(kāi)發(fā)的。本軟件實(shí)現(xiàn)了以下主要功能: 1.手動(dòng)生成試卷; 2.自動(dòng)生成試卷; 3.抽取現(xiàn)有試卷; 4.用戶(hù)管理; 5.數(shù)據(jù)庫(kù)管理。大量的測(cè)試表明本軟件在 Windows 98 me 2000 XP 平臺(tái)配合 Office XP 2003 的環(huán)境下程序運(yùn)行穩(wěn)定且各項(xiàng)功能運(yùn)行得都很正確,基本達(dá)到了預(yù)期的要求! 結(jié)論:經(jīng)過(guò)老師的實(shí)際試用本軟件在界面上和功能上都有獨(dú)到之處!相信完全可以勝任出一份好的試卷任務(wù)。 關(guān)鍵詞:題庫(kù)系統(tǒng),試卷生成,數(shù)據(jù)庫(kù), VBA 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: Abstract The general situation teacher thinks out a paper, reach huge exam pool each finds out the question, or shoulder the question together out from several relevant books. Time-consuming and also strenuous like this, and very difficult to guarantee coverage rate and paper degree of difficulty of examination question. Helping the teacher thinks out a higt quality paper is the destination of develop this Software. In the cause of this we select the terminal is Microsoft Office Word. This Software s base of develop is improve on control in existence and study the VBA programing. These functions of this software are as follows: One. Manual create paper; Two. Auto create paper; Three. Select from existential papers; Four. User manage; Five. Database manage. The result of many test is that this software is runing steady and these funtions of it is runing right in the environment which make up of Windows 98 me 2000 XP and Office XP 2003, it is basic reach the requests. In all: the result of real test by teacher is that this software are unique in interface and function. We must believe it can complete creating a high quality paper. Key Words: Exam, Problem pool, VBA, word 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 目 錄 摘 要 .1 Abstract .2 前 言 .1 1 . 簡(jiǎn)述 .2 1.1 開(kāi)發(fā)工具簡(jiǎn)介 .2 1.1.1 Delphi 7.0的特點(diǎn) .2 1.1.2 主要的控件及其屬性簡(jiǎn)介 .2 1.1.3 數(shù)據(jù)庫(kù)連接方式選擇 .3 1.2 程序運(yùn)行環(huán)境 .4 2 . 需求分析 .5 2.1 負(fù)責(zé)的功能模塊 .5 2.2 軟件功能分析 .5 3 . 設(shè)計(jì)階段 .8 3.1 概要設(shè)計(jì) .8 3.1.1 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) .8 3.2 詳 細(xì)設(shè)計(jì) . 12 3.2.1 程序流程圖 . 12 3.2.2 窗體功能簡(jiǎn)介 . 14 4 . 軟件實(shí)現(xiàn) . 21 4.1 OOP簡(jiǎn)介 . 21 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 4.2 開(kāi)發(fā)的關(guān)鍵技術(shù) . 21 5 . 軟件測(cè)試及其維護(hù) . 25 5.1 系統(tǒng)測(cè)試平臺(tái)簡(jiǎn)介 . 25 5.2 測(cè)試方法 . 25 5.3 系統(tǒng)維護(hù) . 26 6 . 開(kāi)發(fā)總結(jié) . 27 參 考 文 獻(xiàn) . 28 致 謝 . 29 譯 文 . 30 原 文 . 34 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 1 前 言 在開(kāi)發(fā)本軟件之前,正是我努力提高自己的 Delphi 開(kāi)發(fā)水平的時(shí)期。因此我選擇了 Delphi 做為我的開(kāi)發(fā)工具,然而這次開(kāi)發(fā)的軟件和以前不一樣。最主要的區(qū)別在于這個(gè)軟件要以 Microsoft Office Word 做為試卷的終端輸出。而它們又是兩個(gè)不同公司的產(chǎn)品。因而,剛一開(kāi)始我特別擔(dān)心這個(gè)技術(shù)能否得到比較圓滿(mǎn)的解決。在開(kāi)發(fā)的過(guò)程中我不斷的對(duì) VBA 技術(shù)進(jìn)行研究,并且將它應(yīng)用于這次的軟件開(kāi)發(fā)中。因而比較好的解決了 Microsoft Office Word 的接口編程問(wèn)題。還有一個(gè)比較棘手的問(wèn)題就是 Delphi 提供的控件都是很基本的,而這次開(kāi)發(fā)中要用到一個(gè)可以標(biāo)記選中狀態(tài)的樹(shù)型控件,在對(duì) Delphi 的 TtreeView 的深入研究后確認(rèn)它不能勝任這個(gè)任務(wù)。因此,我開(kāi)始尋找第三方控件,然而這一次我很失望因?yàn)橹徽业搅艘粋€(gè) 2000 年編寫(xiě)的TCheckTree 控件,沒(méi)辦法了,最后下定決心修改那個(gè) TCheckTree 控件以使它能更加穩(wěn)定和實(shí)用。在深入研究 Windows 的消息機(jī)制和 VCL 框架對(duì) Windows 消息機(jī)制的封裝技術(shù)后我成功的修改了那個(gè) TCheckTree 控件。在程序開(kāi)發(fā)的后期測(cè)試中,我充分利用各個(gè)同學(xué)電腦平臺(tái)的多樣性。把本軟件在多達(dá) 4 種操作系統(tǒng)和 3 個(gè)不同版本的Office 上進(jìn)行測(cè)試。測(cè)試表明:在 Windows 98 me 2000 XP 平臺(tái)配合 Office XP 2003 下程序運(yùn)行穩(wěn)定且各項(xiàng)功能運(yùn)行得都很正確! 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 2 1 . 簡(jiǎn)述 1.1 開(kāi)發(fā)工具簡(jiǎn)介 1.1.1 Delphi 7.0的特點(diǎn) Delphi 是 Borland 公司出品的開(kāi)發(fā)工具,在眾多的開(kāi)發(fā)工具中,我們?yōu)槭裁匆x擇 Delphi呢?因?yàn)?Delphi具有眾多其它開(kāi)發(fā)工具所沒(méi)有的優(yōu)點(diǎn)!具體介紹如下: 開(kāi)發(fā)的高效 語(yǔ)言的高效 編譯的高效 執(zhí)行的高效 維護(hù)的高效 基于以上理由,我們毫不憂郁的選擇了 Delphi做為我們的開(kāi)發(fā)工具! 1.1.2 主要的控件及其屬性簡(jiǎn)介 TForm類(lèi)的控件: 1) BorderIcons屬性:用來(lái)控制程序標(biāo)題按鈕的可用性。 2) BorderStyle屬性:用來(lái)控制程序邊框的樣式。 3) Color屬性:用來(lái)控制程序界面的顏色。 4) Font屬性:用來(lái)控制程序界面的字體。 5) Position屬性:用來(lái)控制程序運(yùn)行時(shí)界面的顯示位置。 TADOConnection類(lèi)的控件: 1) ConnectionString屬性:用來(lái)控制鏈接 字符串。 2) LoginPrompt屬性:用來(lái)控制鏈接時(shí)是否要輸入密碼。 3) Connected屬性:用來(lái)控制是否進(jìn)行鏈接。 TADOQuery類(lèi)的控件: 1) Connection 屬性:用來(lái)指定和哪個(gè) TADOConnection 控件相連。 2) SQL屬性:用來(lái)添加向數(shù)據(jù)庫(kù)提交的 SQL語(yǔ)句。 3) Add方法:用來(lái)向 SQL屬性添加 SQL語(yǔ)句。 4) Open方法:用來(lái)執(zhí)行 SQL語(yǔ)言中的 Select語(yǔ)句。 5) ExecSQL方法:用來(lái)執(zhí)行任何 SQL語(yǔ)句。 6) FieldByName屬性:用來(lái)給數(shù)據(jù)庫(kù)的字段賦值。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 3 7) FidldValues屬性:用來(lái)取 出數(shù)據(jù)庫(kù)的字段的。 8) Append方法:用來(lái)向數(shù)據(jù)庫(kù)添加一條記錄。 9) Edit方法:用來(lái)編輯當(dāng)前的記錄。 10) Post:用來(lái)向數(shù)據(jù)庫(kù)提交所做的修改。 TADOTable類(lèi)的控件: 1) Connection 屬性:用來(lái)指定和哪個(gè) TADOConnection 控件相連。 2) Open方法:用來(lái)打開(kāi)數(shù)據(jù)庫(kù)中指定的表。 3) FieldByName屬性:用來(lái)給數(shù)據(jù)庫(kù)的字段賦值。 4) FidldValues屬性:用來(lái)取出數(shù)據(jù)庫(kù)的字段的。 5) Append方法:用來(lái)向數(shù)據(jù)庫(kù)添加一條記錄。 6) Edit方法:用來(lái)編輯當(dāng)前的記錄。 7) Post:用來(lái)向數(shù)據(jù)庫(kù)提交所 做的修改。 TDataSource類(lèi)的控件: 1) DataSet:用來(lái)指定和哪個(gè)數(shù)據(jù)集相連。 TDBGrid類(lèi)的控件: 1) DataSource:用來(lái)指定和哪個(gè) TDataSource控件相連。 TPageControl類(lèi)的控件: 1) ActivePage屬性:用來(lái)指定當(dāng)前活動(dòng)的 Page頁(yè)。 TCheckTree類(lèi)的控件: 1) ReadOnly屬性:用來(lái)控制 TCheckTree內(nèi)的 Item是否可編輯。 2) Item屬性:用來(lái)控制 TCheckTree包含的所有樹(shù)形結(jié)點(diǎn)。 3) Images屬性:用來(lái)指點(diǎn) TCheckTree中結(jié)點(diǎn)的圖標(biāo)。 4) OnMouseUp事件:用來(lái)添加鼠標(biāo)放開(kāi)事件所執(zhí)行的程序代碼。 5) OnStateChange事件:用來(lái)添加結(jié)點(diǎn)狀態(tài)改變時(shí)的程序代碼。 TFlatButton類(lèi)的控件: 1) Caption屬性:用來(lái)指定 TFlatButton的標(biāo)題。 OnClick事件:用來(lái)添加按鈕的單擊事件所執(zhí)行的程序代碼。 1.1.3 數(shù)據(jù)庫(kù)連接方式選擇 Delphi 連接數(shù)據(jù)庫(kù)的主要方式有兩種:一是: BDE ,二是 ADO ?,F(xiàn)在我們來(lái)大致比較一下這兩種技術(shù)的優(yōu)缺點(diǎn): 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 4 BDE( Borland Database Engine)是 Delphi 頗具特色的數(shù)據(jù)庫(kù)連 接管理技術(shù)。憑借窗體和報(bào)表, BDE 可以訪問(wèn)諸如 Paradox,dBASE,本地 InterBase 服務(wù)器的數(shù)據(jù)庫(kù),也可訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)庫(kù),如 Oracle,SyBase,Informix 等 C S 數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù),也可訪問(wèn)經(jīng) ODBC可訪問(wèn)的數(shù)據(jù)庫(kù)管理系統(tǒng)中的數(shù)據(jù)庫(kù)。 ADO(ActiveX Data Objects)是微軟提供的一項(xiàng)技術(shù)。通過(guò) ADO,可以方便的訪問(wèn)各種類(lèi)型的數(shù)據(jù)庫(kù),特別是 OLEDB 數(shù)據(jù)庫(kù)。 ADO 已成為訪問(wèn)數(shù)據(jù)庫(kù)的新的標(biāo)準(zhǔn)接口。從 Delphi 6.0 開(kāi)始 Delphi 添加了對(duì) ADO 的支持, 以便讓用戶(hù)能迅速實(shí)現(xiàn)對(duì)終端用戶(hù)用來(lái)做商業(yè)決策的數(shù)據(jù)庫(kù)的一致性訪問(wèn),結(jié)合 Delphi 本身的開(kāi)發(fā)式數(shù)據(jù)組件結(jié)構(gòu),程序員可以很快地建立應(yīng)用程序,用來(lái)把自己的商業(yè)數(shù)據(jù)庫(kù)通過(guò) Internet 發(fā)送給客戶(hù),最終用戶(hù)以及整個(gè)銷(xiāo)售環(huán)節(jié)。通過(guò) ADO, Delphi 7.0 也能讓用戶(hù)快速訪問(wèn)關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)以及 E-Mail和商務(wù)文件系統(tǒng)。 這兩者提供了幾乎相同的功能,在進(jìn)行產(chǎn)品開(kāi)發(fā)時(shí),勢(shì)必要做一個(gè)精心的比較。雖然 ADO 技術(shù)提出的時(shí)間不長(zhǎng),并被定位為工業(yè)標(biāo)準(zhǔn)的,而且其在性能上由于當(dāng)前沒(méi)有良好的數(shù)據(jù)庫(kù)引擎支持,其性能還不夠完美,但是 ,我們應(yīng)該要注意到 Borland 公司已經(jīng)宣布停止發(fā)展 BDE 了,其性能被 ADO 超越也是遲早的事,因此,在開(kāi)發(fā)長(zhǎng)期應(yīng)用的產(chǎn)品時(shí),推薦采用 ADO 技術(shù)。這樣還有另一個(gè)好處是,在進(jìn)行產(chǎn)品分發(fā)時(shí),可以避開(kāi)大量 BDE的鏈接庫(kù) DLL的分發(fā)。 基于以上原因我們選擇了 ADO做為我們的數(shù)據(jù)庫(kù)訪問(wèn)組件。 1.2 程序運(yùn)行環(huán)境 操作系統(tǒng): Windows 2000 Windows XP 辦公軟件: Office XP Office 2003 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 5 2 . 需求分析 2.1 負(fù)責(zé)的功能模塊 設(shè)計(jì)試題生成功能,試題能分布整個(gè)教學(xué)內(nèi)容 設(shè)計(jì)試 題的難易程度分析功能 具有試題的答案生成功能 數(shù)據(jù)庫(kù)設(shè)計(jì)及維護(hù) 程序的其它選項(xiàng)設(shè)置 2.2 軟件功能分析 根據(jù)我負(fù)責(zé)的功能模塊,主要是在試卷的生成上。 1要顯示書(shū)本章節(jié)信息以供用戶(hù)使用。而在數(shù)據(jù)庫(kù)里章節(jié)的存放是沒(méi)有規(guī)則也即它們的順序不一定按照真實(shí)書(shū)本的章節(jié)順序來(lái)存儲(chǔ)的。但是在顯示章節(jié)信息的時(shí)候必須按照書(shū)本的章節(jié)順序來(lái)顯示。所以特別設(shè)置如下的數(shù)據(jù)類(lèi)型: type ZJ=record ZJID:double; ZJName:string; end; 在這里 ZJID是設(shè)置成 double 的類(lèi)型與相 對(duì)應(yīng)的是數(shù)據(jù)庫(kù)里表 ZhangJie 里的 ZJ字段此字段的類(lèi)型為文本弄的。故在添加此數(shù)據(jù)庫(kù)結(jié)構(gòu)的時(shí)候要把文本型轉(zhuǎn)化為double 的類(lèi)型。而 ZJName 對(duì)應(yīng)的是數(shù)據(jù)庫(kù)里表 ZhangJie 里的 ZJName 它們?yōu)橥环N數(shù)據(jù)類(lèi)型。再由于數(shù)據(jù)庫(kù)里章節(jié)的數(shù)量是不定的,故此種數(shù)據(jù)類(lèi)型的變量必須是一種長(zhǎng)度可變的類(lèi)型才行,所以我們選擇了 Delphi里的動(dòng)態(tài)數(shù)組類(lèi)型。變量定義如下 : Var TempZJ:ZJ; HaveZJ:array of ZJ; 接下來(lái)的問(wèn)題就是把這個(gè)變量記錄的數(shù)據(jù)按一定順序顯示到 TCheckTree 的 控件里了。由于章節(jié)的數(shù)量還是比較多的,所以我選擇了“改進(jìn)的選擇排序”,具體的排序華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 6 算法代碼實(shí)現(xiàn)如下: for i:=0 to High(HaveZJ) do /對(duì)章節(jié)號(hào)進(jìn)行排序 begin k:=i; for j:=i+1 to MaxNum do if HaveZJk.ZJIDHaveZJj.ZJID then k:=j; if ik then begin TempZJ.ZJID:=HaveZJi.ZJID; TempZJ.ZJName:=HaveZJi.ZJName; HaveZJi.ZJID:=HaveZJk.ZJID; HaveZJi.ZJName:=HaveZJk.ZJName; HaveZJk.ZJID:=TempZJ.ZJID; HaveZJk.ZJName:=TempZJ.ZJName; end; end; 2手動(dòng)生 成試卷時(shí)要不斷的將用戶(hù)選擇的題目臨時(shí)存儲(chǔ)起來(lái),由于記錄一道題所包含的信息不是很多,再因?yàn)檫@些信息一會(huì)兒還要在“保存答案”里使用,所以我設(shè)置了 4個(gè) TStringList的全局變量,定義如下: var STTypeID,STBH,STND:TStringList; 每選一道題保存時(shí)的算法代碼如下: 首先保證要添加入的試題與現(xiàn)有的試題不能重復(fù)。 LX:=ST_DBG.Fields1.AsInteger; BH:=ST_DBG.Fields0.AsInteger; for i:=0 to STTypeID.Count-1 do begin if (StrToInt(STTypeID.Stringsi)=LX)and(StrToInt(STBH.Stringsi)=BH) then begin MessageBox(handle,要加入的試題已經(jīng)存在了! ,加入錯(cuò)誤 ,MB_OK or MB_ICONERROR); 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 7 exit; end; end; 如果不重復(fù)的話則把試題添加進(jìn)來(lái)! STTypeID.Add(IntToStr(LX); /記下試題類(lèi)型 STBH.Add(IntToStr(BH); /記下試題編號(hào) STND.Add(ST_DBG.Fields4.AsString); /記下試題難度 3在自動(dòng)生成試卷里最主要的一點(diǎn)就是如何生成一個(gè)覆蓋知道點(diǎn)廣且試題不重復(fù)的試卷。其中的關(guān)鍵算法在于如何生成一個(gè)不重復(fù)的隨機(jī)數(shù)序列。在 Delphi 里隨機(jī)數(shù)的產(chǎn)生函數(shù)是 Random,然而如果用這個(gè)函數(shù)來(lái)生成一定范圍內(nèi)的隨機(jī)數(shù)重復(fù)的機(jī)率太大了。其中變量定義如下: var XTH:array of integer; /存放隨機(jī)選題號(hào) 以下是產(chǎn)生不重復(fù)隨機(jī)數(shù)的算法: num:=MaxBH-MinBH+1; if num0 then /開(kāi)始初始化 begin SetLength(XTH,num); for i:=0 to num-1 do XTHi:=MinBH+i; /給動(dòng)態(tài)數(shù)組設(shè)初值 Randomize; /初始化隨機(jī)數(shù)生成器 for i:=0 to num-1 do begin j:=random(num); temp:=XTHi; XTHi:=XTHj; XTHj:=temp; end; end; 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 8 3 . 設(shè)計(jì)階段 3.1 概要設(shè)計(jì) 3.1.1 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 根據(jù)任務(wù)書(shū)的規(guī)定,現(xiàn)設(shè)計(jì)如下的數(shù)據(jù)庫(kù)表 格: 表:用戶(hù)表 (YH) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 姓名 UserName 文本 20 是 密碼 Password 文本 18 組 GroupID 數(shù)字 長(zhǎng)整型 權(quán)限 QXID 數(shù)字 長(zhǎng)整型 表:題型 (Type) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 編號(hào) TypeID 自動(dòng)編號(hào) 是 名稱(chēng) TypeName 文本 20 分值 FZ 數(shù)字 長(zhǎng)整型 表:難易度 (NYD) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 編號(hào) BH 自動(dòng)編號(hào) 是 難易度 NYD 文本 表:用戶(hù)組 (UserGroup) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 編號(hào) GroupID 自動(dòng)編號(hào) 是 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 9 組名 GroupName 文本 20 表:選擇題 (XuanZeTi) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 題號(hào) TH 自動(dòng)編號(hào) 是 題型 TypeID 數(shù)字 長(zhǎng)整型 題目 TM 備注 選項(xiàng) A A 文本 255 選項(xiàng) B B 文本 255 選項(xiàng) C C 文本 255 選項(xiàng) D D 文本 255 正確答案 DA 文本 難易度 NY 數(shù)字 長(zhǎng)整型 出自章節(jié) CZ 文本 50 表:填空題 (TianKong) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 題號(hào) BH 自動(dòng)編號(hào) 是 題型 TypeID 數(shù)字 長(zhǎng)整型 題目 TM 備注 空 1 K1 文本 100 空 2 K2 文本 100 空 3 K3 文本 100 空 4 K4 文本 100 空 5 K5 文本 100 應(yīng)填數(shù) YTS 數(shù)字 長(zhǎng)整型 難易度 NY 數(shù)字 長(zhǎng)整 型 出自章節(jié) CZ 文本 50 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 10 表:簡(jiǎn)答題 (JianDaTi) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 題號(hào) BH 自動(dòng)編號(hào) 是 題型 TypeID 數(shù)字 長(zhǎng)整型 題目 TM 備注 答案 DA 備注 難易度 NY 數(shù)字 長(zhǎng)整型 出自章節(jié) CZ 文本 50 表 8:原理論述題 (YuanLiLunShu) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 題號(hào) BH 自動(dòng)編號(hào) 是 題型 TypeID 數(shù)字 長(zhǎng)整型 題目 TM 備注 答 案 DA 備注 難易度 NY 數(shù)字 長(zhǎng)整型 出自章節(jié) CZ 文本 50 表 9:系統(tǒng)設(shè)計(jì)題 (XiTongSheJi) 字段中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 題號(hào) BH 自動(dòng)編號(hào) 是 題型 TypeID 數(shù)字 長(zhǎng)整型 題目 TM 備注 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 11 表格 BG 文本 100 答案 DA 備注 難易度 NY 數(shù)字 長(zhǎng)整型 出自章節(jié) CZ 文本 50 答案表格 DABG 文本 50 題目表格 TMBG 文本 50 表 10:系統(tǒng)操作題 (XiTongCZ) 字段 中文名 字段英文名 字段類(lèi)型 字段長(zhǎng)度 主鍵 題號(hào) BH 自動(dòng)編號(hào) 是 題型 TypeID 數(shù)字 長(zhǎng)整型 題目 TM 備注 難易度 NY 數(shù)字 長(zhǎng)整型 出自章節(jié) CZ 文本 50 題目表格 TMBG 文本 50 問(wèn) 1答案 W1DA 文本 255 問(wèn) 1答案表格 W1DABG 文本 50 問(wèn) 2答案 W2DA 文本 255 問(wèn) 2答案表格 W2DABG 文本 50 問(wèn) 3答案 W3DA 文本 255 問(wèn) 3答案表格 W3DABG 文本 50 問(wèn) 4答案 W4DA 文本 255 問(wèn) 4答案表格 W4DABG 文本 50 問(wèn) 5答案 W5DA 文本 255 問(wèn) 5答案表格 W5DABG 文本 50 問(wèn)題數(shù) WTS 數(shù)字 長(zhǎng)整型 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 12 3.2 詳細(xì)設(shè)計(jì) 3.2.1 程序流程圖 1 抽取現(xiàn)有試卷的流程圖: 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 13 2 自動(dòng)生成試卷的流程圖 : 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 14 3 下圖是手動(dòng)生成試卷的流程圖: 3.2.2 窗體功能簡(jiǎn)介 下圖軟件的登陸界面 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 15 在這里輸入用戶(hù)名及密碼就可以進(jìn)行入軟件的主界面了! 下圖是軟件的主界面: 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 16 在以上的軟件主界面的左邊是各個(gè)功能模塊的調(diào) 用接口! 如: 抽取現(xiàn)有試卷:點(diǎn)擊后進(jìn)入抽取現(xiàn)有試卷的功能界面。 自動(dòng)生成試卷:點(diǎn)擊后進(jìn)入自動(dòng)生成試卷的功能界面。 手動(dòng)生成試卷:點(diǎn)擊后進(jìn)入手動(dòng)生成試卷。 題庫(kù)錄入:在這里可以往數(shù)據(jù)庫(kù)里添加試題。 題庫(kù)維護(hù):在這里可以對(duì)數(shù)據(jù)庫(kù)里已有試題進(jìn)行維護(hù)。 選項(xiàng)設(shè)置:在這里可以對(duì)軟件的其它選項(xiàng)進(jìn)行設(shè)置。 軟件的右上角有“幫助”和“關(guān)于”按鈕!在這里可以得到軟件的使用幫助,和有關(guān)此軟件的一些開(kāi)發(fā)信息! 下圖是自動(dòng)生成試卷的界面: 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 17 上圖中標(biāo)為“第一部分”的樹(shù)形控件是用來(lái)設(shè)置要生成的試卷的試題的抽取范圍。 上 圖中標(biāo)為“第二部分”的是用來(lái)設(shè)置各種題型的量及其分?jǐn)?shù)。 上圖中標(biāo)為“第三部分”的是功能按鈕,其中“生成試卷”用來(lái)根據(jù)“第二部分”的設(shè)置自動(dòng)生成一份試卷?!邦A(yù)覽試卷”是用來(lái)預(yù)覽剛生成的試卷?!霸嚲泶鸢浮笔怯脕?lái)查看剛生成的試卷的答案?!氨4嬖嚲怼笔怯脕?lái)保存剛生成的試卷的信息。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 18 下圖是手動(dòng)生成試卷的界面圖: 上圖中標(biāo)為“第一部分”的樹(shù)形控件是用來(lái)設(shè)置要生成的試卷的試題的抽取范圍。 上圖中標(biāo)為“第二部分”的是用來(lái)設(shè)置各種題型的量及其分?jǐn)?shù)。 上圖中標(biāo)為“第三部分”的是用來(lái)設(shè)置試卷的部分。 上圖中標(biāo)為“第五 部分”的是用來(lái)選擇要加入試卷的試題。 上圖中標(biāo)為“第四部分”的是功能按鈕,其中“加入試卷”用來(lái)把在“第五部分”的選擇試題加入到要生成的試卷中?!氨4嬖嚲怼笔怯脕?lái)保存剛生成的試卷的信息。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 19 下圖是用戶(hù)管理的界面: 上圖中標(biāo)為“第一部分”顯示當(dāng)前系統(tǒng)已有的用戶(hù)。 上圖中標(biāo)為“第二部分”選擇要進(jìn)行的操作。 上圖中標(biāo)為“第三部分”設(shè)置相應(yīng)的信息。 上圖中標(biāo)為“第四部分”??梢詣h除用戶(hù)或是提交對(duì)用戶(hù)信息的修改。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 20 下圖是數(shù)據(jù)庫(kù)功能模塊的界面: 上圖中標(biāo)為“第一部分”可以改變數(shù)據(jù)庫(kù)的存放路徑 。 上圖中標(biāo)為“第二部分”選擇要進(jìn)行的操作。 上圖中標(biāo)為“第三部分”選擇還原的時(shí)間點(diǎn)或是執(zhí)行備份操作。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 21 4 . 軟件實(shí)現(xiàn) 4.1 OOP簡(jiǎn)介 每一個(gè)軟件開(kāi)發(fā)人員都會(huì)經(jīng)常聽(tīng)到,看到“面向?qū)ο蟆边@個(gè)詞,程序員也時(shí)常把它掛在嘴上。那么什么還是真正的“面向?qū)ο蟆??什么是面向?qū)ο蟮木幊??是不是?xiě)幾個(gè)類(lèi)就算面向?qū)ο罅??為什么要面向?qū)ο螅?“面向?qū)ο笫且环N思維方式,一種方法論!” “結(jié)構(gòu)化編程”( SP)是一種編程方法,是從計(jì)算機(jī)的視角來(lái)抽象問(wèn)題的方法。而“面向?qū)ο缶幊獭保?OOP)也是一種編程方法,只不過(guò)它是從更接近真實(shí)世界 的視角來(lái)分析問(wèn)題,使用更接近人們理解真實(shí)世界的方法來(lái)抽象問(wèn)題,這種方法稱(chēng)為“面向?qū)ο蟆保?OO)! “面向?qū)ο蟆边@個(gè)詞代表的是一種認(rèn)識(shí)世界,分析問(wèn)題,解決問(wèn)題的方法,因此它是一種方法論。而面向?qū)ο缶幊虅t是將這種方法應(yīng)用于程序設(shè)計(jì)的方法。當(dāng)你會(huì)使用面向?qū)ο蟮姆椒ㄈニ伎?,用面向?qū)ο蟮哪J街Х治龊徒鉀Q問(wèn)題的時(shí)候,才是真正的“面向?qū)ο蟆绷耍?“面向?qū)ο蟆弊钪饕奶匦杂腥齻€(gè): 繼承性。 Delphi提供大量的可被二次開(kāi)發(fā)的類(lèi)。每個(gè)類(lèi)都可被繼承。 封裝性。 Delphi的封裝性主要由類(lèi)的私有域和保護(hù)域來(lái)實(shí)現(xiàn)的。 多態(tài)性。 Delphi的多太性主要是通過(guò)虛擬方法和動(dòng)態(tài)方法來(lái)實(shí)現(xiàn)的。 4.2 開(kāi)發(fā)的關(guān)鍵技術(shù) 1 VBA編程技術(shù) Visual Basic for Applications(簡(jiǎn)稱(chēng) VBA)是新一代標(biāo)準(zhǔn)宏語(yǔ)言。在沒(méi)有 VBA 以前,一些應(yīng)用軟件如 Excel, Word, Access 等都采用自己的宏語(yǔ)言供用戶(hù)開(kāi)發(fā)使用,但每一種宏語(yǔ)言都是相互獨(dú)立的并且它們之間是互不兼容的。這導(dǎo)致了應(yīng)用軟件之間不能在程序上互聯(lián)。找到一種可被所有的 Microsoft 可編程應(yīng)用軟件所共享的通用宏語(yǔ)言是 Microsoft 公司長(zhǎng)期追求的目標(biāo)。 VBA 作 為新一代的標(biāo)準(zhǔn)宏語(yǔ)言具有了跨越多種 OFFICE 應(yīng)用軟件并且控制應(yīng)用軟件對(duì)象的能力。 Delphi里封裝的三個(gè)主要交互控件:TWordApplication,TWordDocument,TwordFont. 本程序的主要實(shí)現(xiàn)技術(shù)如下: 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 22 const BF_Name:array1.10 of String=(一、 ,二、 ,三、 ,四、 ,五、 ,六、 ,七、 , 八、 ,九、 ,十、 ); JG:String= ; var ItemIndex:OleVariant; NewDocument:_Document; FZ,TL,BF,STH,i,WTS,YTS:integer; temp,AppPath,BGName:string; procedure SetFont(aBold,aItalic,aShadow,aSize:integer); begin SJ_WF.ConnectTo(SJ_WD.Sentences.Get_Last.Font); SJ_WF.Name:=宋體 ; SJ_WF.Bold := aBold; SJ_WF.Italic := aItalic; SJ_WF.Shadow := aShadow; SJ_WF.Size := aSize; end; begin AppPath:=ExtractFilePath(Application.ExeName); /取得本程序的路徑 /顯示進(jìn)度窗口 RateProcess_F.Show; RateProcess_F.CZ_P.Caption:=正在鏈接 Microsoft Office Word.; RateProcess_F.Rate_Gauge.MaxValue:=SJT_ADOQ.RecordCount+25; RateProcess_F.Repaint; /重繪窗口 ,否則顯示不出新設(shè)置的控件屬性 try SJ_WA.Connect; except MessageBox(handle,無(wú)法連接,也許沒(méi)有安裝 Word,連接出錯(cuò) , MB_Ok or MB_ICONERROR); RateProcess_F.Close; Abort; end; RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+10; 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 23 /SJ_WA.Visible := False; /SJ_WA.Caption := 題庫(kù)系統(tǒng)與試卷生成 ; /建立一個(gè)新文檔 NewDocument:=SJ_WA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam); RateProcess_F.CZ_P.Caption:=正在新建 Microsoft Office Word 文檔 .; RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; RateProcess_F.Repaint; /建立 WordDocument連接 , 用第二種方法不容易出錯(cuò) /SJ_WD.ConnectTo(SJ_WA.Documents.Item(ItemIndex); SJ_WD.ConnectTo(NewDocument); SJ_WD.Windows.Item(ItemIndex).Caption:=數(shù)據(jù)庫(kù)原理與應(yīng)用期末試卷 ; /此文檔的第一個(gè)窗口的標(biāo)題 RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; RateProcess_F.Repaint; /因?yàn)?Word進(jìn)行拼寫(xiě)檢查需要很多時(shí)間,所以首先關(guān)閉檢查 SJ_WA.Options.CheckSpellingAsYouType := False; SJ_WA.Options.CheckGrammarAsYouType := False; /設(shè)置 Word的字體 SetFont(1,0,0,22); /設(shè)置段落對(duì)齊方式 SJ_WD.Range.InsertAfter(數(shù)據(jù)庫(kù)原理與應(yīng)用期末試卷 +#13); RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; RateProcess_F.Repaint; /SJ_WA.Documents.Item(ItemIndex).Paragraphs.Alignment:=wdAlignParagraphLeft; SJ_WD.Range.InsertAfter(學(xué)校 _ 班級(jí) _ 姓名 _ 得分 _ +#13); SetFont(0,0,0,14); 2 TCheckTree控件的修改。 由于 Delphi自帶的 TTreeView里并沒(méi)有復(fù)選框的功能。因此,必須重新設(shè)計(jì)控件。 在設(shè)計(jì)時(shí)因 TTreeView里有一個(gè) StateIndex和 StateImages,而縱觀 TTreeView的代華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 24 碼可以知道它只是發(fā)布了一下 TCustomTreeView定義并實(shí)現(xiàn)好的屬性和方法而已。因此我們也選擇 TCustomTreeView為 TCheckTree控件的祖先類(lèi)。 重要的實(shí)現(xiàn)技術(shù)為: procedure TCheckTree.WMPaint( var Msg: TWMPaint ); var I: Integer; begin for I := 0 to Items.Count - 1 do begin if not(Items I .StateIndex in Ord(csUnknown).Ord(csPartiallyChecked) then Items I .StateIndex := Ord(csUnchecked) /這里我修改了 end; inherited; end; function TCheckTree.GetItemState( Node:TTreeNode ): TCheckCheckState; begin Result := TCheckCheckState( Node.StateIndex ); end; procedure TCheckTree.SetItemState( Node:TTreeNode; Value: TCheckCheckState ); begin if TCheckCheckState( Node.StateIndex ) Value then ChangeNodeCheckState( Node, Value ); end; procedure TCheckTree.StateChange( Node: TTreeNode; NewState: TCheckCheckState ); begin if Assigned( FOnStateChange ) then FOnStateChange( Self, Node, NewState ); end; 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 25 5 . 軟件測(cè)試及其維護(hù) 5.1 系統(tǒng)測(cè)試平臺(tái)簡(jiǎn)介 硬件平臺(tái) CPU Intel P4 1.5G 主板 Intel 850芯片組的 GA-8TX-C 內(nèi)存 2 128M的三星 Rambus內(nèi)存 硬盤(pán) Seagate Barracuda 7200.7 80G 顯卡 Unika 小妖 G9800 顯示器 美格 770PF, 17寸純平顯示器 軟件環(huán)境 操作系統(tǒng) Microsoft WindowsXP簡(jiǎn)體中文專(zhuān)業(yè)版 SP1 辦公軟件 Microsoft Office 2003 顯卡驅(qū)動(dòng) nVIDIA ForceWare驅(qū)動(dòng) 56.72版 For Win2000/XP 5.2 測(cè)試方法 測(cè)試在軟件開(kāi)發(fā)過(guò)程中一直都是備受關(guān)注的,即使在傳統(tǒng)的軟件工程中,也有一個(gè)明確、獨(dú)立的測(cè)試 階段。隨著軟件危機(jī)的頻頻出現(xiàn)以及人們對(duì)于軟件本質(zhì)的進(jìn)一步認(rèn)識(shí),測(cè)試的地位得到了前所未有的提高。測(cè)試已經(jīng)不僅僅局限于軟件開(kāi)發(fā)中的一個(gè)階段,它已經(jīng)開(kāi)始貫穿于整個(gè)軟件開(kāi)發(fā)過(guò)程,人們已經(jīng)開(kāi)始認(rèn)識(shí)到:測(cè)試開(kāi)始的時(shí)間越早,測(cè)試執(zhí)行的越頻繁,所帶來(lái)的整個(gè)軟件開(kāi)發(fā)成本的下降就會(huì)越多。 Extreme Programming 更是把測(cè)試推到了極限的位置,一切軟件開(kāi)發(fā)活動(dòng)都要從首先編寫(xiě)測(cè)試代碼開(kāi)始。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 26 為了使本軟件運(yùn)行更加穩(wěn)定,我對(duì)它進(jìn)行了全面的測(cè)試,測(cè)試分為二部分來(lái)進(jìn)行,一是:界面測(cè)試;二是功能測(cè)試。 首先是界面測(cè)試,為了使軟件在 不同的的操作系統(tǒng)平臺(tái)上運(yùn)行界面能保持原來(lái)的風(fēng)格。我的開(kāi)發(fā)平臺(tái)如上介紹。我把完整程序拷貝到我同學(xué)的機(jī)子,同學(xué)機(jī)子的相關(guān)配置如下: Windows2000 15 寸顯示器;程序運(yùn)行界面正常,但由于我同學(xué)的顯示器是 15 寸的顯示的范圍比較小外,界面上的字體等設(shè)置都保持得相當(dāng)好。沒(méi)有出現(xiàn)類(lèi)似字體變形的情況!第二個(gè)平臺(tái): Windows Me +17 顯示器,測(cè)試結(jié)果:字體有些不正常了。后來(lái)在網(wǎng)查找了很多相關(guān)的資料,得出這是由于 Window Me 或 Windows 98 和我的開(kāi)發(fā)平臺(tái)的操作系統(tǒng) Window XP 的字體集不一樣造成 的。解決方案是:把軟件的字體設(shè)置成:宋體 9 號(hào),字符集使用: CHINASE_GB2312。至此軟件的界面測(cè)試順利完成。 二是進(jìn)行功能的測(cè)試。我的功能模塊主要是試卷生成。而試卷生成后都是輸出到Microsoft Office Word 里。而 Office 的版本又那么的多,因此,我一直很擔(dān)心在不同的 Office 平臺(tái)下軟件會(huì)有不同的運(yùn)行結(jié)果!實(shí)際測(cè)試結(jié)果如下:在 Windows 2000 Microsoft Office 2000 的平臺(tái)下,試卷功能里的預(yù)覽功能不能用了。界面停留在“正在鏈接 Microsoft Office Word .”這里,一看就知道沒(méi)有辦法和Microsoft Office Word 鏈接了。換平臺(tái)測(cè)試,這回是在 Windows 2000 Office XP,程序正常運(yùn)行了包括試卷預(yù)覽等功能都正常運(yùn)行。再換平臺(tái): Windows XP+Office 2003 程序同樣完全正常運(yùn)行,由此可以總結(jié)出在低于 Office XP 的平臺(tái)下程序無(wú)法和辦公軟件交互。本來(lái)我想把程序換成能支持 Office 2000 的,可后來(lái)一想 Office 2000 距離現(xiàn)在已經(jīng)有 4 年之久了。支持了它反而支持不了最新的 Office 平 臺(tái),所以決定讓程序運(yùn)行在 Office XP 或是 Office 2003 平臺(tái)上。至此到這里在功能的測(cè)試上也已經(jīng)比較圓滿(mǎn)的完成了! 5.3 系統(tǒng)維護(hù) 由于在開(kāi)發(fā)本程序的時(shí)候我就特別注意軟件的后續(xù)維護(hù)和再開(kāi)發(fā)上。因此極努力的想把它開(kāi)發(fā)成一個(gè) 強(qiáng)內(nèi)聚、弱耦合、接口明確、意圖明晰的軟件 。對(duì)于程序里的功能我盡力把它們封裝在類(lèi)的私有過(guò)程或私有函數(shù)里,這樣可以大大提高軟件的內(nèi)聚性,在各個(gè)功能模塊和窗體之間盡可能減少它們之間的調(diào)用關(guān)系,以減少軟件的耦合性。在軟件設(shè)計(jì)初期我就預(yù)留了接口用于調(diào)用另一個(gè)同學(xué)的模塊。為了保證兩人開(kāi)發(fā)出的功能 模塊能在最后能順利地聯(lián)合。在一開(kāi)始我就預(yù)先編了一個(gè)公共的“數(shù)據(jù)模華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 27 塊”以提高軟件連接數(shù)據(jù)庫(kù)能高效共享。并且給他規(guī)定一些如控件的命名規(guī)則,代碼的規(guī)范等。這些都大大提高了軟件后續(xù)的可維護(hù)性。 6 . 開(kāi)發(fā)總結(jié) 本軟件的設(shè)計(jì)目的是在題庫(kù)建立管理維護(hù)和試卷生成方面為教學(xué)單位和人員提供方便和幫助。通過(guò)這幾個(gè)月的畢業(yè)設(shè)計(jì),我學(xué)到很多以前沒(méi)有學(xué)到的 Delphi 開(kāi)發(fā)技術(shù),在軟件工程學(xué)上更是取得了很大的進(jìn)步。經(jīng)過(guò)大量的測(cè)試和試用,作者深信本軟件達(dá)到了方便和實(shí)用的設(shè)計(jì)目的,并在軟件界面和易用實(shí)用等方面有著獨(dú)到之處。 雖然軟件基本達(dá) 到設(shè)計(jì)要求并且達(dá)到同行的先進(jìn)水平,但由于作者水平有限,軟件存在 bug 也是在所難免的 ,您的意見(jiàn)和建議將極大的幫助我改進(jìn)并完善軟件。真誠(chéng)的希望你的參與。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 28 參 考 文 獻(xiàn) 1 陳明 . 軟件工程學(xué)教程 .科技出版社, 2002 2 薩師煊,王珊 . 數(shù)據(jù)庫(kù)系統(tǒng)概論 . 第三版 . 高等教育出版社, 2000 3 飛思科技產(chǎn)品研發(fā)中心 . Delphi7數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā) .電子工業(yè)出版社, 2003 4 飛思科技產(chǎn)品研發(fā)中心 . Delphi6開(kāi)發(fā)者手冊(cè) . 電子工業(yè)出版社 , 2002 5 申 旻 . Delphi 高手突破 . 清華大學(xué)出版社, 2002, 302 6 Steve Teixeira, Xaviver Pacheco 著,龍勁松,王瑜,謝尚書(shū)譯 . Delphi6 開(kāi)發(fā)人員指南 . 機(jī)械工業(yè)出版社 .2003 7 喬林 .參透 Delphi Kylix . 中國(guó)鐵道出版社 .2003 8 李維 .Inside 深入核心 VCL 架構(gòu)剖析 . 電子工業(yè)出版社 .2004 9 張立科編寫(xiě)組 .Windows API 函數(shù)參考手冊(cè) .人民郵電出版社 .2002 嚴(yán)蔚敏,吳偉民 .數(shù)據(jù)結(jié)構(gòu) .第二版 .清華大學(xué)出版社 .2001 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 29 致 謝 我首先感謝我的指導(dǎo)老師韓老師,在她嚴(yán)格的要求下我懂得了開(kāi)發(fā)軟件要有一種極其認(rèn)真負(fù)責(zé)的態(tài)度。無(wú)論做什么事都要大膽的去想去做,這樣會(huì)有好的創(chuàng)意,才能更有作為。特別是在大三的時(shí)候能在韓老師的指導(dǎo)參與“ 山西晉能電力有限公司 ”的大型軟件“電力管理系統(tǒng)”的開(kāi)發(fā),在那里我學(xué)到了很多在課堂里學(xué)不到的軟件設(shè)計(jì)思想。使我的軟件開(kāi)發(fā)水平提高了一個(gè)層次。 大學(xué)就要畢業(yè)了,在這里我還要特別感謝我的班主任張軍老師。在這四年的大學(xué)生活里,他給了我很多幫助。和他在一起我學(xué)到了很多 做人的道理。這些將會(huì)是我將來(lái)生活的寶貴經(jīng)驗(yàn)。 在這里我還要感謝我們宿舍的其它 7個(gè)同學(xué)。他們和我共同生活了四年,在生活和學(xué)習(xí)上給了我很大的幫助。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 30 譯 文 切換電路的連接設(shè)置的結(jié)果是保留了從發(fā)送端到接收端的包所通過(guò)的線路帶寬。其它的特性這一就是所有的包都沿同一個(gè)線路意味著如果包傳輸超過(guò)了時(shí)序那它將不能到達(dá)接收端 .由于沒(méi)有路徑用來(lái)進(jìn)行包交換,所以要想不同的包沿不同的路徑傳送就是能依靠網(wǎng)絡(luò)的條件了。這樣包即便是超過(guò)了時(shí)序它們也有可能到達(dá)的。 包交換技術(shù)比線路交換技術(shù)更能容錯(cuò)。事實(shí)上,這也是它被發(fā)明的理由 !當(dāng)一個(gè)交換開(kāi)頭被拉下,則所有使用它的線路將被切斷并且其余的包將不能再被傳送。此時(shí)如果在進(jìn)行包交換,包將在已選擇的路徑上停止交換。 預(yù)先建立一條路徑也開(kāi)創(chuàng)預(yù)先保留帶寬的可能性。 如果帶寬被保留,那么當(dāng)一個(gè)包到達(dá)時(shí), 通過(guò) 保留的帶寬 它可以被立即發(fā)送出去。假如沒(méi)有帶寬被保留用于包交換,那么所有的包將不得不等待著被轉(zhuǎn)發(fā)。 預(yù)先保留帶寬意味著當(dāng)一個(gè)包出現(xiàn)時(shí) 不會(huì)發(fā)生 擁塞 (除非 出現(xiàn)的包比預(yù)期的還多 )。 在另一方面 ,當(dāng)嘗試建立一條 電 路時(shí) , 由于擁塞 , 嘗試 將會(huì) 失敗 。因此,在線路交換 (在設(shè)置時(shí) )和包交換 (在包發(fā)送時(shí) )的不同時(shí)間擁塞都 可能發(fā)生。 如果為特定的用戶(hù)建立一條線路那么當(dāng)這個(gè)用戶(hù)沒(méi)有數(shù)據(jù)傳送時(shí),則這些保留下來(lái)的帶寬將被浪費(fèi)而不能用于其它用戶(hù)的傳輸。而包交換則不會(huì)浪費(fèi)帶寬,因此它在系統(tǒng)寬帶方面的應(yīng)用更有前景。理解電路交換和包交換的這種商業(yè)差別是極其重要的。這種商業(yè)差別是在質(zhì)保服務(wù)和浪費(fèi)資源相對(duì)不質(zhì)保服務(wù)和不浪費(fèi)資源的。 包交換是利用存儲(chǔ)器并向前發(fā)送的。包是先存儲(chǔ)在路由器的內(nèi)存里然后再發(fā)送到下一個(gè)路由器的。和電路交換一樣信息位也是連續(xù)不斷地通過(guò)導(dǎo)線傳輸?shù)?。存?chǔ)轉(zhuǎn)發(fā)技術(shù)增加了延遲時(shí)間。 另一個(gè)不同是電路交換是完全透明的。發(fā)送者和接收者 可以使用他們想要的任一比特速率,格式和幀同步 .這通信公司不知道也不關(guān)心這的。而在包交換中載體決定了基本的參數(shù)的。用一個(gè)簡(jiǎn)單比喻它們就像一個(gè)是公路一個(gè)是鐵路。在以前,用戶(hù)決定介質(zhì)的大小,速度和特性。而后來(lái)這些都由通信公司做了的。這些都是透明的它允許聲音,數(shù)據(jù)和傳真共同存在于電話系統(tǒng)里。 電路交換和包交換的最后一個(gè)不同點(diǎn)是計(jì)費(fèi)方式。電路交換的計(jì)費(fèi)是按照傳統(tǒng)的距離和時(shí)間的。比如移動(dòng)電話除打國(guó)際電話外距離是不列入計(jì)算的,而時(shí)間也只是列入一個(gè)簡(jiǎn)單的計(jì)算 (例 :拔打 2000 分鐘電話比 1000 分鐘電話花費(fèi)的多并且晚上或周末也比平時(shí)來(lái)得便宜 )。時(shí)間對(duì)于包交換來(lái)說(shuō)是沒(méi)有問(wèn)題的,但是傳輸流量卻是個(gè)問(wèn)華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 31 題。 ISPs 為家庭用戶(hù)的計(jì)費(fèi)方式基于按一個(gè)月的流量的一半的,這是因?yàn)樗鼈冇玫孟鄬?duì)較少并且他們的顧客也很好理解這種計(jì)費(fèi)方式。但是主干網(wǎng)絡(luò)中心的收費(fèi)是基于它們的流量的。這些不同列在圖 2-40里。 項(xiàng)目 電路交換 包交換 呼叫設(shè)置 需要 不需要 專(zhuān)用物理線路 是 否 每個(gè)包沿相同路徑 是 否 包的到達(dá)中有規(guī)則的 是 否 是否會(huì)致命的崩潰 是 否 帶寬利用 固定 動(dòng)態(tài)分配 可能的時(shí)間堵塞 在設(shè)置時(shí) 在每個(gè)包時(shí) 可能浪費(fèi)帶寬 是 否 以存儲(chǔ)轉(zhuǎn)發(fā)進(jìn)行發(fā)送 否 是 透明性 是 否 收費(fèi) 按分鐘 按包 圖 2 40:比較電路交換網(wǎng)絡(luò)和包交換網(wǎng)絡(luò)的不同 電路交換和包交換是兩者都是非常重要的,我們將立即在詳細(xì)的資料里提及并描述它們之間各種不同的技術(shù)。 2.6 移動(dòng)電話系統(tǒng) 傳統(tǒng)的電話的系統(tǒng)將不能滿(mǎn)足用戶(hù)的大量增長(zhǎng)(即有一天實(shí)現(xiàn)了終端到終端的光纖連接)。人類(lèi)在進(jìn)步,人們期望能在飛機(jī)上,汽車(chē)?yán)?,船上,足球?chǎng)甚至在公園里跑步的時(shí)候也能打電話。在近幾年人們更是期望能在更多的地方發(fā)電子郵件和上網(wǎng)沖浪。因此有很多的人關(guān)心無(wú)線電話技術(shù)。在 下面的章節(jié)我們將用詳細(xì)的資料來(lái)學(xué)習(xí)這些主題。 無(wú)線電話可以分為基本的兩種:無(wú)繩電話和移動(dòng)電話(有時(shí)也叫蜂窩電話)。無(wú)繩電話設(shè)備是由痤機(jī)和聽(tīng)筒組成它們被安裝在用戶(hù)的家里。它們從不被應(yīng)用于網(wǎng)絡(luò),所以我們沒(méi)有辦法做進(jìn)一步的檢測(cè)。取而代之,我們將把焦點(diǎn)放在在聲音和數(shù)據(jù)通信上有廣泛應(yīng)用的移動(dòng)系統(tǒng)上。 移動(dòng)電話經(jīng)歷了三個(gè)不同的發(fā)展階段,每個(gè)階段都有不同的技術(shù): 1 模擬聲音 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 32 2 數(shù)字聲音 3 數(shù)字聲音和數(shù)據(jù)(互聯(lián)網(wǎng),電子郵件, etc.) 雖然我們主要討論這系統(tǒng)技術(shù),但是我們也有必要注意政府和市場(chǎng)對(duì)它的巨大影響。第一 個(gè)移動(dòng)電話系統(tǒng)是在美國(guó)由受美國(guó)國(guó)家聯(lián)邦通訊委員會(huì) (FCC)委托的美國(guó)電話電報(bào)公司 (AT&T)設(shè)計(jì)的。結(jié)果在整個(gè)美國(guó)就有了一個(gè)簡(jiǎn)單的 (模擬 )系統(tǒng)并且移動(dòng)電話開(kāi)始在加利福尼亞上市同時(shí)也在紐約得到應(yīng)用。相反的,當(dāng)移動(dòng)電話來(lái)到歐洲時(shí),由于每個(gè)國(guó)家都設(shè)計(jì)了自己的系統(tǒng),所以結(jié)局很慘敗。 當(dāng)數(shù)字技術(shù)到來(lái)時(shí),歐洲從前面的失敗中吸收教訓(xùn),政府和郵政制定了簡(jiǎn)單系統(tǒng)(GSM)的統(tǒng)一標(biāo)準(zhǔn),因此移動(dòng)電話在歐洲的任何一個(gè)地方都是通用的。此時(shí),美國(guó)政府決定不把標(biāo)準(zhǔn)商業(yè)化因而它失去了數(shù)字市場(chǎng)。這個(gè)決定導(dǎo)致不同的設(shè)備生產(chǎn)商生產(chǎn)出不同的移動(dòng)電 話。結(jié)果現(xiàn)在美國(guó)有兩不可兼容的數(shù)字移動(dòng)電話在使用 (加強(qiáng)了一家就會(huì)削弱另一家 )。 即使美國(guó)擁有移動(dòng)電話的所有權(quán),但是在應(yīng)用上歐洲要遠(yuǎn)遠(yuǎn)超過(guò)美國(guó)的。原因之一就是整個(gè)歐洲擁有相同的簡(jiǎn)單系統(tǒng)。然而更多的是由于美國(guó)和歐洲的基本電話數(shù)量不同。在美國(guó)移動(dòng)電話和固定電話是共用的,因此對(duì)于用戶(hù)沒(méi)有辦法區(qū)分 (212)234-5678 到底是固定電話 (撥打是便宜的或者是免費(fèi)的 )還是移動(dòng)電話 (撥打是昂貴的 )。為了使人們從使用電話中獲益,電話公司決定為引入呼叫而花自己的錢(qián)制造移動(dòng)電話。結(jié)果導(dǎo)致,很多人怕由于呼叫而收到一大筆帳單而不愿意 買(mǎi)移動(dòng)電話。在歐洲移動(dòng)電話有特殊的區(qū)號(hào) (如 800,900 之類(lèi)的數(shù)字 ),所以它很快就得到了認(rèn)可。因而在一般的“叫方付費(fèi)”的原則在歐洲也被應(yīng)用于移動(dòng)電話了 (除國(guó)際電話分開(kāi)收費(fèi)外 )。 在歐洲采用頒布廣泛的已經(jīng)付費(fèi)的移動(dòng)電話的影響巨大 (超過(guò)同地區(qū)的 75%)。移動(dòng)電話可以在很多的商店里購(gòu)買(mǎi)而不像購(gòu)買(mǎi)收音機(jī)那樣需要很多手續(xù)。誰(shuí)付費(fèi)誰(shuí)使用,他們預(yù)先存入,比如 20 或 50 euro 并且在快用完的時(shí)候可以用 PIN 碼進(jìn)行再充值。結(jié)果在歐洲幾乎所有的青年和小孩都有一個(gè) (預(yù)付費(fèi)的 )移動(dòng)電話,這樣他們的父母就可以準(zhǔn)確的定位他們而不用去 擔(dān)心孩子們會(huì)用掉一大筆帳的。如果僅在偶而使用移動(dòng)電話,那么它的使用是基本免費(fèi)的因?yàn)檫@里有月租或者預(yù)先支付呼叫。 2.6.1 第一代移動(dòng)電話:模擬聲音 移動(dòng)電話充分體現(xiàn)了政治和市場(chǎng)的特征。讓我們來(lái)看一下它的技術(shù)吧。它是從簡(jiǎn)單的系統(tǒng)開(kāi)始的。在 20 世紀(jì)的初,移動(dòng)無(wú)線電話被偶而應(yīng)用于海上或軍事通信中。在 1946 年,第一個(gè)基站被安置在 St.Louis。這個(gè)系統(tǒng)被安置在高層建筑上,它華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 33 使用一個(gè)簡(jiǎn)單的大的發(fā)送機(jī)并且有了用于發(fā)送和接收的簡(jiǎn)單的通道。像這樣的系統(tǒng)稱(chēng)做被動(dòng)式系統(tǒng),從 1950 開(kāi)始它就被安裝在很多的城市了。 可較驗(yàn)的收音機(jī),出租車(chē),警車(chē)還有電視也廣泛采用這種技術(shù)。 在 1960 年, IMTS(改良的移動(dòng)電話系統(tǒng))被發(fā)明。它仍然使用高達(dá) 200 瓦的發(fā)送器,發(fā)送器被安置在山上,不過(guò)此時(shí)已經(jīng)有了兩各不同的頻率了,一種用來(lái)發(fā)送,另一種用來(lái)接收,所以這個(gè)呼叫按鈕就可不要了。相比信號(hào)出站移動(dòng)電話的信號(hào)入站是通過(guò)不同的通道的,因此移動(dòng)用戶(hù)不會(huì)互相聽(tīng)到 (不像應(yīng)用在出租車(chē)上被叫系統(tǒng) )。 IMTS支持從 150 MHz到 450 MHz的 23 條通道。由于通道太少,用戶(hù)經(jīng)常要等很長(zhǎng)時(shí)間才能聽(tīng)到拔號(hào)音。也由于小山上的發(fā)送器的功率太 大,為了不互相干擾鄰近的系統(tǒng)不得不與它相距幾百千米??偠灾?,這有限的容量使用這系統(tǒng)有點(diǎn)不合實(shí)際應(yīng)用。 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 34 原 文 The result of the connection setup with circuit switching is the reservation of bandwidth all the way from the sender to the receiver. All packets follow this path. Among other properties, having all packets follow the same path means that they cannot arrive out of order. With packet switching there is no path , so different packets can follow different paths, depending on network conditions at the time they are sent. They may arrive out of order. Packet switching is more fault tolerant than circuit switching. In fact, that is why it was invented. If a switch goes down, all of the circuits using it are terminated and no more traffic can be sent on any of them. With Packet switching, packets can be routed around dead switches. Setting up a path in advance also opens up the possibility of reserving bandwidth in advance. If bandwidth is reserved, then when a packet arrives, it can be sent out immediately over the reserved bandwidth. With packet switching, no bandwidth is reserved, so packets may have to wait their turn to be forwarded. Having bandwidth reserved in advance means that no congestion can occur when a packet shows up (unless more packets show up than expected).On the other hand, when an attempt is made to establish a circuit, the attempt can fail due to congestion. Thus, congestion can occur at different times with circuit switching(at setup time) and packet switching(when packets are sent). If a circuit has been reserved for a particular user and there is no traffic to send, the bandwidth of that circuit is wasted. It cannot be used for other traffic. Packet switching does not waste bandwidth and thus is more efficient form a system-wide perspective. Understanding this trade-off is crucial for comprehending the difference between circuit switching and packet switching. The trade-off is between guaranteed service and wasting resources versus not guaranteeing service and not 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 35 wasting resources. Packet switching uses store-and-forward transmission. A packet is accumulated. in a router s memory, then sent on to the next router. With circuit switching, the bits just flow through the wire continuously. The store-and-forward technique adds delay. Another difference is that circuit switching is completely transparent. The sender and receiver can use any bit rate, format, or framing method they want to. The carrier does not know or care. With packet switching, the carrier determines the basic parameters. A rough analogy is a road versus a railroad. In the former, the user determines the size, speed, and nature of the vehicle; in the latter, the carrier does. It is this transparency that allows voice, data, and fax to coexist within the phone system. A final difference between circuit and packet switching is the charging algorithm. With circuit switching, charging has historically been based on distance and time. For mobile phones, distance usually does not play a role, except for international calls, and time plays only a minor role(e.g., a calling plan with 2000 free minutes costs more than one with 1000 free minutes and sometimes night or weekend calls are cheaper than normal).With packet switching, connect time is not an issue, but the volume of traffic sometimes is. For home users, ISPs usually charge a flat monthly rate because it is less work for them and their customers can understand this model easily, but backbone carriers charge regional networks based on the volume of their traffic. The differences are summarized in Fig.2-40. 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 36 Item Circuit Switched Packet Switched Call setup Required Not needed Dedicated physical path Yes No Each packet follows the same route Yes No Packets arrive in order Yes No Is a switch crash fatal Yes No Bandwidth available Fixed Dynamic Time of possible congestion At setup time On every packet Potentially wasted bandwidth Yes No Store-and-forward transmission No Yes Transparency Yes No Charging Per minute Per packet Both circuit switching and packet switching are important enough that we will come back to them shortly and describe the various technologies used in detail. 2.6 THE MOBILE TELEPHONE SYSTEM The traditional telephone system(even if it some day gets multi-gigabit end-to-end fiber) will still not be able to satisfy a growing group of users :people on the go .People now expect to make phone calls from airplanes ,cars ,swimming pools ,and while jogging in the park .Within a few years they will also expect to send e-mail and surf the Web from all these locations and more consequently ,there is a tremendous amount of interest in wireless telephony .In the following sections we will study this topic in some detail. Wireless telephones come in two basic varieties :cordless phones and mobile phones(sometimes called cell phones),Cordless phones are devices 華北工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 37 consisting of a base station and a handset sold as a set for use within the home. These are never used for networking ,so we will not examine them further .Instead we will concentrate on the mobile system ,which is used for wide area voice and data communication. Mobile phones have gone through three distinct generations ,with different technologies: 1. Analog voice 2. Digital voice 3. Digital voice and data(Internet ,e-mail ,etc.). Although most of our discussion will be about the technology of these systems ,it is interesting to note how political and tiny marketing decisions can have a huge impact .The first mobile system was devised in the U.S. by AT&T and mandated for the whole country by the FCC .As a result ,the entire U.S. had a single(analog) system and a mobile phone purchased in California also worked in New York .In contrast ,when mobile came to Europe ,every country devised its own system ,which resulted in a fiasco. Europe learned from its mistake and when digital came around, the government-run PTTs got together and standardized on a single system(GSM),so any European mobile phone will word anywhere in Europe .By then ,the U.S. had decided that government should not be in the standardization business ,so it left digital to the marketplace .This decision resulted in different equipment manufacturers producing different kinds of mobile phones .As a consequence ,the U.S. now has two major incompatible digital mobile phone systems in operation(plus one minor one). Despite an initial lead by the U.S. , mobile phone ownership and usage in Europe is now far greater than in the U.S. Having a single system for all of Europe is part of the reason ,but there is more .A second area where the U.S. and Europe differed is in the humble matter of phone numbers .In the U.S. mobile phones are mixed in with regular (fixed) telephones .Thus
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南昌交通學(xué)院《水文與地貌學(xué)理論》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌大學(xué)共青學(xué)院《燈具與燈光設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 閩江學(xué)院《幼兒玩教具制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌健康職業(yè)技術(shù)學(xué)院《自動(dòng)化測(cè)試》2023-2024學(xué)年第一學(xué)期期末試卷
- 民辦萬(wàn)博科技職業(yè)學(xué)院《公共政策審計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 民辦合肥經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院《多媒體課件制作與開(kāi)發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 民辦安徽旅游職業(yè)學(xué)院《互換性與測(cè)量基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 綿陽(yáng)師范學(xué)院《道橋工程造價(jià)》2023-2024學(xué)年第一學(xué)期期末試卷
- 魯迅美術(shù)學(xué)院《銀行業(yè)務(wù)模擬》2023-2024學(xué)年第一學(xué)期期末試卷
- 婁底職業(yè)技術(shù)學(xué)院《晚清民國(guó)的高等師范教育》2023-2024學(xué)年第一學(xué)期期末試卷
- GB/T 37238-2018篡改(污損)文件鑒定技術(shù)規(guī)范
- 普通高中地理課程標(biāo)準(zhǔn)簡(jiǎn)介(湘教版)
- 河道治理工程監(jiān)理通知單、回復(fù)單范本
- 超分子化學(xué)簡(jiǎn)介課件
- 高二下學(xué)期英語(yǔ)閱讀提升練習(xí)(一)
- 易制爆化學(xué)品合法用途說(shuō)明
- 【PPT】壓力性損傷預(yù)防敷料選擇和剪裁技巧
- 大氣喜慶迎新元旦晚會(huì)PPT背景
- DB13(J)∕T 242-2019 鋼絲網(wǎng)架復(fù)合保溫板應(yīng)用技術(shù)規(guī)程
- 心電圖中的pan-tompkins算法介紹
- 羊絨性能對(duì)織物起球的影響
評(píng)論
0/150
提交評(píng)論