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;
}
全部评论

相关推荐

11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
10-15 10:57
已编辑
武昌理工学院 FPGA工程师
狠赚笔第一人:老哥学院本没实习还想拿13k学Java狠赚笔呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务