實習(xí)指導(dǎo)(時鐘)課件_第1頁
實習(xí)指導(dǎo)(時鐘)課件_第2頁
實習(xí)指導(dǎo)(時鐘)課件_第3頁
實習(xí)指導(dǎo)(時鐘)課件_第4頁
實習(xí)指導(dǎo)(時鐘)課件_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

4/23/20231C語言綜合實習(xí)訓(xùn)練C程序的組成C程序的模塊化設(shè)計圖形設(shè)計動態(tài)時鐘設(shè)計要點設(shè)計任務(wù)與設(shè)計要求參考書4/23/20232一.C程序組成C程序源程序1源程序2源程序n…………預(yù)編譯命令函數(shù)1函數(shù)n……說明部分執(zhí)行部分4/23/20233二.C程序模塊化設(shè)計模塊化的程序設(shè)計的構(gòu)思1.抽象描述2.框架分解3.簡化功能(函數(shù))模塊化設(shè)計的實質(zhì)性階段從單一功能的函數(shù)設(shè)計開始定義變量、確定算法對每個函數(shù),分別編譯(Compile)但不鏈接(Link)按順序在主函數(shù)堆砌各函數(shù)參數(shù)調(diào)用、流程控制由部分到整體調(diào)試(編譯、鏈接)4/23/20234成績錄入個人成績統(tǒng)計班級平均成績成績結(jié)果統(tǒng)計退出輸出統(tǒng)計結(jié)果輸入各科成績成績存盤個人平均成績個人總成績優(yōu)秀成績統(tǒng)計不及格成績統(tǒng)計排序結(jié)果輸出班級總成績輸出個人成績輸出優(yōu)秀\不及格輸出某班學(xué)生成績統(tǒng)計設(shè)計4/23/20235C程序設(shè)計風(fēng)格根據(jù)需要,建立自己的頭文件可將宏定義、自定義函數(shù)原型等分類放在頭文件中在程序的開頭用#include”filename.h”包含進來通常頭文件放在TC\include的目錄下也可使用其它路徑存放頭文件#include”a:\\info.h”4/23/20236C程序設(shè)計風(fēng)格…函數(shù)的使用保持函數(shù)小型化,功能單一化函數(shù)設(shè)計應(yīng)具有獨立性,單進單出恰當(dāng)使用外部變量,盡可能提高模塊的獨立性采用層次的書寫程序格式按語句的從屬關(guān)系分層,縮格方式編程適當(dāng)使用注釋,便于程序閱讀和調(diào)試4/23/20237三、圖形設(shè)計(一)意義軟件設(shè)計的人性化——友好的操作界面直觀的信息——圖形(矢量)或圖象(像素)例如:統(tǒng)計直方圖(餅圖)趨勢曲線圖仿真圖過渡動畫FLASH畫面4/23/20238(二)TurboC的圖形1.圖形顯示器與適配器彩色顯示器:接收紅綠蘭三種模擬信號。每種信號強度不同,經(jīng)過解碼電路,就形成不同的色彩適配器(圖形卡):將要顯示的字符和圖形以數(shù)字形式存儲在卡上的視頻RAM中,再轉(zhuǎn)換成視頻模擬信號傳送給相應(yīng)的顯示器適配器主要作用:信息轉(zhuǎn)換(CPU顯卡)和視頻發(fā)送(顯卡CRT)不同的適配器,使用的顯示器也不同4/23/20239(三)圖形設(shè)計基本要領(lǐng)1)TurbocC支持的適配器和圖形模式支持多種適配器例如:CGA,EGA,VGA等等。以國內(nèi)使用面較大的適配器VGA為例。

適配器圖形模式值標(biāo)識符分辨率

