计算机程序设计(C语言)课程设计报告.docx

上传人:罗晋 文档编号:6127244 上传时间:2020-09-11 格式:DOCX 页数:11 大小:92.50KB
返回 下载 相关 举报
计算机程序设计(C语言)课程设计报告.docx_第1页
第1页 / 共11页
计算机程序设计(C语言)课程设计报告.docx_第2页
第2页 / 共11页
计算机程序设计(C语言)课程设计报告.docx_第3页
第3页 / 共11页
计算机程序设计(C语言)课程设计报告.docx_第4页
第4页 / 共11页
计算机程序设计(C语言)课程设计报告.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《计算机程序设计(C语言)课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机程序设计(C语言)课程设计报告.docx(11页珍藏版)》请在三一文库上搜索。

1、计算机程序设计 (C 语言 )课程设计报告题目 : 电子动画时钟学院:机电工程学院专业 :班级 :090 0班学号 :姓名 :指导教师 :设计日期:一、概述选题背景 : 随着社会得进步与科技得发展, 电子钟表逐渐成为了人们生活中不可缺少得一部分。设计思路 :( 一) 功能模块设计, 1、电子时钟执行主流程 2、电子时钟界面显示 3、电子时钟按键控制模块 4、时钟动画处理模块 ( 二)数据结构设计 1、 time 结构体 2、全局变量 ( 三) 函数功能描述、 ke hadle( )、 timeup a e( )、 t medownc ng ( )4 、 d itcloc ()5 、 drawc

2、ursor( )6、c earcu sor ()、 oi clo khadle () 8、 mai ( )(四)程序实现(五)运行结果。二、概要设计? 2、 1、数据结构此程序中 , 使用了 C语言得 time 结构体与几个全局变量,、tim 结构体st uctimeu gned ar ti_in ;* 分钟 /unsigned c r ti_our; /小时 /uni d c ar ti_hund;/* 百分之一秒unsign ha t _sec;/* 秒 /;time结构体定义在dos、h文件中 , 可用来保存系统得当前时间, 其中各字段得值得含义如下。、 uni e ti_min:保存分

3、钟值.、 unsi ned h ti ur: 保存小时。3、 unsigned cha ti hnd: 保存百分之一秒,例如, i_hu =50,表示 1/500 秒。4、 u i nchar ti_se:保存秒数。、 2、全局变量下面对程序用到得全局变量及数组进行说明、1、dubleh,m,s: 此 3 个全局变量分别用来保存小时, 分钟,秒数。2 、 be, x1, , y ,y1,y2: 保存数字时钟中小时 , 分,秒在屏幕中显示得坐标值。3、 stru t time t1 :定义一个 i 结构类型得数组 , 此数组只有 t 0一个元素 .2、 3 模块列表1 、时钟动画处理模块时钟动画

4、处理模块主要由 cl ckhnde( )函数来实现,程序中旧时钟指针得擦除就是借助 stwritem e(mo e) 函数设置画线得方式来实现。如果moe=1,则表示画线时用现在特性得线所画之处原有得线性异或 ( O)操作,实际上画出得线就是原有线与现在规定得线进行异或后得结果 . 因此,当线得特性不变时 , 进行两次画线操作相当于没有画线,即在当前位置处清除了原来得画线。2、时钟按键控制模块在电子时钟中,按键控制模块最主要得工作就就是必须能读取用户按键,对按键值进行判断 , 并调用相应函数来执行相关操作 .、数字时钟处理模块()调用 gitcloc (int, int y,nclock) 函

5、数。在数字时钟指定位置显示时,分, 秒,其中 ig th ur (dou le) ,int gi our(dou l h )与 di itsec(do bes)用于完成数值得 ouble 型向 int型转换。( ) 调用 drawcusr(intcount) ,cea ursor ( intcoun)函数来完成旧光标得擦除与新光标得绘制。2、程序结构图(也就就是模块之间得关系)电子时钟界按模 时块 钟面显键动控示画模模处块块理数字时钟模块三 、详细设计3、程序预处理模块。包括加载头文件,定义常量, 变量,结构体数组与函数原型声明。3、2 主控模块 main( )、min( )函数主要实现了对电

6、子时钟得初始化工作 , 及oc andle ()函数得调用。3、3 时钟动画处理模块。、时针按键控制模块。在电子时钟中, 按键控制模块最主要得工作就就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作. 流程图如下 .3、5 数字时针处理模块。在数字时钟处理模块中,主要实现数字时钟得显示与数字得时钟修改。其中 , 在数字时钟得修改中,用户可以按 ab 键定位需要修改得内容得位置,然后通过按光标上移或下移键来修改时间 .四、调试程序错误 1:错误现象: De ara ion synta rr r错误原因 : 声明错误,缺分号。修改方法:在声明语句后添加分号。错误:错误现象 :T

7、wo few ae er n c ll o setlinestyl inf ntion ma n错误原因:语句缺少参数.修改方法 : 在 main()函数中找到缺少参数得语句添加相应得参数。错误:错误原因: ucio a l ssing)in fun ionclockhandle错误原因:在c ockhandl 函数调用得就是后函数表达式缺少一个).修改方法:找到错误语句添加缺少得表达式符号。五、心得总结程序优点:本程序旨在训练学生得基本编程能力,本程序中涉及时间结构体, 数组,绘图等方面得知识 , 通过本程序得训练使学生能对C 语言有一个更深刻得了解。掌握利用 C 语言相关函数开发电子时钟得

8、基本原理,为进一步开发出高质量得程序打下坚实得基础。程序缺点 : 程序各个模块之间得控制连接比较繁琐,容易出现错误。六. 附程序清单 i cl d g aphics、 h ude stdio、 h i lu math、 h# n ude do、#d ine PI、 1415 6defin UP 0x 0#defineOWN0x5 00 efine E c0x 1b#defne TAB xf 9int keyha dle(i t,int ) ; t timeu chang(in ) ;i t t me o ncange ( i t) ;ntdig t ou( ouble);int d gi mi

9、n( double);i igi sec ( do ble);v id igi cloc ( int, t,int);oid rawcursor( nt) ;void clearc rsor (int);void clo kha dle();do bl ,m,s ;double x,x ,x2 ,y,y, y;str ct it ;ma n( )?int r ver,mo e=0,i, j;r ver DETECT;i tgra( &driver , mode, ”: tc );s inest le ( 0, 0,3) ;setbkco or(0);line ( 82, 0, 5 ,43);l

10、in ( 0,62, 70,41 );ine (8, 50,55 ,5);l ne(57, 2, 57, 4 8); ne( 70, 70,);lin (76, 5,297, 6) ;line ( 34, ,564,56);*arc ( intx, nty, i t、s angl , itn ang e,i trdius)*/r (82, 62, 9, 180,12);ac( 558,62,0, 90,12);setl nesty( ,0,);ar( 8, 48, 180,27, 1);e lines yle (0,0 ,3);arc(55, 418, 70,e c or(15) ;,12);

