C语言课程设计图形时钟.docx

上传人:b****2 文档编号:2174029 上传时间:2022-10-27 格式:DOCX 页数:9 大小:148KB
下载 相关 举报
C语言课程设计图形时钟.docx_第1页
第1页 / 共9页
C语言课程设计图形时钟.docx_第2页
第2页 / 共9页
C语言课程设计图形时钟.docx_第3页
第3页 / 共9页
C语言课程设计图形时钟.docx_第4页
第4页 / 共9页
C语言课程设计图形时钟.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

C语言课程设计图形时钟.docx

《C语言课程设计图形时钟.docx》由会员分享,可在线阅读,更多相关《C语言课程设计图形时钟.docx(9页珍藏版)》请在冰豆网上搜索。

C语言课程设计图形时钟.docx

C语言课程设计图形时钟

C语言课程设计——图形时钟

 

《C语言程序设计》课程设计

实验报告

 

题目:

图形时钟

班级:

电气工程及其自动化1401

学号:

姓名:

指导教师:

 

——2015.1.8

 

目 录 

§1. 系统功能要求﹣﹣﹣﹣P3

§2. 程序结构(画流程图)

﹣﹣﹣ P3-4

§3. 概要设计﹣﹣﹣ P4

§4. 试验结果﹣﹣﹣P6

§5.体会  ﹣﹣﹣ P6

§6.参考文献 ﹣﹣﹣P6

§7.附录:

源程序﹣﹣﹣ P7-8

 

§1. 系统功能要求

在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间一致,且要随着时间的走动准确的走动。

§2.程序设计

§3. 概要设计

(1)void init() /*划时钟边框函数*/ 

  int i,l,x1,x2,y1,y2;   

circle(320,240,200);/*以(320,240)为圆心,200为半径画圆*/ 

  circle(320,240,199);/*以(320,240)为圆心,199为半径画圆*/ 

  circle(320,240,201);/*以(320,240)为圆心,201为半径画圆*/ 

circle(320,240,1,);/*以(320,240)为圆心,1为半径画圆*/ 

circle(320,240,2,)/*以(320,240)为圆心,2为半径画圆*/ 

circle(320,2403,);/*以(320,240)为圆心,3为半径画圆*/ 

for(i=0;i<60;i++) /*划钟点上的短线*/     

{  

if(i%5==0)       

 l=15;  

      else        

l=5;  

x1=200*sin(i*6*pi/180)+320/*画线函数*/      

 y1=200*cos(i*6*pi/180)+240;       

 x2=(200-l)*sin(i*6*pi/180)+320;        

y2=(200-l)*cos(i*6*pi/180)+240;        

line(x1,y1,x2,y2); 

   }

(2) void DrawHand 函数 /*画指针*/

void DrawHand(int x,int y,float th,int l,int color) 

  int x1,y1;   

x1=x+l*sin(th);   

y1=y-l*cos(th);   

setcolor(color);  

 line(x,y,x1,y1); 

   x:

直线起点的横坐标  y:

直线起点的纵坐标  x1:

直线终点的横坐标   y1:

直线终点的纵坐标 

(3) void main() 函数 

Part ①:

 int gdriver=DETECT,gmode; 

            struct time curtime;            ..............类型和最高分辨率 

          float th_hour,th_min,th_sec; 

        initgraph(&gdriver,&gmode,""); 

     Graphdriver - - -配适器       graphmode - - - 显示模式  

Part ②:

setbkcolor(0);                 ....................背景色 

Part  ③:

 while(!

 kbhit())             

                Init() ..................函数

(1)

                setwritemode

(1);

 gettime(&curtime);        .........得到当前系统时间               

