Java課程設(shè)計(jì)-時(shí)鐘圖形模擬知識(shí)分享_第1頁(yè)
Java課程設(shè)計(jì)-時(shí)鐘圖形模擬知識(shí)分享_第2頁(yè)
Java課程設(shè)計(jì)-時(shí)鐘圖形模擬知識(shí)分享_第3頁(yè)
Java課程設(shè)計(jì)-時(shí)鐘圖形模擬知識(shí)分享_第4頁(yè)
Java課程設(shè)計(jì)-時(shí)鐘圖形模擬知識(shí)分享_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Good is good, but better carries it.精益求精,善益求善。Java課程設(shè)計(jì)-時(shí)鐘圖形模擬課程設(shè)計(jì)任務(wù)書(shū)專(zhuān)業(yè)通信工程班級(jí)13級(jí)四班姓名張凱銘設(shè)計(jì)起止日期設(shè)計(jì)題目:時(shí)鐘圖形模擬設(shè)計(jì)任務(wù)(主要技術(shù)參數(shù)):硬件環(huán)境:CPU:Pentium2.8GHz以上內(nèi)存:256MB以上硬盤(pán)空間:80G以上軟件環(huán)境:(1)操作系統(tǒng):WindowsXP(2)開(kāi)發(fā)軟件:JDK,JCreator實(shí)現(xiàn)功能:通過(guò)編程最終使電腦屏幕顯示模擬時(shí)鐘,并正常運(yùn)行顯示表針時(shí)間,電腦上呈現(xiàn)一個(gè)圖種的模型表示電腦上的時(shí)間,并可以模擬時(shí)鐘走動(dòng)。指導(dǎo)教師評(píng)語(yǔ):成績(jī):簽字:年月日目錄TOCo1-3hzuHYPE

2、RLINKl_Toc3933145701設(shè)計(jì)內(nèi)容及要求PAGEREF_Toc393314570h1HYPERLINKl_Toc3933145711.1設(shè)計(jì)內(nèi)容PAGEREF_Toc393314571h1HYPERLINKl_Toc3933145721.2設(shè)計(jì)目的及意義PAGEREF_Toc393314572h1HYPERLINKl_Toc3933145732概要設(shè)計(jì)PAGEREF_Toc393314573h1HYPERLINKl_Toc3933145742.1功能簡(jiǎn)介PAGEREF_Toc393314574h1HYPERLINKl_Toc3933145752.2功能說(shuō)明:PAGEREF_Toc

3、393314575h1HYPERLINKl_Toc3933145762.3總體程序框圖PAGEREF_Toc393314576h2HYPERLINKl_Toc3933145773設(shè)計(jì)過(guò)程PAGEREF_Toc393314577h3HYPERLINKl_Toc3933145783.1各個(gè)模塊程序流程圖PAGEREF_Toc393314578h3HYPERLINKl_Toc3933145793.2運(yùn)行界面及關(guān)鍵代碼PAGEREF_Toc393314579h4HYPERLINKl_Toc3933145804設(shè)計(jì)結(jié)果與分析PAGEREF_Toc393314580h6HYPERLINKl_Toc3933

4、145814.1設(shè)計(jì)結(jié)果PAGEREF_Toc393314581h6HYPERLINKl_Toc3933145824.2分析PAGEREF_Toc393314582h6HYPERLINKl_Toc3933145835總結(jié)PAGEREF_Toc393314583h7HYPERLINKl_Toc3933145846參考文獻(xiàn)PAGEREF_Toc393314584h7HYPERLINKl_Toc393314585附程序清單及源程序PAGEREF_Toc393314585h81設(shè)計(jì)內(nèi)容及要求1.1設(shè)計(jì)內(nèi)容通過(guò)編程最終使電腦屏幕顯示模擬時(shí)鐘,并正常運(yùn)行顯示表針時(shí)間,電腦上呈現(xiàn)一個(gè)圖種的模型表示電腦上的時(shí)

