- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.2.9实验9结构体编程练习.doc
·PAGE 138·
C语言大学实用教程学习指导
·PAGE 137·
第2章 上机实验指导
2.2.9 实验9:结构体编程练习
在屏幕上模拟显示一个数字式时钟
按如下方法定义一个时钟结构体类型:
struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;
然后,将下列用全局变量编写的时钟模拟显示程序改成用CLOCK结构体变量类型重新编写。已知用全局变量编写的时钟模拟显示程序如下:
#include stdio.h
#include stdio.h
int hour, minute, second; /*全局变量定义*/
/*
函数功能:时、分、秒时间的更新
函数参数:无
函数返回值:无
*/
void Update(void)
{
second++;
if (second == 60) /*若second值为60,表示已过1分钟,则 minute值加1*/
{
second = 0;
minute++;
}
if (minute == 60) /*若minute值为60,表示已过1小时,则 hour值加1*/
{
minute = 0;
hour++;
}
if (hour == 24) /*若hour值为24,则hour的值从0开始计时*/
{
hour = 0;
}
}
/*函数功能:时、分、秒时间的显示
函数参数:无
函数返回值:无
*/
void Display(void) /*用回车符\r控制时、分、秒显示的位置*/
{
printf(%2d:%2d:%2d\r, hour, minute, second);
}
/*函数功能:模拟延迟1秒的时间
函数参数:无
函数返回值:无
*/
void Delay(void)
{
long t;
for (t=0; t++)
{
/*循环体为空语句的循环,起延时作用*/
}
}
main()
{
long i;
hour = minute = second = 0; /*hour,minute,second赋初值0*/
for (i=0; i100000; i++) /*利用循环结构,控制时钟运行的时间*/
{
Update(); /*时钟更新*/
Display(); /*时间显示*/
Delay(); /*模拟延时1秒*/
}
}
【思考题】 请读者思考:
① 用结构体指针作为函数参数与用结构体变量作为函数参数有什么不同?本题可以用结构体变量作为函数参数编程实现吗?
② 请读者自己分析下面两段程序代码,并解释它们是如何实现时钟值更新操作的。
void Update(struct clock *t)
{
static long m = 1;
t-hour = m / 3600;
t-minute = (m – 3600 * t-hour) / 60;
t-second = m % 60;
m++;
if (t-hour == 24)
{
m = 1;
}
}
void Update(struct clock *t)
{
static long m = 1;
t-second = m % 60;
t-minute = (m / 60) % 60;
t-hour = (m / 3600) % 24;
m++;
if (t-hour == 24)
{
m = 1;
}
}
您可能关注的文档
最近下载
- 常见的临床药师培训学习汇报.ppt
- 言语行为和翻译.ppt VIP
- 北师大版小学数学六年级上册第五单元《数据处理》作业设计.docx
- Hive数据仓库应用教程高职PPT完整全套教学课件.pptx VIP
- 医院培训课件:《传染病防治法》.pptx
- 幼小衔接的拼音试卷十套打印版.pdf VIP
- 幼儿园大班科学《有趣的符号》 课件.pptx VIP
- 规范《DBT29-222-2014-天津市建设工程施工安全资料管理规程》.pdf VIP
- GB_T 22890.1-2024 皮革 柔软皮革防水性能的测定 第1部分:反复线压缩法(透度计法).pdf VIP
- DB34_T 4324-2022水泥土搅拌桩地基加固施工技术规程.pdf VIP
文档评论(0)