DriverModeVGA0VGALO640×2001VGAMED640×3502VGAHI640×480(0,0)(639,479)YX640×480modeCRT4/23/2023102)文本方式與圖形方式開機上電后的模式都是80×25的文本模式進入圖形方式時,應(yīng)調(diào)用TurboC的圖形初始化initgarph()函數(shù),進行檢測或設(shè)置指定的圖形模式。圖形初始化完成之后,即可調(diào)用圖形函數(shù)進行繪圖編程。繪圖函數(shù)頭文件是graphics.h。由圖形方式返回到文本方式時,需要關(guān)閉圖形方式——圖形關(guān)閉函數(shù)closegraph()。4/23/202311#include“graphics.h”main(){/*已知圖形適配器為VGA時,如采用640×480的顯示模式*/

intdriver=VGA,mode=VGAHI;

intflag=0,row,col;

/*將指定模式的驅(qū)動程序(*.GBI),從當(dāng)前路徑下調(diào)入內(nèi)存*/

initgraph(&driver,&mode,“”);

/*下面即可編寫繪圖程序*/

setcolor(RED);

/*……*/

getch();/*關(guān)閉圖形系統(tǒng),返回到文本方式*/

closegraph();}(四)圖形初始化程序示例4/23/202312四、動態(tài)時鐘設(shè)計的要點(一)函數(shù)1、初始化圖形系統(tǒng)

initgraph(int*graphdriver,int*graphmode,char*pathtodriver)

參數(shù)說明:(1)graphdriver

圖形驅(qū)動器代號

(2)graphmode

選定圖形驅(qū)動器的工作模式

(3)pathtodriver

圖形驅(qū)動器文件路徑

4/23/202313驅(qū)動器代號(graphdriver

)DETECT0

CGA1

MCGA2

EGA3EGA644

EGAMONO5

IBM85146HERCMONO7

VGA9圖形驅(qū)動器的工作模式(graphmode)

EGALO=0640x20016EGAHI=1640x35016EGA64LO=0640x20016VGALO=0640x20016VGAMED=1640x35016VGAHI=2640x48016圖形驅(qū)動器文件路徑

(pathtodriver)

BGI所在的路徑,如不修改,圖形驅(qū)動器文件在TC目錄下,在當(dāng)前目錄下可以省略````)例如,BGI在e盤caic文件夾下:

``e:\\caic\\bgi``

4/23/202314示例:

(1)將圖形系統(tǒng)初始化為VGA640X48016色工作方式:intdriver=VGA,mode=VGAHI;initgraph(&driver,&mode,“

e:\\caic\\bgi”)(例1)(2)利用默認(rèn)值進行圖形系統(tǒng)初始化。

int

gdriver=DETECT,gmode;/*系統(tǒng)默認(rèn)值*/

initgraph(&gdriver,&gmode,"");/*此時的圖形設(shè)備驅(qū)動程序*.BGI或*.CHR在當(dāng)前文件編輯的目錄下*/

(例2)(3)TurboC提供了一個自動檢測顯示器硬件的函數(shù).

(例3)4/23/2023152、注冊已連接的圖形驅(qū)動器程序int

registerbgidriver(void(*driver)(void))(該函數(shù)告訴連接程序在連接時把EGAVGA的驅(qū)動程序裝入到用戶的執(zhí)行程序中,編譯鏈接后的執(zhí)行程序可在任何目錄或其它兼容機上運行)

(例4)4/23/202316設(shè)置背景顏色和畫筆顏色設(shè)置背景void

setbkcolor(int

color)

設(shè)置作圖色:void

setcolor(int

color)

屏幕顏色的符號常數(shù)表

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

符號常數(shù)

數(shù)值

含義

符號常數(shù)

數(shù)值

含義

──────────────────────────────

BLACK0黑色

DARKGRAY8深灰

BLUE1蘭色

LIGHTBLUE9深蘭

GREEN2綠色

LIGHTGREEN10淡綠

CYAN3青色

LIGHTCYAN11淡青

RED4紅色

LIGHTRED12淡紅

MAGENTA5洋紅

LIGHTMAGENTA13淡洋紅

BROWN6棕色

YELLOW14黃色

LIGHTGRAY7淡灰

WHITE15白色

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

4/23/2023173、作圖函數(shù)(1)畫直線