5、間,并可以模擬時(shí)鐘走動(dòng)。1.2設(shè)計(jì)目的及意義設(shè)計(jì)目的及意義:熟悉Visualc+6.0軟件的應(yīng)用,C語(yǔ)言相關(guān)函數(shù),語(yǔ)句的學(xué)習(xí),查找資料代碼等,編程、調(diào)試、運(yùn)行、效果顯示調(diào)整,完成上傳,熟悉編程語(yǔ)言,了解程序運(yùn)行以及圖像顯示等C語(yǔ)言的應(yīng)用,通過(guò)編程實(shí)現(xiàn)既定功能。培養(yǎng)自學(xué)能力,獨(dú)立思考能力,將理論形成實(shí)際運(yùn)用,同時(shí)可以掌握下列運(yùn)算符的使用:1.數(shù)據(jù)類(lèi)型(整形、實(shí)型、字符型、指針、數(shù)組、結(jié)構(gòu)等)。2.運(yùn)算類(lèi)型(算術(shù)運(yùn)算、邏輯運(yùn)算、自增自減運(yùn)算、賦值運(yùn)算等)。3.程序結(jié)構(gòu)(順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))5.復(fù)雜任務(wù)功能分解方法(自頂向下逐步求精、模塊化設(shè)計(jì)、信息隱藏等)。6.學(xué)會(huì)編制結(jié)構(gòu)清晰、風(fēng)格

6、良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃語(yǔ)言程序。2概要設(shè)計(jì)2.1功能簡(jiǎn)介實(shí)現(xiàn)功能如下:(1)在屏幕上最終顯示一個(gè)圖形時(shí)鐘(用程序繪制一個(gè)與時(shí)鐘樣式相似即可),能模擬機(jī)械鐘表行走。(2)數(shù)字式顯示時(shí)間與指針式顯示時(shí)間一致,且各指針運(yùn)動(dòng)規(guī)律正確。(3)能準(zhǔn)確的利用數(shù)字顯示時(shí)間和日期。(4)按ESC可以退出程序。2.2功能說(shuō)明:內(nèi)容:指針式時(shí)鐘模塊完成在屏幕上顯示一個(gè)活動(dòng)時(shí)鐘,模擬機(jī)械鐘表行走,時(shí)針,分針,秒針不同顏色且順時(shí)針旋轉(zhuǎn),獲取系統(tǒng)時(shí)間;數(shù)字式時(shí)鐘模塊完成顯示時(shí)間格式年月日時(shí)分秒,小時(shí)為24小時(shí)制,分和秒為60進(jìn)制與指針式的時(shí)鐘顯示時(shí)間同步并獲取系統(tǒng)時(shí)間。說(shuō)明:指針順時(shí)針旋轉(zhuǎn);指針式的時(shí)鐘表盤(pán)為圓形;圓周上

7、分布均勻的12個(gè)刻度;有3個(gè)長(zhǎng)度不同的指針,即時(shí)針,分針,秒針的運(yùn)動(dòng)具有規(guī)律性;數(shù)字鐘顯示時(shí)間格式年月日時(shí)分秒,小時(shí)為24進(jìn)制,分和秒為60進(jìn)制;指針式的時(shí)鐘與數(shù)字式的時(shí)鐘顯示時(shí)間同步;其主要的設(shè)計(jì)思想如下:1.確定秒針的走時(shí),將圓分成60份每過(guò)一秒,秒重要轉(zhuǎn)過(guò)1/60個(gè)園,即一等份。2.確定分針真的走時(shí),將圓分成60份每過(guò)一分,分針要轉(zhuǎn)過(guò)1/60個(gè)圓,即一等份分針自己走過(guò)的再加秒針的,才是此四分鐘的位置。3.時(shí)鐘走動(dòng)與系統(tǒng)時(shí)間聯(lián)系:每過(guò)一秒畫(huà)出秒針,并且除去前一秒的秒針,分針和秒針一樣,畫(huà)線(xiàn)函數(shù)與時(shí)間聯(lián)系使用變量。4.設(shè)置橫縱坐標(biāo)及表針:X=a*cos(b*pi/180)+300;Y=a*s

