![C語言課程設(shè)計報告-模擬時鐘轉(zhuǎn)動程序_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/b0f2c218-0425-4918-adf5-b5526d10ab36/b0f2c218-0425-4918-adf5-b5526d10ab361.gif)
![C語言課程設(shè)計報告-模擬時鐘轉(zhuǎn)動程序_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/b0f2c218-0425-4918-adf5-b5526d10ab36/b0f2c218-0425-4918-adf5-b5526d10ab362.gif)
![C語言課程設(shè)計報告-模擬時鐘轉(zhuǎn)動程序_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/b0f2c218-0425-4918-adf5-b5526d10ab36/b0f2c218-0425-4918-adf5-b5526d10ab363.gif)
![C語言課程設(shè)計報告-模擬時鐘轉(zhuǎn)動程序_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/b0f2c218-0425-4918-adf5-b5526d10ab36/b0f2c218-0425-4918-adf5-b5526d10ab364.gif)
![C語言課程設(shè)計報告-模擬時鐘轉(zhuǎn)動程序_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/b0f2c218-0425-4918-adf5-b5526d10ab36/b0f2c218-0425-4918-adf5-b5526d10ab365.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、史限科我學院課程設(shè)計報告題 目 課 程名稱 結(jié)構(gòu)化程序設(shè)計課程設(shè)計院部名稱專業(yè)班級學生姓名 王蕾學號課程設(shè)計地點課程設(shè)計學時指導教師金陵科技學院教務(wù)處制目錄第一章 課程設(shè)計的目的和要求 1.1 C語言課程設(shè)計的目的 1.2 C語言課程設(shè)計實現(xiàn)的要求 第二章 課程設(shè)計的任務(wù)內(nèi)容 第三章詳細設(shè)計說明3.1 程序系統(tǒng)的結(jié)構(gòu)3.1.1 實驗設(shè)備及環(huán)境:(軟、硬件環(huán)境)3.2 模塊描述3.2.1 指針式時鐘3.2.2 數(shù)字式時鐘3.3 輸出項3.4 算法3.5 流程圖3.6 函數(shù)說明3.7 接口 3.8 調(diào)試結(jié)果第四章軟件使用說明4.1 軟件使用說明及出現(xiàn)的問題4.2 運行結(jié)果第五章課程設(shè)計心得與體會附
2、錄1:參考文獻附錄2:修改后的源代碼模擬時鐘轉(zhuǎn)動程序第一章 課程設(shè)計的目的和要求1.1 C語言課程設(shè)計的目的加深對講授內(nèi)容的理解,尤其是一些語法規(guī)定。通過課程設(shè)計,自然地、熟練地掌 握。熟悉所用的計算機系統(tǒng)的操作方法, 也就是熟悉語言程序開發(fā)的環(huán)境。 學會上機 調(diào)試程序。通過編程最終使程序運行結(jié)果為電腦屏幕顯示模擬時鐘,并正常運行顯示表針時間。1.2 C語言課程設(shè)計實現(xiàn)的要求能模擬機械鐘表行走;在屏幕上顯示一個活動時鐘;程序界面設(shè)計合理,色彩得 體大方,顯示正確;各指針運動規(guī)律正確;要準確地利用數(shù)字顯示日期和時間并且可 以根據(jù)用戶的需求更改當前時間(指針式時鐘與數(shù)字式時鐘實現(xiàn)同步更改);數(shù)字式
3、 時鐘的時間顯示與指針式時鐘顯示一致;可以通過上下鍵改變當前的時、分、秒;改 的時間是小時、分鐘、還是秒數(shù);通過 Tab鍵切換按Esc時程序退出。第二章 課程設(shè)計的任務(wù)內(nèi)容要熟練掌握C語言的基本知識:數(shù)據(jù)類型(整形、實型、字符型、指針、數(shù)組、 結(jié)構(gòu)等);運算類型(算術(shù)運算、邏輯運算、自增自減運算、賦值運算等);程序結(jié)構(gòu) (順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的使用) 等。用C語言實現(xiàn)一個模擬時鐘轉(zhuǎn)動程序; Graphics函數(shù)庫。提出總體方案的設(shè)計思想和原理,繪制程序流程圖和描述程序的功能,并說明程 序的特點和難點。能模擬機械鐘表行走;要準確地利用數(shù)字顯示日期和時間
4、; 在屏幕上顯示一個活 動時鐘;程序界面設(shè)計合理,色彩得體大方,顯示正確;各指針運動規(guī)律正確;數(shù)字 式時鐘的時間顯示與指針式時鐘顯示一致;按任意鍵時程序退出。模擬時鐘是一種集計時器和時鐘顯示于一體的程序。編寫一個指針式時鐘程序, 此程序在屏幕正中有一個指針式鐘面, 窗口標題以數(shù)字方式顯示日期和時間。 指針式 的時鐘表盤為橢圓形或圓形,并且圓周上有分布均勻的12個刻度,刻度要求顯示清楚,鐘面上有長度不相同的指針,即時針、分針、秒針,指針的運動要求具有規(guī)律性, 且為順時針。數(shù)字鐘顯示時間的格式是年月日時分秒,小時為 24進制,分鐘和秒是 60進制,指針式的時鐘和數(shù)字式的時鐘顯示的時間同步,且兩個時
5、鐘所顯示的時間 與計算機的系統(tǒng)時間一致。第三章詳細設(shè)計說明3.1 程序系統(tǒng)的結(jié)構(gòu)圖3.1功能模塊圖3.1.1 實驗設(shè)備及環(huán)境:(軟、硬件環(huán)境)Windows XP操作系統(tǒng)Win TC IDE C語言開發(fā)環(huán)境Hp筆記本3.2 模塊描述3.2.1 指針式時鐘指針式的時鐘表盤為圓形,并且圓周上有分布均勻的12個較大刻度和六十個較小的刻度,刻度顯示清楚,分別表示小時、分鐘和秒數(shù)鐘面上有長度不相同的指針, 即時針、分針、秒針,指針的運動具有規(guī)律性,為順時針。數(shù)字鐘顯示時間的格式是時分秒,的時鐘和數(shù)字式的時鐘顯示的時間同步,3.2.2 數(shù)字式時鐘小時為24進制,分鐘和秒是60進制,指針式且兩個時鐘所顯示的
6、時間與計算機的系統(tǒng)時間一致3.3 輸出項數(shù)字式時鐘輸出“ 時分秒”3.4 算法#define宏定義部分定義變量。利用函數(shù)circle( a, b, c)定義圓即表盤及軸心,其中(a , b)為圓心坐標,c為半徑。利用函數(shù)setbkcolor、setcolor設(shè)置顏色。gettime(t)獲取電腦時間進 行顯示sound()、delay()函數(shù)設(shè)置表針走動聲音對應(yīng)走動刻度。應(yīng)用c語言庫函數(shù)進行表盤及顏色的的處理,編寫表針運算函數(shù),及表針影像顏色覆蓋處理詳見程序注 釋。不論何種指針,每次轉(zhuǎn)動均以冗/30弧度(一秒的角度)為基本單位,且都以表 盤中心為轉(zhuǎn)動圓心。計算指針端點(x, y)的公式如下:x
7、二圓心x坐標指針長度* cos (指針方向角)y =圓心y坐標指針長度* sin (指針方向角)注重,指針長度是指自圓心至指針一個端點的長度 (是整個指針的一部分),由于指針可以跨越圓 心,因此一個指針需要計算兩個端點。 三個指針的運動是相關(guān)聯(lián)的,秒針轉(zhuǎn)一圈引起 分針運動一格,分針轉(zhuǎn)一圈引起時針運動一格,因此應(yīng)該使用消息來處理指針的運動。3.5流程圖3.6 函數(shù)說明繪制小時的圓點:x=100*sin(h*60+m)/360*PI)+451;y=200-100*cos(h*60+m)/360*PI);繪制表示分鐘或秒鐘的圓點:x=100*sin(m/30*PI)+451;y=200-100*co
8、s(m/30*PI);由于表是順時針轉(zhuǎn)動,我們的角度習慣上使用逆時針,所以我們使用自己校正后 的角度值,從12點開始,按順時針重新排列三角函數(shù)值,加入對角度正負的校正。1、程序與處理包括加載頭文件,定義常量、變量、結(jié)構(gòu)體數(shù)組和函數(shù)原型聲明。主函數(shù)main()main()函數(shù)主要實現(xiàn)了對電子時鐘的初始化工作,及 clockhandle()函數(shù)的調(diào)用。main()int driver, mode=0, i, j;driver=DETECT;/*自動檢測顯示設(shè)備 */initgraph(&driver, &mode, "")/*初始化圖形系統(tǒng) */setlines
9、tyle(0,0,3);/*設(shè)置當前畫線寬度和類型:設(shè)置三點寬實線*/setbbc010r(0); /*用調(diào)色板設(shè)置當前背景顏色*/setcolor(9); /*設(shè)置當前畫線顏色*/2、在電子表的左邊打印幫助提示信息,相當于軟件的使用說明。3、時鐘按鍵控制模塊在電子時鐘中,按鍵控制模塊最主要的工作就是必須能讀取用戶按鍵,對按鍵值進行判斷,并調(diào) 用相應(yīng)函數(shù)來執(zhí)行相關(guān)操作。int keyhandle (int key, int count) /*鍵盤控制 */4、數(shù)字時鐘處理模塊在數(shù)字時鐘處理模塊中,主要實現(xiàn)數(shù)字時鐘的顯示和數(shù)字時鐘的修改。其中,在數(shù)字時鐘的修改中,用戶可先按Tab鍵定位需要修改內(nèi)
10、容的位置,然后通過按光標上移或下移鍵來修改當前時間。它的主要工作如下:(1)調(diào)用digitclock(int x,int y,int clock) 函數(shù),在數(shù)字時鐘 r指定位置顯示時、分、秒,其 中 digithour(double h) 、int digithour(double h) 和 digitsec(double s)用于完成數(shù)值的型向int 型轉(zhuǎn)換。(2)調(diào)用drawcursor(int count) 、clearcursor(int count)函數(shù)來完成舊光標的擦除和新光標的繪制。首先定義一些時鐘常用的宏和定義處理時鐘的一些函數(shù)及保存數(shù)據(jù)的變量:int keyhandle(in
11、t,int);/*鍵盤按鍵判斷,并調(diào)用相關(guān)函數(shù)處理 */int timeupchange(int); /*處理上移按鍵 */int timedownchange(int); /*處理下移按鍵 */int digithour(double); /* 將 double 型的小時數(shù)轉(zhuǎn)換成 int 型*/int digitmin(double); /*將 double 型的分鐘數(shù)轉(zhuǎn)換成 int 型*/int digitsec(double); /*將 double 型的秒鐘數(shù)轉(zhuǎn)換成 int 型*/void digitclock(int,int,int ); /*在指定位置顯示時鐘或分鐘或秒鐘數(shù)*/vo
12、id drawcursor(int); /* 繪制一個光標 */void clearcursor(int);/*消除前一個光標 */void clockhandle(); /* 時鐘處理 */double h,m,s;/*全局變量:小時,分,秒*/double x,x1,x2,y,y1,y2; /*全局變量:坐標值 */struct time t1;/*定義一個time結(jié)構(gòu)類型的數(shù)組*/3.7 接口1 .#include<graphics.h>TurbeC中重要的函數(shù)庫, Visual C+6.0 和 DevC+都不支持(VC 和 DEV都支持C項目)Graphics,可憐我上網(wǎng)找
13、了半天終于找到了合適的IDEWin Tc本程序中的指針式時鐘和數(shù)字式時鐘的繪制都要靠它的 例如:int driver, mode=0,i,j;driver=DETECT;/*自動檢測顯示設(shè)備*/initgraph(&driver, &mode, "");/* 初始化圖形系統(tǒng) */setlinestyle(0,0,3);/*設(shè)置當前畫線寬度和類型:設(shè)置三點寬實線*/setbkc010r(0);/*用調(diào)色板設(shè)置當前背景顏色*/setcolor(9); /*設(shè)置當前畫線顏色*/line(82,430,558,430);line(70,62,70,418);line
14、(82,50,558,50);line(570,62,570,418);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56);/*畫主體框架的邊直線 */2 .#include<stdio.h> 標準的C的輸入輸出流函數(shù)主要用它來控制字符串的某些操作3 .#include<math.h>數(shù)學函數(shù)庫,一些數(shù)學計算的公式的具體實現(xiàn)是放在math.h里4 .#include<dos.h>就是最早黑白界面下的操作使用的一些方法和接口的函數(shù)庫5 .8調(diào)試結(jié)果(在多次嘗試截屏無果后,痛下決定用相機拍下來了)圖
15、3.3運行結(jié)果第四章軟件使用說明4.1 軟件使用說明及出現(xiàn)的問題在Win TC中新建一個cpp源文件,然后輸入代碼。運行后顯示一個正在行走 的機械時鐘。機械時鐘下方為數(shù)字式時鐘,可根據(jù)需要修改當前時間,該程序全屏顯 示,在屏幕的左半邊為操作提示(Tab: Cursor Move ; Up: Time+; Down: Time-;ESC:Quit the System; ) 和一句警示語: Nothing is more important than time,可根據(jù)提示進行你想要的操作。按 ESC退出。4.2 運行結(jié)果圖4.1運行結(jié)果第五章課程設(shè)計心得與體會經(jīng)過一個半學期對C課程設(shè)計的學習,我
16、們學習了理論知識,了解了 C語 言程序設(shè)計的思想,這些知識都為我們的下一步學習打下了堅實的基礎(chǔ)。通過課程設(shè)計,一方面是為了檢查我們一個半學期來我們學習的成果,另一方面也是為了讓我們進一步的掌握和運用它,同時也讓我們認清自己的不足之處和薄弱環(huán)節(jié),加以彌補和 加強。通過對模擬時鐘的設(shè)計進一步的鞏固了用 C編寫程序,并且有利于更好的掌 握程序設(shè)計語言!同時也認識到了結(jié)構(gòu)化語言的不足之處, 為我們以后學習面向?qū)ο?語埋下伏筆。在模擬時鐘的編寫過程中也體會到了做事情一頂要細心、認真。更加知道了要掌握好基礎(chǔ)知識。還有體會到了成功的感覺!通過本項課程設(shè)計也培養(yǎng)了我獨立思考、綜合運用所學有關(guān)相應(yīng)知識的能力,掌
17、握工程軟件設(shè)計的基本方法,強化上機動手編程能力,闖過理論與實踐相結(jié)合的難 關(guān)!由于C程序設(shè)計語言是近年在國內(nèi)外得到迅速推廣應(yīng)用的一種語言。據(jù) 51CTO 2010的語言排行榜,C語言是程序員使用率第二高的語言,僅次于面向?qū)ο蟮腏ava語言,是使用率最高的面向結(jié)構(gòu)的編程語言。它功能豐富,表達能力強,使用靈活方 便,應(yīng)用面廣,目標程序效率高,可移植性好,既具有高級語言的優(yōu)點,又具有低級 語言的許多特點。通過這次的程序設(shè)計更加了解了語言設(shè)計的好處和其可用性!在這次課程設(shè)計中也知道了自己的動手能力不強有待進一部的提高!在設(shè)計過程中不能夠把書本上的知識與實踐相結(jié)合,這也就增加了設(shè)計不好該程序的想法! 在
18、設(shè) 計過程中的一次次設(shè)計錯誤增加了我放棄的想法! 不過經(jīng)過自己的獨立思考和同學的 幫助終于完成了課程設(shè)計!完成該程序后想起自己以前的每一次對自己失去信心,就覺得并不是在知識掌握上打敗了,而是自己對自己缺乏信心!只要自己對自己不失去 信心相信就可以完成那些以前認為完成不了的事情! 也讓我懂得了要想成功首先就必 須有很強的自信心!懂得了自己以后要在做任何事情時都要自信! 當自己都不相信自 己能夠成功時還可能會獲得成功嗎?在課程設(shè)計的過程中也知道了自己在以前的學習中有很大的不足導致在設(shè)計過 程中出現(xiàn)了很多的問題,有些地方看不懂也不知道怎么去設(shè)計, 但是在設(shè)計過程中也 學習了很多,掌握了自己以前沒有學
19、好的知識,雖然一時可以掌握完以前沒有學好的 知識,不過也給自己敲響了警鐘,在學習中不可以伏于表面,要想學好每一門課程都 要踏踏實實,做什么都不是給別人看的!都是要更好的掌握該門知識,提高自己的自 身的修養(yǎng),提高自己的能力!為以后的工作打下良好的知識基礎(chǔ)和技能基礎(chǔ)!附錄1:教材及參考書序號書名編者出版社版本1C語言課程設(shè)計案例精編姜靈芝、余健清華大學出版社2008.12C語言課程設(shè)計案例精編郭翠英中國水利水電出版社2004.33C語言程序設(shè)計田祥宏主編西安電子科技大學出版社2007.12附錄二:/*電子時鐘源代碼*/#include<graphics.h>#include<st
20、dio.h>#include<math.h>#include<dos.h> #include <string.h>#include <conio.h>#define PI 3.1415926 /*定義常量*/#define UP 0x4800 /*上移T鍵:修改時間*/#define DOWN 0x5000 /*下移J鍵:修改時間*/#define ESC 0x11b /*ESC鍵:退出系統(tǒng)*/#define TAB 0xf09 /*TAB鍵:移動光標*/*函數(shù)聲明*/int keyhandle(int,int); /*鍵盤按鍵判斷,并調(diào)用
21、相關(guān)函數(shù)處理*/int timeupchange(int); /*處理上移按鍵*/int timedownchange(int); /*處理下移按鍵*/int digithour(double); /*將double型的小時數(shù)轉(zhuǎn)換成int型*/int digitmin(double); /*將double型的分鐘數(shù)轉(zhuǎn)換成int型*/int digitsec(double); /* 將 double 型的秒鐘數(shù)轉(zhuǎn)換成 int 型*/void digitclock(int,int,int ); /*在指定位置顯示時鐘或分鐘或秒鐘數(shù)*/void drawcursor(int); /*繪制一個光標 *
22、/void clearcursor(int);/*消除前一個光標 */void clockhandle(); /* 時鐘處理 */double h,m,s;/*全局變量:小時,分,秒*/double x,x1,x2,y,y1,y2; /*全局變量:坐標值 */struct time t1;/* 定義一個time 結(jié)構(gòu)類型的數(shù)組*/ main()(int driver, mode=0,i,j;driver=DETECT;/*自動檢測顯示設(shè)備*/initgraph(&driver, &mode, "");/*初始化圖形系統(tǒng) */添加內(nèi)容:/*為防止圖形初始化時發(fā)
23、生異常出現(xiàn)錯誤時將出現(xiàn)有好的提示界面*/errorcode = graphresult()if (errorcode != grOk) /*圖形初始化時出現(xiàn)錯誤 */(printf("Graphics error: %s/n", grapherrormsg(errorcode);printf("Press any key to halt:");getch();exit(1); /* return with error code */ )/* setlinestyle(0,0,3); /*設(shè)置當前畫線寬度和類型:設(shè)置三點寬實線*/函數(shù)名:setlinest
24、yle功能:設(shè)置當前畫線寬度和類型用 法:void far setlinestyle(int linestyle, unsigned pattern,int width);linestyle 為整數(shù)型,用來定義所畫直線類型pattern為無符號整數(shù)型,該參數(shù)在需要用戶自定義線型時使用,如果是使用系統(tǒng)預定義的線型則參數(shù)取0值width為整數(shù)型,用來指定所畫直線的粗細SOLID_LINE0實線DOTTED_LINE1點線CNTER_LINE2中心線DASHED_LINE3虛線USERBIT LINE4用戶自定義線型此處我稍作修改:*/setlinestyle(0,0,3); /*設(shè)置當前畫線寬度和
25、類型:設(shè)置四點寬點線線setbkcolor(0);/*用調(diào)色板設(shè)置當前背景顏色 */*可以讓用戶選擇系統(tǒng)支持的顏色作為背景色*/int bkcol, maxcolor, x=10, y=10;char IsOK;maxcolor = getmaxcolor();for (bkcol=0; bkcol<=maxcolor; bkcol+)/*清理屏幕*/cleardevice();/*設(shè)置新的背景色*/setbkcolor(bkcol);/* output a messsage */if (bkcol = WHITE)setcolor(EGA_BLUE);sprintf(msg, &quo
26、t;Background color: %d", bkcol);outtextxy(x, y, msg);IsOK=getch();if(IsOK= Y)break;)setcolor(9); /*設(shè)置當前畫線顏色*/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); /* /*arc(int x, int y, int stangle,
27、int endangle, int radius)*/ 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); /*畫主體框架的邊角弧線*/setcolor(15);顯示標題*/outtextxy(300,53,"CLOCK"); /* setcolor(7);rectangle(342,72,560,360); /*畫一個矩形,作為時鐘的框架*/*/setwritemode
28、(0);/* 規(guī)定畫線的方式。mode=0,則表示畫線時將所畫位置的原來信息覆蓋setcolor(15);outtextxy(433,75,"CLOCK");/*時鐘的標題 */setcolor(7);line(392,310,510,310);line(392,330,510,330);arc(392,320,90,270,10);arc(510,320,270,90,10); /*繪制電子動畫時鐘下的數(shù)字時鐘的邊框架*/*繪制數(shù)字時鐘的時分秒的分隔符*/ setcolor(5);for(i=431;i<=470;i+=39)for(j=317;j<=324;
29、j+=7) setlinestyle(0,0,3);circle(i,j,1);/* 以(i, y)為圓心,1為半徑畫圓*/)setcolor(15);line(424,315,424,325); /*在運行電子時鐘前先畫一個光標*/*繪制表示小時的圓點*/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);/在指針式時鐘周圍顯示數(shù)字,使更易讀數(shù)circle(x,y,2);setlinestyle(0,0,1);x=110*s
30、in(h*60+m)/360*PI)+451;/在半徑的延伸處顯示圓點代表的小時y=200-110*cos(h*60+m)/360*PI);if(h=0)h=12;char buffer110;outtextxy(x,y,buffer1);sprintf(buffer1,"%d",h);outtextxy(x,y, buffer1);h=0;/不要忘記將h再次賦值為0)elsechar buffer110;outtextxy(x,y,buffer1);sprintf(buffer1,"%d",h);outtextxy(x,y, buffer1);)/將表
31、示小時的圓點用更大的圓點與畫出/*繪制表示分鐘或秒鐘的圓點*/for(i=0,m=0;i<=59;m+,i+)x=100*sin(m/30*PI)+451;y=200-100*cos(m/30*PI);setlinestyle(0,0,1);circle(x,y,1);/*在電子表的左邊打印幫助提示信息*/setcolor(4);outtextxy(184,125,"HELP");setcolor(15);outtextxy(182,125,"HELP");setcolor(5);outtextxy(140,185,"TAB : Curs
32、or move");outtextxy(140,225,"UP : Time +");outtextxy(140,265,"DOWN: Time -");outtextxy(140,305,"ESC : Quit system!");outtextxy(140,345,"Version : 2.0");setcolor(12);outtextxy(150,400,"Nothing is more important than time!");clockhandle();/*開始調(diào)用時鐘
33、處理程序*/closegraph();/*關(guān)閉圖形系統(tǒng)*/return 0; /*表示程序正常結(jié)束,向操作系統(tǒng)返回一個 0彳K*/void clockhandle()int k=0,count;setcolor(15);gettime(t);/* 取得系統(tǒng)時間,保存在time結(jié)構(gòu)類型的數(shù)組變量中*/h=t0.ti_hour;m=t0.ti_min;x=50*sin(h*60+m)/360*PI)+451;/*時針的 x 坐標值 */y=200-50*cos(h*60+m)/360*PI); /*時針的 y 坐標值 */line(451,200,x,y);/*在電子表中繪制時針 */x1=80*
34、sin(m/30*PI)+451;/*分針的 x 坐標值 */y1=200-80*cos(m/30*PI); /*分針的 y 坐標值 */line(451,200,x1,y1);/*在電子表中繪制分針 */digitclock(408,318,digithour(h);/*在數(shù)字時鐘中,顯示當前的小時值 */digitclock(446,318,digitmin(m);/*在數(shù)字時鐘中,顯示當前的分鐘值 */setwritemode(1);/*規(guī)定畫線的方式,如果mode=1,則表示畫線時用現(xiàn)在特性的線與所畫之處原有的線進行異或(XOR)操作,實際上畫出的線是原有線與現(xiàn)在規(guī)定 的線進行異或后的
35、結(jié)果。因此,當線的特性不變,進行兩次畫線操作相當于沒有 畫線,即在當前位置處清除了原來的畫線*/for(count=2;k!=ESC;) /*開始循環(huán),直至用戶按下ESC鍵結(jié)束循環(huán)*/setcolor(12);/*淡紅色*/sound(500);/*以指定頻率打開PC揚聲器,這里頻率為500Hz*/delay(700);/*發(fā)一個頻率為500Hz的音調(diào),維持700毫秒*/sound(200);/*以指定頻率打開PC揚聲器,這里頻率為200Hz*/delay(300);呵呵聲音怪怪的sound(600);/*以指定頻率打開PC揚聲器,這里頻率為500Hz*/delay(800);/*發(fā)一個頻率為
36、500Hz的音調(diào),維持700毫秒*/sound(400);/*以指定頻率打開PC揚聲器,這里頻率為200Hz*/delay(200);/*以上兩種不同頻率的音調(diào),可仿真鐘表轉(zhuǎn)動時的嘀噠聲*/nosound(); /* 關(guān)閉 PC 揚聲器 */s=t0.ti_sec;m=t0.ti_min;h=t0.ti_hour;x2=98*sln(s/30*PI)+451;/*秒針的 x 坐標值 */y2=200-98*cos(s/30*PI); /*秒針的 y 坐標值 */line(451,200,x2,y2);/*繪制秒針*/*利用此循環(huán),延時一秒*/while(t0.ti sec=s&&
37、;t0.ti min=m&&t0.ti hour=h) gettime(t);/*取得系統(tǒng)時間*/if(bioskey(1)!=0)k=bioskey(0);count=keyhandle(k,count);if(count=5) count=1;setcolor(15);digitclock(485,318,digitsec(s)+1);/*setcolor(12); /* 淡紅色 */x2=98*sin(s/30*PI)+451;y2=200-98*cos(s/30*PI);line(451,200,x2,y2);/*用原來的顏色在原來位置處再繪制秒針,/*分鐘處理*/if
38、(t0.ti_min!=m) /*若分鐘有變化/*消除當前分針*/setcolor(15);/* 白色 */x1=80*sin(m/30*PI)+451;y1=200-80*cos(m/30*PI);line(451,200,x1,y1);數(shù)字時鐘增加1秒*/以達到清除當前秒針的目的 */*/*繪制新的分針*/m=t0.ti_min;digitclock(446,318,digitmin(m); /*在數(shù)字時鐘中顯示新的分鐘值x1=80*sln(m/30*PI)+451;y1=200-80*cos(m/30*PI);line(451,200,x1,y1);/*小時處理*/if(t0.ti_ho
39、ur*60+t0.ti_min)!=(h*60+m) /*若小時數(shù)有變化/*消除當前時針*/setcolor(15);/* 白色 */x=50*sin(h*60+m)/360*PI)+451;/*50:y=200-50*cos(h*60+m)/360*PI);line(451,200,x,y);/*繪制新的時針*/h=t0.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);int keyhandle(int key
40、,int count) /* switch(key)case UP: timeupchange(count-1); /* break;case DOWN:timedownchange(count-1);break;時鐘的長度(單位:像素),451:圓心的x坐標值*/鍵盤才$制*/因為count的初始值為2,所以此處減1*/*因為count的初始值為2 ,所以此處減1*/case TAB:setcolor(15);clearcursor(count); /*清除原來的光標 */drawcursor(count); /*顯示一個新的光標 */count+;break;)return count;)int timeupc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 14《故都的秋》《荷塘月色》對比閱讀說課稿 2024-2025學年統(tǒng)編版高中語文必修上冊
- 8《網(wǎng)絡(luò)新世界》(說課稿)-部編版道德與法治四年級上冊001
- 9《這些是大家的》說課稿-2023-2024學年道德與法治二年級上冊統(tǒng)編版
- Unit 1 Back to School Reading 說課稿-2024-2025學年高一英語譯林版(2020)必修第一冊
- 2024-2025學年高中歷史 第四單元 工業(yè)文明沖擊下的改革 第15課 戊戌變法(2)教學說課稿 岳麓版選修1
- 2025市場門市部租賃合同
- 2025電腦維修合同范本
- 2024-2025學年新教材高中語文 第六單元 10.1 勸學說課稿(3)部編版必修上冊
- 2025蘋果購銷合同樣書
- 24 京劇趣談(說課稿)-2024-2025學年統(tǒng)編版語文六年級上冊
- 2025年方大萍安鋼鐵招聘筆試參考題庫含答案解析
- 2025安全生產(chǎn)工作目標及實施計劃
- 《高原紅細胞增多癥血液稀釋療法護理操作規(guī)程》
- 2025年電力工程施工企業(yè)發(fā)展戰(zhàn)略和經(jīng)營計劃
- 年終抖音運營述職報告
- 汽車維修店加盟協(xié)議書細則
- 2024東莞市勞動局制定的勞動合同范本
- 2024年大學本科課程教育心理學教案(全冊完整版)
- 三甲醫(yī)院面試自我介紹課件
- 公務(wù)員2010年國考《申論》真題卷及答案(地市級)
- 2023-2024學年福建省廈門市八年級(上)期末物理試卷
評論
0/150
提交評論