第13章 實(shí)用項(xiàng)目開發(fā)技術(shù)簡介_第1頁
第13章 實(shí)用項(xiàng)目開發(fā)技術(shù)簡介_第2頁
第13章 實(shí)用項(xiàng)目開發(fā)技術(shù)簡介_第3頁
第13章 實(shí)用項(xiàng)目開發(fā)技術(shù)簡介_第4頁
第13章 實(shí)用項(xiàng)目開發(fā)技術(shù)簡介_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

第13章實(shí)用項(xiàng)目開發(fā)技術(shù)簡介主要內(nèi)容圖形應(yīng)用菜單設(shè)計(jì)技術(shù)程序的組織與管理軟件開發(fā)過程小結(jié)2頁13-1圖形應(yīng)用圖形與硬件文本與圖形圖形設(shè)計(jì)C語言動畫設(shè)計(jì)3頁13-1-1圖形與硬件圖形與計(jì)算機(jī)系統(tǒng)硬件有著密切的關(guān)系。顯示器的工作方式有兩種:一是文本方式,二是圖形方式。要在計(jì)算機(jī)屏幕上顯示圖形,就必須在圖形方式下進(jìn)行。屏幕上所顯示的圖形是由像素組成的。像素代表了顯示器的分辨率。像素個(gè)數(shù)越多,顯示器的分辨率就越高。目前在微機(jī)上所配置的顯示器分辨率有640×480、800×600、1024×768等。4頁顯示器分辨率5頁13-1-2文本與圖形文本方式下的編程函數(shù)圖形方式下的編程函數(shù)6頁字符的輸出與操作讀寫字符函數(shù):cprintf()——將格式化的輸出送到屏幕。cputs()——將一個(gè)字符串送到屏幕。putch()——將一個(gè)字符送到屏幕。getche()——讀一個(gè)字符并回顯到屏幕上。在屏幕上操作字符和光標(biāo)函數(shù):clrscr()——清除窗口內(nèi)容。clreol()——從光標(biāo)處至行尾清空。delline()——刪除光標(biāo)所在行。gotoxy()——光標(biāo)定位。insline()——在光標(biāo)所在行下方插入一空行。movetext()——將屏幕上一個(gè)區(qū)域的內(nèi)容復(fù)制到另一個(gè)區(qū)域。gettext()——將屏幕上一個(gè)區(qū)域的內(nèi)容復(fù)制進(jìn)內(nèi)存。puttext()——將內(nèi)存中一塊區(qū)域的內(nèi)容復(fù)制到屏幕上的一個(gè)區(qū)域。7頁窗口和方式控制函數(shù)textmode()——將屏幕設(shè)置成字符方式。window()——定義一個(gè)窗口(文本)。8頁屬性控制函數(shù)textcolor()——設(shè)置文本前景顏色。textbackground()——設(shè)置文本背景顏色。textattr()——同時(shí)設(shè)置文本的前景與背景顏色。highvideo()——將字符設(shè)置成高亮度。lowvideo()——將字符設(shè)置成低亮度。normvideo()——將字符設(shè)置成正常亮度。9頁狀態(tài)查詢函數(shù)wherex()——取當(dāng)前對象所在的x坐標(biāo)值。wherey()——取當(dāng)前對象所在的y坐標(biāo)值。所有這些函數(shù)原型說明都在conio.h包含文件中。10頁圖形方式下的編程函數(shù)TurboC提供了一個(gè)具有幾十個(gè)圖形函數(shù)的函數(shù)庫graphics.lib。其原型都在包含文件graphics.h中列出。除了這兩個(gè)文件,TurboC還提供了一組圖形設(shè)備驅(qū)動程序(*.BGI)和一組矢量字體文件(*.CHR)。圖形庫只有一個(gè),它適用于TurboC的所有6種存儲模式。因此,graphics.lib庫中的每一個(gè)函數(shù)都是far函數(shù),圖形函數(shù)所用的指針也都是far指針。為使這些函數(shù)能正常工作,需要在每個(gè)使用圖形函數(shù)的模塊前面加上包含預(yù)處理語句:#include<graphics.h>11頁圖形系統(tǒng)控制函數(shù)closegraph()——關(guān)閉圖形狀態(tài),返回文本狀態(tài)。detectgraph()——測試硬件,決定使用哪一個(gè)圖形驅(qū)動器和使用哪種圖形方式。graphdefaults()——重置所有圖形系統(tǒng)變量為默認(rèn)的設(shè)置。getgraphmode()——返回當(dāng)前的圖形方式。initgraph()——初始化圖形系統(tǒng),將硬件設(shè)置成圖形方式。restorecrtmode()——恢復(fù)initgraph之前的屏幕方式。setgraphbufsize()——聲明內(nèi)部圖形緩沖區(qū)的大小。setgraphmode()——選擇指定的圖形方式,清除屏幕,恢復(fù)所有的默認(rèn)值。12頁畫線與填充函數(shù)arc()——畫一個(gè)圓弧。circle()——畫一個(gè)圓。drawpoly()——畫一個(gè)多邊形。ellipse()——畫一個(gè)橢圓。line()——畫一條直線。lineto()——從當(dāng)前圖形坐標(biāo)位置開始到坐標(biāo)(x,y)處結(jié)束畫一條直線。moveto()——將像素坐標(biāo)移到(x,y)處。moverel()——將當(dāng)前像素坐標(biāo)移動一個(gè)相對距離。rectangle()——畫一矩形。fillpoly()——畫并填充一個(gè)多邊形。pieslice()——畫并填充一個(gè)扇形。13頁接上floodfill()——填充一個(gè)封閉區(qū)域。bar()——畫并填充一個(gè)二維條形。bar3d()——畫并填充一個(gè)三維條形。setfillstyle()——設(shè)置填充圖案和顏色。setlinestyle()——設(shè)置當(dāng)前畫線寬度和式樣。getarccords()——返回上次調(diào)用arc或ellipse的坐標(biāo)。getaspectratio()——返回當(dāng)前圖形方式的長寬比。getlinesettings()——返回當(dāng)前的畫線式樣、畫線模式和畫線寬度。getfillpattern()——返回用戶定義的填充圖案。getfillsettings()——返回有關(guān)當(dāng)前填充圖案和填充顏色的信息。14頁管理屏幕和視口函數(shù)cleardevice()——清除屏幕。setactivepage()——設(shè)置圖形輸出的活動頁。setvisualpage()——設(shè)置可見圖形頁面。clearviewport()——清除當(dāng)前視口。getviewsettings()——返回關(guān)于當(dāng)前視口的信息。setviewport()——為圖形的輸出設(shè)置當(dāng)前輸出視口。getimage()——將指定區(qū)域的位圖像存入內(nèi)存。imagesize()——返回保存屏幕的一個(gè)矩形區(qū)域所需的字節(jié)數(shù)。putimage()——將用getimage()保存的位圖像放到屏幕上。getpixel()——取得(x,y)處的像素顏色。putpixel()——在(x,y)處畫一像素。15頁圖形方式下的字符輸出函數(shù)gettextsettings()——返回當(dāng)前字體、方向、大小和對齊方式。outtext()——在當(dāng)前位置輸出一個(gè)字符串。outtextxy()——在指定位置輸出一個(gè)字符串。registerbgifout()——登錄連接進(jìn)來的或用戶裝入的字體文件*.BGI。settextjustify()——設(shè)置outtext和outtextxy所用的對齊方式編碼值。settextstyle()——設(shè)置當(dāng)前字體、式樣和字符放大因子。setusercharsize()——設(shè)置當(dāng)前矢量字體寬度和高度的比例。textheight()——返回以像素為單位的字符串高度。textwidth()——返回以像素為單位的字符串寬度。16頁顏色控制函數(shù)getbkcolor()——返回當(dāng)前背景顏色。getcolor()——返回當(dāng)前畫線顏色。getmaxcolor()——返回當(dāng)前圖形方式下最大的可用顏色值。getpalette()——返回當(dāng)前調(diào)色板及其尺寸。setallpalette()——按指定顏色改變所有調(diào)色板的顏色。setbkcolor()——設(shè)置當(dāng)前背景顏色。setcolor()——設(shè)置當(dāng)前畫線顏色。setpalette()——按參數(shù)所指定的顏色改變一個(gè)調(diào)色板的顏色。17頁圖形方式下的錯(cuò)誤處理函數(shù)grapherrormsg()——返回指定的errorcode錯(cuò)誤信息字符串。graphresult()——返回上一次遇到問題的圖形操作錯(cuò)誤代碼。18頁狀態(tài)查詢函數(shù)getaspectratio()——返回圖形屏幕的長寬比。getmaxx()——返回當(dāng)前x的分辨率。getmaxy()——返回當(dāng)前y的分辨率。getx()——返回當(dāng)前像素x坐標(biāo)。gety()——返回當(dāng)前像素y坐標(biāo)。19頁13-1-3圖形設(shè)計(jì)設(shè)置圖形方式繪制圖形關(guān)閉圖形方式20頁設(shè)置圖形方式initgraph()是圖形方式初始化函數(shù),用于初始化圖形系統(tǒng),這是圖形設(shè)計(jì)的第一步。initgraph()函數(shù)的原型說明為:voidfarinitgraph(intfar*driver,intfar*mode,charfar*path);21頁參數(shù)說明driver指定圖形方式的代碼,可以直接指定一種圖形方式,如1~10,也可以讓系統(tǒng)自動去測試所使用的機(jī)器環(huán)境提供的是哪一種圖形適配器,這時(shí)需要將driver設(shè)置成DETECT。mode用來設(shè)置分辨率。如果driver設(shè)置成DETECT,則mode將自動根據(jù)driver測試出的圖形適配器選擇并指定一個(gè)適合于這種圖形適配器的最高分辨率。path用來指定圖形接口程序所在的路徑,即指定*.BGI存放的路徑。如在c:\tc\bgi目錄下,應(yīng)寫成“c:\\tc\\bgi”,若省略path則在系統(tǒng)指定的路徑和當(dāng)前目錄下查找.BGI文件。22頁繪制圖形在圖形方式下使用各種繪圖函數(shù)繪制圖形,這是圖形設(shè)計(jì)的第二步。屏幕左上角坐標(biāo)為(0,0),屏幕右下角坐標(biāo)為(x_max,y_max)。如具有640×480像素的顯示器,它的x坐標(biāo)值為0~639,y坐標(biāo)為0~479。23頁關(guān)閉圖形方式closegraph()函數(shù)用來關(guān)閉圖形方式返回文本方式,這是圖形設(shè)計(jì)的第三步。closegraph()函數(shù)原型說明為:voidfarclosegraph(void);24頁13-1-4C語言動畫設(shè)計(jì)用隨機(jī)函數(shù)實(shí)現(xiàn)動畫的技巧用putimage函數(shù)實(shí)現(xiàn)動畫的技巧25頁用隨機(jī)函數(shù)實(shí)現(xiàn)動畫的技巧在一些特殊的C語言動畫技術(shù)中,可以利用隨機(jī)函數(shù)intrandom(intnum)取一個(gè)0~num范圍內(nèi)的隨機(jī)數(shù),經(jīng)過某種運(yùn)算后,再利用C語言的作圖語句產(chǎn)生各種大小不同的圖形,也能產(chǎn)生很強(qiáng)的移動感。下面程序就是利用隨機(jī)函數(shù)來產(chǎn)生動畫應(yīng)用。該程序運(yùn)行后,屏幕中間繪出一臺微型計(jì)算機(jī)(以下簡稱微機(jī)),微機(jī)下方同時(shí)顯示“computer”的放大字形,在畫出微機(jī)的小屏幕內(nèi),產(chǎn)生各種大小不同、顏色各異的矩形,這些矩形互相覆蓋,給人以極強(qiáng)的動畫感。程序中改變x1、x2、y1、y2的值,能將圖形移動到屏幕的任何位置,改變x、y的值,能將圖形放大或縮小。26頁用putimage函數(shù)實(shí)現(xiàn)動畫的技巧在TurboC的圖形函數(shù)中,有幾個(gè)函數(shù)可完成動畫的顯示:getimage(intleft,inttop,intright,intbottom,voidfar*buf)函數(shù)將屏幕圖形部分復(fù)制到由buf所指向的內(nèi)存區(qū)域。imagesize函數(shù)用來確定存儲圖形所需的字節(jié)數(shù),所定義的字節(jié)數(shù)根據(jù)實(shí)際需要可以定義得多一些。putimage函數(shù)可以將getimage函數(shù)存儲的圖形重寫在屏幕上。27頁13-2菜單設(shè)計(jì)技術(shù)下拉式菜單的設(shè)計(jì)選擇式菜單的設(shè)計(jì)28頁13-2-1下拉式菜單的設(shè)計(jì)下拉式菜單是一個(gè)窗口菜單,它具有一個(gè)主菜單,其中包括幾個(gè)選擇項(xiàng),主菜單的每一項(xiàng)又可以分為下一級菜單,這樣逐級下分,用一個(gè)個(gè)窗口的形式彈出在屏幕上,一旦操作完畢又可以從屏幕上消失,并恢復(fù)原來的屏幕狀態(tài)。設(shè)計(jì)下拉式菜單的關(guān)鍵就是在下級菜單窗口彈出之前,要將被該窗口占用的屏幕區(qū)域保存起來,然后產(chǎn)生這一級菜單窗口,并可用方向鍵選擇菜單中各項(xiàng),用回車鍵來確認(rèn)。如果某選擇項(xiàng)還有下級菜單,則按同樣的方法再產(chǎn)生下一級菜單窗口。29頁13-2-2選擇式菜單的設(shè)計(jì)所謂選擇式菜單,就是在屏幕上出現(xiàn)一個(gè)菜單,操作者可根據(jù)菜單上提供的數(shù)字或字母按相應(yīng)的鍵去執(zhí)行特定的程序,當(dāng)程序執(zhí)行完后又回到主菜單上。這種菜單編制簡單,操作方便,使用靈活,尤其適用于大型管理程序。如果在自動批處理文件上加入這種菜單后,操作者可根據(jù)菜單上的提示,進(jìn)行相應(yīng)的操作,這樣可以簡化許多步驟,對一般微機(jī)用戶來說是比較適合的。30頁13-3程序的組織與管理TurboC提供了一種程序組織和管理的方法,即建立工程文件的方法。在TurboC集成開發(fā)環(huán)境下提供了一個(gè)工程文件Project菜單,也稱工程萊單。一個(gè)工程文件中包含多個(gè)源文件及目標(biāo)文件的列表,C語言編譯系統(tǒng)根據(jù)該文件列表將多個(gè)源文件及目標(biāo)文件編譯連接成一個(gè)可執(zhí)行文件。工程文件是一種文本文件,可以用任何一種編輯器來建立,工程文件是以.prj為擴(kuò)展名的文件。31頁13-4軟件開發(fā)過程下拉式菜單的設(shè)計(jì)選擇式菜單的設(shè)計(jì)可行性和需求分析系統(tǒng)設(shè)計(jì)軟件編碼軟件測試32頁軟件開發(fā)過程33頁13-4-1可行性和需求分析可行性分析大致要考慮以下幾方面。經(jīng)濟(jì)可行性。技術(shù)可行性。人力資源。其他因素。34頁需求分析按常規(guī)可以細(xì)分為下列步驟需求獲取。需求分析。編寫需求說明書。需求確認(rèn)。35頁需求分析時(shí)要注意下列不利因素和用戶交流不夠。用戶需求的不斷變化、增加。用戶需求模棱兩可。過于簡化的需求說明。不必要的特性。不準(zhǔn)確的特性。36頁抽象抽象體現(xiàn)了人類本身的思維習(xí)慣,我們借助于計(jì)算機(jī)軟件來解決現(xiàn)實(shí)問題時(shí),首先必須對問題的相關(guān)具體事務(wù)進(jìn)行抽象,并建立一個(gè)計(jì)算機(jī)軟件模型,這個(gè)模型可以被程序設(shè)計(jì)語言描述出來。在軟件設(shè)計(jì)中具有3種抽象形式:抽象數(shù)據(jù)、抽象過程和抽象控制。抽象數(shù)據(jù)是對客觀世界具體事物的抽象表示。