gotoxy(35,20);            ...............定位输出位置

 Part ④:

 if((float)curtime.ti_hour<=12) .............上午的时间处理             {printf("AM "); 

            if((float)curtime.ti_hour<10) printf("0");.... 十点之前在小时数前加零 

          printf("%.0f:

",(float)curtime.ti_hour);...........输出小时        } 

     else                                  ............下午的时间处理       {printf("PM "); 

       if((float)curtime.ti_hour-12<10) printf("0");.........如果时间减去12小时小于10 

       printf("%.0f:

",(float)curtime.ti_hour-12);.......... 输出小时       

}

 Part ⑤:

  if((float)curtime.ti_min<10) printf("0");......... 相当于小时的计算方法 

       printf("%.0f:

",(float)curtime.ti_min); ....... 输出分钟(同part ④) 

       if((float)curtime.ti_sec<10) printf("0");       

  printf("%.0f",(float)curtime.ti_sec);  

Part ⑥:

  以下三行计算表针转动角度,以竖直向上为起点,顺时针为正  

th_sec=(float)curtime.ti_sec*0.1047197551;                 ---- - -  - -(2π/60=0.1047197551)

th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0; 

  th_hour=(float)curtime.ti_hour*0.523598775+th_min/12.0;  - - - - *(2π/12=0.5235987755)   

Part ⑦:

 画指针

DrawHand(x0,y0,th_hour,70,2);    .......画时针                   

DrawHand(x0,y0,th_min,110,3);            ...................画秒针    

Part ⑧ :

   settextstyle(2,0,3);    ............设置字体 2:

文字的字体;0:

文字的方向;3:

文字的大小  

   outtextxy(300,80,"12");

outtextxy(460,220,"3");

outtextxy(315,370,"6");

outtextxy(160,220,"9");

Part ⑨ :

   sleep

(1);                  ...........延时一秒后刷新                

  cleardevice();           ............. 清除图形屏幕                 } 

      closegraph()         ... ....关闭图形系统,退出图形方式 

4.试验结果

5.体会

刚开始做时基本上什么都不懂,参考了很多资料,到网上查,差不多能写出基本程序,虽然很多是借鉴别人的,不过能写成这样,我心里还是挺高兴的。

程序设计主要靠理解与运用,有些没有学过的知识不一定要懂得彻底,只要会运用就行。

 尤其是设计显示上、下午的数字时间和让时针正常运转而不是从3不动,然后直接跳到4上,我下了很大功夫,找了好多资料,最终一知半解,好在成功运行了。

不足之处也很多,程序思路不太清晰可能有些混乱。

有很多程序设计使用并不熟练,甚至有些方法掌握不了,更容易忘记。

算法结构了解并不深入,独立自主的想法占据总体达不到要求。

需要加强练习和对知识的理解与掌握。

通过这次设计,让我学习程序的热情大涨,相信以后会做的更好!

6.参考文献

1谭浩强.C语言程序设计(第四版).清华大学出版社,2010

2李丽娟,马淑萍.C语言程序设计(第二版).中国铁道出版社,2009

3李丽娟,张奋.C语言程序设计实验教程(第二版).中国铁道出版社,2009

4张基温.C 语言程序设计案例教程.清华大学出版社,2005

5网络,XX知道,贴吧等,2014

7.附录:

源程序

#include

#include

#include

#definePI3.1415926

#definex0320

#definey0240

voidinit()

{

inti,l,x1,x2,y1,y2;

circle(320,240,200);

circle(320,240,201);

circle(320,240,199);

circle(320,240,1);

circle(320,240,2);

circle(320,240,3);

for(i=0;i<60;i++)

{

if(i%5==0)

l=15;

else

l=5;

x1=200*sin(i*6*PI/180)+320;

y1=200*cos(i*6*PI/180)+240;

x2=(200-l)*sin(i*6*PI/180)+320;

y2=(200-l)*cos(i*6*PI/180)+240;

line(x1,y1,x2,y2);

}

}

voidDrawHand(intx,inty,floatth,intl,intcolor)

{

intxp,yp;

xp=x+l*sin(th);

yp=y-l*cos(th);

setcolor(color);

line(x,y,xp,yp);

}

voidmain()

{

intgdriver=DETECT,gmode;

structtimecurtime;

floatth_hour,th_min,th_sec;

initgraph(&gdriver,&gmode,"");

setbkcolor(0);

while(!

kbhit())

{

init();

setwritemode

(1);

gettime(&curtime);

gotoxy(35,20);

if((float)curtime.ti_hour<=12)

{printf("AM");

if((float)curtime.ti_hour<10)

printf("0");

printf("%.0f:

",(float)curtime.ti_hour);

}

else

{

printf("PM");

if((float)curtime.ti_hour-12<10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1