已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 本文配套程序下載地址 : 無憂無慮畢設(shè)網(wǎng) ()-大學(xué)生畢業(yè)設(shè)計站 ,免費(fèi)畢業(yè)設(shè)計論文 ,無憂無慮畢設(shè)網(wǎng) 大學(xué)生畢業(yè)設(shè)計 ,出售各類畢業(yè)設(shè)計源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費(fèi)視頻教程 ,我們將竭誠為您服務(wù)! 摘 要 一般情況教師想出一份試卷,要么到龐大的題庫里一道一道的把題找出來,或是從幾本相關(guān)的書里把題一道一道挑出來。這樣即費(fèi)時又費(fèi)力,而且很難保證試題的覆蓋面和把握好試卷的難度。正是為了能夠幫助教師輕松的出一份高質(zhì)量的試卷而開發(fā)了本軟件。為了達(dá)到預(yù)期的目標(biāo)我們最終選擇了 Microsoft Office Word 做為本軟件的終端輸出。本軟件是在對現(xiàn)有控件的改進(jìn)和 VBA 編程的研究的基礎(chǔ)上開發(fā)的。本軟件實現(xiàn)了以下主要功能: 1.手動生成試卷; 2.自動生成試卷; 3.抽取現(xiàn)有試卷; 4.用戶管理; 5.數(shù)據(jù)庫管理。大量的測試表明本軟件在 Windows 98 me 2000 XP 平臺配合 Office XP 2003 的環(huán)境下程序運(yùn)行穩(wěn)定且各項功能運(yùn)行得都很正確,基本達(dá)到了預(yù)期的要求! 結(jié)論:經(jīng)過老師的實際試用本軟件在界面上和功能上都有獨(dú)到之處!相信完全可以勝任出一份好的試卷任務(wù)。 關(guān)鍵詞:題庫系統(tǒng),試卷生成,數(shù)據(jù)庫, VBA 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 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 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 目 錄 摘 要 .1 Abstract .2 前 言 .1 1 . 簡述 .2 1.1 開發(fā)工具簡介 .2 1.1.1 Delphi 7.0的特點(diǎn) .2 1.1.2 主要的控件及其屬性簡介 .2 1.1.3 數(shù)據(jù)庫連接方式選擇 .3 1.2 程序運(yùn)行環(huán)境 .4 2 . 需求分析 .5 2.1 負(fù)責(zé)的功能模塊 .5 2.2 軟件功能分析 .5 3 . 設(shè)計階段 .8 3.1 概要設(shè)計 .8 3.1.1 系統(tǒng)數(shù)據(jù)庫設(shè)計 .8 3.2 詳 細(xì)設(shè)計 . 12 3.2.1 程序流程圖 . 12 3.2.2 窗體功能簡介 . 14 4 . 軟件實現(xiàn) . 21 4.1 OOP簡介 . 21 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 4.2 開發(fā)的關(guān)鍵技術(shù) . 21 5 . 軟件測試及其維護(hù) . 25 5.1 系統(tǒng)測試平臺簡介 . 25 5.2 測試方法 . 25 5.3 系統(tǒng)維護(hù) . 26 6 . 開發(fā)總結(jié) . 27 參 考 文 獻(xiàn) . 28 致 謝 . 29 譯 文 . 30 原 文 . 34 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 1 前 言 在開發(fā)本軟件之前,正是我努力提高自己的 Delphi 開發(fā)水平的時期。因此我選擇了 Delphi 做為我的開發(fā)工具,然而這次開發(fā)的軟件和以前不一樣。最主要的區(qū)別在于這個軟件要以 Microsoft Office Word 做為試卷的終端輸出。而它們又是兩個不同公司的產(chǎn)品。因而,剛一開始我特別擔(dān)心這個技術(shù)能否得到比較圓滿的解決。在開發(fā)的過程中我不斷的對 VBA 技術(shù)進(jìn)行研究,并且將它應(yīng)用于這次的軟件開發(fā)中。因而比較好的解決了 Microsoft Office Word 的接口編程問題。還有一個比較棘手的問題就是 Delphi 提供的控件都是很基本的,而這次開發(fā)中要用到一個可以標(biāo)記選中狀態(tài)的樹型控件,在對 Delphi 的 TtreeView 的深入研究后確認(rèn)它不能勝任這個任務(wù)。因此,我開始尋找第三方控件,然而這一次我很失望因為只找到了一個 2000 年編寫的TCheckTree 控件,沒辦法了,最后下定決心修改那個 TCheckTree 控件以使它能更加穩(wěn)定和實用。在深入研究 Windows 的消息機(jī)制和 VCL 框架對 Windows 消息機(jī)制的封裝技術(shù)后我成功的修改了那個 TCheckTree 控件。在程序開發(fā)的后期測試中,我充分利用各個同學(xué)電腦平臺的多樣性。把本軟件在多達(dá) 4 種操作系統(tǒng)和 3 個不同版本的Office 上進(jìn)行測試。測試表明:在 Windows 98 me 2000 XP 平臺配合 Office XP 2003 下程序運(yùn)行穩(wěn)定且各項功能運(yùn)行得都很正確! 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 2 1 . 簡述 1.1 開發(fā)工具簡介 1.1.1 Delphi 7.0的特點(diǎn) Delphi 是 Borland 公司出品的開發(fā)工具,在眾多的開發(fā)工具中,我們?yōu)槭裁匆x擇 Delphi呢?因為 Delphi具有眾多其它開發(fā)工具所沒有的優(yōu)點(diǎn)!具體介紹如下: 開發(fā)的高效 語言的高效 編譯的高效 執(zhí)行的高效 維護(hù)的高效 基于以上理由,我們毫不憂郁的選擇了 Delphi做為我們的開發(fā)工具! 1.1.2 主要的控件及其屬性簡介 TForm類的控件: 1) BorderIcons屬性:用來控制程序標(biāo)題按鈕的可用性。 2) BorderStyle屬性:用來控制程序邊框的樣式。 3) Color屬性:用來控制程序界面的顏色。 4) Font屬性:用來控制程序界面的字體。 5) Position屬性:用來控制程序運(yùn)行時界面的顯示位置。 TADOConnection類的控件: 1) ConnectionString屬性:用來控制鏈接 字符串。 2) LoginPrompt屬性:用來控制鏈接時是否要輸入密碼。 3) Connected屬性:用來控制是否進(jìn)行鏈接。 TADOQuery類的控件: 1) Connection 屬性:用來指定和哪個 TADOConnection 控件相連。 2) SQL屬性:用來添加向數(shù)據(jù)庫提交的 SQL語句。 3) Add方法:用來向 SQL屬性添加 SQL語句。 4) Open方法:用來執(zhí)行 SQL語言中的 Select語句。 5) ExecSQL方法:用來執(zhí)行任何 SQL語句。 6) FieldByName屬性:用來給數(shù)據(jù)庫的字段賦值。 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 3 7) FidldValues屬性:用來取 出數(shù)據(jù)庫的字段的。 8) Append方法:用來向數(shù)據(jù)庫添加一條記錄。 9) Edit方法:用來編輯當(dāng)前的記錄。 10) Post:用來向數(shù)據(jù)庫提交所做的修改。 TADOTable類的控件: 1) Connection 屬性:用來指定和哪個 TADOConnection 控件相連。 2) Open方法:用來打開數(shù)據(jù)庫中指定的表。 3) FieldByName屬性:用來給數(shù)據(jù)庫的字段賦值。 4) FidldValues屬性:用來取出數(shù)據(jù)庫的字段的。 5) Append方法:用來向數(shù)據(jù)庫添加一條記錄。 6) Edit方法:用來編輯當(dāng)前的記錄。 7) Post:用來向數(shù)據(jù)庫提交所 做的修改。 TDataSource類的控件: 1) DataSet:用來指定和哪個數(shù)據(jù)集相連。 TDBGrid類的控件: 1) DataSource:用來指定和哪個 TDataSource控件相連。 TPageControl類的控件: 1) ActivePage屬性:用來指定當(dāng)前活動的 Page頁。 TCheckTree類的控件: 1) ReadOnly屬性:用來控制 TCheckTree內(nèi)的 Item是否可編輯。 2) Item屬性:用來控制 TCheckTree包含的所有樹形結(jié)點(diǎn)。 3) Images屬性:用來指點(diǎn) TCheckTree中結(jié)點(diǎn)的圖標(biāo)。 4) OnMouseUp事件:用來添加鼠標(biāo)放開事件所執(zhí)行的程序代碼。 5) OnStateChange事件:用來添加結(jié)點(diǎn)狀態(tài)改變時的程序代碼。 TFlatButton類的控件: 1) Caption屬性:用來指定 TFlatButton的標(biāo)題。 OnClick事件:用來添加按鈕的單擊事件所執(zhí)行的程序代碼。 1.1.3 數(shù)據(jù)庫連接方式選擇 Delphi 連接數(shù)據(jù)庫的主要方式有兩種:一是: BDE ,二是 ADO 。現(xiàn)在我們來大致比較一下這兩種技術(shù)的優(yōu)缺點(diǎn): 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 4 BDE( Borland Database Engine)是 Delphi 頗具特色的數(shù)據(jù)庫連 接管理技術(shù)。憑借窗體和報表, BDE 可以訪問諸如 Paradox,dBASE,本地 InterBase 服務(wù)器的數(shù)據(jù)庫,也可訪問遠(yuǎn)程數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)庫,如 Oracle,SyBase,Informix 等 C S 數(shù)據(jù)庫中的數(shù)據(jù)庫,也可訪問經(jīng) ODBC可訪問的數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)庫。 ADO(ActiveX Data Objects)是微軟提供的一項技術(shù)。通過 ADO,可以方便的訪問各種類型的數(shù)據(jù)庫,特別是 OLEDB 數(shù)據(jù)庫。 ADO 已成為訪問數(shù)據(jù)庫的新的標(biāo)準(zhǔn)接口。從 Delphi 6.0 開始 Delphi 添加了對 ADO 的支持, 以便讓用戶能迅速實現(xiàn)對終端用戶用來做商業(yè)決策的數(shù)據(jù)庫的一致性訪問,結(jié)合 Delphi 本身的開發(fā)式數(shù)據(jù)組件結(jié)構(gòu),程序員可以很快地建立應(yīng)用程序,用來把自己的商業(yè)數(shù)據(jù)庫通過 Internet 發(fā)送給客戶,最終用戶以及整個銷售環(huán)節(jié)。通過 ADO, Delphi 7.0 也能讓用戶快速訪問關(guān)系或非關(guān)系數(shù)據(jù)庫以及 E-Mail和商務(wù)文件系統(tǒng)。 這兩者提供了幾乎相同的功能,在進(jìn)行產(chǎn)品開發(fā)時,勢必要做一個精心的比較。雖然 ADO 技術(shù)提出的時間不長,并被定位為工業(yè)標(biāo)準(zhǔn)的,而且其在性能上由于當(dāng)前沒有良好的數(shù)據(jù)庫引擎支持,其性能還不夠完美,但是 ,我們應(yīng)該要注意到 Borland 公司已經(jīng)宣布停止發(fā)展 BDE 了,其性能被 ADO 超越也是遲早的事,因此,在開發(fā)長期應(yīng)用的產(chǎn)品時,推薦采用 ADO 技術(shù)。這樣還有另一個好處是,在進(jìn)行產(chǎn)品分發(fā)時,可以避開大量 BDE的鏈接庫 DLL的分發(fā)。 基于以上原因我們選擇了 ADO做為我們的數(shù)據(jù)庫訪問組件。 1.2 程序運(yùn)行環(huán)境 操作系統(tǒng): Windows 2000 Windows XP 辦公軟件: Office XP Office 2003 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 5 2 . 需求分析 2.1 負(fù)責(zé)的功能模塊 設(shè)計試題生成功能,試題能分布整個教學(xué)內(nèi)容 設(shè)計試 題的難易程度分析功能 具有試題的答案生成功能 數(shù)據(jù)庫設(shè)計及維護(hù) 程序的其它選項設(shè)置 2.2 軟件功能分析 根據(jù)我負(fù)責(zé)的功能模塊,主要是在試卷的生成上。 1要顯示書本章節(jié)信息以供用戶使用。而在數(shù)據(jù)庫里章節(jié)的存放是沒有規(guī)則也即它們的順序不一定按照真實書本的章節(jié)順序來存儲的。但是在顯示章節(jié)信息的時候必須按照書本的章節(jié)順序來顯示。所以特別設(shè)置如下的數(shù)據(jù)類型: type ZJ=record ZJID:double; ZJName:string; end; 在這里 ZJID是設(shè)置成 double 的類型與相 對應(yīng)的是數(shù)據(jù)庫里表 ZhangJie 里的 ZJ字段此字段的類型為文本弄的。故在添加此數(shù)據(jù)庫結(jié)構(gòu)的時候要把文本型轉(zhuǎn)化為double 的類型。而 ZJName 對應(yīng)的是數(shù)據(jù)庫里表 ZhangJie 里的 ZJName 它們?yōu)橥环N數(shù)據(jù)類型。再由于數(shù)據(jù)庫里章節(jié)的數(shù)量是不定的,故此種數(shù)據(jù)類型的變量必須是一種長度可變的類型才行,所以我們選擇了 Delphi里的動態(tài)數(shù)組類型。變量定義如下 : Var TempZJ:ZJ; HaveZJ:array of ZJ; 接下來的問題就是把這個變量記錄的數(shù)據(jù)按一定順序顯示到 TCheckTree 的 控件里了。由于章節(jié)的數(shù)量還是比較多的,所以我選擇了“改進(jìn)的選擇排序”,具體的排序華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 6 算法代碼實現(xiàn)如下: for i:=0 to High(HaveZJ) do /對章節(jié)號進(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手動生 成試卷時要不斷的將用戶選擇的題目臨時存儲起來,由于記錄一道題所包含的信息不是很多,再因為這些信息一會兒還要在“保存答案”里使用,所以我設(shè)置了 4個 TStringList的全局變量,定義如下: var STTypeID,STBH,STND:TStringList; 每選一道題保存時的算法代碼如下: 首先保證要添加入的試題與現(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)存在了! ,加入錯誤 ,MB_OK or MB_ICONERROR); 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 7 exit; end; end; 如果不重復(fù)的話則把試題添加進(jìn)來! STTypeID.Add(IntToStr(LX); /記下試題類型 STBH.Add(IntToStr(BH); /記下試題編號 STND.Add(ST_DBG.Fields4.AsString); /記下試題難度 3在自動生成試卷里最主要的一點(diǎn)就是如何生成一個覆蓋知道點(diǎn)廣且試題不重復(fù)的試卷。其中的關(guān)鍵算法在于如何生成一個不重復(fù)的隨機(jī)數(shù)序列。在 Delphi 里隨機(jī)數(shù)的產(chǎn)生函數(shù)是 Random,然而如果用這個函數(shù)來生成一定范圍內(nèi)的隨機(jī)數(shù)重復(fù)的機(jī)率太大了。其中變量定義如下: var XTH:array of integer; /存放隨機(jī)選題號 以下是產(chǎn)生不重復(fù)隨機(jī)數(shù)的算法: num:=MaxBH-MinBH+1; if num0 then /開始初始化 begin SetLength(XTH,num); for i:=0 to num-1 do XTHi:=MinBH+i; /給動態(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ī)科學(xué)與技術(shù)系 8 3 . 設(shè)計階段 3.1 概要設(shè)計 3.1.1 系統(tǒng)數(shù)據(jù)庫設(shè)計 根據(jù)任務(wù)書的規(guī)定,現(xiàn)設(shè)計如下的數(shù)據(jù)庫表 格: 表:用戶表 (YH) 字段中文名 字段英文名 字段類型 字段長度 主鍵 姓名 UserName 文本 20 是 密碼 Password 文本 18 組 GroupID 數(shù)字 長整型 權(quán)限 QXID 數(shù)字 長整型 表:題型 (Type) 字段中文名 字段英文名 字段類型 字段長度 主鍵 編號 TypeID 自動編號 是 名稱 TypeName 文本 20 分值 FZ 數(shù)字 長整型 表:難易度 (NYD) 字段中文名 字段英文名 字段類型 字段長度 主鍵 編號 BH 自動編號 是 難易度 NYD 文本 表:用戶組 (UserGroup) 字段中文名 字段英文名 字段類型 字段長度 主鍵 編號 GroupID 自動編號 是 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 9 組名 GroupName 文本 20 表:選擇題 (XuanZeTi) 字段中文名 字段英文名 字段類型 字段長度 主鍵 題號 TH 自動編號 是 題型 TypeID 數(shù)字 長整型 題目 TM 備注 選項 A A 文本 255 選項 B B 文本 255 選項 C C 文本 255 選項 D D 文本 255 正確答案 DA 文本 難易度 NY 數(shù)字 長整型 出自章節(jié) CZ 文本 50 表:填空題 (TianKong) 字段中文名 字段英文名 字段類型 字段長度 主鍵 題號 BH 自動編號 是 題型 TypeID 數(shù)字 長整型 題目 TM 備注 空 1 K1 文本 100 空 2 K2 文本 100 空 3 K3 文本 100 空 4 K4 文本 100 空 5 K5 文本 100 應(yīng)填數(shù) YTS 數(shù)字 長整型 難易度 NY 數(shù)字 長整 型 出自章節(jié) CZ 文本 50 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 10 表:簡答題 (JianDaTi) 字段中文名 字段英文名 字段類型 字段長度 主鍵 題號 BH 自動編號 是 題型 TypeID 數(shù)字 長整型 題目 TM 備注 答案 DA 備注 難易度 NY 數(shù)字 長整型 出自章節(jié) CZ 文本 50 表 8:原理論述題 (YuanLiLunShu) 字段中文名 字段英文名 字段類型 字段長度 主鍵 題號 BH 自動編號 是 題型 TypeID 數(shù)字 長整型 題目 TM 備注 答 案 DA 備注 難易度 NY 數(shù)字 長整型 出自章節(jié) CZ 文本 50 表 9:系統(tǒng)設(shè)計題 (XiTongSheJi) 字段中文名 字段英文名 字段類型 字段長度 主鍵 題號 BH 自動編號 是 題型 TypeID 數(shù)字 長整型 題目 TM 備注 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 11 表格 BG 文本 100 答案 DA 備注 難易度 NY 數(shù)字 長整型 出自章節(jié) CZ 文本 50 答案表格 DABG 文本 50 題目表格 TMBG 文本 50 表 10:系統(tǒng)操作題 (XiTongCZ) 字段 中文名 字段英文名 字段類型 字段長度 主鍵 題號 BH 自動編號 是 題型 TypeID 數(shù)字 長整型 題目 TM 備注 難易度 NY 數(shù)字 長整型 出自章節(jié) CZ 文本 50 題目表格 TMBG 文本 50 問 1答案 W1DA 文本 255 問 1答案表格 W1DABG 文本 50 問 2答案 W2DA 文本 255 問 2答案表格 W2DABG 文本 50 問 3答案 W3DA 文本 255 問 3答案表格 W3DABG 文本 50 問 4答案 W4DA 文本 255 問 4答案表格 W4DABG 文本 50 問 5答案 W5DA 文本 255 問 5答案表格 W5DABG 文本 50 問題數(shù) WTS 數(shù)字 長整型 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 12 3.2 詳細(xì)設(shè)計 3.2.1 程序流程圖 1 抽取現(xiàn)有試卷的流程圖: 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 13 2 自動生成試卷的流程圖 : 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 14 3 下圖是手動生成試卷的流程圖: 3.2.2 窗體功能簡介 下圖軟件的登陸界面 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 15 在這里輸入用戶名及密碼就可以進(jìn)行入軟件的主界面了! 下圖是軟件的主界面: 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 16 在以上的軟件主界面的左邊是各個功能模塊的調(diào) 用接口! 如: 抽取現(xiàn)有試卷:點(diǎn)擊后進(jìn)入抽取現(xiàn)有試卷的功能界面。 自動生成試卷:點(diǎn)擊后進(jìn)入自動生成試卷的功能界面。 手動生成試卷:點(diǎn)擊后進(jìn)入手動生成試卷。 題庫錄入:在這里可以往數(shù)據(jù)庫里添加試題。 題庫維護(hù):在這里可以對數(shù)據(jù)庫里已有試題進(jìn)行維護(hù)。 選項設(shè)置:在這里可以對軟件的其它選項進(jìn)行設(shè)置。 軟件的右上角有“幫助”和“關(guān)于”按鈕!在這里可以得到軟件的使用幫助,和有關(guān)此軟件的一些開發(fā)信息! 下圖是自動生成試卷的界面: 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 17 上圖中標(biāo)為“第一部分”的樹形控件是用來設(shè)置要生成的試卷的試題的抽取范圍。 上 圖中標(biāo)為“第二部分”的是用來設(shè)置各種題型的量及其分?jǐn)?shù)。 上圖中標(biāo)為“第三部分”的是功能按鈕,其中“生成試卷”用來根據(jù)“第二部分”的設(shè)置自動生成一份試卷?!邦A(yù)覽試卷”是用來預(yù)覽剛生成的試卷。“試卷答案”是用來查看剛生成的試卷的答案。“保存試卷”是用來保存剛生成的試卷的信息。 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 18 下圖是手動生成試卷的界面圖: 上圖中標(biāo)為“第一部分”的樹形控件是用來設(shè)置要生成的試卷的試題的抽取范圍。 上圖中標(biāo)為“第二部分”的是用來設(shè)置各種題型的量及其分?jǐn)?shù)。 上圖中標(biāo)為“第三部分”的是用來設(shè)置試卷的部分。 上圖中標(biāo)為“第五 部分”的是用來選擇要加入試卷的試題。 上圖中標(biāo)為“第四部分”的是功能按鈕,其中“加入試卷”用來把在“第五部分”的選擇試題加入到要生成的試卷中?!氨4嬖嚲怼笔怯脕肀4鎰偵傻脑嚲淼男畔ⅰ?華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 19 下圖是用戶管理的界面: 上圖中標(biāo)為“第一部分”顯示當(dāng)前系統(tǒng)已有的用戶。 上圖中標(biāo)為“第二部分”選擇要進(jìn)行的操作。 上圖中標(biāo)為“第三部分”設(shè)置相應(yīng)的信息。 上圖中標(biāo)為“第四部分”??梢詣h除用戶或是提交對用戶信息的修改。 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 20 下圖是數(shù)據(jù)庫功能模塊的界面: 上圖中標(biāo)為“第一部分”可以改變數(shù)據(jù)庫的存放路徑 。 上圖中標(biāo)為“第二部分”選擇要進(jìn)行的操作。 上圖中標(biāo)為“第三部分”選擇還原的時間點(diǎn)或是執(zhí)行備份操作。 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 21 4 . 軟件實現(xiàn) 4.1 OOP簡介 每一個軟件開發(fā)人員都會經(jīng)常聽到,看到“面向?qū)ο蟆边@個詞,程序員也時常把它掛在嘴上。那么什么還是真正的“面向?qū)ο蟆??什么是面向?qū)ο蟮木幊??是不是寫幾個類就算面向?qū)ο罅??為什么要面向?qū)ο螅?“面向?qū)ο笫且环N思維方式,一種方法論!” “結(jié)構(gòu)化編程”( SP)是一種編程方法,是從計算機(jī)的視角來抽象問題的方法。而“面向?qū)ο缶幊獭保?OOP)也是一種編程方法,只不過它是從更接近真實世界 的視角來分析問題,使用更接近人們理解真實世界的方法來抽象問題,這種方法稱為“面向?qū)ο蟆保?OO)! “面向?qū)ο蟆边@個詞代表的是一種認(rèn)識世界,分析問題,解決問題的方法,因此它是一種方法論。而面向?qū)ο缶幊虅t是將這種方法應(yīng)用于程序設(shè)計的方法。當(dāng)你會使用面向?qū)ο蟮姆椒ㄈニ伎?,用面向?qū)ο蟮哪J街Х治龊徒鉀Q問題的時候,才是真正的“面向?qū)ο蟆绷耍?“面向?qū)ο蟆弊钪饕奶匦杂腥齻€: 繼承性。 Delphi提供大量的可被二次開發(fā)的類。每個類都可被繼承。 封裝性。 Delphi的封裝性主要由類的私有域和保護(hù)域來實現(xiàn)的。 多態(tài)性。 Delphi的多太性主要是通過虛擬方法和動態(tài)方法來實現(xiàn)的。 4.2 開發(fā)的關(guān)鍵技術(shù) 1 VBA編程技術(shù) Visual Basic for Applications(簡稱 VBA)是新一代標(biāo)準(zhǔn)宏語言。在沒有 VBA 以前,一些應(yīng)用軟件如 Excel, Word, Access 等都采用自己的宏語言供用戶開發(fā)使用,但每一種宏語言都是相互獨(dú)立的并且它們之間是互不兼容的。這導(dǎo)致了應(yīng)用軟件之間不能在程序上互聯(lián)。找到一種可被所有的 Microsoft 可編程應(yīng)用軟件所共享的通用宏語言是 Microsoft 公司長期追求的目標(biāo)。 VBA 作 為新一代的標(biāo)準(zhǔn)宏語言具有了跨越多種 OFFICE 應(yīng)用軟件并且控制應(yīng)用軟件對象的能力。 Delphi里封裝的三個主要交互控件:TWordApplication,TWordDocument,TwordFont. 本程序的主要實現(xiàn)技術(shù)如下: 華北工學(xué)院計算機(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,無法連接,也許沒有安裝 Word,連接出錯 , MB_Ok or MB_ICONERROR); RateProcess_F.Close; Abort; end; RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+10; 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 23 /SJ_WA.Visible := False; /SJ_WA.Caption := 題庫系統(tǒng)與試卷生成 ; /建立一個新文檔 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連接 , 用第二種方法不容易出錯 /SJ_WD.ConnectTo(SJ_WA.Documents.Item(ItemIndex); SJ_WD.ConnectTo(NewDocument); SJ_WD.Windows.Item(ItemIndex).Caption:=數(shù)據(jù)庫原理與應(yīng)用期末試卷 ; /此文檔的第一個窗口的標(biāo)題 RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; RateProcess_F.Repaint; /因為 Word進(jìn)行拼寫檢查需要很多時間,所以首先關(guān)閉檢查 SJ_WA.Options.CheckSpellingAsYouType := False; SJ_WA.Options.CheckGrammarAsYouType := False; /設(shè)置 Word的字體 SetFont(1,0,0,22); /設(shè)置段落對齊方式 SJ_WD.Range.InsertAfter(數(shù)據(jù)庫原理與應(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é)校 _ 班級 _ 姓名 _ 得分 _ +#13); SetFont(0,0,0,14); 2 TCheckTree控件的修改。 由于 Delphi自帶的 TTreeView里并沒有復(fù)選框的功能。因此,必須重新設(shè)計控件。 在設(shè)計時因 TTreeView里有一個 StateIndex和 StateImages,而縱觀 TTreeView的代華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 24 碼可以知道它只是發(fā)布了一下 TCustomTreeView定義并實現(xiàn)好的屬性和方法而已。因此我們也選擇 TCustomTreeView為 TCheckTree控件的祖先類。 重要的實現(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ī)科學(xué)與技術(shù)系 25 5 . 軟件測試及其維護(hù) 5.1 系統(tǒng)測試平臺簡介 硬件平臺 CPU Intel P4 1.5G 主板 Intel 850芯片組的 GA-8TX-C 內(nèi)存 2 128M的三星 Rambus內(nèi)存 硬盤 Seagate Barracuda 7200.7 80G 顯卡 Unika 小妖 G9800 顯示器 美格 770PF, 17寸純平顯示器 軟件環(huán)境 操作系統(tǒng) Microsoft WindowsXP簡體中文專業(yè)版 SP1 辦公軟件 Microsoft Office 2003 顯卡驅(qū)動 nVIDIA ForceWare驅(qū)動 56.72版 For Win2000/XP 5.2 測試方法 測試在軟件開發(fā)過程中一直都是備受關(guān)注的,即使在傳統(tǒng)的軟件工程中,也有一個明確、獨(dú)立的測試 階段。隨著軟件危機(jī)的頻頻出現(xiàn)以及人們對于軟件本質(zhì)的進(jìn)一步認(rèn)識,測試的地位得到了前所未有的提高。測試已經(jīng)不僅僅局限于軟件開發(fā)中的一個階段,它已經(jīng)開始貫穿于整個軟件開發(fā)過程,人們已經(jīng)開始認(rèn)識到:測試開始的時間越早,測試執(zhí)行的越頻繁,所帶來的整個軟件開發(fā)成本的下降就會越多。 Extreme Programming 更是把測試推到了極限的位置,一切軟件開發(fā)活動都要從首先編寫測試代碼開始。 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 26 為了使本軟件運(yùn)行更加穩(wěn)定,我對它進(jìn)行了全面的測試,測試分為二部分來進(jìn)行,一是:界面測試;二是功能測試。 首先是界面測試,為了使軟件在 不同的的操作系統(tǒng)平臺上運(yùn)行界面能保持原來的風(fēng)格。我的開發(fā)平臺如上介紹。我把完整程序拷貝到我同學(xué)的機(jī)子,同學(xué)機(jī)子的相關(guān)配置如下: Windows2000 15 寸顯示器;程序運(yùn)行界面正常,但由于我同學(xué)的顯示器是 15 寸的顯示的范圍比較小外,界面上的字體等設(shè)置都保持得相當(dāng)好。沒有出現(xiàn)類似字體變形的情況!第二個平臺: Windows Me +17 顯示器,測試結(jié)果:字體有些不正常了。后來在網(wǎng)查找了很多相關(guān)的資料,得出這是由于 Window Me 或 Windows 98 和我的開發(fā)平臺的操作系統(tǒng) Window XP 的字體集不一樣造成 的。解決方案是:把軟件的字體設(shè)置成:宋體 9 號,字符集使用: CHINASE_GB2312。至此軟件的界面測試順利完成。 二是進(jìn)行功能的測試。我的功能模塊主要是試卷生成。而試卷生成后都是輸出到Microsoft Office Word 里。而 Office 的版本又那么的多,因此,我一直很擔(dān)心在不同的 Office 平臺下軟件會有不同的運(yùn)行結(jié)果!實際測試結(jié)果如下:在 Windows 2000 Microsoft Office 2000 的平臺下,試卷功能里的預(yù)覽功能不能用了。界面停留在“正在鏈接 Microsoft Office Word .”這里,一看就知道沒有辦法和Microsoft Office Word 鏈接了。換平臺測試,這回是在 Windows 2000 Office XP,程序正常運(yùn)行了包括試卷預(yù)覽等功能都正常運(yùn)行。再換平臺: Windows XP+Office 2003 程序同樣完全正常運(yùn)行,由此可以總結(jié)出在低于 Office XP 的平臺下程序無法和辦公軟件交互。本來我想把程序換成能支持 Office 2000 的,可后來一想 Office 2000 距離現(xiàn)在已經(jīng)有 4 年之久了。支持了它反而支持不了最新的 Office 平 臺,所以決定讓程序運(yùn)行在 Office XP 或是 Office 2003 平臺上。至此到這里在功能的測試上也已經(jīng)比較圓滿的完成了! 5.3 系統(tǒng)維護(hù) 由于在開發(fā)本程序的時候我就特別注意軟件的后續(xù)維護(hù)和再開發(fā)上。因此極努力的想把它開發(fā)成一個 強(qiáng)內(nèi)聚、弱耦合、接口明確、意圖明晰的軟件 。對于程序里的功能我盡力把它們封裝在類的私有過程或私有函數(shù)里,這樣可以大大提高軟件的內(nèi)聚性,在各個功能模塊和窗體之間盡可能減少它們之間的調(diào)用關(guān)系,以減少軟件的耦合性。在軟件設(shè)計初期我就預(yù)留了接口用于調(diào)用另一個同學(xué)的模塊。為了保證兩人開發(fā)出的功能 模塊能在最后能順利地聯(lián)合。在一開始我就預(yù)先編了一個公共的“數(shù)據(jù)模華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 27 塊”以提高軟件連接數(shù)據(jù)庫能高效共享。并且給他規(guī)定一些如控件的命名規(guī)則,代碼的規(guī)范等。這些都大大提高了軟件后續(xù)的可維護(hù)性。 6 . 開發(fā)總結(jié) 本軟件的設(shè)計目的是在題庫建立管理維護(hù)和試卷生成方面為教學(xué)單位和人員提供方便和幫助。通過這幾個月的畢業(yè)設(shè)計,我學(xué)到很多以前沒有學(xué)到的 Delphi 開發(fā)技術(shù),在軟件工程學(xué)上更是取得了很大的進(jìn)步。經(jīng)過大量的測試和試用,作者深信本軟件達(dá)到了方便和實用的設(shè)計目的,并在軟件界面和易用實用等方面有著獨(dú)到之處。 雖然軟件基本達(dá) 到設(shè)計要求并且達(dá)到同行的先進(jìn)水平,但由于作者水平有限,軟件存在 bug 也是在所難免的 ,您的意見和建議將極大的幫助我改進(jìn)并完善軟件。真誠的希望你的參與。 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 28 參 考 文 獻(xiàn) 1 陳明 . 軟件工程學(xué)教程 .科技出版社, 2002 2 薩師煊,王珊 . 數(shù)據(jù)庫系統(tǒng)概論 . 第三版 . 高等教育出版社, 2000 3 飛思科技產(chǎn)品研發(fā)中心 . Delphi7數(shù)據(jù)庫應(yīng)用開發(fā) .電子工業(yè)出版社, 2003 4 飛思科技產(chǎn)品研發(fā)中心 . Delphi6開發(fā)者手冊 . 電子工業(yè)出版社 , 2002 5 申 旻 . Delphi 高手突破 . 清華大學(xué)出版社, 2002, 302 6 Steve Teixeira, Xaviver Pacheco 著,龍勁松,王瑜,謝尚書譯 . Delphi6 開發(fā)人員指南 . 機(jī)械工業(yè)出版社 .2003 7 喬林 .參透 Delphi Kylix . 中國鐵道出版社 .2003 8 李維 .Inside 深入核心 VCL 架構(gòu)剖析 . 電子工業(yè)出版社 .2004 9 張立科編寫組 .Windows API 函數(shù)參考手冊 .人民郵電出版社 .2002 嚴(yán)蔚敏,吳偉民 .數(shù)據(jù)結(jié)構(gòu) .第二版 .清華大學(xué)出版社 .2001 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 29 致 謝 我首先感謝我的指導(dǎo)老師韓老師,在她嚴(yán)格的要求下我懂得了開發(fā)軟件要有一種極其認(rèn)真負(fù)責(zé)的態(tài)度。無論做什么事都要大膽的去想去做,這樣會有好的創(chuàng)意,才能更有作為。特別是在大三的時候能在韓老師的指導(dǎo)參與“ 山西晉能電力有限公司 ”的大型軟件“電力管理系統(tǒng)”的開發(fā),在那里我學(xué)到了很多在課堂里學(xué)不到的軟件設(shè)計思想。使我的軟件開發(fā)水平提高了一個層次。 大學(xué)就要畢業(yè)了,在這里我還要特別感謝我的班主任張軍老師。在這四年的大學(xué)生活里,他給了我很多幫助。和他在一起我學(xué)到了很多 做人的道理。這些將會是我將來生活的寶貴經(jīng)驗。 在這里我還要感謝我們宿舍的其它 7個同學(xué)。他們和我共同生活了四年,在生活和學(xué)習(xí)上給了我很大的幫助。 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 30 譯 文 切換電路的連接設(shè)置的結(jié)果是保留了從發(fā)送端到接收端的包所通過的線路帶寬。其它的特性這一就是所有的包都沿同一個線路意味著如果包傳輸超過了時序那它將不能到達(dá)接收端 .由于沒有路徑用來進(jìn)行包交換,所以要想不同的包沿不同的路徑傳送就是能依靠網(wǎng)絡(luò)的條件了。這樣包即便是超過了時序它們也有可能到達(dá)的。 包交換技術(shù)比線路交換技術(shù)更能容錯。事實上,這也是它被發(fā)明的理由 !當(dāng)一個交換開頭被拉下,則所有使用它的線路將被切斷并且其余的包將不能再被傳送。此時如果在進(jìn)行包交換,包將在已選擇的路徑上停止交換。 預(yù)先建立一條路徑也開創(chuàng)預(yù)先保留帶寬的可能性。 如果帶寬被保留,那么當(dāng)一個包到達(dá)時, 通過 保留的帶寬 它可以被立即發(fā)送出去。假如沒有帶寬被保留用于包交換,那么所有的包將不得不等待著被轉(zhuǎn)發(fā)。 預(yù)先保留帶寬意味著當(dāng)一個包出現(xiàn)時 不會發(fā)生 擁塞 (除非 出現(xiàn)的包比預(yù)期的還多 )。 在另一方面 ,當(dāng)嘗試建立一條 電 路時 , 由于擁塞 , 嘗試 將會 失敗 。因此,在線路交換 (在設(shè)置時 )和包交換 (在包發(fā)送時 )的不同時間擁塞都 可能發(fā)生。 如果為特定的用戶建立一條線路那么當(dāng)這個用戶沒有數(shù)據(jù)傳送時,則這些保留下來的帶寬將被浪費(fèi)而不能用于其它用戶的傳輸。而包交換則不會浪費(fèi)帶寬,因此它在系統(tǒng)寬帶方面的應(yīng)用更有前景。理解電路交換和包交換的這種商業(yè)差別是極其重要的。這種商業(yè)差別是在質(zhì)保服務(wù)和浪費(fèi)資源相對不質(zhì)保服務(wù)和不浪費(fèi)資源的。 包交換是利用存儲器并向前發(fā)送的。包是先存儲在路由器的內(nèi)存里然后再發(fā)送到下一個路由器的。和電路交換一樣信息位也是連續(xù)不斷地通過導(dǎo)線傳輸?shù)?。存儲轉(zhuǎn)發(fā)技術(shù)增加了延遲時間。 另一個不同是電路交換是完全透明的。發(fā)送者和接收者 可以使用他們想要的任一比特速率,格式和幀同步 .這通信公司不知道也不關(guān)心這的。而在包交換中載體決定了基本的參數(shù)的。用一個簡單比喻它們就像一個是公路一個是鐵路。在以前,用戶決定介質(zhì)的大小,速度和特性。而后來這些都由通信公司做了的。這些都是透明的它允許聲音,數(shù)據(jù)和傳真共同存在于電話系統(tǒng)里。 電路交換和包交換的最后一個不同點(diǎn)是計費(fèi)方式。電路交換的計費(fèi)是按照傳統(tǒng)的距離和時間的。比如移動電話除打國際電話外距離是不列入計算的,而時間也只是列入一個簡單的計算 (例 :拔打 2000 分鐘電話比 1000 分鐘電話花費(fèi)的多并且晚上或周末也比平時來得便宜 )。時間對于包交換來說是沒有問題的,但是傳輸流量卻是個問華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 31 題。 ISPs 為家庭用戶的計費(fèi)方式基于按一個月的流量的一半的,這是因為它們用得相對較少并且他們的顧客也很好理解這種計費(fèi)方式。但是主干網(wǎng)絡(luò)中心的收費(fèi)是基于它們的流量的。這些不同列在圖 2-40里。 項目 電路交換 包交換 呼叫設(shè)置 需要 不需要 專用物理線路 是 否 每個包沿相同路徑 是 否 包的到達(dá)中有規(guī)則的 是 否 是否會致命的崩潰 是 否 帶寬利用 固定 動態(tài)分配 可能的時間堵塞 在設(shè)置時 在每個包時 可能浪費(fèi)帶寬 是 否 以存儲轉(zhuǎn)發(fā)進(jìn)行發(fā)送 否 是 透明性 是 否 收費(fèi) 按分鐘 按包 圖 2 40:比較電路交換網(wǎng)絡(luò)和包交換網(wǎng)絡(luò)的不同 電路交換和包交換是兩者都是非常重要的,我們將立即在詳細(xì)的資料里提及并描述它們之間各種不同的技術(shù)。 2.6 移動電話系統(tǒng) 傳統(tǒng)的電話的系統(tǒng)將不能滿足用戶的大量增長(即有一天實現(xiàn)了終端到終端的光纖連接)。人類在進(jìn)步,人們期望能在飛機(jī)上,汽車?yán)?,船上,足球場甚至在公園里跑步的時候也能打電話。在近幾年人們更是期望能在更多的地方發(fā)電子郵件和上網(wǎng)沖浪。因此有很多的人關(guān)心無線電話技術(shù)。在 下面的章節(jié)我們將用詳細(xì)的資料來學(xué)習(xí)這些主題。 無線電話可以分為基本的兩種:無繩電話和移動電話(有時也叫蜂窩電話)。無繩電話設(shè)備是由痤機(jī)和聽筒組成它們被安裝在用戶的家里。它們從不被應(yīng)用于網(wǎng)絡(luò),所以我們沒有辦法做進(jìn)一步的檢測。取而代之,我們將把焦點(diǎn)放在在聲音和數(shù)據(jù)通信上有廣泛應(yīng)用的移動系統(tǒng)上。 移動電話經(jīng)歷了三個不同的發(fā)展階段,每個階段都有不同的技術(shù): 1 模擬聲音 華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 32 2 數(shù)字聲音 3 數(shù)字聲音和數(shù)據(jù)(互聯(lián)網(wǎng),電子郵件, etc.) 雖然我們主要討論這系統(tǒng)技術(shù),但是我們也有必要注意政府和市場對它的巨大影響。第一 個移動電話系統(tǒng)是在美國由受美國國家聯(lián)邦通訊委員會 (FCC)委托的美國電話電報公司 (AT&T)設(shè)計的。結(jié)果在整個美國就有了一個簡單的 (模擬 )系統(tǒng)并且移動電話開始在加利福尼亞上市同時也在紐約得到應(yīng)用。相反的,當(dāng)移動電話來到歐洲時,由于每個國家都設(shè)計了自己的系統(tǒng),所以結(jié)局很慘敗。 當(dāng)數(shù)字技術(shù)到來時,歐洲從前面的失敗中吸收教訓(xùn),政府和郵政制定了簡單系統(tǒng)(GSM)的統(tǒng)一標(biāo)準(zhǔn),因此移動電話在歐洲的任何一個地方都是通用的。此時,美國政府決定不把標(biāo)準(zhǔn)商業(yè)化因而它失去了數(shù)字市場。這個決定導(dǎo)致不同的設(shè)備生產(chǎn)商生產(chǎn)出不同的移動電 話。結(jié)果現(xiàn)在美國有兩不可兼容的數(shù)字移動電話在使用 (加強(qiáng)了一家就會削弱另一家 )。 即使美國擁有移動電話的所有權(quán),但是在應(yīng)用上歐洲要遠(yuǎn)遠(yuǎn)超過美國的。原因之一就是整個歐洲擁有相同的簡單系統(tǒng)。然而更多的是由于美國和歐洲的基本電話數(shù)量不同。在美國移動電話和固定電話是共用的,因此對于用戶沒有辦法區(qū)分 (212)234-5678 到底是固定電話 (撥打是便宜的或者是免費(fèi)的 )還是移動電話 (撥打是昂貴的 )。為了使人們從使用電話中獲益,電話公司決定為引入呼叫而花自己的錢制造移動電話。結(jié)果導(dǎo)致,很多人怕由于呼叫而收到一大筆帳單而不愿意 買移動電話。在歐洲移動電話有特殊的區(qū)號 (如 800,900 之類的數(shù)字 ),所以它很快就得到了認(rèn)可。因而在一般的“叫方付費(fèi)”的原則在歐洲也被應(yīng)用于移動電話了 (除國際電話分開收費(fèi)外 )。 在歐洲采用頒布廣泛的已經(jīng)付費(fèi)的移動電話的影響巨大 (超過同地區(qū)的 75%)。移動電話可以在很多的商店里購買而不像購買收音機(jī)那樣需要很多手續(xù)。誰付費(fèi)誰使用,他們預(yù)先存入,比如 20 或 50 euro 并且在快用完的時候可以用 PIN 碼進(jìn)行再充值。結(jié)果在歐洲幾乎所有的青年和小孩都有一個 (預(yù)付費(fèi)的 )移動電話,這樣他們的父母就可以準(zhǔn)確的定位他們而不用去 擔(dān)心孩子們會用掉一大筆帳的。如果僅在偶而使用移動電話,那么它的使用是基本免費(fèi)的因為這里有月租或者預(yù)先支付呼叫。 2.6.1 第一代移動電話:模擬聲音 移動電話充分體現(xiàn)了政治和市場的特征。讓我們來看一下它的技術(shù)吧。它是從簡單的系統(tǒng)開始的。在 20 世紀(jì)的初,移動無線電話被偶而應(yīng)用于海上或軍事通信中。在 1946 年,第一個基站被安置在 St.Louis。這個系統(tǒng)被安置在高層建筑上,它華北工學(xué)院計算機(jī)科學(xué)與技術(shù)系 33 使用一個簡單的大的發(fā)送機(jī)并且有了用于發(fā)送和接收的簡單的通道。像這樣的系統(tǒng)稱做被動式系統(tǒng),從 1950 開始它就被安裝在很多的城市了。 可較驗的收音機(jī),出租車,警車還有電視也廣泛采用這種技術(shù)。 在 1960 年, IMTS(改良的移動電話系統(tǒng))被發(fā)明。它仍然使用高達(dá) 200 瓦的發(fā)送器,發(fā)送器被安置在山上,不過此時已經(jīng)有了兩各不同的頻率了,一種用來發(fā)送,另一種用來接收,所以這個呼叫按鈕就可不要了。相比信號出站移動電話的信號入站是通過不同的通道的,因此移動用戶不會互相聽到 (不像應(yīng)用在出租車上被叫系統(tǒng) )。 IMTS支持從 150 MHz到 450 MHz的 23 條通道。由于通道太少,用戶經(jīng)常要等很長時間才能聽到拔號音。也由于小山上的發(fā)送器的功率太 大,為了不互相干擾鄰近的系統(tǒng)不得不與它相距幾百千米??偠灾?,這有限的容量使用這系統(tǒng)有點(diǎn)不合實際應(yīng)用。 華北工學(xué)院計算機(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ī)科學(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ī)科學(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ī)科學(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 ,there is no way
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版簡單工程車合同
- 2024預(yù)制梁場租賃及安裝服務(wù)合同3篇
- 2024版版權(quán)授權(quán):DJ藝人合同3篇
- 2024版企業(yè)并購合同:金融行業(yè)整合2篇
- 2024版標(biāo)準(zhǔn)租車協(xié)議3篇
- 動物學(xué)知到智慧樹章節(jié)測試課后答案2024年秋寧波大學(xué)
- 2024版技術(shù)服務(wù)合同模塊
- 2025年度國畫收藏品保險服務(wù)合同3篇
- 廣州醫(yī)保知識培訓(xùn)課件
- 銅礦建設(shè)延期合同
- 2025屆高考數(shù)學(xué)一輪復(fù)習(xí)建議-函數(shù)與導(dǎo)數(shù)專題講座課件
- 2024-2030年中國高性能混凝土行業(yè)銷售規(guī)模與投資盈利預(yù)測報告
- 心電圖基本知識
- 江蘇省常州市教育學(xué)會2023-2024學(xué)年高一上學(xué)期期末考試化學(xué)試題 (解析版)
- 中醫(yī)兒科護(hù)理課件
- 部編人教版二年級道德與法治上冊全冊教學(xué)設(shè)計(含反思)
- 2024年數(shù)學(xué)三年級上冊乘法分配律基礎(chǔ)練習(xí)題(含答案)
- 中煤電力有限公司招聘筆試題庫2024
- (必練)廣東省生態(tài)環(huán)境監(jiān)測專業(yè)技術(shù)人員大比武理論試題庫(含答案)
- 四年級數(shù)學(xué)脫式計算練習(xí)題100道
- GB/T 18029.1-2024輪椅車第1部分:靜態(tài)穩(wěn)定性的測定
評論
0/150
提交評論