37頁13-4-2系統(tǒng)設(shè)計(jì)抽象模塊化求精系統(tǒng)設(shè)計(jì)38頁抽象數(shù)據(jù)39頁模塊化模塊化設(shè)計(jì)的方法已被廣泛地采用,軟件的體系結(jié)構(gòu)體現(xiàn)了模塊化的概念。一個(gè)完整的軟件系統(tǒng)被劃分為獨(dú)立命名并具有獨(dú)立功能的模塊構(gòu)建,它們集成到一起,實(shí)現(xiàn)了整個(gè)系統(tǒng)的功能需求。模塊化設(shè)計(jì)過程有兩種相反的思路:自頂向下和自底向上。自頂向下是一個(gè)逐步分解的過程,自底向上是一個(gè)逐步集成的過程。40頁應(yīng)使模塊具有下列特征可分解性??山M裝性。獨(dú)立性。保護(hù)性。41頁模塊化42頁求精自頂向下的設(shè)計(jì)策略采用逐步求精的方法,程序的體系結(jié)構(gòu)模塊逐步分解形成。最初是一些較為宏觀的模塊,這些模塊進(jìn)一步劃分為一組較為具體的小模塊,這個(gè)求精過程可以反復(fù)多次,直到最后形成程序設(shè)計(jì)語言的函數(shù)、語句或表達(dá)式。求精設(shè)計(jì)是一個(gè)推敲的過程,一開始定義幾個(gè)較為宏觀的概念,沒有提供有關(guān)功能的內(nèi)部工作流程和數(shù)據(jù)結(jié)構(gòu),在求精過程中,功能被細(xì)化,并提出越來越多、越來越具體的技術(shù)和實(shí)現(xiàn)細(xì)節(jié)。隨著求精過程的深入,模塊的數(shù)量在遞增,代碼的可復(fù)用程度也在增加。程序設(shè)計(jì)流行一個(gè)原則——小即優(yōu)美。43頁系統(tǒng)設(shè)計(jì)軟件系統(tǒng)設(shè)計(jì)是一個(gè)多步驟的過程,其主要任務(wù)是從用戶的需求中綜合出數(shù)據(jù)結(jié)構(gòu)的表示、程序結(jié)構(gòu)、程序接口和過程的細(xì)節(jié)。程序是由數(shù)據(jù)驅(qū)動的,數(shù)據(jù)設(shè)計(jì)因此是軟件系統(tǒng)設(shè)計(jì)的第一步,系統(tǒng)設(shè)計(jì)首先要從用戶的應(yīng)用和需求領(lǐng)域中,提煉出數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)直接影響程序結(jié)構(gòu)和程序流程。44頁13-4-3軟件編碼編程規(guī)范代碼保護(hù)45頁編程規(guī)范編程規(guī)范用來約束不同程序員的編程習(xí)慣,使整個(gè)系統(tǒng)的軟件代碼具有一致的良好的設(shè)計(jì)風(fēng)格。在編程規(guī)范中可以制定許多對編碼的具體要求,下面我們將討論其中的一些較為基本的規(guī)范。首先,要指定編程語言及其標(biāo)準(zhǔn)。其次,要為系統(tǒng)中的模塊及子模塊制定代碼和編號。46頁代碼保護(hù)有人說完全不會出錯(cuò)誤的程序是沒有使用價(jià)值的,錯(cuò)誤總是要伴隨程序存在的,會發(fā)生意想不到的情況。無論編寫代碼的程序員怎么小心也不能完全避免,但使用一些有效的代碼保護(hù)方法,可以大大地減少和抵御異常錯(cuò)誤。其中,程序員在編碼中養(yǎng)成一些良好的習(xí)慣,對于提高軟件質(zhì)量、排除錯(cuò)誤具有舉足輕重的作用。47頁13-4-4軟件測試單元測試。單元測試對軟件模塊單元進(jìn)行驗(yàn)證,只有這些構(gòu)成軟件系統(tǒng)的零部件工作良好,才能進(jìn)行下一步的測試工作。集成測試。單元測試通過以后,將軟件模塊集成起來進(jìn)行測試。集成測試可以檢查各個(gè)模塊之間的接口是否存在問題。確認(rèn)測試。翻開軟件需求文檔,對照其中的規(guī)約,來確認(rèn)軟件是否滿足文檔中描述的功能要求。系統(tǒng)測試。軟件只是整個(gè)計(jì)算機(jī)系統(tǒng)的一部分,還需將軟件放到其應(yīng)用環(huán)境(包括各種硬件設(shè)備)進(jìn)行系統(tǒng)測試。48頁13-5小結(jié)圖形與計(jì)算機(jī)系統(tǒng)硬件有著密切的關(guān)系。顯示器的工作方式有兩種:一種是文本方式,另一種是圖形方式。屏幕上所顯示的圖形是由像素組成的。像素代表了顯示器的分辨率。像素個(gè)數(shù)越多,顯示器的分辨率就越高。目前在微機(jī)上所配置的顯示器分辨率有640×480、800×600、1024×768等。顯示器一定和圖形功能卡(又叫圖形適配器)配套使用才能發(fā)揮它的圖形功能。VGA/EGA是當(dāng)前最流行的圖形適配器。49頁接上窗口是文本方式下在屏幕上所定義的一個(gè)矩形區(qū)域。視口是在圖形方式下在屏幕上所定義的一個(gè)矩形區(qū)域。文本方式下的編程函數(shù)有4類:字符的輸出與操作、窗口和方式控制函數(shù)、屬性控制函數(shù)和狀態(tài)查詢函數(shù)。圖形方式下的編程函數(shù)。TurboC提供了一個(gè)具有幾十個(gè)圖形函數(shù)的函數(shù)庫graphics.lib。其原型都在包含文件graphics.h中列出。除了這兩個(gè)文件,TurboC還提供了一組圖形設(shè)備驅(qū)動程序(*.BGI)和一組矢量字體文件(*.CHR)。TurboC圖形函數(shù)庫中所提供的函數(shù)包括7類:圖形系統(tǒng)控制函數(shù)、畫線與填充函數(shù)、管理屏幕和視口函數(shù)、圖形方式下的字符輸出函數(shù)、顏色控制函數(shù)、圖形方式下的錯(cuò)誤處理函數(shù)和狀態(tài)查詢函數(shù)。50頁接上TurboC圖形設(shè)計(jì)的步驟。設(shè)置圖形方式。initgraph()是圖形方式初始化函數(shù),用于初始化圖形系統(tǒng),這是圖形設(shè)計(jì)的第一步。繪制圖形。在圖形方式下使用各種繪圖函數(shù)繪制圖形,這是圖形設(shè)計(jì)的第二步。關(guān)閉圖形方式。closegraph()用來關(guān)閉圖形方式返回文本方式,這是圖形設(shè)計(jì)的第三步。51頁接上用隨機(jī)函數(shù)實(shí)現(xiàn)動畫的技巧。在一些特殊的C語言動畫技術(shù)中,可以利用隨機(jī)函數(shù)intrandom(intnum)取一個(gè)0~

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論