11、ou txtxy(300 , 53,C OC ”) ;e color( 7);rectang e(342, 72,56 ,se w itemo e( 0); tcolor( 5););o ttex xy(433,75 , ” CL CK”) ;stc lor(7 );line ( 39 ,310, 510,31 );in (39, 3, 0, 3 0) ;arc( 39 ,32 ,90,270, 0);ar( 510, 320, 0, 90, 1 );setcolor( );for(i=4 1;i =470;i =39) or( = ; 4; +)stl nestyle(0, ,3);circ

12、 ( i , , );set olor( 5) ;i e( 24,315,42, 325); r( i=0,m=0,h 0; i= 1;i , h+ ) x=100*si ((h 6 +m ) /3 0*PI ) 451 ;y 2 0-10 c s( (h*60+ )/3 P);s tli estyle(, 3) ;c rc e(x, 1) ; o( i=0 , m=0 ;i=59 ; m+, +) x=100* in ( m/30* I)+4 ;y= 0 100 cos(m/30 PI)setline tyle (0, 0,1 ) ;ci c( x,y,);set olor( );o tt

13、xtxy ( 182, 125, ” ELP ) ;se l r( 5) ;o t txy ( 140, 185, ” TA :Cursormov ) ;ou tex xy ( 40, 25,” UP: T me + ) ; tt xtx ( 0, 5, ” OWN : Time ” ) ;outtext y( 140, 305, Es : it sy m! );o tte tx ( 40, 3 5,”V ion : 2、 0” ) ;stcolor ( 12);outt x y( 1 ,400,”Noti g is ore i p a t t an timeclockha dle( ) ;!

14、);cl s grph( )return( 0);;vo d clockha dl ()n k, co nt ;etc lor(15 ) ;gettime ( t) ;h=t 0、 i h ur;m 、 ti_ i ;=5 *sin ( h*60 )/360* I)+451;y=200-5 os( (h*6 +) / 60 I)lin ( 451, 200, y);x1= sin( /30PI) +4 1;y1= 00 0( m 3 PI) ;li e( 41, 2, x1, 1);d gitcloc ( 408,318,d g thour(h) ) ;digit o k( 46,318, i

15、gitmin ( ));setwri emode(1) ;fo( count 2;k ! =Esc; ) set lo(12) ; un( 500);d lay(700) ;sou d(2 0); elay(300); nosoun () ;s=t 0、 i_ ; m=t 、 i in ;h=t 0、 i our ;x2=98 sin(s/3) +51;y2= 00-98 c s(s/3 PI) ; in ( 51,200,x2 , y ) ;whi e( t 、 ti e = s& t 0、 _min = & 0、 h r=h) ge ti e( );if ( bio key( )! =)

