实验报告(实践4)
计算机x班XXX 学号XXXXXXXXX 1.程序源代码
实践4:结构体编程练习(2课时)
2.在屏幕上模拟显示一个数字式时钟
#include <stdio.h>
struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;
struct clock time;
void Update()
{
time.second++;
if (time.second == 60)
{
time.second = 0;
time.minute++;
}
if (time.minute == 60)
{
time.minute = 0;
time.hour++;
}
if (time.hour == 24)
{
time.hour = 0;
}
}
void Display()
{
printf("%2d:%2d:%2d\r", time.hour, time.minute, time.second); }
void Delay()
{
long t;
for (t=0; t<400000000; t++)
{
}
}
void main()
{
long i;
printf("请输入时钟起始时间:");
scanf("%d %d %d",&time.hour, &time.minute, &time.second);
for (i=0; i<100000; i++)
{
Update();
Display();
Delay();
}
}
3.遇到的问题及解决方法
问题1:编写时钟函数?
解决方法:每60秒进一位,即一分钟;每60分钟进一位,即一小时。
在函数体内用循环,在主函数中调用。
问题2:添加起始时间?
解决办法:由用户输入时间,将时间给结构体变量。
问题3:时间变化太快?
解决办法:要使用一个函数来缓冲每一秒的变化时间。
4.总结(心得体会)
这是“C语言课程实践”的第四次实践,也就是本学期最后一次实践。
题目简单,主要是使用了结构体。
原题目是使用了全局变量,而现在是要求使用结构体。
结构体内的成员毫无疑问是小时、分钟和秒,然后需要编写一个时间变化的函数。
然后在主函数中调用该函数,并由负责输出的函数输出时钟,但是在编译过程中发现时间变化太快,这就需要用到缓冲,来增加每一秒变化的时间。
最后我发现该题目有些不足,为什么不能由用户输入时间,然后以此时间开始呢?于是就增加了一个由用户输入的功能。
到现在,经过了四次实践,我的编程能力有了提高,也希望在将来能有进一步提升自己能力的机会。