版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第13章C語言綜合應(yīng)用程序設(shè)計13.1多模塊程序設(shè)計基礎(chǔ)13.2圖形處理基礎(chǔ)13.3操作系統(tǒng)接口13.4C程序中的漢字顯示技術(shù)111.1多模塊程序設(shè)計13.1多模塊程序設(shè)計基礎(chǔ)一.多模塊程序的建立使用多模塊編程技術(shù)的處理過程大致如下:首先將一個大型程序根據(jù)其功能合理地劃分為若干個小的源程序,每個小源程序均以程序文件(文件擴展名為.C)的形式保存在磁盤上。例如,一個較在程序應(yīng)該分解成、、、...等多個源程序,各自獨立地保存在磁盤上。這些源程序可以進(jìn)行單獨編譯,形成.OBJ文件,然后將這些文件組合成一個大的程序。2#include<stdio.h>#include””/*將源程序包含到源程序中*/voidmain(){ ┇A2(); ┇}為:#include<stdlib.h>voidA2(){┇}例如,一個大型程序分解為、兩個小源程序.1.include方法為:11.1多模塊程序設(shè)計3在TurboC中,可以建立一個工程文件(文件擴展名為.prj),將各個源程序模塊的文件名包含其中。再用編譯器進(jìn)行編譯,將工程文件中指定的多個文件進(jìn)行編譯,生成多個目標(biāo)文件和一個可執(zhí)行的文件。2.建立project文件當(dāng)某個文件有錯時,例如,有錯誤時,編譯器會報告錯誤。用戶可對進(jìn)行修改,修改后再編譯時,編譯器只會對進(jìn)行重新編譯,其它模塊不再被編譯,原來生成的目標(biāo)文件仍可使用。11.1多模塊程序設(shè)計4【例13-1】從鍵盤上輸入兩個整數(shù),輸出最大值、最小值及平均值。分析:◆在多模塊設(shè)計中,首先是源程序拆分成幾個小的源程序,每個小的源程序完成一個簡單的功能。◆這里,可將源程序文件分成4個小源程序:、、和。其中是主函數(shù),它的功能是從鍵盤輸入兩個整數(shù)i,j,然后分別調(diào)用函數(shù)max、min和average,最后在主函數(shù)中輸出最大值、最小值及平均值。文件、和分別為求兩個整數(shù)的最大值、最小值和平均值。11.1多模塊程序設(shè)計5(1)建立一個以.prj為擴展名的工程文件建立.prj工程文件與編寫源程序的方法相同,只是這個文件的每行都是C的源程序名,例如文件內(nèi)容為:/*源程序的擴展名.c可以省略*/然后以.prj為擴展名將以上文件存盤,例如文件名為。11.1多模塊程序設(shè)計6(2)對工程文件處理在主菜單窗口下,選擇菜單項Project/Projectname,系統(tǒng)彈出一個如圖13-1所示的窗口。這時,可在該窗口直接輸入文件名或通過通配符選擇文件。然后按熱鍵Ctrl-F9或選擇菜單項Compile/CompiletoOBJ,即可對文件進(jìn)行編譯、連接,最后生成同名的可執(zhí)行文件。(3)選擇菜單項Run/Run,運行文件,11.1多模塊程序設(shè)計7二。程序模塊之間的通信一個大型程序分解成若干個程序模塊后,各個模塊之間常常需要相互聯(lián)系,一個模塊中的函數(shù)可能要調(diào)用另一個模塊中的函數(shù);函數(shù)間也常常需要傳遞參數(shù),返回處理結(jié)果。因此,在多模塊編程中,需要解決模塊之間的通信問題。在C語言的多模塊編程中,模塊間通信往往使用外部變量。function1()/**/{externintstudent;…}externintstudent;/*file2.*/fun1(){student=50;…}11.1多模塊程序設(shè)計813.2圖形處理基礎(chǔ)一.圖形程序運行的條件顯示器的圖形驅(qū)動程序主要有:att.bgi、cga.bgi、egavga.bgi、herc.bgi、ibm8514.bgi、pc3270.bgi、bgiobj.exe.圖形程序運行的基本條件是:將相應(yīng)的顯示驅(qū)動程序裝入內(nèi)存運行。在C語言中,可通過調(diào)用函數(shù)initgraph對圖形系統(tǒng)進(jìn)行初始化來實現(xiàn)。11.2圖形處理基礎(chǔ)9二.基本圖形處理函數(shù)及基本圖形處理方法圖形屏幕的坐標(biāo)與象素點屏幕左上角(0,0)右下角(x,y)xyx方向y方向11.2圖形處理基礎(chǔ)101.圖形系統(tǒng)初始化函數(shù)(1)顯示模式控制函數(shù)initgraphvoidfarinitgraph(intfar*graphdriver,intfar*graphmode,charfar*path);intgraphdriver=EGA;intgraphmode=EGAHI;initgraph(&graphdriver,&graphmode,”\\tc”);intgraphdriver=DETECT;intgraphmode;intgraph(&graphdriver,&graphmode,"\\tc");11.2圖形處理基礎(chǔ)11(2)檢測顯示器硬件函數(shù)detectgraphvoidfardetectgraph(intfar*graphdriver,intfar*graphmode);(3)清屏函數(shù)cleardevicevoidfarcleardevice(void);(4)恢復(fù)文本顯示方式(或關(guān)閉圖形系統(tǒng))函數(shù)closegraphvoidfarclosegraph(void);11.2圖形處理基礎(chǔ)12voidfarrestorecrtmode(void);(5)恢復(fù)文本工作模式函數(shù)restorecrtmode(6)設(shè)置圖形工作模式函數(shù)setgraphmodevoidfarsetgraphmode(void);11.2圖形處理基礎(chǔ)132.基本圖形處理函數(shù)(1)畫點、線函數(shù)①畫點函數(shù)putpixelvoidfarputpixel(intx,inty,intcolor);②畫線函數(shù)linevoidfarline(intstartx,intstarty,intendx,intendy);例:編程,從在屏幕的左上角到屏幕的右下角畫一條直線。11.2圖形處理基礎(chǔ)14(2)畫多邊形、矩形和條形圖函數(shù)①畫多邊形函數(shù)drawpolyvoidfardrawpoly(intnumpoints,intfar*points);②畫矩形函數(shù)rectanglevoidfarrectangle(intleft,inttop,intright,intbottom);③畫實心條形圖函數(shù)barvoidfarbar(intleft,inttop,intright,intbottom);11.2圖形處理基礎(chǔ)15④畫三維條形圖函數(shù)bar3voidfarbar3d(intleft,inttop,intright,intbottom,intdepth,inttopflag);depth(left,top)(right,bootom)topflag=1(a)depth(left,top)(right,bootom)topflag=0(b)圖13-3函數(shù)bar3d參數(shù)的含義11.2圖形處理基礎(chǔ)16(3)畫圓、圓弧、扇形、橢圓函數(shù)①畫圓函數(shù)circlevoidfarcircle(intx,inty,intradius);②畫圓弧函數(shù)arcvoidfararc(intx,inty,intstart,intend,intradius);③畫扇形函數(shù)pieslicevoidfarpieslice(intx,inty,intstart,intend,intradius);④畫橢圓函數(shù)ellipsevoidfarellipse(intx,inty,intstart,intend,intxradius,intyradius);11.2圖形處理基礎(chǔ)17起始角=0結(jié)束角=起始角和結(jié)束角注意:在TurboC中對于角的規(guī)定是:屏幕x軸方向為0度,當(dāng)半徑從此處逆時針方向旋轉(zhuǎn)時,則依次是90度、180度、270度。當(dāng)為360度時,和x軸正向重合,即旋轉(zhuǎn)了一周.11.2圖形處理基礎(chǔ)183.顏色控制函數(shù)在初始化圖形系統(tǒng)時,函數(shù)initgraph的參數(shù)graphmode用來確定屏幕顯示模式,也就是用來選擇“調(diào)色板”。屏幕上顯示出的點、線、面的顏色稱為前景色,而襯托它們的背景顏色稱為背景色。模
式調(diào)色板號顏色值0123CGAC0CGAC1CGAC2CGAC30123背景色背景色背景色背景色綠青淡綠淡青紅洋紅淡紅淡洋紅黃白棕淡灰11.2圖形處理基礎(chǔ)1916個標(biāo)準(zhǔn)色及其顏色值顏色值顏色宏
名顏色值顏色宏
名01234567黑藍(lán)綠青紅洋紅棕淺灰BLACKBLUEGREENCYANREDMAGENTABROWNLIGHTGRAY89101112131415深灰淡藍(lán)淡綠淡青淡紅淡洋紅黃白DARKGRAYLIGHTBLUELIGHTGREENLIGHTCYANLIGHTREDLIGHTMAGENTAYELLOWWHITE11.2圖形處理基礎(chǔ)20(1)前景顏色設(shè)置函數(shù)setcolorvoidfarsetcolor(intcolor);(2)背景顏色設(shè)置函數(shù)setbkcolorvoidfarsetbkcolor(intcolor);(3)填色函數(shù)setfillstylevoidfarsetfillstyle(intpattern,intcolor);(4)封閉圖形的填充函數(shù)floodfillvoidfarfloodfill(intx,inty,intbordercolor);例,設(shè)計一個簡單動畫,將一個三維條形圖從屏幕左上角向右下角移動。11.2圖形處理基礎(chǔ)214.視口操作函數(shù)在圖形工作方式下,用戶可以在屏幕上設(shè)置一個窗口,該窗口稱為視口(viewport)。視口中坐標(biāo)也是以其左上角為參考點,每個視口的左上角坐標(biāo)也為(0,0),它與物理屏幕坐標(biāo)(左上角為(0,0)無關(guān),(0,0)
(400,150)(200,100)(200,50)11.2圖形處理基礎(chǔ)22(1)在屏幕上設(shè)置視口的函數(shù)setviewportvoidfarsetviewport(intx1,inty1,intx2,inty2,intclipflag);(2)視口清除函數(shù)clearviewportvoidfarclearviewport(void);例,利用視口的設(shè)置,設(shè)計一個簡單動畫,將一個方塊圖從屏幕左上角向右下角移動。11.2圖形處理基礎(chǔ)235.圖形模式下字符輸出函數(shù)(1)當(dāng)前位置文本輸出函數(shù)outtextvoidfarouttext(char*str);(2)字符輸出定位函數(shù)outtextxy(3)改變字型、大小和方向的函數(shù)settextstylevoidfarouttextxy(intx,inty,char*str);voidfarsettextstyle(intfont,intdirection,intcharsize);11.2圖形處理基礎(chǔ)24字體值含義DEFAULT_FONTTRIPLEX_FONTSMALL_FONTSANS_FONTGOTHIC_FONT012348×8點陣三倍筆劃小號筆劃字體無襯線筆劃黑體筆劃字符的字體11.2圖形處理基礎(chǔ)2513.3操作系統(tǒng)接口一.DOS簡介1.DOS的基本功能是對系統(tǒng)的基本輸入輸出進(jìn)行控制及對內(nèi)存和進(jìn)程的管理。2.DOS為用戶引用其功能子程序,提供系統(tǒng)的軟中斷。通過CPU的軟中斷指令I(lǐng)NTn調(diào)用相應(yīng)的程序。指令中的n是中斷調(diào)用號(中斷類型號),中斷調(diào)用號不同,則調(diào)用的程序就不同。3.在TurboC編譯系統(tǒng)中,函數(shù)int86用于實現(xiàn)ROM-BIOS系統(tǒng)調(diào)用。11.3操作系統(tǒng)接口26二.操作系統(tǒng)接口庫函數(shù)1.通用軟中斷調(diào)用庫函數(shù)int86intint86(intintno,uinonREGS*inregs,uinonREGS*outregs);軟中斷號實現(xiàn)功能軟中斷號實現(xiàn)功能05H10H11H12H13H屏幕打印顯示器I/O處理設(shè)備列表內(nèi)存空間管理磁盤I/O處理14H15H16H17H1AH串行接口I/O處理磁帶機控制鍵盤I/O處理打印機I/O處理時鐘處理常用BIOS例行程序的軟中斷號和實現(xiàn)功能11.3操作系統(tǒng)接口27功能號AH功能和使用的寄
存
器功能號AH功能和使用的寄
存
器0設(shè)置屏幕顯示方式AL為顯示代碼3讀光標(biāo)位置,BH:頁號返回在以下寄存器中DH:行坐標(biāo)DL:列坐標(biāo)CL:顯示模式1設(shè)置光標(biāo)類型CH:光標(biāo)開始CL:光標(biāo)結(jié)束8讀光標(biāo)位置的字符,BH:頁號返回值A(chǔ)L:讀取的字符AH:字符的屬性2設(shè)置光標(biāo)位置DH:行坐標(biāo)DL:列坐標(biāo)BH:頁號9顯示字符AL:字符的ASCII碼BL:字符顯示屬性BH:顯示頁號CX:重復(fù)次數(shù)INT10H的部分功能11.3操作系統(tǒng)接口282.系統(tǒng)功能調(diào)用庫函數(shù)(1)系統(tǒng)功能調(diào)用庫函數(shù)intdosintintdos(unionREGS*inregs,unionREGS*outregs);(2)系統(tǒng)功能調(diào)用庫函數(shù)intdosxintintdosx(unionREGS*inregs,unionREGS*outregs,structSREGS*segregs);segregs是一個結(jié)構(gòu)SREGS類型的指針,結(jié)構(gòu)SREGS類型在dos.h頭文件中定義如下:struct SREGS {unsignedint es;/*附加段*/unsignedint ds;/*數(shù)據(jù)段*/unsignedint ss;/*堆棧段*/unsignedint cs;/*代碼段*/}11.3操作系統(tǒng)接口293.發(fā)送DOS命令庫函數(shù)systemintsystem(char*cmd);三.鼠標(biāo)器及其應(yīng)用1.鼠標(biāo)器概況2.鼠標(biāo)器驅(qū)動程序device=mouse.s
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 2162-2024縫隙、面差測量儀校準(zhǔn)規(guī)范
- 2024年商業(yè)用地租賃權(quán)轉(zhuǎn)授權(quán)合同
- 2024年學(xué)校服裝供應(yīng)合同
- 2024年度工程變更與居間服務(wù)合同
- 我們身體課件教學(xué)課件
- 2024北京市車指標(biāo)租賃期間保險服務(wù)合同
- 2024年大型活動策劃與執(zhí)行服務(wù)合同
- 2024的保安服務(wù)委托合同范文
- 2024年度衛(wèi)星通信服務(wù)與租賃合同
- 2024年建筑工程水電施工合同
- GB/T 42455.2-2024智慧城市建筑及居住區(qū)第2部分:智慧社區(qū)評價
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識
- YYT 0653-2017 血液分析儀行業(yè)標(biāo)準(zhǔn)
- 刑事受害人授權(quán)委托書范本
- 《文明上網(wǎng)健康成長》的主題班會
- 框架結(jié)構(gòu)冬季施工方案
- 班組建設(shè)實施細(xì)則
- 畢業(yè)設(shè)計(論文)汽車照明系統(tǒng)常見故障診斷與排除
- 人工智能技術(shù)在電氣自動化控制中的應(yīng)用分析
- 醫(yī)療技術(shù)臨床應(yīng)用及新技術(shù)新項目管理制度考核試題及答案
- 裝配式擋土墻施工方案(完整版)
評論
0/150
提交評論