精华内容
下载资源
问答
  • c语言模拟时钟c语言程序设计,模拟时钟代码
  • C语言模拟时钟源代码,可以直接复制到vc++6.0使用
  • 很好的实验报告哦,尤其是软件的童鞋们,可以放心大胆拿走吧,仅此一份
  • VC++6.0 #include <graphics.h> C语言实现 加q:2760533629 [img=https://img-bbs.csdn.net/upload/202006/29/1593431480_325868.png][/img]
  • 当有些单片机没有自带的实时时钟功能的时候,我们需要使用算法模拟出来实时时钟。该程序在实际生产中运行正常,实现了基本功能,误差很小。
  • c语言时钟模拟

    2008-03-10 18:40:40
    c语言时钟模拟(源程序及.exe文件) 图形化界面,屏幕上显示圆形的模拟时钟表盘,显示12个刻度。 时钟上有秒针、分针和时针指示,随着时间推移,秒针、分针和时针在表盘上移动。
  • 学号 1408210136 2014-2015学年 第二学期 高级语言程序设计 课程设计报告 题目图形模拟时钟 专业计算机科学与技术 班级14级2班 姓名王欣 指导教师陈广宏 成绩 计算机学院 2015年5月20日 计算机学院高级语言程序设计...
  • C语言时钟模拟

    2008-03-08 16:04:10
    提供了详细的C语言始终模拟的解释以及例子
  • c语言编写的模拟时钟

    2013-12-05 19:33:42
    用c编写的模拟时钟模拟时钟不用考虑国际化问题,但图形复杂。而且我们还需要一些三角函数知识。
  • C语言写的模拟时钟

    2011-11-04 12:06:40
    C语言写的模拟时钟.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • c语言模拟时钟秒表

    千次阅读 2014-05-13 11:35:50
    #include struct clock { ...void delay()//模拟时钟的延迟 { int j; for(j=0;j;j++) { } b.second++; } int main(int i) { for(i=0;i;i++) { display(); update(); delay(); } }
    #include<stdio.h>
    struct clock
    {
    	int minute;
    	int hour;
    	int second;
    };
    typedef struct clock demo;
    demo b;
    void display()//显示
    {
    	printf("%d:%d:%d\r",b.hour,b.minute,b.second);
    }
    void update()//时间的更新
    {
    	if(b.second==60)
    	{
    		b.minute++;
    		b.second=0;
    	}
    	if(b.minute==60)
    	{
    		b.hour++;
    		b.second=0;
    	} 
    	if(b.hour==24)
    	{
    		b.second++;
    	    b.hour=0;
    	}
    }
    void delay()//模拟时钟的延迟
    {
    	int j;
    	for(j=0;j<100000000;j++)
    	{
    		
    	}
    	b.second++;
    }
    int main(int i)
    {
    	for(i=0;i<10000000;i++)
    	{
    	display();
    	update();
    	delay();
        }
    }
    

    展开全文
  • Also Read: Simple program to create a moving car in graphics 另请阅读: 用于在图形中创建移动汽车的简单程序 C语言模拟时钟程序 (Program for Analog Clock in C) /* Graphical Analog Clock designed in C*...
    create an analog clock in C using graphics. This tutorial is written in a way that a beginner C graphics programmer can also understand.Before getting into the main let me explain the functions I have used in the program.创建模拟时钟 。 本教程是以C语言初学者也可以理解的方式编写的。在进入主要内容之前,让我解释一下我在程序中使用的功能。

    Also Read: C/C++ Program to Create a Digital Stopwatch Also Read: Simple program to create a circular loading bar using graphics

    另请参阅: 用于创建数字秒表的C / C ++程序 另请参见: 用于使用图形创建圆形加载条的简单程序

    clockLayout() I’ve used this function to print the clock layout i.e. clock dial and the markings on the clock. If we observe clearly, the clock has hours marking each separated by 30 degrees and each hour is divided into 5 markings each making an angle of 6 degrees. So, iterating the markings for every 30 degrees gives hours and iterating markings with 6 degrees give minutes markings on the clock. The clock would look like this after executing this function.

    clockLayout()我已经使用此函数来打印时钟布局,即时钟刻度盘和时钟上的标记。 如果我们清楚地观察到,时钟上的小时标记彼此分开30度,每个小时分为5个标记,每个标记成6度角。 因此,每30度迭代一次标记会产生数小时,而每6度迭代一次标记会产生数分钟的时钟标记。 执行此功能后,时钟将如下所示。

    Make Analog Clock in C Using Graphics

    secHand() It is clear from the name that this gonna do something with the seconds hand. This function is going to get the present second from the system clock and incline the line according to a particular angle. Eg: if the present seconds is 5 then the angle of the seconds hand with respect to the vertical must be 30 degrees, i.e. 5*6=30.

    secHand()从名称中可以明显看出,这将使秒针起作用 。 此功能将从系统时钟中获取当前秒数,并根据特定角度倾斜线路。 例如:如果当前秒数是5,则秒针相对于垂直线的角度必须为30度,即5 * 6 = 30。

    minHand() This function fulfills the task of moving the minutes hand based on the system clock. The minutes hand must be inclined 6 degrees for every minute passing. Eg: if the elapsed minutes are 30 then the minutes hand angle must be making 180 degrees with the vertical.

    minHand()此函数完成根据系统时钟移动分针的任务。 分针每经过一分钟必须倾斜6度。 例如:如果经过的分钟数为30,则分钟指针的角度必须与垂直方向成180度。

    hrHand() This function is going to print an inclined hours line. The function is designed to get the present hour and also the no. of elapsed minutes from the system clock and incline the line according to a particular angle. For every hour elapsed the hour hand moves 30 degrees and every 12 minutes it moves 6 degrees.

    hrHand()此函数将打印倾斜的小时线。 该功能旨在获取当前时间以及编号。 从系统时钟开始经过的分钟数,并根据特定角度倾斜线路。 时针每小时移动30度,每12分钟移动6度。

    main() The first lines in main are graphic initialization, you must change the path “c:\turboc3\bgi\” to your compiler’s BGI file path otherwise program will not work. Coming to the while loop, the while loop iterates for every 100 milliseconds reprinting all the functions. This program is like getting the static picture of clock every second and combining all the pictures to make a moving analog clock.

    main()main的第一行是图形初始化,必须将路径“ c:\ turboc3 \ bgi \”更改为编译器的BGI文件路径,否则程序将无法工作。 进入while循环时,while循环每隔100毫秒迭代一次,以重新打印所有功能。 该程序就像每秒获取时钟的静态图片,然后将所有图片合成一个移动的模拟时钟一样。

    Also Read: Simple program to create a moving car in graphics

    另请阅读: 用于在图形中创建移动汽车的简单程序

    C语言模拟时钟程序 (Program for Analog Clock in C)

    /* Graphical Analog Clock designed in C*/
    /*Note press ctrl+pause break to stop the clock while executing in TC*/
     
    #include<stdio.h>
    #include<graphics.h>
    #include<stdlib.h>
    #include<math.h>
    #include<dos.h>
    #include<time.h>
     
    #define PI 3.147
     
    void clockLayout();
    void secHand();
    void hrHand();
    void minHand();
    int maxx,maxy;
     
    void main()
    {
     int gdriver=DETECT,gmode,error;
     initgraph(&gdriver,&gmode,"c:\turboc3\bgi\");
     error=graphresult();
     if(error!=grOk)
     {
      printf("Error in graphics, code= %d",grapherrormsg(error));
      exit(0);
     }
     
     while(1)
     {
      clockLayout();
      secHand();
      minHand();
      hrHand();
      sleep(1);                /* pausing the outputscreen for 1 sec */
      cleardevice();           /* clearing the previous picture of clock */
     }
    }
     
    void clockLayout()
    {
     int i,x,y,r;
     float j;
     maxx=getmaxx();
     maxy=getmaxy();
     
     for(i=1;i<5;i++)
     {                   /* printing a round ring with outer radius of 5 pixel */
      setcolor(YELLOW);
      circle(maxx/2,maxy/2,120-i);
     }
     
     pieslice(maxx/2,maxy/2,0,360,5);    /* displaying a circle in the middle of clock */
     x=maxx/2+100;y=maxy/2;
     r=100;
     setcolor(BLUE);
     
     for(j=PI/6;j<=(2*PI);j+=(PI/6))
     {    /* marking the hours for every 30 degrees */
      pieslice(x,y,0,360,4);
      x=(maxx/2)+r*cos(j);
      y=(maxy/2)+r*sin(j);
     }
     
     x=maxx/2+100;y=maxy/2;
     r=100;
     setcolor(RED);
     
     for(j=PI/30;j<=(2*PI);j+=(PI/30))
     {  /* marking the minutes for every 6 degrees */
      pieslice(x,y,0,360,2);
      x=(maxx/2)+r*cos(j);
      y=(maxy/2)+r*sin(j);
     }
    }
     
    void secHand()
    {
     struct time t;
     int r=80,x=maxx/2,y=maxy/2,sec;
     float O;
     
     maxx=getmaxx();maxy=getmaxy();
     gettime(&t);                     /*getting the seconds in system clock */
     sec=t.ti_sec;
     O=sec*(PI/30)-(PI/2);           /* determining the angle of the line with respect to vertical */
     setcolor(YELLOW);
     line(maxx/2,maxy/2,x+r*cos(O),y+r*sin(O));
    }
     
    void hrHand()
    {
     int r=50,hr,min;
     int x,y;
     struct time t;
     float O;
     
     maxx=getmaxx();
     maxy=getmaxy();
     x=maxx/2,y=maxy/2;
     gettime(&t);                     /*getting the seconds in system clock */
     hr=t.ti_hour;
     min=t.ti_min;
     
     /* determining the angle of the line with respect to vertical */
     if(hr<=12)O=(hr*(PI/6)-(PI/2))+((min/12)*(PI/30));
     if(hr>12) O=((hr-12)*(PI/6)-(PI/2))+((min/12)*(PI/30));
     setcolor(BLUE);
     line(maxx/2,maxy/2,x+r*cos(O),y+r*sin(O));
    }
     
    void minHand()
    {
     int r=60,min;
     int x,y;
     float O;
     struct time t;
     maxx=getmaxx();
     maxy=getmaxy();
     x=maxx/2;
     y=maxy/2;
     gettime(&t);  /*getting the seconds in system clock */
     min=t.ti_min;
     O=(min*(PI/30)-(PI/2)); /* determining the angle of the line with respect to vertical */
     setcolor(RED);
     line(maxx/2,maxy/2,x+r*cos(O),y+r*sin(O));
    }

    Coment down below if you have any queries related to above program.

    如果您对以上程序有任何疑问,请在下面注释。

    翻译自: https://www.thecrazyprogrammer.com/2014/10/make-analog-clock-in-c-using-graphics.html

    展开全文
  • 自己制作的课程设计文档,有同样为程序设计文档苦恼的可以借鉴哈
  • C语言开发的一个模拟机械钟走时,以及显示汉字的程序,希望对大家有用!
  • 模拟时钟.cpp

    2018-05-12 10:17:43
    C语言模拟时钟代码 int main() { int i; hour=0,minute=0,second=0; for(i=0;i;i++) { Update(); Display(); Delay(); } return 0; }
  • 一个模拟时钟转动的程序c语言的很简单的一个代码
  • Buddy算法:操作系统学习之用C语言模拟伙伴(Buddy)算法 FIFO算法:操作系统学习之用C语言模拟FIFO算法 LRU算法:操作系统学习之用C语言模拟LRU算法 Clock算法: 本源代码原创,转载请注明,同时由于本人才疏学浅,刚...

    前言

    CLOCK算法,顾名思义,时钟算法,是一个在FIFO和LRU的折衷算法,很符合我们的中庸之道,来学一学它折衷了哪些部分。

    Buddy算法:操作系统学习之用C语言模拟伙伴(Buddy)算法
    FIFO算法:操作系统学习之用C语言模拟FIFO算法
    LRU算法:操作系统学习之用C语言模拟LRU算法
    Clock算法:操作系统学习之用C语言模拟CLOCK算法
    本源代码原创,转载请注明,同时由于本人才疏学浅,刚入门操作系统,如有错误敬请指教

    算法模拟

    教科书原图
    在这里插入图片描述

    算法解释

    先来看看课本上的解释。
    时钟策略有很多的变种,最简单的时钟策略需要给每个页框关联一个使用位的附加位。当某页首次装入内存时,将该页框的使用位置为1;该页随后被访问时(在访问产生缺页中断后),其使用位也会置为1。对于页面置换算法,用于置换的候选页框集(当前进程:局部范围;整个内存:全局范围)被视为一个循环缓冲区,并有一个指针与之相关联,当一页被置换时,该指针被置为指向缓冲区中的下一个页框。需要置换一个页时,操作系统扫描缓冲区,查找使用位为 0的一个页框。每当遇到一个使用位为1的页框,操作系统就会将该位重置为0;若在这个过程开始时,缓冲区中所有页框的使用位均为0,则选择遇到的第一个页框置换;若所有页框的使用位均为1,则指针在缓冲区中完整地循环一周,把所有使用位都置为0,并且停留在最初的位置上,置换该页框的页。可见,该策略类似于FIFO,唯一不同的,在时钟策略中会跳过使用位为1的页框。这种策略称位时钟策略的原因是,我们可以把页框想象在一个环中。 ——操作系统-精髓与设计原理(第九版)P227

    代码解释

    教科书的解释太多了。简单说一下大概意思,就是当扫描的时候,还是用的FIFO,从头扫描到尾,但是不同的是,每个页框都有一个"免死金牌",当第一次扫描到的时候,如果有"免死金牌"就用掉金牌,如果没有则直接被替换。好处就是考虑到了程序的局部性原理,而且开销相比LRU小很多,只用维护"免死金牌"量就行了。

    解释一下代码过程,当一个"页框"到来时 ,先找一遍,CLOCK_list中有没有,如果有,更新一下"免死金牌",如果没有,则开始执行时钟算法,从index指针开始扫描,若有"免死金牌"(flag)就用掉金牌(flag = 0),如果没有"免死金牌",则置换这一页。如果index到了队尾,就把其放置到开头。

    源代码

    #include<stdio.h>
    #define MAX_NUM 3
    #define MAX_NUM_PROC 512
    
    
    //进程结构体
    struct CList
    {
        int data;
        int flag;
    }CLOCK_list[MAX_NUM];
    
    /*
    12
    2 3 2 1 5 2 4 5 3 2 5 2
    */
    
    int main()
    {
        for(int i=0;i<MAX_NUM;i++)
        {
           CLOCK_list[i].data = 0;
           CLOCK_list[i].flag = 0;
        }
    
        int n;
        int a[MAX_NUM_PROC];
        printf("请输入个数:");
        scanf("%d",&n);
        printf("请输入%d个非零数字:\n",n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
    
        int index = 0;
        for(int i=0;i<n;i++)
        {
            int exist =0;
            for(int j=0;j<MAX_NUM;j++)
            {
                if(CLOCK_list[j].data == a[i])
                {
                    CLOCK_list[j].flag =1;
                    exist = 1;
                    break;
                }
            }
    
            if(!exist)
            {
                int full = 0;
                for(;index<MAX_NUM;index++)
                {
                    if(CLOCK_list[index].flag ==0)
                    {
                        full = 1;
                        CLOCK_list[index].data = a[i];
                        CLOCK_list[index].flag =1;
                        index++;
                        break;
                    }
                    else
                    {
                        CLOCK_list[index].flag =0;
                    }
                }
                if(index == MAX_NUM)
                    index = 0;
    
                //如果满了,置换第一页
                if(!full)
                {
                    CLOCK_list[0].data = a[i];
                    CLOCK_list[0].flag =1;
                    index++;
                }
    
            }
            printf("本次队列情况:");
            for(int j=0;j<MAX_NUM;j++)
            {
                printf("%d",CLOCK_list[j].data);
                if(CLOCK_list[j].flag == 1)
                {
                    printf("*");
                }
                else
                {
                    printf("#");
                }
                (j==MAX_NUM-1)?printf("\n"):printf(" ; ");
            }
        }
        return 0;
    }
    
    

    输出解释

    请输入个数:12
    请输入12个非零数字:
    2 3 2 1 5 2 4 5 3 2 5 2
    本次队列情况:2* ; 0# ; 0#
    本次队列情况:2* ; 3* ; 0#
    本次队列情况:2* ; 3* ; 0#
    本次队列情况:2* ; 3* ; 1*
    本次队列情况:5* ; 3# ; 1#
    本次队列情况:5* ; 2* ; 1#
    本次队列情况:5* ; 2* ; 4*
    本次队列情况:5* ; 2* ; 4*
    本次队列情况:3* ; 2# ; 4#
    本次队列情况:3* ; 2* ; 4#
    本次队列情况:3* ; 2# ; 5*
    本次队列情况:3* ; 2* ; 5*
    

    *表示还有"免死金牌",#表示没有"免死金牌"了,结果和书上的一样,不在解释了。

    总结

    CLOCK算法是一个很有意思的算法,最开始想用一个循环双向链表表示的,但是循环双向链表维护起来比较麻烦,我就用一个数组来维护吧。=w=

    展开全文
  • //头文件 #include <stdio.h> #include <stdlib.h> //主函数 int main() { //声明变量 年 日 时 分 秒 //使用多层for循环进项时间累加 int y,d,h,m,s; for(y=2021;y>0;y+=1) ... .
    //头文件
    #include <stdio.h>
    #include <stdlib.h>
    //主函数
    int main()
    {
        //声明变量 年 日 时 分 秒
        //使用多层for循环进项时间累加
        int y,d,h,m,s;
        for(y=2021;y>0;y+=1)
    	    for(d=0;d<365;d+=1)
    		    for(h=0;h<24;h+=1)
    		        for(m=0;m<60;m+=1)
    		            for(s=0;s<60;s+=1)
    		            {
                            //打印输出当前时间
    		                printf("%d年:%d日:%d时:%d分:%d秒\n",y,d,h,m,s);
    		            }
        //程序暂停
        system("pause");
        //程序正常退出
        return 0;
    }

     

    展开全文
  • 学c初级者推荐去看,对于今后编程和课设很有帮助·~~
  • C语言电梯模拟程序

    万次阅读 多人点赞 2015-05-30 20:38:42
    C语言电梯模拟程序 一直以来我对电梯很感兴趣,起初认为用C语言不可能实现电梯模拟,需要多线程的支持,因此一直以来也没有想着做。最近数据结构习题书的这道题引起了我...通过一个模拟时钟,根据模拟时钟判断该运行哪
  • 要求:基本模拟时钟显示 思路:数字时钟显示本质上就是输出,但是CPU速度过快,刷新太快。所以设置延时函数,每隔一定最小单位显示时间刷新一次。 #include<stdio.h> #include<windows.h> ...
  • C语言实现电梯模拟

    2017-01-02 17:31:25
    C语言实现电梯模拟,其中包含一点点C++的语法...在离散的模拟中,以模拟时钟决定每个活动体的动作发生的时刻和顺序,系统在某个模拟瞬间处理有待完成的各种事情,然后把模拟时钟推进到某个动作预定要发生的下一个时刻。
  • 模拟时钟转动程序

    2011-12-29 18:08:44
    C语言 课程设计 模拟时钟转动程序 及其代码
  • C语言实现的时钟程序

    2010-05-24 15:11:48
    在turbo C环境中实现时钟模拟,并伴随扬声器的启动声音
  • } /* 函数功能:模拟延迟1秒的时间 函数参数:无 函数返回值:无 */void Delay(void) { long t; for (t = 0; t ; t++) { /*循环体为空语句的循环,起延时作用* } } int main(){ CLOCK myclock; long i; myclock.hour =...
  • 模拟时钟在LCD上的显示

    千次阅读 2011-10-30 21:03:49
    我很早就想做一个模拟时钟了,网上也有很多C语言写的模拟时钟的代码,不过是基于TC的。后来我找到一个使用easy X lib写的模拟时钟,于是就将它移植到我的开发板屏幕上。前面已经完成了LCD的画点、画线、画圆等等基本...
  • 时钟C语言程序

    千次阅读 2011-05-28 23:56:00
    /*开发环境:turbo c 2.0模拟时钟转动程序代码*/ #include"graphics.h" #include"math.h" #include"dos.h" #define pi 3.1415926 #define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300 #define Y(a,b,c) y=a*...
  • C语言实现电梯模拟,不过其中用到了少量的C++...在离散的模拟中,以模拟时钟决定每个活动体的动作发生的时刻和顺序,系统在某个模拟瞬间处理有待完成的各种事情,然后把模拟时钟推进到某个动作预定要发生的下一个时刻。
  • #include<stdio.h> int hour, minute, second;//定义全局变量 void Update()//时间的进位 { second++; if (second == 60) { minute++; second = 0; } if (minute == 60) ...printf("%d:%d:%d\n", hour, mi

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 203
精华内容 81
关键字:

c语言模拟时钟

c语言 订阅