实习指导(时钟)课件_第1页
实习指导(时钟)课件_第2页
实习指导(时钟)课件_第3页
实习指导(时钟)课件_第4页
实习指导(时钟)课件_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4/23/20231C语言综合实习训练C程序的组成C程序的模块化设计图形设计动态时钟设计要点设计任务与设计要求参考书4/23/20232一.C程序组成C程序源程序1源程序2源程序n…………预编译命令函数1函数n……说明部分执行部分4/23/20233二.C程序模块化设计模块化的程序设计的构思1.抽象描述2.框架分解3.简化功能(函数)模块化设计的实质性阶段从单一功能的函数设计开始定义变量、确定算法对每个函数,分别编译(Compile)但不链接(Link)按顺序在主函数堆砌各函数参数调用、流程控制由部分到整体调试(编译、链接)4/23/20234成绩录入个人成绩统计班级平均成绩成绩结果统计退出输出统计结果输入各科成绩成绩存盘个人平均成绩个人总成绩优秀成绩统计不及格成绩统计排序结果输出班级总成绩输出个人成绩输出优秀\不及格输出某班学生成绩统计设计4/23/20235C程序设计风格根据需要,建立自己的头文件可将宏定义、自定义函数原型等分类放在头文件中在程序的开头用#include”filename.h”包含进来通常头文件放在TC\include的目录下也可使用其它路径存放头文件#include”a:\\info.h”4/23/20236C程序设计风格…函数的使用保持函数小型化,功能单一化函数设计应具有独立性,单进单出恰当使用外部变量,尽可能提高模块的独立性采用层次的书写程序格式按语句的从属关系分层,缩格方式编程适当使用注释,便于程序阅读和调试4/23/20237三、图形设计(一)意义软件设计的人性化——友好的操作界面直观的信息——图形(矢量)或图象(像素)例如:统计直方图(饼图)趋势曲线图仿真图过渡动画FLASH画面4/23/20238(二)TurboC的图形1.图形显示器与适配器彩色显示器:接收红绿兰三种模拟信号。每种信号强度不同,经过解码电路,就形成不同的色彩适配器(图形卡):将要显示的字符和图形以数字形式存储在卡上的视频RAM中,再转换成视频模拟信号传送给相应的显示器适配器主要作用:信息转换(CPU显卡)和视频发送(显卡CRT)不同的适配器,使用的显示器也不同4/23/20239(三)图形设计基本要领1)TurbocC支持的适配器和图形模式支持多种适配器例如:CGA,EGA,VGA等等。以国内使用面较大的适配器VGA为例。

适配器图形模式值标识符分辨率

DriverModeVGA0VGALO640×2001VGAMED640×3502VGAHI640×480(0,0)(639,479)YX640×480modeCRT4/23/2023102)文本方式与图形方式开机上电后的模式都是80×25的文本模式进入图形方式时,应调用TurboC的图形初始化initgarph()函数,进行检测或设置指定的图形模式。图形初始化完成之后,即可调用图形函数进行绘图编程。绘图函数头文件是graphics.h。由图形方式返回到文本方式时,需要关闭图形方式——图形关闭函数closegraph()。4/23/202311#include“graphics.h”main(){/*已知图形适配器为VGA时,如采用640×480的显示模式*/

intdriver=VGA,mode=VGAHI;

intflag=0,row,col;

/*将指定模式的驱动程序(*.GBI),从当前路径下调入内存*/

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

/*下面即可编写绘图程序*/

setcolor(RED);

/*……*/

getch();/*关闭图形系统,返回到文本方式*/

closegraph();}(四)图形初始化程序示例4/23/202312四、动态时钟设计的要点(一)函数1、初始化图形系统

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

参数说明:(1)graphdriver

图形驱动器代号

(2)graphmode

选定图形驱动器的工作模式

(3)pathtodriver

图形驱动器文件路径

4/23/202313驱动器代号(graphdriver

)DETECT0

CGA1

MCGA2

EGA3EGA644

EGAMONO5

IBM85146HERCMONO7

VGA9图形驱动器的工作模式(graphmode)

EGALO=0640x20016EGAHI=1640x35016EGA64LO=0640x20016VGALO=0640x20016VGAMED=1640x35016VGAHI=2640x48016图形驱动器文件路径