8、in(b*pi/180)+240;2.3總體程序框圖模擬時(shí)鐘轉(zhuǎn)動(dòng)程序指針式時(shí)鐘數(shù)字式時(shí)鐘(系統(tǒng)模塊圖)首先,先畫(huà)出個(gè)鐘的大致輪廓。從輸出數(shù)字到畫(huà)出外輪廓,到標(biāo)出短線(xiàn)到畫(huà)出時(shí)針、分針、秒針。這個(gè)輪廓就已經(jīng)完成了。然后,為了更加這個(gè)鐘的實(shí)用性。就通過(guò)獲取系統(tǒng)時(shí)間來(lái)結(jié)合實(shí)際意義,這是最簡(jiǎn)單,最好的方法。從應(yīng)用上,它顯示的是實(shí)際的時(shí)間,增強(qiáng)了可用性;從編程上,不用再?gòu)?fù)雜地再編一個(gè)更時(shí)間一樣的函數(shù)來(lái),減少程序的篇幅、復(fù)雜性和編程者的工作量。接著順帶利用時(shí)間的變量名來(lái)畫(huà)時(shí)針,分針,秒針。最后,為了讓時(shí)針,分針,秒針讓觀察者看起來(lái)是連續(xù)的變化,即形象地模擬真實(shí)的機(jī)械鐘表那樣運(yùn)動(dòng)。3設(shè)計(jì)過(guò)程3.1各個(gè)模塊程序

9、流程圖Start初始化圖形系統(tǒng)設(shè)置窗體的背景色、前景色及畫(huà)筆畫(huà)出主體框架的邊直線(xiàn)、邊角弧線(xiàn)畫(huà)出時(shí)鐘的框架、標(biāo)題及時(shí)分秒的刻度;繪制數(shù)字式時(shí)鐘下的數(shù)字時(shí)鐘的邊框架調(diào)用時(shí)鐘處理程序獲取當(dāng)前時(shí)間并顯示調(diào)用消息處理函數(shù)刷新窗口顯示(1秒)創(chuàng)建數(shù)字鐘字體對(duì)數(shù)字鐘進(jìn)行輸出判斷修改是增加還是減少Esc(任意鍵)調(diào)出digitalClockEnd3.2運(yùn)行界面及關(guān)鍵代碼3.2.1運(yùn)行結(jié)果在桌面顯示一個(gè)模擬的時(shí)鐘,時(shí)鐘的秒針、分針與時(shí)針隨著時(shí)間的推移而不斷移動(dòng)就像我們經(jīng)??匆?jiàn)的圓形電子時(shí)鐘一樣。我們可以通過(guò)程序隨意改動(dòng)時(shí)鐘的背景顏色以及指針的顏色和表盤(pán)大小等問(wèn)題,同時(shí)還能在桌面顯示一些簡(jiǎn)單的英文以及圖案等。3.

10、2.2關(guān)鍵代碼分析及說(shuō)明(1)本系統(tǒng)中主要的數(shù)據(jù)結(jié)構(gòu)就是time結(jié)構(gòu)體structtimeunsignedcharm;/*分鐘*/unsignedcharh/*小時(shí)*/unsignedchars/*秒*/time結(jié)構(gòu)體定義在dos.h文件中,可用來(lái)保存系統(tǒng)的當(dāng)前時(shí)間,其中各字段的值的含義如下。unsignedcharm:保存分鐘值。unsignedcharh:保存小時(shí)值。unsignedchars:保存秒數(shù)。(2)全局變量下面對(duì)程序用到的全局變量及數(shù)組進(jìn)行說(shuō)明。inth,m,s:此3個(gè)全局變量分別用來(lái)保存小時(shí)、分鐘、秒數(shù)。intx,x1,x2,y,y1,y2:保存數(shù)字時(shí)鐘中小時(shí)、分、秒在屏幕中

11、顯示的坐標(biāo)值。structtimet1:定義一個(gè)time結(jié)構(gòu)類(lèi)型的數(shù)組,此數(shù)組只有t0一個(gè)元素。(3)程序流程系統(tǒng)的執(zhí)行應(yīng)從運(yùn)行開(kāi)始,顯示界面正常運(yùn)行,直到用戶(hù)選擇退出系統(tǒng)為止。(4)流程圖功能描述畫(huà)圓模板:#inlude“graphics.h”#inlude”math.h”Voidinit()Circle(300,240,200);畫(huà)時(shí)間刻線(xiàn)模塊:For(i=0;i=60;i+)If(i%5=0)L=15;elseL=5;X1=200*sin()+300;Y1=200*cos()+240;時(shí)間模塊:Gettime(d)4設(shè)計(jì)結(jié)果與分析4.1設(shè)計(jì)結(jié)果運(yùn)行程序后在屏幕上顯示出一時(shí)鐘,鐘上的時(shí)間與

