版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第13章C語言綜合應(yīng)用程序設(shè)計(jì)13.1多模塊程序設(shè)計(jì)基礎(chǔ)13.2圖形處理基礎(chǔ)13.3操作系統(tǒng)接口13.4C程序中的漢字顯示技術(shù)111.1多模塊程序設(shè)計(jì)13.1多模塊程序設(shè)計(jì)基礎(chǔ)一.多模塊程序的建立使用多模塊編程技術(shù)的處理過程大致如下:首先將一個(gè)大型程序根據(jù)其功能合理地劃分為若干個(gè)小的源程序,每個(gè)小源程序均以程序文件(文件擴(kuò)展名為.C)的形式保存在磁盤上。例如,一個(gè)較在程序應(yīng)該分解成、、、...等多個(gè)源程序,各自獨(dú)立地保存在磁盤上。這些源程序可以進(jìn)行單獨(dú)編譯,形成.OBJ文件,然后將這些文件組合成一個(gè)大的程序。2#include<stdio.h>#include””/*將源程序包含到源程序中*/voidmain(){ ┇A2(); ┇}為:#include<stdlib.h>voidA2(){┇}例如,一個(gè)大型程序分解為、兩個(gè)小源程序.1.include方法為:11.1多模塊程序設(shè)計(jì)3在TurboC中,可以建立一個(gè)工程文件(文件擴(kuò)展名為.prj),將各個(gè)源程序模塊的文件名包含其中。再用編譯器進(jìn)行編譯,將工程文件中指定的多個(gè)文件進(jìn)行編譯,生成多個(gè)目標(biāo)文件和一個(gè)可執(zhí)行的文件。2.建立project文件當(dāng)某個(gè)文件有錯(cuò)時(shí),例如,有錯(cuò)誤時(shí),編譯器會(huì)報(bào)告錯(cuò)誤。用戶可對(duì)進(jìn)行修改,修改后再編譯時(shí),編譯器只會(huì)對(duì)進(jìn)行重新編譯,其它模塊不再被編譯,原來生成的目標(biāo)文件仍可使用。11.1多模塊程序設(shè)計(jì)4【例13-1】從鍵盤上輸入兩個(gè)整數(shù),輸出最大值、最小值及平均值。分析:◆在多模塊設(shè)計(jì)中,首先是源程序拆分成幾個(gè)小的源程序,每個(gè)小的源程序完成一個(gè)簡單的功能?!暨@里,可將源程序文件分成4個(gè)小源程序:、、和。其中是主函數(shù),它的功能是從鍵盤輸入兩個(gè)整數(shù)i,j,然后分別調(diào)用函數(shù)max、min和average,最后在主函數(shù)中輸出最大值、最小值及平均值。文件、和分別為求兩個(gè)整數(shù)的最大值、最小值和平均值。11.1多模塊程序設(shè)計(jì)5(1)建立一個(gè)以.prj為擴(kuò)展名的工程文件建立.prj工程文件與編寫源程序的方法相同,只是這個(gè)文件的每行都是C的源程序名,例如文件內(nèi)容為:/*源程序的擴(kuò)展名.c可以省略*/然后以.prj為擴(kuò)展名將以上文件存盤,例如文件名為。11.1多模塊程序設(shè)計(jì)6(2)對(duì)工程文件處理在主菜單窗口下,選擇菜單項(xiàng)Project/Projectname,系統(tǒng)彈出一個(gè)如圖13-1所示的窗口。這時(shí),可在該窗口直接輸入文件名或通過通配符選擇文件。然后按熱鍵Ctrl-F9或選擇菜單項(xiàng)Compile/CompiletoOBJ,即可對(duì)文件進(jìn)行編譯、連接,最后生成同名的可執(zhí)行文件。(3)選擇菜單項(xiàng)Run/Run,運(yùn)行文件,11.1多模塊程序設(shè)計(jì)7二。程序模塊之間的通信一個(gè)大型程序分解成若干個(gè)程序模塊后,各個(gè)模塊之間常常需要相互聯(lián)系,一個(gè)模塊中的函數(shù)可能要調(diào)用另一個(gè)模塊中的函數(shù);函數(shù)間也常常需要傳遞參數(shù),返回處理結(jié)果。因此,在多模塊編程中,需要解決模塊之間的通信問題。在C語言的多模塊編程中,模塊間通信往往使用外部變量。function1()/**/{externintstudent;…}externintstudent;/*file2.*/fun1(){student=50;…}11.1多模塊程序設(shè)計(jì)813.2圖形處理基礎(chǔ)一.圖形程序運(yùn)行的條件顯示器的圖形驅(qū)動(dòng)程序主要有:att.bgi、cga.bgi、egavga.bgi、herc.bgi、ibm8514.bgi、pc3270.bgi、bgiobj.exe.圖形程序運(yùn)行的基本條件是:將相應(yīng)的顯示驅(qū)動(dòng)程序裝入內(nèi)存運(yùn)行。在C語言中,可通過調(diào)用函數(shù)initgraph對(duì)圖形系統(tǒng)進(jìn)行初始化來實(shí)現(xiàn)。11.2圖形處理基礎(chǔ)9二.基本圖形處理函數(shù)及基本圖形處理方法圖形屏幕的坐標(biāo)與象素點(diǎn)屏幕左上角(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)畫點(diǎn)、線函數(shù)①畫點(diǎn)函數(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í)心條形圖函數(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中對(duì)于角的規(guī)定是:屏幕x軸方向?yàn)?度,當(dāng)半徑從此處逆時(shí)針方向旋轉(zhuǎn)時(shí),則依次是90度、180度、270度。當(dāng)為360度時(shí),和x軸正向重合,即旋轉(zhuǎn)了一周.11.2圖形處理基礎(chǔ)183.顏色控制函數(shù)在初始化圖形系統(tǒng)時(shí),函數(shù)initgraph的參數(shù)graphmode用來確定屏幕顯示模式,也就是用來選擇“調(diào)色板”。屏幕上顯示出的點(diǎn)、線、面的顏色稱為前景色,而襯托它們的背景顏色稱為背景色。模
式調(diào)色板號(hào)顏色值0123CGAC0CGAC1CGAC2CGAC30123背景色背景色背景色背景色綠青淡綠淡青紅洋紅淡紅淡洋紅黃白棕淡灰11.2圖形處理基礎(chǔ)1916個(gè)標(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è)計(jì)一個(gè)簡單動(dòng)畫,將一個(gè)三維條形圖從屏幕左上角向右下角移動(dòng)。11.2圖形處理基礎(chǔ)214.視口操作函數(shù)在圖形工作方式下,用戶可以在屏幕上設(shè)置一個(gè)窗口,該窗口稱為視口(viewport)。視口中坐標(biāo)也是以其左上角為參考點(diǎn),每個(gè)視口的左上角坐標(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è)計(jì)一個(gè)簡單動(dòng)畫,將一個(gè)方塊圖從屏幕左上角向右下角移動(dòng)。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點(diǎn)陣三倍筆劃小號(hào)筆劃字體無襯線筆劃黑體筆劃字符的字體11.2圖形處理基礎(chǔ)2513.3操作系統(tǒng)接口一.DOS簡介1.DOS的基本功能是對(duì)系統(tǒng)的基本輸入輸出進(jìn)行控制及對(duì)內(nèi)存和進(jìn)程的管理。2.DOS為用戶引用其功能子程序,提供系統(tǒng)的軟中斷。通過CPU的軟中斷指令I(lǐng)NTn調(diào)用相應(yīng)的程序。指令中的n是中斷調(diào)用號(hào)(中斷類型號(hào)),中斷調(diào)用號(hào)不同,則調(diào)用的程序就不同。3.在TurboC編譯系統(tǒng)中,函數(shù)int86用于實(shí)現(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);軟中斷號(hào)實(shí)現(xiàn)功能軟中斷號(hào)實(shí)現(xiàn)功能05H10H11H12H13H屏幕打印顯示器I/O處理設(shè)備列表內(nèi)存空間管理磁盤I/O處理14H15H16H17H1AH串行接口I/O處理磁帶機(jī)控制鍵盤I/O處理打印機(jī)I/O處理時(shí)鐘處理常用BIOS例行程序的軟中斷號(hào)和實(shí)現(xiàn)功能11.3操作系統(tǒng)接口27功能號(hào)AH功能和使用的寄
存
器功能號(hào)AH功能和使用的寄
存
器0設(shè)置屏幕顯示方式AL為顯示代碼3讀光標(biāo)位置,BH:頁號(hào)返回在以下寄存器中DH:行坐標(biāo)DL:列坐標(biāo)CL:顯示模式1設(shè)置光標(biāo)類型CH:光標(biāo)開始CL:光標(biāo)結(jié)束8讀光標(biāo)位置的字符,BH:頁號(hào)返回值A(chǔ)L:讀取的字符AH:字符的屬性2設(shè)置光標(biāo)位置DH:行坐標(biāo)DL:列坐標(biāo)BH:頁號(hào)9顯示字符AL:字符的ASCII碼BL:字符顯示屬性BH:顯示頁號(hào)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是一個(gè)結(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ū)動(dòng)程序device=mouse.s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任崗前培訓(xùn)課件
- 如何講試卷業(yè)務(wù)培訓(xùn)
- 江西省贛州市寧都縣多校2024-2025學(xué)年五年級(jí)上學(xué)期期中語文試題(含答案)
- 河南省百師聯(lián)盟聯(lián)考2024-2025學(xué)年高二上學(xué)期10月月考英語試題(含答案無聽力原文及音頻)
- 福建省廈門市同安區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期11月期中數(shù)學(xué)試題(無答案)
- 期中摸底測試(1-4單元)(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版 -
- 大跨度拱形鋼結(jié)構(gòu)施工技術(shù)13
- 高中語文專題二雜說第3課日喻課件蘇教版選修唐宋八大家散文蚜
- 晏子使楚課件
- 江蘇省徐州市邳州市2023-2024學(xué)年九年級(jí)上學(xué)期期中抽測化學(xué)試卷(含答案解析)
- 部編人教版初中語文教科書九年級(jí)設(shè)計(jì)思路及教學(xué)建議課件
- 電氣和電子工程行業(yè)SWOT分析
- 安全生產(chǎn)獎(jiǎng)懲制度范文(五篇)
- 第3章文創(chuàng)設(shè)計(jì)的載體
- 江蘇蘇州2022022學(xué)年七年級(jí)上學(xué)期陽光指標(biāo)學(xué)業(yè)水平調(diào)研測試語文試題含答案
- 上頜竇提升學(xué)習(xí)課件
- 急性短暫性精神病性障礙
- 重癥醫(yī)學(xué)科三年發(fā)展規(guī)劃
- 物流公司應(yīng)急管理制度和物流公司突發(fā)事件應(yīng)急預(yù)案
- 行政事業(yè)單位內(nèi)部控制業(yè)務(wù)流程圖
- 微生物與人類健康課件
評(píng)論
0/150
提交評(píng)論