




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、13.1 13.1 多模塊程序設(shè)計(jì)基礎(chǔ)多模塊程序設(shè)計(jì)基礎(chǔ)13.2 13.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)13.3 13.3 操作系統(tǒng)接口操作系統(tǒng)接口13.4 C13.4 C程序中的漢字顯示技術(shù)程序中的漢字顯示技術(shù) 11.1 11.1 多模塊程序設(shè)計(jì)多模塊程序設(shè)計(jì)13.1 13.1 多模塊程序設(shè)計(jì)基礎(chǔ)多模塊程序設(shè)計(jì)基礎(chǔ)一一. 多模塊程序的建立多模塊程序的建立 使用多模塊編程技術(shù)的處理過(guò)程大致如下:使用多模塊編程技術(shù)的處理過(guò)程大致如下: 首先將一個(gè)大型程序根據(jù)其功能合理地劃分為首先將一個(gè)大型程序根據(jù)其功能合理地劃分為若干個(gè)小的源程序,每個(gè)小源程序均以程序文件若干個(gè)小的源程序,每個(gè)小源程序均以程序文件(
2、文件擴(kuò)展名為(文件擴(kuò)展名為.C.C)的形式保存在磁盤(pán)上。例如,)的形式保存在磁盤(pán)上。例如,一個(gè)較在程序應(yīng)該分解成一個(gè)較在程序應(yīng)該分解成file1.cfile1.c、file2.cfile2.c、file3.cfile3.c、.等多個(gè)源程序,各自獨(dú)立地保存在磁等多個(gè)源程序,各自獨(dú)立地保存在磁盤(pán)上。這些源程序可以進(jìn)行單獨(dú)編譯,形成盤(pán)上。這些源程序可以進(jìn)行單獨(dú)編譯,形成.OBJ.OBJ文文件,然后將這些文件組合成一個(gè)大的程序。件,然后將這些文件組合成一個(gè)大的程序。#include #include ”file2.c” /*將源程序?qū)⒃闯绦騠ile2.c包含到源程序包含到源程序file1.c中中*/v
3、oid main() A2();file2.c為:為:#include void A2()例如,一個(gè)大型程序分解為例如,一個(gè)大型程序分解為file1.c、file2.c兩個(gè)小源程序兩個(gè)小源程序.1include方法方法file1.c為:為: 11.1 11.1 多模塊程序設(shè)計(jì)多模塊程序設(shè)計(jì) 在Turbo C中,可以建立一個(gè)工程文件(文件擴(kuò)展名為.prj),將各個(gè)源程序模塊的文件名包含其中。再用編譯器進(jìn)行編譯,將工程文件中指定的多個(gè)文件進(jìn)行編譯,生成多個(gè)目標(biāo)文件和一個(gè)可執(zhí)行的文件。2建立project文件 當(dāng)某個(gè)文件有錯(cuò)時(shí),例如,file1.c有錯(cuò)誤時(shí),編譯器會(huì)報(bào)告錯(cuò)誤。用戶(hù)可對(duì)file1.c進(jìn)
4、行修改,修改后再編譯時(shí),編譯器只會(huì)對(duì)file1.c進(jìn)行重新編譯,其它模塊不再被編譯,原來(lái)生成的目標(biāo)文件仍可使用。 11.1 11.1 多模塊程序設(shè)計(jì)多模塊程序設(shè)計(jì)【例13-1】從鍵盤(pán)上輸入兩個(gè)整數(shù),輸出最大值、最小值及平均值。分析:在多模塊設(shè)計(jì)中,首先是源程序拆分成幾個(gè)小的源程序,每個(gè)小的源程序完成一個(gè)簡(jiǎn)單的功能。這里,可將源程序文件分成個(gè)小源程序:file1.c、file2.c、file3.c和file4.c。其中file1.c是主函數(shù),它的功能是從鍵盤(pán)輸入兩個(gè)整數(shù)i,j,然后分別調(diào)用函數(shù)max、min和average,最后在主函數(shù)中輸出最大值、最小值及平均值。文件file2.c、file3
5、.c和file4.c分別為求兩個(gè)整數(shù)的最大值、最小值和平均值。 11.1 11.1 多模塊程序設(shè)計(jì)多模塊程序設(shè)計(jì)(1)建立一個(gè)以.prj為擴(kuò)展名的工程文件 建立.prj工程文件與編寫(xiě)源程序的方法相同,只是這個(gè)文件的每行都是C的源程序名,例如文件內(nèi)容為:file1.cfile2.cfile3.cfile4.c /* 源程序的擴(kuò)展名.c可以省略 */ 然后以.prj為擴(kuò)展名將以上文件存盤(pán),例如文件名為file.prj。 11.1 11.1 多模塊程序設(shè)計(jì)多模塊程序設(shè)計(jì)(2)對(duì)工程文件處理 在主菜單窗口下,選擇菜單項(xiàng)Project/Project name,系統(tǒng)彈出一個(gè)如圖13-1所示的窗口。這時(shí),
6、可在該窗口直接輸入文件名file.prj或通過(guò)通配符選擇文件file.prj。然后按熱鍵Ctrl-F9或選擇菜單項(xiàng)Compile/Compile to OBJ,即可對(duì)文件file.prj進(jìn)行編譯、連接,最后生成同名的可執(zhí)行文件file.exe。(3)選擇菜單項(xiàng)Run/Run,運(yùn)行file.exe文件, 11.1 11.1 多模塊程序設(shè)計(jì)多模塊程序設(shè)計(jì)二。二。 程序模塊之間的通信程序模塊之間的通信 一個(gè)大型程序分解成若干個(gè)程序模塊后,各個(gè)模塊之間常常需要相互聯(lián)系,一個(gè)模塊中的函數(shù)可能要調(diào)用另一個(gè)模塊中的函數(shù);函數(shù)間也常常需要傳遞參數(shù),返回處理結(jié)果。因此,在多模塊編程中,需要解決模塊之間的通信問(wèn)題
7、。 在C語(yǔ)言的多模塊編程中,模塊間通信往往使用外部變量。function1()/*file1.c*/ extern int student; extern int student;/*file2.*/ fun1()student=50; 11.1 11.1 多模塊程序設(shè)計(jì)多模塊程序設(shè)計(jì)13.2 13.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ) 一一. 圖形程序運(yùn)行的條件圖形程序運(yùn)行的條件 顯示器的圖形驅(qū)動(dòng)程序主要有:顯示器的圖形驅(qū)動(dòng)程序主要有: att.bgi、cga.bgi、egavga.bgi、herc.bgi、 ibm8514.bgi、pc3270.bgi 、 bgiobj.exe. 圖形程序運(yùn)行的基
8、本條件是:圖形程序運(yùn)行的基本條件是: 將相應(yīng)的顯示驅(qū)動(dòng)程序裝入內(nèi)存運(yùn)行。將相應(yīng)的顯示驅(qū)動(dòng)程序裝入內(nèi)存運(yùn)行。 在在C語(yǔ)言中,可通過(guò)調(diào)用函數(shù)語(yǔ)言中,可通過(guò)調(diào)用函數(shù)initgraph對(duì)圖形系統(tǒng)對(duì)圖形系統(tǒng)進(jìn)行初始化來(lái)實(shí)現(xiàn)。進(jìn)行初始化來(lái)實(shí)現(xiàn)。 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)二二. 基本圖形處理函數(shù)及基本圖形處理方法基本圖形處理函數(shù)及基本圖形處理方法 圖形屏幕的坐標(biāo)與象素點(diǎn)屏幕左上角(0,0)右下角(x,y)xyx方向y方向 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)1圖形系統(tǒng)初始化函數(shù)(1)顯示模式控制函數(shù)initgraphvoid far initgraph(int far *grap
9、hdriver,int far *graphmode,char far *path);int graphdriver=EGA;int graphmode=EGAHI;initgraph(&graphdriver,&graphmode, ”tc”);int graphdriver=DETECT;int graphmode;intgraph(&graphdriver,&graphmode, tc); 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)(2)檢測(cè)顯示器硬件函數(shù)detectgraphvoid far detectgraph(int far *graphdriver,int far * gra
10、phmode);(3)清屏函數(shù)cleardevice void far cleardevice(void);(4)恢復(fù)文本顯示方式(或關(guān)閉圖形系統(tǒng))函數(shù)closegraphvoid far closegraph(void); 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)void far restorecrtmode(void);(5)恢復(fù)文本工作模式函數(shù)restorecrtmode(6)設(shè)置圖形工作模式函數(shù)setgraphmode void far setgraphmode(void); 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)2基本圖形處理函數(shù)(1)畫(huà)點(diǎn)、線(xiàn)函數(shù) 畫(huà)點(diǎn)函數(shù)putpixel
11、void far putpixel(int x,int y,int color); 畫(huà)線(xiàn)函數(shù)linevoid far line(int startx,int starty,int endx,int endy); 例: 編程,從在屏幕的左上角到屏幕的右下角畫(huà)一條直線(xiàn)。 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)(2)畫(huà)多邊形、矩形和條形圖函數(shù) 畫(huà)多邊形函數(shù)drawpolyvoid far drawpoly(int numpoints,int far *points); 畫(huà)矩形函數(shù)rectanglevoid far rectangle(int left, int top, int right,
12、int bottom); 畫(huà)實(shí)心條形圖函數(shù)barvoid far bar(int left,int top,int right,int bottom); 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ) 畫(huà)三維條形圖函數(shù)bar3void far bar3d(int left,int top,int right,int bottom,int depth,int topflag);depth(left,top)(right,bootom)topflag=1(a)depth(left,top)(right,bootom)topflag=0(b)圖13-3 函數(shù)bar3d參數(shù)的含義 11.2 11.2 圖
13、形處理基礎(chǔ)圖形處理基礎(chǔ)(3)畫(huà)圓、圓弧、扇形、橢圓函數(shù) 畫(huà)圓函數(shù)circlevoid far circle(int x,int y,int radius); 畫(huà)圓弧函數(shù)arcvoid far arc(int x,int y,int start,int end,int radius); 畫(huà)扇形函數(shù)pieslicevoid far pieslice(int x,int y,int start,int end,int radius); 畫(huà)橢圓函數(shù)ellipsevoid far ellipse(int x,int y,int start,int end,int xradius,int yradius)
14、; 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)起始角=0結(jié)束角=起始角和結(jié)束角注意:在Turbo C中對(duì)于角的規(guī)定是:屏幕x軸方向?yàn)?度,當(dāng)半徑從此處逆時(shí)針?lè)较蛐D(zhuǎn)時(shí),則依次是90度、180度、270度。當(dāng)為360度時(shí),和x軸正向重合,即旋轉(zhuǎn)了一周. 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)3顏色控制函數(shù) 在初始化圖形系統(tǒng)時(shí),函數(shù)initgraph的參數(shù)graphmode用來(lái)確定屏幕顯示模式,也就是用來(lái)選擇“調(diào)色板”。 屏幕上顯示出的點(diǎn)、線(xiàn)、面的顏色稱(chēng)為前景色,而襯托它們的背景顏色稱(chēng)為背景色。模 式調(diào)色板號(hào)顏色值0123CGAC0CGAC1CGAC2CGAC30123背景色背景色背景色背
15、景色綠青淡綠淡青紅洋紅淡紅淡洋紅黃白棕淡灰 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)16個(gè)標(biāo)準(zhǔn)色及其顏色值顏色值顏色宏 名顏色值顏色宏 名01234567黑藍(lán)綠青紅洋紅棕淺灰BLACKBLUEGREENCYANREDMAGENTABROWNLIGHTGRAY89101112131415深灰淡藍(lán)淡綠淡青淡紅淡洋紅黃白DARKGRAYLIGHTBLUELIGHTGREENLIGHTCYANLIGHTREDLIGHTMAGENTAYELLOWWHITE 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)(1)前景顏色設(shè)置函數(shù)setcolorvoid far setcolor(int color);(
16、2)背景顏色設(shè)置函數(shù)setbkcolorvoid far setbkcolor(int color);(3)填色函數(shù)setfillstylevoid far setfillstyle(int pattern,int color);(4)封閉圖形的填充函數(shù)floodfillvoid far floodfill(int x,int y,int bordercolor);例,設(shè)計(jì)一個(gè)簡(jiǎn)單動(dòng)畫(huà),將一個(gè)三維條形圖從屏幕左上角向右下角移動(dòng)。 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)4視口操作函數(shù) 在圖形工作方式下,用戶(hù)可以在屏幕上設(shè)置一個(gè)窗口,該窗口稱(chēng)為視口(viewport)。 視口中坐標(biāo)也是以其左
17、上角為參考點(diǎn),每個(gè)視口的左上角坐標(biāo)也為(0,0),它與物理屏幕坐標(biāo)(左上角為(0,0)無(wú)關(guān), (0,0) (400,150)(200,100)(200,50) 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)(1)在屏幕上設(shè)置視口的函數(shù)setviewportvoid far setviewport(int x1,int y1,int x2,int y2,int clipflag);(2)視口清除函數(shù)clearviewportvoid far clearviewport(void);例,利用視口的設(shè)置,設(shè)計(jì)一個(gè)簡(jiǎn)單動(dòng)畫(huà),將一個(gè)方塊圖從屏幕左上角向右下角移動(dòng)。 11.2 11.2 圖形處理基礎(chǔ)圖形處理
18、基礎(chǔ)5圖形模式下字符輸出函數(shù)(1)當(dāng)前位置文本輸出函數(shù)outtextvoid far outtext(char *str);(2)字符輸出定位函數(shù)outtextxy(3)改變字型、大小和方向的函數(shù)settextstylevoid far outtextxy(int x,int y,char *str);void far settextstyle(int font,int direction,int charsize); 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)字體值含義DEFAULT_FONTTRIPLEX_FONTSMALL_FONTSANS_FONTGOTHIC_FONT0123488
19、點(diǎn)陣三倍筆劃小號(hào)筆劃字體無(wú)襯線(xiàn)筆劃黑體筆劃字符的字體字符的字體 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)13.3 13.3 操作系統(tǒng)接口操作系統(tǒng)接口一一. DOS簡(jiǎn)介簡(jiǎn)介1. DOS的基本功能是對(duì)系統(tǒng)的基本輸入輸出進(jìn)行控制及對(duì)內(nèi)存和進(jìn)程的管理。 2. DOS為用戶(hù)引用其功能子程序,提供系統(tǒng)的軟中斷。 通過(guò)CPU的軟中斷指令I(lǐng)NT n調(diào)用相應(yīng)的程序。指令中的n是中斷調(diào)用號(hào)(中斷類(lèi)型號(hào)),中斷調(diào)用號(hào)不同,則調(diào)用的程序就不同。3. 在Turbo C編譯系統(tǒng)中,函數(shù)int86用于實(shí)現(xiàn)ROM-BIOS系統(tǒng)調(diào)用。 11.3 11.3 操作系統(tǒng)接口操作系統(tǒng)接口二二. 操作系統(tǒng)接口庫(kù)函數(shù)操作系統(tǒng)接口庫(kù)函數(shù)
20、1通用軟中斷調(diào)用庫(kù)函數(shù)int86int int86(int intno,uinon REGS * inregs,uinon REGS * outregs);軟中斷號(hào)實(shí)現(xiàn)功能軟中斷號(hào)實(shí)現(xiàn)功能05H10H11H12H13H屏幕打印顯示器I/O處理設(shè)備列表內(nèi)存空間管理磁盤(pán)I/O處理14H15H16H17H1AH串行接口I/O處理磁帶機(jī)控制鍵盤(pán)I/O處理打印機(jī)I/O處理時(shí)鐘處理常用常用BIOS例行程序的軟中斷號(hào)和實(shí)現(xiàn)功能例行程序的軟中斷號(hào)和實(shí)現(xiàn)功能 11.3 11.3 操作系統(tǒng)接口操作系統(tǒng)接口功能號(hào)AH功能和使用的寄 存 器功能號(hào)AH功能和使用的寄 存 器0設(shè)置屏幕顯示方式AL為顯示代碼3讀光標(biāo)位置,
21、BH:頁(yè)號(hào)返回在以下寄存器中DH:行坐標(biāo)DL:列坐標(biāo)CL:顯示模式1設(shè)置光標(biāo)類(lèi)型CH:光標(biāo)開(kāi)始CL:光標(biāo)結(jié)束8讀光標(biāo)位置的字符,BH:頁(yè)號(hào)返回值A(chǔ)L:讀取的字符AH:字符的屬性2設(shè)置光標(biāo)位置DH:行坐標(biāo)DL:列坐標(biāo)BH:頁(yè)號(hào)9顯示字符AL:字符的ASCII碼BL:字符顯示屬性BH:顯示頁(yè)號(hào)CX:重復(fù)次數(shù)INT 10H的部分功能的部分功能 11.3 11.3 操作系統(tǒng)接口操作系統(tǒng)接口2系統(tǒng)功能調(diào)用庫(kù)函數(shù)(1)系統(tǒng)功能調(diào)用庫(kù)函數(shù)intdosint intdos(union REGS *inregs,union REGS *outregs);(2)系統(tǒng)功能調(diào)用庫(kù)函數(shù)intdosxint intdos
22、x(union REGS *inregs,union REGS *outregs,struct SREGS *segregs); segregs是一個(gè)結(jié)構(gòu)SREGS類(lèi)型的指針,結(jié)構(gòu)SREGS類(lèi)型在dos.h頭文件中定義如下:struct SREGSunsigned intes; /*附加段*/unsigned intds; /*數(shù)據(jù)段*/unsigned intss; /*堆棧段*/unsigned intcs; /*代碼段*/ 11.3 11.3 操作系統(tǒng)接口操作系統(tǒng)接口3發(fā)送DOS命令庫(kù)函數(shù)systemint system(char *cmd);三三. 鼠標(biāo)器及其應(yīng)用鼠標(biāo)器及其應(yīng)用1鼠標(biāo)器概況2鼠標(biāo)器驅(qū)動(dòng)程序device=mouse.s
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 佳木斯職業(yè)學(xué)院《熱工與熱機(jī)》2023-2024學(xué)年第二學(xué)期期末試卷
- 東北師范大學(xué)《液壓與氣動(dòng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京語(yǔ)言大學(xué)《水資源利用》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工業(yè)大學(xué)之江學(xué)院《生態(tài)環(huán)境保護(hù)基礎(chǔ)(三)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江越秀外國(guó)語(yǔ)學(xué)院《市場(chǎng)營(yíng)銷(xiāo)學(xué)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 中央美術(shù)學(xué)院《課堂教學(xué)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊理工職業(yè)學(xué)院《災(zāi)害衛(wèi)生學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)垣烹飪職業(yè)技術(shù)學(xué)院《電工及電子學(xué)(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 益陽(yáng)醫(yī)學(xué)高等專(zhuān)科學(xué)校《開(kāi)發(fā)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津體育職業(yè)學(xué)院《動(dòng)力電池及能量管理技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- GB/T 2573-2008玻璃纖維增強(qiáng)塑料老化性能試驗(yàn)方法
- GB/T 22560-2008鋼鐵件的氣體氮碳共滲
- GB/T 1265-2003化學(xué)試劑溴化鈉
- 統(tǒng)編版四年級(jí)道德與法治下冊(cè)全冊(cè)課件
- 醫(yī)院評(píng)審工作臨床科室資料盒目錄(15個(gè)盒子)
- 社區(qū)獲得性肺炎臨床路徑
- 壓力性損傷指南解讀
- 湯姆走丟了 詳細(xì)版課件
- 大學(xué)學(xué)院學(xué)生心理危機(jī)預(yù)防與干預(yù)工作預(yù)案
- 國(guó)有土地上房屋征收與補(bǔ)償條例 課件
- 鐵路建設(shè)項(xiàng)目施工企業(yè)信用評(píng)價(jià)辦法(鐵總建設(shè)〔2018〕124號(hào))
評(píng)論
0/150
提交評(píng)論