12、電腦上的時(shí)間完全一樣,并且在秒針運(yùn)行的同時(shí)伴隨聲音如同下圖一樣的圖案:4.2分析在桌面會(huì)顯示一個(gè)模擬的時(shí)鐘,時(shí)鐘的秒針、分針與時(shí)針隨著時(shí)間的推移而不斷移動(dòng)就像我們經(jīng)??匆?jiàn)的圓形電子時(shí)鐘一樣。我們可以通過(guò)程序隨意改動(dòng)時(shí)鐘的背景顏色以及指針的顏色和表盤(pán)大小等問(wèn)題,同時(shí)還能在桌面顯示一些簡(jiǎn)單的英文以及圖案等。因?yàn)槭浅绦蚩刂茣r(shí)鐘的,所以起始時(shí)間是通過(guò)程序控制的,要想改動(dòng)還是需要通過(guò)改變程序獲得,并不是隨系統(tǒng)時(shí)間而確定起始時(shí)間的。5總結(jié)通過(guò)本次的課程設(shè)計(jì),我深刻的體會(huì)到了C語(yǔ)言的強(qiáng)大。雖然本次的課程設(shè)計(jì)對(duì)我來(lái)說(shuō)有一定的難度,但是在朋友的幫助下我還是很好地完成了(自我感覺(jué))。從而也認(rèn)識(shí)到了程序的內(nèi)涵,使我

13、對(duì)編程產(chǎn)生了很大的興趣。其實(shí)編程很好玩的,在編程中不但可以完成一些現(xiàn)實(shí)中從在的東西,還可以制作出很多意想不到東西。還有對(duì)于此次課程設(shè)計(jì)讓我深刻的認(rèn)識(shí)到自己學(xué)得的遠(yuǎn)遠(yuǎn)還太少,需要我們自發(fā)的去學(xué)習(xí)知識(shí)才可以成長(zhǎng)的更快!其次,對(duì)于此次設(shè)計(jì)我得坦誠(chéng)一件事,那就是我一開(kāi)始選的TC程序,運(yùn)行的時(shí)候總是要我輸入?yún)?shù),由于自己的知識(shí)局限,總是敲不出結(jié)果,所以我又去百度文庫(kù)搜了一個(gè)vc程序,雖然最終使運(yùn)行出來(lái)了,可是這次事件讓我認(rèn)識(shí)自身知識(shí)的不足,所以,這次過(guò)后會(huì)更加認(rèn)真的學(xué)習(xí)一些書(shū)面沒(méi)有的知識(shí),充實(shí)自己。6參考文獻(xiàn)C語(yǔ)言程序設(shè)計(jì)(第二版)M.北京:清華大學(xué)出版社譚浩強(qiáng)1999數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)M.北京:清華

14、大學(xué)出版社嚴(yán)魏敏,吳偉民1997C語(yǔ)言程序設(shè)計(jì)M.黃明等.大連理工大學(xué)出版社,2005C語(yǔ)言課程設(shè)計(jì)案例精編.郭翠英.中國(guó)水利水電出版.2004年3月C語(yǔ)言程序設(shè)計(jì)教程曾春平,朱小谷,晏海華.北京希望電子出版社.2005年3月C語(yǔ)言課程設(shè)計(jì)案例精編清華大學(xué)出版社姜靈芝、余健2008.1C語(yǔ)言程序設(shè)計(jì)西安電子科技大學(xué)出版社田祥宏主編2007.12附程序清單及源程序(1)TC2.0上的源程序#includegraphics.h#includemath.h#includedos.h#definepi3.1415926#defineX(a,b,c)x=a*cos(b*c*pi/180-pi/2)+30

15、0#defineY(a,b,c)y=a*sin(b*c*pi/180-pi/2)+240#defined(a,b,c)X(a,b,c);Y(a,b,c);line(300,240,x,y)voidinit()/*劃時(shí)鐘邊框函數(shù)*/inti,l,x1,x2,y1,y2;setbkcolor(1);circle(300,240,200);circle(300,240,205);circle(300,240,5);for(i=0;i60;i+)/*劃鐘點(diǎn)上的短線(xiàn)*/if(i%5=0)l=15;elsel=5;x1=200*sin(i*6*pi/180)+300;y1=200*cos(i*6*pi/1

