補(bǔ)充:C語(yǔ)言綜合應(yīng)用程序設(shè)計(jì)(課程_第1頁(yè)
補(bǔ)充:C語(yǔ)言綜合應(yīng)用程序設(shè)計(jì)(課程_第2頁(yè)
補(bǔ)充:C語(yǔ)言綜合應(yīng)用程序設(shè)計(jì)(課程_第3頁(yè)
補(bǔ)充:C語(yǔ)言綜合應(yīng)用程序設(shè)計(jì)(課程_第4頁(yè)
補(bǔ)充:C語(yǔ)言綜合應(yīng)用程序設(shè)計(jì)(課程_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ù)的處理過程大致如下:使用多模塊編程技術(shù)的處理過程大致如下: 首先將一個(gè)大型程序根據(jù)其功能合理地劃分為首先將一個(gè)大型程序根據(jù)其功能合理地劃分為若干個(gè)小的源程序,每個(gè)小源程序均以程序文件若干個(gè)小的源程序,每個(gè)小源程序均以程序文件(

2、文件擴(kuò)展名為(文件擴(kuò)展名為.C.C)的形式保存在磁盤上。例如,)的形式保存在磁盤上。例如,一個(gè)較在程序應(yīng)該分解成一個(gè)較在程序應(yīng)該分解成file1.cfile1.c、file2.cfile2.c、file3.cfile3.c、.等多個(gè)源程序,各自獨(dú)立地保存在磁等多個(gè)源程序,各自獨(dú)立地保存在磁盤上。這些源程序可以進(jìn)行單獨(dú)編譯,形成盤上。這些源程序可以進(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ò)誤。用戶可對(duì)file1.c進(jìn)

4、行修改,修改后再編譯時(shí),編譯器只會(huì)對(duì)file1.c進(jìn)行重新編譯,其它模塊不再被編譯,原來生成的目標(biāo)文件仍可使用。 11.1 11.1 多模塊程序設(shè)計(jì)多模塊程序設(shè)計(jì)【例13-1】從鍵盤上輸入兩個(gè)整數(shù),輸出最大值、最小值及平均值。分析:在多模塊設(shè)計(jì)中,首先是源程序拆分成幾個(gè)小的源程序,每個(gè)小的源程序完成一個(gè)簡(jiǎn)單的功能。這里,可將源程序文件分成個(gè)小源程序:file1.c、file2.c、file3.c和file4.c。其中file1.c是主函數(shù),它的功能是從鍵盤輸入兩個(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工程文件與編寫源程序的方法相同,只是這個(gè)文件的每行都是C的源程序名,例如文件內(nèi)容為:file1.cfile2.cfile3.cfile4.c /* 源程序的擴(kuò)展名.c可以省略 */ 然后以.prj為擴(kuò)展名將以上文件存盤,例如文件名為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或通過通配符選擇文件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é)果。因此,在多模塊編程中,需要解決模塊之間的通信問題

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ǔ)言中,可通過調(diào)用函數(shù)語(yǔ)言中,可通過調(diào)用函數(shù)initgraph對(duì)圖形系統(tǒng)對(duì)圖形系統(tǒng)進(jìn)行初始化來實(shí)現(xiàn)。進(jìn)行初始化來實(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)畫點(diǎn)、線函數(shù) 畫點(diǎn)函數(shù)putpixel

11、void far putpixel(int x,int y,int color); 畫線函數(shù)linevoid far line(int startx,int starty,int endx,int endy); 例: 編程,從在屏幕的左上角到屏幕的右下角畫一條直線。 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)(2)畫多邊形、矩形和條形圖函數(shù) 畫多邊形函數(shù)drawpolyvoid far drawpoly(int numpoints,int far *points); 畫矩形函數(shù)rectanglevoid far rectangle(int left, int top, int right,

12、int bottom); 畫實(shí)心條形圖函數(shù)barvoid far bar(int left,int top,int right,int bottom); 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ) 畫三維條形圖函數(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)畫圓、圓弧、扇形、橢圓函數(shù) 畫圓函數(shù)circlevoid far circle(int x,int y,int radius); 畫圓弧函數(shù)arcvoid far arc(int x,int y,int start,int end,int radius); 畫扇形函數(shù)pieslicevoid far pieslice(int x,int y,int start,int end,int radius); 畫橢圓函數(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í)針方向旋轉(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用來確定屏幕顯示模式,也就是用來選擇“調(diào)色板”。 屏幕上顯示出的點(diǎn)、線、面的顏色稱為前景色,而襯托它們的背景顏色稱為背景色。模 式調(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)畫,將一個(gè)三維條形圖從屏幕左上角向右下角移動(dòng)。 11.2 11.2 圖形處理基礎(chǔ)圖形處理基礎(chǔ)4視口操作函數(shù) 在圖形工作方式下,用戶可以在屏幕上設(shè)置一個(gè)窗口,該窗口稱為視口(viewport)。 視口中坐標(biāo)也是以其左

17、上角為參考點(diǎn),每個(gè)視口的左上角坐標(biāo)也為(0,0),它與物理屏幕坐標(biāo)(左上角為(0,0)無關(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)畫,將一個(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)筆劃字體無襯線筆劃黑體筆劃字符的字體字符的字體 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為用戶引用其功能子程序,提供系統(tǒng)的軟中斷。 通過CPU的軟中斷指令I(lǐng)NT n調(diào)用相應(yīng)的程序。指令中的n是中斷調(diào)用號(hào)(中斷類型號(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)存空間管理磁盤I/O處理14H15H16H17H1AH串行接口I/O處理磁帶機(jī)控制鍵盤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)類型CH:光標(biāo)開始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類型的指針,結(jié)構(gòu)SREGS類型在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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論