C語(yǔ)言課程設(shè)計(jì)鐘表設(shè)計(jì)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)鐘表設(shè)計(jì)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)鐘表設(shè)計(jì)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)鐘表設(shè)計(jì)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)鐘表設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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)介

#第一章課程設(shè)計(jì)的目的和要求1.1C語(yǔ)言課程設(shè)計(jì)的目的加深對(duì)講授內(nèi)容的理解,尤其是一些語(yǔ)法規(guī)定。通過(guò)課程設(shè)計(jì),自然地、熟練地掌握。熟悉所用的計(jì)算機(jī)系統(tǒng)的操作方法,也就是熟悉語(yǔ)言程序開(kāi)發(fā)的環(huán)境。學(xué)會(huì)上機(jī)調(diào)試程序。通過(guò)編程最終使程序運(yùn)行結(jié)果為電腦屏幕顯示模擬時(shí)鐘,并正常運(yùn)行顯示表針時(shí)間。1.2C語(yǔ)言課程設(shè)計(jì)實(shí)現(xiàn)的要求能模擬機(jī)械鐘表行走;在屏幕上顯示一個(gè)活動(dòng)時(shí)鐘;程序界面設(shè)計(jì)合理,色彩得體大方,顯示正確;各指針運(yùn)動(dòng)規(guī)律正確;要準(zhǔn)確地利用數(shù)字顯示日期和時(shí)間并且可以根據(jù)用戶(hù)的需求更改當(dāng)前時(shí)間(指針式時(shí)鐘與數(shù)字式時(shí)鐘實(shí)現(xiàn)同步更改);數(shù)字式時(shí)鐘的時(shí)間顯示與指針式時(shí)鐘顯示一致;可以通過(guò)上下鍵改變當(dāng)前的時(shí)、分、秒;改的時(shí)間是小時(shí)、分鐘、還是秒數(shù);通過(guò)Tab鍵切換按Esc時(shí)程序退出。第二章課程設(shè)計(jì)的任務(wù)內(nèi)容要熟練掌握C語(yǔ)言的基本知識(shí):數(shù)據(jù)類(lèi)型(整形、實(shí)型、字符型、指針、數(shù)組、結(jié)構(gòu)等);運(yùn)算類(lèi)型(算術(shù)運(yùn)算、邏輯運(yùn)算、自增自減運(yùn)算、賦值運(yùn)算等);程序結(jié)構(gòu)(順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的使用)等。用C語(yǔ)言實(shí)現(xiàn)一個(gè)模擬時(shí)鐘轉(zhuǎn)動(dòng)程序;Graphics函數(shù)庫(kù)。提出總體方案的設(shè)計(jì)思想和原理,繪制程序流程圖和描述程序的功能,并說(shuō)明程序的特點(diǎn)和難點(diǎn)。能模擬機(jī)械鐘表行走;要準(zhǔn)確地利用數(shù)字顯示日期和時(shí)間;在屏幕上顯示一個(gè)活動(dòng)時(shí)鐘;程序界面設(shè)計(jì)合理,色彩得體大方,顯示正確;各指針運(yùn)動(dòng)規(guī)律正確;數(shù)字式時(shí)鐘的時(shí)間顯示與指針式時(shí)鐘顯示一致;按任意鍵時(shí)程序退出。模擬時(shí)鐘是一種集計(jì)時(shí)器和時(shí)鐘顯示于一體的程序。編寫(xiě)一個(gè)指針式時(shí)鐘程序,此程序在屏幕正中有一個(gè)指針式鐘面,窗口標(biāo)題以數(shù)字方式顯示日期和時(shí)間。指針式的時(shí)鐘表盤(pán)為橢圓形或圓形,并且圓周上有分布均勻的12個(gè)刻度,刻度要求顯示清楚,鐘面上有長(zhǎng)度不相同的指針,即時(shí)針、分針、秒針,指針的運(yùn)動(dòng)要求具有規(guī)律性,且為順時(shí)針。數(shù)字鐘顯示時(shí)間的格式是年月日時(shí)分秒,小時(shí)為24進(jìn)制,分鐘和秒是60進(jìn)制,指針式的時(shí)鐘和數(shù)字式的時(shí)鐘顯示的時(shí)間同步,且兩個(gè)時(shí)鐘所顯示的時(shí)間與計(jì)算機(jī)的系統(tǒng)時(shí)間一致。第三章詳細(xì)設(shè)計(jì)說(shuō)明程序系統(tǒng)的結(jié)構(gòu)圖功能模塊圖3.1.1實(shí)驗(yàn)設(shè)備及環(huán)境:(軟、硬件環(huán)境)WindowsXP操作系統(tǒng)WinTCIDEC語(yǔ)言開(kāi)發(fā)環(huán)境模塊描述3.2.1指針式時(shí)鐘指針式的時(shí)鐘表盤(pán)為圓形,并且圓周上有分布均勻的12個(gè)較大刻度和六十個(gè)較小的刻度,刻度顯示清楚,分別表示小時(shí)、分鐘和秒數(shù)鐘面上有長(zhǎng)度不相同的指針,即時(shí)針、分針、秒針,指針的運(yùn)動(dòng)具有規(guī)律性,為順時(shí)針。3.2.2數(shù)字式時(shí)鐘數(shù)字鐘顯示時(shí)間的格式是時(shí)分秒,小時(shí)為24進(jìn)制,分鐘和秒是60進(jìn)制,指針式的時(shí)鐘和數(shù)字式的時(shí)鐘顯示的時(shí)間同步,且兩個(gè)時(shí)鐘所顯示的時(shí)間與計(jì)算機(jī)的系統(tǒng)時(shí)間一致。輸出項(xiàng)數(shù)字式時(shí)鐘輸出“%4時(shí)%4分%4秒”。算法#define宏定義部分定義變量。利用函數(shù)circle(d,b,c)定義圓即表盤(pán)及軸心,其中(a,b)為圓心坐標(biāo),c為半徑。利用函數(shù)setbkcolor、setcolor設(shè)置顏色。gettime(t)獲取電腦時(shí)間進(jìn)行顯示sound()、delay()函數(shù)設(shè)置表針走動(dòng)聲音對(duì)應(yīng)走動(dòng)刻度。應(yīng)用c語(yǔ)言庫(kù)函數(shù)進(jìn)行表盤(pán)及顏色的的處理,編寫(xiě)表針運(yùn)算函數(shù),及表針影像顏色覆蓋處理詳見(jiàn)程序注釋。不論何種指針,每次轉(zhuǎn)動(dòng)均以n/30弧度(一秒的角度)為基本單位,且都以表盤(pán)中心為轉(zhuǎn)動(dòng)圓心。計(jì)算指針端點(diǎn)(x,y)的公式如下:x二圓心x坐標(biāo)指針長(zhǎng)度*cos(指針?lè)较蚪牵﹜二圓心y坐標(biāo)指針長(zhǎng)度*sin(指針?lè)较蚪牵┳⒅?,指針長(zhǎng)度是指自圓心至指針一個(gè)端點(diǎn)的長(zhǎng)度(是整個(gè)指針的一部分),由于指針可以跨越圓

