实验九 结构体编程练习

更新时间:2024-04-07 05:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2.2.9 实验9:结构体编程练习

在屏幕上模拟显示一个数字式时钟

按如下方法定义一个时钟结构体类型:

struct clock { int hour; int minute; int second; };

typedef struct clock CLOCK;

然后,将下列用全局变量编写的时钟模拟显示程序改成用CLOCK结构体变量类型重新编写。已知用全局变量编写的时钟模拟显示程序如下:

#include #include

int hour, minute, second; /*全局变量定义*/ /*

函数功能:时、分、秒时间的更新 函数参数:无 函数返回值:无 */

void Update(void) {

second++;

if (second == 60) /*若second值为60,表示已过1分钟,则 minute值加1*/ { }

if (minute == 60) { }

if (hour == 24) { }

hour = 0;

/*若hour值为24,则hour的值从0开始计时*/

minute = 0; hour++;

/*若minute值为60,表示已过1小时,则 hour值加1*/

second = 0; minute++;

第2章 上机实验指导 ·137·

}

/*函数功能:时、分、秒时间的显示 函数参数:无 函数返回值:无 */

void Display(void) { }

/*函数功能:模拟延迟1秒的时间 函数参数:无 函数返回值:无 */

void Delay(void) {

for (t=0; t<50000000; t++)

{

} }

main() { long i; hour = minute = second = 0; for (i=0; i<100000; i++) { Update(); Display(); Delay(); } }

long

t;

printf(\

/*用回车符'\\r'控制时、分、秒显示的位置*/

/*循环体为空语句的循环,起延时作用*/

/*hour,minute,second赋初值0*/ /*利用循环结构,控制时钟运行的时间*/ /*时钟更新*/ /*时间显示*/ /*模拟延时1秒*/

【思考题】 请读者思考:

① 用结构体指针作为函数参数与用结构体变量作为函数参数有什么不同?本题可以用结构体变量作为函数参数编程实现吗?

② 请读者自己分析下面两段程序代码,并解释它们是如何实现时钟值更新操作的。

void Update(struct clock *t) {

·138· C语言大学实用教程学习指导

}

void Update(struct clock *t) { }

t->second = m % 60;

t->minute = (m / 60) % 60; t->hour = (m / 3600) % 24; m++;

if (t->hour == 24) { m = 1; }

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;

static long m = 1;

本文来源:https://www.bwwdw.com/article/2jar.html

Top