16、80)+240;x2=(200-l)*sin(i*6*pi/180)+300;y2=(200-l)*cos(i*6*pi/180)+240;line(x1,y1,x2,y2);main()intx,y,i,k=1;intgdriver=9,gmode=2;unsignedcharh,m,s;into,p,q;floatn;structtimet1;structdated1;initgraph(&gdriver,&gmode,c:tc);initgraph(&gdriver,&gmode,c:tc);for(i=0;i=6;i+)settextstyle(TRIPLEX_FONT,HORIZ_D

17、IR,i);/*控制輸出字符的字體,方向,大小*/cleardevice();settextjustify(1,1);/*在指定坐標(biāo)上輸出字符串*/outtextxy(300,80,12);outtextxy(300,390,6);outtextxy(140,230,9);outtextxy(460,230,3);outtextxy(380,100,1);outtextxy(220,100,11);outtextxy(430,160,2);outtextxy(430,310,4);outtextxy(380,370,5);outtextxy(220,370,7);outtextxy(160,1

18、60,10);outtextxy(160,310,8);init();setwritemode(1);/*設(shè)置畫(huà)線(xiàn)的輸出模式*/if(k!=0)getdate(d);/*獲得系統(tǒng)日期函數(shù)*/o=d0.da_year;p=d0.da_mon;q=d0.da_day;gettime(t);/*獲得系統(tǒng)時(shí)間函數(shù)*/h=t0.ti_hour;m=t0.ti_min;s=t0.ti_sec;setcolor(7);/*設(shè)置時(shí)針顏色*/n=(float)h+(float)m/60;d(150,n,30);/*畫(huà)出時(shí)針*/setcolor(14);/*設(shè)置分針顏色*/d(170,m,6);/*畫(huà)出分針*/s

19、etcolor(4);/*設(shè)置秒針顏色*/d(190,s,6);/*畫(huà)出秒針*/while(!kbhit()/*控制程序按下任意鍵退出*/while(t0.ti_sec=s)gettime(t);gotoxy(44,18);/*使光標(biāo)移動(dòng)到指定坐標(biāo)*/printf(bbbbbbbbb);/*退格,使表示時(shí)間的字符串不斷變化*/sound(400);/*按給定的頻率打開(kāi)PC揚(yáng)聲器*/delay(70);/*中斷程序的執(zhí)行,時(shí)間為70毫秒*/sound(200);delay(30);nosound();/*按給定的頻率關(guān)閉PC揚(yáng)聲器*/setcolor(4);d(190,s,6);s=t0.ti_

20、sec;d(190,s,6);if(t0.ti_min!=m)setcolor(14);d(170,m,6);m=t0.ti_min;d(170,m,6);if(t0.ti_hour!=h)setcolor(7);d(150,h,30);h=t0.ti_hour;d(150,h,30);sound(1000);delay(240);nosound();delay(140);sound(2000);delay(240);nosound();if(s10)/*用字符的形式輸出時(shí)間*/if(m10)printf(%u:0%u:0%u,h,m,s);elseprintf(%u:%u:0%u,h,m,s

21、);elseif(m10)printf(%u:0%u:%u,h,m,s);elseprintf(%u:%u:%u,h,m,s);gotoxy(34,19);/*在指定坐標(biāo)上輸出日期*/printf(%d年%d月%d日,o,p,q);printf(bbbbbbbbb);getch();closegraph();(2)visualc+6.0上運(yùn)行的源程序#define_CRT_SECURE_NO_WARNINGS#include#include#include#pragmacomment(lib,user32.lib)#pragmacomment(lib,gdi32.lib)#pragmacomm

22、ent(linker,/SUBSYSTEM:Windows)voidGetPos(doubledegree,intlen,int*x,int*y)*x=len*sin(degree);*y=len*cos(degree);voidDrawClock(HWNDhw,HDCh,inthour,intminute,intsecond)HDCbufdc=CreateCompatibleDC(h);HBITMAPbuf=CreateCompatibleBitmap(bufdc,200,200);RECTcr;HBRUSHbBg=CreateSolidBrush(RGB(255,255,255);GetClientRect(hw,&cr);SelectObject(bufdc,bBg);SelectObject(bufdc,buf);FillRect(bufdc,&cr,bBg);intsx,sy,ex,ey;inti;for(i=0;itm_hour,pst-tm_min,pst-tm_sec);EndPaint(h,&ps);return0;caseWM_DESTROY:KillTimer(h,1);PostQuitMessage(0);return0;default:returnDefWindowPro

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論