版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司销售协议合同模板
- 商场供货合同模板
- 低温设备采购合同模板
- 合同模板 定金
- 办公场地长期租赁合同模板
- 和别人签合同模板
- 肝血虚证中血瘀证候的现代药理研究
- 针织印染柔性生产
- 实时数据冲突检测
- 人工智能辅助政府数据安全监测和响应
- Unit1-2 (单元测试)-2024-2025学年人教PEP版(2024)英语三年级上册
- 2024-2025学年人教版九年级物理上学期第一次月考模拟练习(A卷)
- 2024年甘肃省临夏州中考化学真题【附参考答案】
- 2024至2030年全球与中国萤石行业发展潜力及投资策略分析报告
- 2023年数学竞赛AMC8试卷(含答案)
- 两条直线的位置关系说课稿(共6页)
- 浴场服务流程
- 模具设计评审表样表
- 西餐厅员工守则
- 彩色喷墨打印机及照片打印机测试图片(共3页)
- 数学知识在物理课堂教学中的应用
评论
0/150
提交评论