voidline(intx1,inty1,intx2,inty2)

參數(shù)說明:x1,y1,x2,y2(坐標(biāo)位置)直線的起點和終點坐標(biāo)。

進一步說明:

有關(guān)坐標(biāo)位置的函數(shù)

int

getmaxx(void);返回x軸的最大值。

int

getmaxy(void);返回y軸的最大值。

int

getx(void);返回游標(biāo)在x軸的位置。

voidgety(void);返回游標(biāo)有y軸的位置。

voidmoveto(intx,inty);移動游標(biāo)到(x,y)點,不是畫點,在移動過程中亦畫點。

voidfarmoverel(int

dx,int

dy);移動游標(biāo)從現(xiàn)行位置(x,y)移動到(x+dx,y+dy)的位置,移動過程中不畫點。

(例5)

畫一條從屏幕左上角到右下角的直線4/23/202318(2)畫圓void

circle(int

x,int

y,int

radius)

參數(shù)說明:x,y

圓心坐標(biāo),radius半徑。示例:#include<graphics.h>#include<conio.h>int

main(void){

int

gdriver=DETECT,gmode,errorcode;

int

midx=300,midy=300;

intradius=100;

initgraph(&gdriver,&gmode,"");

circle(midx,midy,radius);

getch();

closegraph();}

4/23/202319(例6)顯示16種顏色(3)設(shè)置填充模式和填充顏色

void

setfillstyle(intpattern,intcolor)參數(shù)說明:color填充顏色

pattern填充模式,共13種,具體如下:EMPTY_FILL背景色填充SOLID_FILL實填充LINE_FILL---線填充LTSLASH_FILL斜線填充SLASH_FILL粗斜線填充BKSLASH_FILL反粗斜線填充LTBKSLASH_FILL反斜線填充HATCH_FILL網(wǎng)格填充XHATCH_FILL斜網(wǎng)格填充INTERLEAVE_FILL間隔點線填充WIDE_DOT_FILL稀疏點填充CLOSE_DOT_FILL密集點填充USER_FILL用戶自定義填充

4/23/202320(4)畫方塊void

bar(intleft,inttop,intright,intbottom)left,top是方塊左上角的x、y坐標(biāo)right,bottom是方塊右下角的x、y坐標(biāo)方塊內(nèi)部的顏色由setfillstyle

函數(shù)設(shè)置4/23/202321(5)填充一個有邊界的區(qū)域void

floodfill(intx,inty,intborder)參數(shù)說明:x,y

要填充區(qū)域內(nèi)的任意一點坐標(biāo),border填充區(qū)域邊界的顏色(例7)在屏幕上畫實心圓(6)設(shè)置圖形模式下字符顯示底字體、方向和大小

void

settextstyle(intfont,intdirection,int

charsize)參數(shù)說明:font顯示字體

,directiom

顯示方向

,charsize

字體放大倍數(shù)(7)圖形模式下在x,y坐標(biāo)位置顯示一行字符串

void

outtextxy(int

x,int

y,char*textstring)參數(shù)說明:x,y

顯示的位置,textstring要顯示的字符串

font

顯示字體,取值如下:TRIPLEX_FONT=1三倍筆劃DEFAULT_FONT=08x8點陣SMALL_FONT=2小號字體SANS_SERIF_FONT=3無襯線字體GOTHIC_FONT=4哥特字體directiom

顯示方向,取值如下:HORIZ_DIR=0水平顯示VERT_DIR=1垂直顯示charsize

字體放大倍數(shù),取值為0-10(例8)4/23/202322(8)

獲取系統(tǒng)時間

void

gettime(structtime*t)

注:structtime{

unsinedcharti_min;

unsinedcharti_hour;

unsinedcharti_hund;

unsinedcharti_sec;};(9)

獲取系統(tǒng)日期void

getdate(structdate*d)注:structdate{

int

da_year;charda_day;charda_mon;}4/23/202323(10)延時

voiddelay(unsigned

millisconds)示例:

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論