心,因此一個(gè)指針需要計(jì)算兩個(gè)端點(diǎn)。三個(gè)指針的運(yùn)動(dòng)是相關(guān)聯(lián)的,秒針轉(zhuǎn)一圈引起分針運(yùn)動(dòng)一格,分針轉(zhuǎn)一圈引起時(shí)針運(yùn)動(dòng)一格,因此應(yīng)該使用消息來(lái)處理指針的運(yùn)動(dòng)。流程圖圖程序流程圖函數(shù)說(shuō)明繪制小時(shí)的圓點(diǎn):x=100*sin((h*60+m)/360*PI)+451;y=200-100*cos((h*60+m)/360*PI);繪制表示分鐘或秒鐘的圓點(diǎn):x=100*sin(m/30*PI)+451;y=200-100*cos(m/30*PI);由于表是順時(shí)針轉(zhuǎn)動(dòng),我們的角度習(xí)慣上使用逆時(shí)針,所以我們使用自己校正后的角度值,從12點(diǎn)開(kāi)始,按順時(shí)針重新排列三角函數(shù)值,加入對(duì)角度正負(fù)的校正。1、程序與處理包括加載頭文件,定義常量、變量、結(jié)構(gòu)體數(shù)組和函數(shù)原型聲明。主函數(shù)main()main()函數(shù)主要實(shí)現(xiàn)了對(duì)電子時(shí)鐘的初始化工作,及clockhandle()函數(shù)的調(diào)用。main(){intdriver,mode=0,i,j;driver=DETECT;/*自動(dòng)檢測(cè)顯示設(shè)備*/initgraph(&driver,&mode,"")/*初始化圖形系統(tǒng)*/setlinestyle(0,0,3);/*設(shè)置當(dāng)前畫(huà)線寬度和類(lèi)型:設(shè)置三點(diǎn)寬實(shí)線*/setbbcolor(0);/*用調(diào)色板設(shè)置當(dāng)前背景顏色*/setcolor(9);/*設(shè)置當(dāng)前畫(huà)線顏色*/2、在電子表的左邊打印幫助提示信息,相當(dāng)于軟件的使用說(shuō)明。3、時(shí)鐘按鍵控制模塊在電子時(shí)鐘中,按鍵控制模塊最主要的工作就是必須能讀取用戶(hù)按鍵,對(duì)按鍵值進(jìn)行判斷,并調(diào)用相應(yīng)函數(shù)來(lái)執(zhí)行相關(guān)操作。intkeyhandle(intkey,intcount)/*鍵盤(pán)控制*/4、數(shù)字時(shí)鐘處理模塊在數(shù)字時(shí)鐘處理模塊中,主要實(shí)現(xiàn)數(shù)字時(shí)鐘的顯示和數(shù)字時(shí)鐘的修改。其中,在數(shù)字時(shí)鐘的修改中,用戶(hù)可先按Tab鍵定位需要修改內(nèi)容的位置,然后通過(guò)按光標(biāo)上移或下移鍵來(lái)修改當(dāng)前時(shí)間。它的主要工作如下:調(diào)用digitclock(intx,inty,intclock函數(shù),在數(shù)字時(shí)鐘r指定位置顯示時(shí)、分、秒,其中digithour(doubleh)、intdigithou「(doubleh)和digitsec(doubles)用于完成數(shù)值的型向int型轉(zhuǎn)換。調(diào)用drawcursor(intcount)、clearcursor(intcount)函數(shù)來(lái)完成舊光標(biāo)的擦除和新光標(biāo)的繪制。首先定義一些時(shí)鐘常用的宏和定義處理時(shí)鐘的一些函數(shù)及保存數(shù)據(jù)的變量:intkeyhandle(int,int);/*鍵盤(pán)按鍵判斷,并調(diào)用相關(guān)函數(shù)處理*/inttimeupchange(int);/*處理上移按鍵*/inttimedownchange(int);/*處理下移按鍵*/intdigithour(double);/*將double型的小時(shí)數(shù)轉(zhuǎn)換成int型*/intdigitmin(double);/*將double型的分鐘數(shù)轉(zhuǎn)換成int型*/intdigitsec(double);/*將double型的秒鐘數(shù)轉(zhuǎn)換成int型*/voiddigitclock(int,int,int);/*在指定位置顯示時(shí)鐘或分鐘或秒鐘數(shù)*/voiddrawcursor(int);/*繪制一個(gè)光標(biāo)*/voidclearcursor(int);/*消除前一個(gè)光標(biāo)*/voidclockhandle();/*時(shí)鐘處理*/doubleh,m,s;/*全局變量:小時(shí),分,秒*/doublex,x1,x2,y,y1,y2;/*全局變量:坐標(biāo)值*/structtimet[1];/*定義一個(gè)time結(jié)構(gòu)類(lèi)型的數(shù)組*/接口#includev>TurbeC中重要的函數(shù)庫(kù),VisualC++和DevC++都不支持(VC和DEV都支持C項(xiàng)目)Graphics,可憐我上網(wǎng)找了半天終于找到了合適的IDEWinTc本程序中的指針式時(shí)鐘和數(shù)字式時(shí)鐘的繪制都要靠它的例如:intdriver,mode=0,i,j;driver=DETECT;/*自動(dòng)檢測(cè)顯示設(shè)備*/initgraph(&driver,&mode,"");/*初始化圖形系統(tǒng)*/setlinestyle(0,0,3);/*設(shè)置當(dāng)前畫(huà)線寬度和類(lèi)型:設(shè)置三點(diǎn)寬實(shí)線*/setbkcolor(O);/*用調(diào)色板設(shè)置當(dāng)前背景顏色*/setcolor(9);/*設(shè)置當(dāng)前畫(huà)線顏色*/line(82,430,558,430);line(70,62,70,4l8);line(82,50,558,50);line(570,62,570,4l8);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56);/*畫(huà)主體框架的邊直線*/#includev>標(biāo)準(zhǔn)的C的輸入輸出流函數(shù)主要用它來(lái)控制字符串的某些操作#includev>數(shù)學(xué)函數(shù)庫(kù),一些數(shù)學(xué)計(jì)算的公式的具體實(shí)現(xiàn)是放在里。#include<>就是最早黑白界面下的操作使用的一些方法和接口的函數(shù)庫(kù)第四章課程設(shè)計(jì)心得與體會(huì)經(jīng)過(guò)一個(gè)半學(xué)期對(duì)《C課程設(shè)計(jì)》的學(xué)習(xí),我們學(xué)習(xí)了理論知識(shí),了解了C語(yǔ)言程序設(shè)計(jì)的思想,這些知識(shí)都為我們的下一步學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。通過(guò)課程設(shè)計(jì),一方面是為了檢查我們一個(gè)半學(xué)期來(lái)我們學(xué)習(xí)的成果,另一方面也是為了讓我們進(jìn)一步的掌握和運(yùn)用它,同時(shí)也讓我們認(rèn)清自己的不足之處和薄弱環(huán)節(jié),加以彌補(bǔ)和加強(qiáng)。通過(guò)對(duì)模擬時(shí)鐘的設(shè)計(jì)進(jìn)一步的鞏固了用C編寫(xiě)程序,并且有利于更好的掌握程序設(shè)計(jì)語(yǔ)言!同時(shí)也認(rèn)識(shí)到了結(jié)構(gòu)化語(yǔ)言的不足之處,為我們以后學(xué)習(xí)面向?qū)ο笳Z(yǔ)埋下伏筆。在模擬時(shí)鐘的編寫(xiě)過(guò)程中也體會(huì)到了做事情一頂要細(xì)心、認(rèn)真。更加知道了要掌握好基礎(chǔ)知識(shí)。還有體會(huì)到了成功的感覺(jué)!通過(guò)本項(xiàng)課程設(shè)計(jì)也培養(yǎng)了我獨(dú)立思考、綜合運(yùn)用所學(xué)有關(guān)相應(yīng)知識(shí)的能力,掌握工程軟件設(shè)計(jì)的基本方法,強(qiáng)化上機(jī)動(dòng)手編程能力,闖過(guò)理論與實(shí)踐相結(jié)合的難關(guān)!C語(yǔ)言是程序員使用率第二高的語(yǔ)言,僅次于面向?qū)ο蟮腏ava語(yǔ)言,是使用率最高的面向結(jié)構(gòu)的編程語(yǔ)言。它功能豐富,表達(dá)能力強(qiáng),使用靈活方便,應(yīng)用面廣,目標(biāo)程序效率高,可移植性好,既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)語(yǔ)言的許多特點(diǎn)。通過(guò)這次的程序設(shè)計(jì)更加了解了語(yǔ)言設(shè)計(jì)的好處和其可用性!在這次課程設(shè)計(jì)中也知道了自己的動(dòng)手能力不強(qiáng)有待進(jìn)一部的提高!在設(shè)計(jì)過(guò)程中不能夠把書(shū)本上的知識(shí)與實(shí)踐相結(jié)合,這也就增加了設(shè)計(jì)不好該程序的想法!在設(shè)計(jì)過(guò)程中的一次次設(shè)計(jì)錯(cuò)誤增加了我放棄的想法!不過(guò)經(jīng)過(guò)自己的獨(dú)立思考和同學(xué)的幫助終于完成了課程設(shè)計(jì)!在課程設(shè)計(jì)的過(guò)程中也知道了自己在以前的學(xué)習(xí)中有很大的不足導(dǎo)致在設(shè)計(jì)過(guò)程中出現(xiàn)了很多的問(wèn)題,有些地方看不懂也不知道怎么去設(shè)計(jì),但是在設(shè)計(jì)過(guò)程中也學(xué)習(xí)了很多,掌握了自己以前沒(méi)有學(xué)好的知識(shí),雖然一時(shí)可以掌握完以前沒(méi)有學(xué)好的知識(shí),不過(guò)也給自己敲響了警鐘,在學(xué)習(xí)中不可以伏于表面,要想學(xué)好每一門(mén)課程都要踏踏實(shí)實(shí),做什么都不是給別人看的!都是要更好的掌握該門(mén)知識(shí),提高自己的自身的修養(yǎng),提高自己的能力!為以后的工作打下良好的知識(shí)基礎(chǔ)和技能基礎(chǔ)!附錄:/*電子時(shí)鐘源代碼*/#include<>#include<>#include<>#include<>#include<>#include<>#definePI/*定義常量*/#defineUP0x4800/*上移f鍵:修改時(shí)間*/#defineDOWN0x5000/*下移)鍵:修改時(shí)間*/#defineESC0x11b/*ESC鍵:退出系統(tǒng)*/#defineTAB0xf09/*TAB鍵:移動(dòng)光標(biāo)*//*函數(shù)聲明*/intkeyhandle(int,int);/*鍵盤(pán)按鍵判斷,并調(diào)用相關(guān)函數(shù)處理*/inttimeupchange(int);/*處理上移按鍵*/inttimedownchange(int);/*處理下移按鍵*/intdigithour(double);/*將double型的小時(shí)數(shù)轉(zhuǎn)換成int型*/intdigitmin(double);/*將double型的分鐘數(shù)轉(zhuǎn)換成int型*/intdigitsec(double);/*將double型的秒鐘數(shù)轉(zhuǎn)換成int型*/voiddigitclock(int,int,int);/*在指定位置顯示時(shí)鐘或分鐘或秒鐘數(shù)*/voiddrawcursor(int);/*繪制一個(gè)光標(biāo)*/voidclearcursor(int);/*消除前一個(gè)光標(biāo)*/voidclockhandle();/*時(shí)鐘處理*/doubleh,m,s;/*全局變量:小時(shí),分,秒*/doublex,x1,x2,y,y1,y2;/*全局變量:坐標(biāo)值*/structtimet[1];/*定義一個(gè)time結(jié)構(gòu)類(lèi)型的數(shù)組*/main(){intdriver,mode=0,i,j;driver=DETECT;/*自動(dòng)檢測(cè)顯示設(shè)備*/initgraph(&driver,&mode,"");/*初始化圖形系統(tǒng)*/errorcode=graphresult()/*為防止圖形初始化時(shí)發(fā)生異常出現(xiàn)錯(cuò)誤時(shí)將出現(xiàn)有好的提示界面*/if(errorcode!=grOk)/*圖形初始化時(shí)出現(xiàn)錯(cuò)誤*/{printf("Graphicserror:%s/n",grapherrormsg(errorcode));printf("Pressanykeytohalt:");getch();exit(1);/*returnwitherrorcode*/}setlinestyle(0,0,3);/*設(shè)置當(dāng)前畫(huà)線寬度和類(lèi)型:設(shè)置四點(diǎn)寬點(diǎn)線線setbkcolor(0);/*用調(diào)色板設(shè)置當(dāng)前背景顏色*//*可以讓用戶(hù)選擇系統(tǒng)支持的顏色作為背景色*/intbkcol,maxcolor,x=10,y=10;charIsOK;maxcolor=getmaxcolor();for(bkcol=0;bkcol<=maxcolor;bkcol++){/*清理屏幕*/cleardevice();/*設(shè)置新的背景色*/setbkcolor(bkcol);/*outputamesssage*/if(bkcol==WHITE)setcolor(EGA_BLUE);sprintf(msg,"Backgroundcolor:%d",bkcol);outtextxy(x,y,msg);IsOK=getch();if(IsOK=='Y')break;}setcolor(9);/*設(shè)置當(dāng)前畫(huà)線顏色*/line(82,430,558,430);line(70,62,70,418);line(82,50,558,50);line(570,62,570,418);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56);/*畫(huà)主體框架的邊直線*//*arc(intx,inty,intstangle,intendangle,intradius)*/arc(82,62,90,180,12);arc(558,62,0,90,12);setlinestyle(0,0,3);arc(82,418,180,279,12);setlinestyle(0,0,3);arc(558,418,270,360,12);/*畫(huà)主體框架的邊角弧線*/setcolor(15);outtextxy(300,53,"CLOCK");/*顯示標(biāo)題*/setcolor(7);rectangle(342,72,560,360);/*畫(huà)一個(gè)矩形,作為時(shí)鐘的框架*/setwritemode(O);/*規(guī)定畫(huà)線的方式。mode=0,則表示畫(huà)線時(shí)將所畫(huà)位置的原來(lái)信息覆蓋*/setcolor(15);outtextxy(433,75,"CLOCK");/*時(shí)鐘的標(biāo)題*/setcolor(7);line(392,310,510,310);line(392,330,510,330);arc(392,320,90,270,10);arc(510,320,270,90,10);/*繪制電子動(dòng)畫(huà)時(shí)鐘下的數(shù)字時(shí)鐘的邊框架*//*繪制數(shù)字時(shí)鐘的時(shí)分秒的分隔符*/setcolor(5);for(i=431;i<=470;i+=39)for(j=317;j<=324;j+=7){setlinestyle(0,0,3);circle(i,j,1);/*以(i,y)為圓心,1為半徑畫(huà)圓*/}setcolor(15);line(424,315,424,325);/*在運(yùn)行電子時(shí)鐘前先畫(huà)一個(gè)光標(biāo)*//*繪制表示小時(shí)的圓點(diǎn)*/for(i=0,m=0,h=0;i<=11;i++,h++){x=100*sin((h*60+m)/360*PI)+451;y=200-100*cos((h*60+m)/360*PI);setlinestyle(0,0,4);i_hour;m=t[0].ti_min;x=50*sin((h*6O+m)/36O*PI)+451;/*時(shí)針的x坐標(biāo)值*/y=200-50*cos((h*60+m)/360*PI);/*時(shí)針的y坐標(biāo)值*/line(451,200,x,y);/*在電子表中繪制時(shí)針*/x1=80*sin(m/30*PI)+451;/*分針的x坐標(biāo)值*/y1=200-80*cos(m/30*PI);/*分針的y坐標(biāo)值*/line(451,200,x1,y1);/*在電子表中繪制分針*/digitclock(408,318,digithour(h));/*在數(shù)字時(shí)鐘中,顯示當(dāng)前的小時(shí)值*/digitclock(446,318,digitmin(m));/*在數(shù)字時(shí)鐘中,顯示當(dāng)前的分鐘值*/setwritemode(1);/*規(guī)定畫(huà)線的方式,如果mode=1,則表示畫(huà)線時(shí)用現(xiàn)在特性的線與所畫(huà)之處原有的線進(jìn)行異或(XOR)操作,實(shí)際上畫(huà)出的線是原有線與現(xiàn)在規(guī)定的線進(jìn)行異或后的結(jié)果。因此,當(dāng)線的特性不變,進(jìn)行兩次畫(huà)線操作相當(dāng)于沒(méi)有畫(huà)線,即在當(dāng)前位置處清除了原來(lái)的畫(huà)線*/for(count=2;k!=ESC;){/*開(kāi)始循環(huán),直至用戶(hù)按下ESC鍵結(jié)束循環(huán)*/setcolor(12);/*淡紅色*/sound(500);/*以指定頻率打開(kāi)PC揚(yáng)聲器,這里頻率為500Hz*/delay(700);/*發(fā)一個(gè)頻率為500Hz的音調(diào),維持700毫秒*/sound(200);/*以指定頻率打開(kāi)PC揚(yáng)聲器,這里頻率為200Hz*/delay(300);i_sec;m=t[0].ti_min;h=t[0].ti_hour;x2=98*sin(s/30*PI)+451;/*秒針的x坐標(biāo)值*/y2=200-98*cos(s/30*PI);/*秒針的y坐標(biāo)值*/line(451,200,x2,y2);/*繪制秒針*//*利用此循環(huán),延時(shí)一秒*/while(t[0].ti_sec==s&&t[0].ti_min==m&&t[0].ti_hour==h){gettime(t);/*取得系統(tǒng)時(shí)間*/if(bioskey(1)!=0){k=bioskey(0);count=keyhandle(k,count);if(count==5)count=1;}}setcolor(15);digitclock(485,318,digitsec(s)+1);/*數(shù)字時(shí)鐘增加1秒*/setcolor(12);/*淡紅色*/x2=98*sin(s/30*PI)+451;y2=200-98*cos(s/30*PI);line(451,200,x2,y2);/*用原來(lái)的顏色在原來(lái)位置處再繪制秒針,以達(dá)到清除當(dāng)前秒針的目的*//*分鐘處理*/if(t[0].ti_min!=m){/*若分鐘有變化*//*消除當(dāng)前分針*/setcolor(15);/*白色*/x1=80*sin(m/30*PI)+451;y1=200-80*cos(m/30*PI);line(451,200,x1,y1);/*繪制新的分針*/m=t[0].ti_min;digitclock(446,318,digitmin(m));/*在數(shù)字時(shí)鐘中顯示新的分鐘值*/x1=80*sin(m/30*PI)+451;y1=200-80*cos(m/30*PI);line(451,200,x1,y1);}/*小時(shí)處理*/if((t[0].ti_hour*60+t[0].ti_min)!=(h*60+m)){/*若小時(shí)數(shù)有變化*//*消除當(dāng)前時(shí)針*/setcolor(15);/*白色*/x=50*sin((h*60+m)/360*PI)+451;/*50:時(shí)鐘的長(zhǎng)度(單位:像素),451:圓心的x坐標(biāo)值*/y=200-50*cos((h*60+m)/360*PI);line(451,200,x,y);/*繪制新的時(shí)針*/h=t[0].ti_hour;digitclock(408,318,digithour(h));x=50*sin((h*60+m)/360*PI)+451;y=200-50*cos((h*60+m)/360*PI);line(451,200,x,y);}}}intkeyhandle(intkey,intcount)/*鍵盤(pán)控制*/{switch(key){caseUP:timeupchange(count-1);/*因?yàn)閏ount的初始值為2,所以此處減1*/break;caseDOWN:timedownchange(count-1);/*因?yàn)閏ount的初始值為2,所以此處減1*/break;caseTAB:setcolor(15);clearcursor(count);/*清除原來(lái)的光標(biāo)*/drawcursor(count);/*顯示一個(gè)新的光標(biāo)*/count++;break;}returncount;}inttimeupchange(intcount)/*處理光標(biāo)上移的按鍵*/{if(count==1){t[0].ti_hour++;if(t[0].ti_hour==24)t[0].ti_hour=0;settime(t);/*設(shè)置新的系統(tǒng)時(shí)間*/}if(count==2){t[0].ti_min++;if(t[0].ti_min==60)t[0].ti_min=0;settime(t);/*設(shè)置新的系統(tǒng)時(shí)間*/}if(count==3){t[0].ti_sec++;if(t[0].ti_sec==60)t[0].ti_sec=0;settime(t);/*設(shè)置新的系統(tǒng)時(shí)間*/}}inttimedownchange(intcount)/*處理光標(biāo)下移的按鍵*/{if(cou

溫馨提示

  • 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)論