16、k=bio key( 0); ou t=ke h nd( k, coun) ;if ( oun = )co nt;setc lor( 15);dig tcloc ( 485,, di tsec(s) +1) ;etcol r( 1);x = 8 s( s/3 *PI ) 51 ; 2=2 0-9 *cos( s/ 0 PI ) ; ne(4 1,20 ,x2, 2);if ( t 0、 i_min!=m ) e co or( 15);x1 sn( m/30 PI) +451y1=20 80*co (m/30*PI);line(451,200 , x1,y1);mt0 、 min;dig (6,

17、 318, gitmi ()x1=80 si( m 3 P) 51 ;y1 2 080*co (m/30 P) ;l e( 5, 0 ,x1,y1 );; f( ( 0、 ti_ ur*60+ 0 、 ti_min) !( h*6 +m) ) stco r( 15) ;x=50*si (( h 60+m) 360 PI) + 51 ; =2 050*cos( ( h*60+ ) /360 PI); line(45 , 200, x, ) ; =t0 、 i h ur ; gitclo k( 0 ,318,d githour ( h) ;x=50 sin( (h 60m)/360 PI) ;l

18、e( 51, 00, y ) ;nt key a dle( int key ,in coun ) swi ch( ke ) case P: im upc ge( oun );b ak ;case OWN: timedo nch nge (c unt-1) ;break ;caeT B :set o or( 15) ;clear r r( co nt) ;drawcursor(count);coun + ; eak;eturn ount;i ttim pchange(t co n)if( ou t= 1)t 0、 i_ r+ ; f ( t 0、 ti_hour= 24) 0、h ur=0; e

19、ttim ( t) ;i ( out 2) t 0、 ti in+ ;if ( 0、 i_ in=60 ) t、 ti in=0;s ttime(t ) ;if ( co nt=3 ) t 0、 ti_ ec+;f (t0 、 ti_ e = 0) t 0、 ti_sec;se t me( t);i t t medownchange(i c)if ( ou = 1)t 0、 i_hour ;if ( 0、t _h ur=0 )t0、 ti_hou =23;set ime (t) ;f(coun =2) t0 、 ti_ in -;if(t 0、 t _ 0) 0 、 t _ in 59 ; t

20、time( t) ;if ( ont=3) 、 ti_ ec- ; f ( t 0、 i_sec=) ettme (); 0、_sec 9; id digitclck(i t , iy,int c ock)c ar buff r11 ;sefi l tyle(0 , 2);b(, y, +15, 28) ;if( clock =6)clock= ;sp intf(buffer , ” %d,clock);outex xy (x, y, buffer1);int gith u( dou le h) i t i ;for ( =0 ; =23 ; i +) (= i)re urni;int dig

21、itm n( doble ) i;for(i 0; =5; i+) if ( m=i ) reurn ;in di itse( double s) n i; or(i=0 ; i =59 ; i ) i ( =i )r t rn i;void dra rsor (i t ount)switch(cou )c se 1: l n ( 24, 15, 42, 32 );br ak ;c e 2:line ( 465, 15, 465,35) ;break; ase 3: lin (505, 31 ,5 5, 325) ; break ;void clearcursor( int coun) swi ch( oun )ca 2:cas 3:lineline ( 424,315,4 4, 32)(465,31,4 5, 3 5) ;; break ;bre k ;cas1:lin ( 05, 315,505, 325) ;brea;

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1