(pathtodriver)

BGI所在的路径,如不修改,图形驱动器文件在TC目录下,在当前目录下可以省略````)例如,BGI在e盘caic文件夹下:

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

4/23/202314示例:

(1)将图形系统初始化为VGA640X48016色工作方式:intdriver=VGA,mode=VGAHI;initgraph(&driver,&mode,“

e:\\caic\\bgi”)(例1)(2)利用默认值进行图形系统初始化。

int

gdriver=DETECT,gmode;/*系统默认值*/

initgraph(&gdriver,&gmode,"");/*此时的图形设备驱动程序*.BGI或*.CHR在当前文件编辑的目录下*/

(例2)(3)TurboC提供了一个自动检测显示器硬件的函数.

(例3)4/23/2023152、注册已连接的图形驱动器程序int

registerbgidriver(void(*driver)(void))(该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中,编译链接后的执行程序可在任何目录或其它兼容机上运行)

(例4)4/23/202316设置背景颜色和画笔颜色设置背景void

setbkcolor(int

color)

设置作图色:void

setcolor(int

color)

屏幕颜色的符号常数表

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

符号常数

数值

含义

符号常数

数值

含义

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

BLACK0黑色

DARKGRAY8深灰

BLUE1兰色

LIGHTBLUE9深兰

GREEN2绿色

LIGHTGREEN10淡绿

CYAN3青色

LIGHTCYAN11淡青

RED4红色

LIGHTRED12淡红

MAGENTA5洋红

LIGHTMAGENTA13淡洋红

BROWN6棕色

YELLOW14黄色

LIGHTGRAY7淡灰

WHITE15白色

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

4/23/2023173、作图函数(1)画直线

voidline(intx1,inty1,intx2,inty2)

参数说明:x1,y1,x2,y2(坐标位置)直线的起点和终点坐标。

进一步说明:

有关坐标位置的函数

int

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

int

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

int

getx(void);返回游标在x轴的位置。

voidgety(void);返回游标有y轴的位置。

voidmoveto(intx,inty);移动游标到(x,y)点,不是画点,在移动过程中亦画点。

voidfarmoverel(int

dx,int

dy);移动游标从现行位置(x,y)移动到(x+dx,y+dy)的位置,移动过程中不画点。

(例5)

画一条从屏幕左上角到右下角的直线4/23/202318(2)画圆void

circle(int

x,int

y,int

radius)

参数说明:x,y

圆心坐标,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)设置填充模式和填充颜色

void

setfillstyle(intpattern,intcolor)参数说明:color填充颜色

pattern填充模式,共13种,具体如下:EMPTY_FILL背景色填充SOLID_FILL实填充LINE_FILL---线填充LTSLASH_FILL斜线填充SLASH_FILL粗斜线填充BKSLASH_FILL反粗斜线填充LTBKSLASH_FILL反斜线填充HATCH_FILL网格填充XHATCH_FILL斜网格填充INTERLEAVE_FILL间隔点线填充WIDE_DOT_FILL稀疏点填充CLOSE_DOT_FILL密集点填充USER_FILL用户自定义填充

4/23/202320(4)画方块void

bar(intleft,inttop,intright,intbottom)left,top是方块左上角的x、y坐标right,bottom是方块右下角的x、y坐标方块内部的颜色由setfillstyle

函数设置4/23/202321(5)填充一个有边界的区域void

floodfill(intx,inty,intborder)参数说明:x,y

要填充区域内的任意一点坐标,border填充区域边界的颜色(例7)在屏幕上画实心圆(6)设置图形模式下字符显示底字体、方向和大小

void

settextstyle(intfont,intdirection,int

charsize)参数说明:font显示字体

,directiom

显示方向

,charsize

字体放大倍数(7)图形模式下在x,y坐标位置显示一行字符串

void

outtextxy(int

x,int

y,char*textstring)参数说明: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

字体放大倍数,取值为0-10(例8)4/23/202322(8)

获取系统时间

void

gettime(structtime*t)

注:structtime{

unsinedcharti_min;

unsinedcharti_hour;

unsinedcharti_hund;

unsinedcharti_sec;};(9)

获取系统日期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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论