3.7日C++上机作业
题目1 修改教材的Clock类,增加对象的行为
内容:
(1)走时
(2)以12时制的形式显示时钟的当前值
(3)编写测试类的程序:创建两个时钟对象,分别调用对象的行为.
设计思路:根据系统自带的Clock_t的函数,再设置空循环,我们能够使系统延迟1秒输出,同时在时钟的类当中增加设置时钟和显示时钟的函数
#include <iostream>
#include <cstring>
#include <cstdio>
#include <ctime>
#define cl(arr) memset(arr,0,sizeof(arr))
using namespace std;
const int maxn=1e6+50;
class Clock
{
public:
void settime(int h,int m,int s)
{
hour=h;
minu=m;
sec=s;
if(h>12&&h<24)
ch[0]='p';
else ch[0]='a';
ch[1]='m';
ch[2]='\0';
}
void runtime(int t)
{
sec+=t;
if(sec>=60)
{
minu+=sec/60;
sec=sec%60;
if(minu>=60)
{
hour+=minu/60;
minu=minu%60;
if(hour>=12)
{
hour=hour%12;
}
}
}
showtime();
}
void showtime()
{
if(hour>=12&&hour<=24){ hour=hour%12;}
if(minu>=60||sec>=60||hour>24) return;
if(minu<0||sec<0||hour<0)return;
printf("%02d:%02d:%02d %s\n",hour,minu,sec,ch);
}
private:
int hour,minu,sec;
char ch[10];
};
int main()
{
Clock t,q;
int h,m,s;
printf("set clock1\n");
scanf("%d%d%d",&h,&m,&s);
t.settime(h,m,s);
t.showtime();
printf("set clock2\n");
int h2,m2,s2;
scanf("%d%d%d",&h2,&m2,&s2);
q.settime(h2,m2,s2);
q.showtime();
printf("run clock1\n");
printf("please input how many sec you need to run\n");
int k;
scanf("%d",&k);
while(k--)
{
int p=1;
p*=CLOCKS_PER_SEC;
clock_t now=clock();
while(clock()-now<p);
t.runtime(1);
}
return 0;
}