九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

機械時鐘程序報告 本科畢業(yè)設計(論文)

  • 資源ID:37032782       資源大?。?span id="24d9guoke414" class="font-tahoma">602.50KB        全文頁數:27頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

機械時鐘程序報告 本科畢業(yè)設計(論文)

課 程 設 計 報 告課程名稱 C語言程序設計 課題名稱 機械時鐘的設計 專 業(yè) 電子信息 班 級 學 號 姓 名 指導教師 湖南工程學院課 程 設 計 任 務 書課程名稱 C語言程序設計 課 題 機械時鐘設計 專業(yè)班級 學生姓名 學 號 指導老師 審 批 一、設計內容與設計要求1 設計內容:機械時鐘系統(tǒng)在屏幕上實現一個機械時鐘,并且能夠通過鍵盤上的按鍵完成時間的修改。目 錄1.需求分析12程序總體設計13.程序詳細設計24.程序運行結果115.參考資料136.總結體會137.程序源代碼134機械時鐘程序報告一、 需求分析根據老師的要求,要在屏幕上顯示一個機械時鐘并且顯示當前的數字時鐘以及日歷。根據老師的要求,本程序要顯示機械時鐘就必須通過畫圖函數將機械表畫出來。另外,本程序還用到延時函數,實現秒針,分針,時針的轉動。樹立起總體思想就開始設計整個程序。二、 程序總體設計本程序包含了一個主函數和六個子函數,主函數完成初始化時間(獲取系統(tǒng)時間)以及時鐘與日歷的進制,同時還是調節(jié)六個子函數共同完成整個程序功能的實現。六個子函數分別完成顯示機械表針和數字時鐘、顯示界面上的文字、顯示日歷、做表盤、做刻度以及重新設置程序的時間與日歷。流程圖如下:主函數,獲取系統(tǒng)時間,完成時鐘日歷進制,設置畫圖窗口。做表盤,做刻度,做畫圖界面上一些無需變化的文字。畫表針,顯示數字時鐘,顯示日歷延時一秒。時鐘的秒數加一,并按時間進制控制其他時間項目輸入現在的時間,并將該程序時鐘的時間改成輸入的時間擦去表針,擦去數字時針,擦去日歷上回隨時間變化的東西。按r鍵,進入修改界面三、 程序的詳細設計1、畫表盤、做刻度、顯示界面上一些無需改動的文字void fun2()/做表盤setcolor(WHITE);circle(220,240,180);circle(220,240,170);circle(220,240,2);circle(220,240,110);void fun3()/做刻度int i,ix,iy,ix1,iy1;double i1;for(i=0;i<60;i+)i1=i*PI/30;ix=int(220+165*sin(i1);iy=int(240-165*cos(i1);ix1=int(220+105*sin(i1);iy1=int(240-105*cos(i1);setcolor(WHITE);if(i%15=0)bar(ix-5,iy-5,ix+5,iy+5);elsecircle(ix,iy,2);if(i%5=0)circle(ix1,iy1,5);circle(ix,iy,5);void fun4()/做界面上的文字char s1="機械時鐘",s2="按r鍵重設時間",s3="按其他鍵退出",s4="制作人楊自然"setfont(50,40,"黑體");setcolor(RED);outtextxy(80,0,s1);setfont(22,16,"宋體");setcolor(BLUE);outtextxy(420,250,s2);outtextxy(420,300,s3);setcolor(BLUE);setfont(18,12,"宋體");outtextxy(400,455,s4);設計簡單的表盤,即四個半徑分別為2,110,170,180的同心圓。做刻度,在半徑為110的圓盤上標出1到12點的位置,用半徑為5小圓圈表示。在半徑為170的圓盤上用標出1到12點的位置,用半徑分別為2和五的同心圓表示,在1到六十的刻度上用半徑為2的小圓圈表示,在3、6、9、12點的位置用邊長為10的填充正方形表示。另外,在畫圖界面上顯示一些必要的文字。2、畫表針,顯示數字時鐘,顯示日歷void fun1(int h,int m,int s)/畫時鐘、分鐘、秒鐘,顯示數字時鐘double h1,m1,s1;int hx,hy,mx,my,sx,sy;s=s%60;m=m%60;h=h%24;s1=s*PI/30;m1=m*PI/30;h1=(h%12)*PI/6+m*PI/360;hx=int(220+100*sin(h1);hy=int(240-100*cos(h1);mx=int(220+140*sin(m1);my=int(240-140*cos(m1);sx=int(220+160*sin(s1);sy=int(240-160*cos(s1);setlinestyle(PS_SOLID, NULL, 2); setcolor(RED);line(220,240,sx,sy);setlinestyle(PS_SOLID, NULL, 6); setcolor(LIGHTGRAY);line(220,240,mx,my);setlinestyle(PS_SOLID, NULL, 10); setcolor(WHITE);line(220,240,hx,hy);TCHAR str15,str25,str35;setfont(20,18,"宋體");_stprintf(str1,"%d",s);_stprintf(str2,"%d",m);_stprintf(str3,"%d",h);setfont(20,16,"宋體");if(h>9)outtextxy(450,200,str3);elseouttextxy(450,200,"0");outtextxy(465,200,str3);outtextxy(490,200,":");if(m>9)outtextxy(510,200,str2);elseouttextxy(510,200,"0");outtextxy(525,200,str2);outtextxy(550,200,":");if(s>9)outtextxy(570,200,str1);elseouttextxy(570,200,"0");outtextxy(585,200,str1);void fun5(int d,int e,int f,int g) /日歷的顯示char c1="年",c2="月",c3="日"setfont(30,22,"宋體");TCHAR str15,str25,str35;_stprintf(str1,"%d",d);_stprintf(str2,"%d",e);_stprintf(str3,"%d",f);setfont(35,25,"宋體");setcolor(RED);outtextxy(440,70,str1);outtextxy(550,70,c1);setfont(20,18,"宋體");setcolor(WHITE);if(e<10)outtextxy(445,120,0);outtextxy(465,120,str2);elseouttextxy(445,120,str2);outtextxy(480,120,c2);if(f<10)outtextxy(520,120,0);outtextxy(540,120,str3);elseouttextxy(520,120,str3);outtextxy(560,120,c3);setcolor(CYAN);switch(g)case 1: outtextxy(460,160,"星期一");break;case 2: outtextxy(460,160,"星期二");break;case 3: outtextxy(460,160,"星期三");break;case 4: outtextxy(460,160,"星期四");break;case 5: outtextxy(460,160,"星期五");break;case 6: outtextxy(460,160,"星期六");break;case 7: outtextxy(460,160,"星期日");break;通過獲取的系統(tǒng)時間,計算出個表針的角度以及表針的終點,畫出表針,并設置不同的大小、長度與顏色,以便用戶的區(qū)分。在機械時鐘的右側,顯示出從系統(tǒng)獲得的日歷。3、修改部分void fun6(int *a,int *b,int *c,int *d,int *e,int *f,int *g)/重新設定時間日期int m,n;printf("請問你是要修改時間還是修改日期n");printf("*n");printf("* 修改時間請按“1”,然后回車 *n");printf("* 修改日期請按“2”,然后回車 *n");printf("* 退出請按“3”,然后回車 *n");printf("*n");scanf("%d",&m);switch(m)case 1:printf("請輸入當前是幾點幾分幾秒,用逗號隔開n");scanf("%d,%d,%d",a,b,c);printf("請問是否繼續(xù)修改日期n");printf("*n");printf("*繼續(xù)修改請按“1”,退出請按“2”*n");printf("*n");scanf("%d",&n);if(n=2)break;case 2: printf("請輸入當前是哪年哪月哪日星期幾,用逗號隔開n"); scanf("%d,%d,%d,%d",d,e,f,g); break; 通過使用指針,更該當前時鐘程序的當前時間與日歷,并將其反饋到主函數。4、主函數void main() /主函數 獲取系統(tǒng)時間 給各個函數傳送相關的時間信息int a=0,b=0,c=0,d,e,f,g,h=1;SYSTEMTIME t;GetLocalTime(&t); a=t.wHour;b=t.wMinute;c=t.wSecond;d=t.wYear;e=t.wMonth;f=t.wDay;g=t.wDayOfWeek;initgraph(640, 480);fun3();fun2();fun4();setwritemode(R2_XORPEN);while(h=1)fun1(a,b,c);fun5(d,e,f,g);Sleep(1000);fun1(a,b,c);fun5(d,e,f,g);c+;if(c%60=0)b+;if(b%60=0)a+;if(a%24=0)f+;g+;if(e%2=1&&e<8)|(e%2=0&&e>7)&&f=31)/日歷進制e+;if(e%2=0&&e<8)|(e%2=1&&e>7)&&f=30)e+;if(e%2=1&&e<8)|(e%2=0&&e>7)&&f>31)f=f%31;if(e%2=0&&e<8)|(e%2=1&&e>7)&&f>30)f=f%30;char str;if(kbhit()!=0)str=getch();if(str=r|str=R)closegraph();fun6(&a,&b,&c,&d,&e,&f,&g);initgraph(640, 480);fun3();fun2();fun4();setwritemode(R2_XORPEN);else h+;closegraph(); e=e%12;主函數,獲取系統(tǒng)時間,完成各個函數之間的數據交換,實現各個函數之間所要求的功能。四、 程序的運行結果1、 時鐘界面,在設置的畫圖窗口中顯示出機械時鐘,數字時鐘,日歷,以及其他一些文字說明。運行圖如下:上圖即為運行程序是的結果2、 當運行程序后按r鍵,程序立刻進入時間修改界面,運行圖如下:輸入上圖數字后,回車,可得下圖該圖為修改后機械時鐘的界面。五、 參考資料C語言程序設計方法鄧文心 張宏烈主編哈爾濱工業(yè)大學出版社出版六、 總結體會本次程序設計按照老師的要求是未完成一個機械時鐘的現實,由于我所學C語言知識的局限,基本不知道該從何下手。但是我根據程序的要求首先從簡單地方開始入手,即搜集此次程序設計需要用到的庫函數。于是我從網絡上找到了延時是函數Sleep(),并且知道C語言上有一個畫圖函數庫,其頭文件是graphics.h,該頭文件沒有包含在我所使用的V里面,經過經一步的搜索,我從網上得知知要在上安裝EasyX程序即可使我使用的能夠正常的使用畫圖函數庫里的函數,我半信半疑的按照網上的說法做了,并達到了預期的效果。其實,我在一開始便在網上搜到了一個機械時鐘的模板,但是由于畫圖函數庫不能通過,模板也不能運行。但是,自我安裝了EasyX程序后我在網上搜的程序已經能夠正常運行,這使我非常欣喜。我瀏覽了一下模板程序,其實,我主要是看了它的一些注釋和一些特殊的函數,然后我便開始編程了。我在圖書館接了一本語言程序設計,那本書講的是在上編譯的,但是里面有一章專門講的是語言畫圖,里面提到了許多用于畫圖的庫函數,我仔細的看了那一章,體會了那些函數的用法,到此,我的前期準備工作算是做完了。老實說,此次程序設計我感覺像是對畫圖函數的一種深刻的理解吧?;旧衔易龅囊磺卸冀⒃诋媹D界面上。或許是因為準備充分,很快,我就完成了機械時鐘的設計,并開始設計其他東西。一天老師檢查成果,聽到我說參考了網上的模板,不怎么高興,說如果什么都去網上查不自己動腦想想,怎么能得到進步了,于是便對我提了進一步的要求,即顯示數字時鐘與日歷,還要完成時鐘日歷的修改功能。在完成機械時鐘后這些好像對我來說不是什么難題了,不久我便完成了整個程序的設計。在本次的程序設計中,我的確收益匪淺。通過對語言的進一步了解,我開始明白我在書上學到的知識是十分有限的,要想提高自己的編程能力,不僅要扎實語言的基礎,同時還要更多閱讀其他的相關資料,豐富自己的知識,這樣在編程方面才可能得到進一步的提高。七、 源程序#include <graphics.h>/圖形庫頭文件#include<stdio.h>/輸入輸出頭文件#include <conio.h>#include <math.h>#define PI 3.1415926void fun1(int h,int m,int s)/畫時鐘、分鐘、秒鐘,顯示數字時鐘double h1,m1,s1;int hx,hy,mx,my,sx,sy;s=s%60;m=m%60;h=h%24;s1=s*PI/30;m1=m*PI/30;h1=(h%12)*PI/6+m*PI/360;hx=int(220+100*sin(h1);hy=int(240-100*cos(h1);mx=int(220+140*sin(m1);my=int(240-140*cos(m1);sx=int(220+160*sin(s1);sy=int(240-160*cos(s1);setlinestyle(PS_SOLID, NULL, 2); setcolor(RED);line(220,240,sx,sy);setlinestyle(PS_SOLID, NULL, 6); setcolor(LIGHTGRAY);line(220,240,mx,my);setlinestyle(PS_SOLID, NULL, 10); setcolor(WHITE);line(220,240,hx,hy);TCHAR str15,str25,str35;setfont(20,18,"宋體");_stprintf(str1,"%d",s);_stprintf(str2,"%d",m);_stprintf(str3,"%d",h);setfont(20,16,"宋體");if(h>9)outtextxy(450,200,str3);elseouttextxy(450,200,"0");outtextxy(465,200,str3);outtextxy(490,200,":");if(m>9)outtextxy(510,200,str2);elseouttextxy(510,200,"0");outtextxy(525,200,str2);outtextxy(550,200,":");if(s>9)outtextxy(570,200,str1);elseouttextxy(570,200,"0");outtextxy(585,200,str1);void fun4()/做界面上的文字char s1="機械時鐘",s2="按r鍵重設時間",s3="按其他鍵退出",s4="制作人楊自然"setfont(50,40,"黑體");setcolor(RED);outtextxy(80,0,s1);setfont(22,16,"宋體");setcolor(BLUE);outtextxy(420,250,s2);outtextxy(420,300,s3);setcolor(BLUE);setfont(18,12,"宋體");outtextxy(400,455,s4);void fun5(int d,int e,int f,int g) /日歷的顯示char c1="年",c2="月",c3="日"setfont(30,22,"宋體");TCHAR str15,str25,str35;_stprintf(str1,"%d",d);_stprintf(str2,"%d",e);_stprintf(str3,"%d",f);setfont(35,25,"宋體");setcolor(RED);outtextxy(440,70,str1);outtextxy(550,70,c1);setfont(20,18,"宋體");setcolor(WHITE);if(e<10)outtextxy(445,120,0);outtextxy(465,120,str2);elseouttextxy(445,120,str2);outtextxy(480,120,c2);if(f<10)outtextxy(520,120,0);outtextxy(540,120,str3);elseouttextxy(520,120,str3);outtextxy(560,120,c3);setcolor(CYAN);switch(g)case 1: outtextxy(460,160,"星期一");break;case 2: outtextxy(460,160,"星期二");break;case 3: outtextxy(460,160,"星期三");break;case 4: outtextxy(460,160,"星期四");break;case 5: outtextxy(460,160,"星期五");break;case 6: outtextxy(460,160,"星期六");break;case 7: outtextxy(460,160,"星期日");break;void fun2()/做表盤setcolor(WHITE);circle(220,240,180);circle(220,240,170);circle(220,240,2);circle(220,240,110);void fun3()/做刻度int i,ix,iy,ix1,iy1;double i1;for(i=0;i<60;i+)i1=i*PI/30;ix=int(220+165*sin(i1);iy=int(240-165*cos(i1);ix1=int(220+105*sin(i1);iy1=int(240-105*cos(i1);setcolor(WHITE);if(i%15=0)bar(ix-5,iy-5,ix+5,iy+5);elsecircle(ix,iy,2);if(i%5=0)circle(ix1,iy1,5);circle(ix,iy,5);void fun6(int *a,int *b,int *c,int *d,int *e,int *f,int *g)/重新設定時間日期int m,n;printf("請問你是要修改時間還是修改日期n");printf("*n");printf("* 修改時間請按“1”,然后回車 *n");printf("* 修改日期請按“2”,然后回車 *n");printf("* 退出請按“3”,然后回車 *n");printf("*n");scanf("%d",&m);switch(m)case 1:printf("請輸入當前是幾點幾分幾秒,用逗號隔開n");scanf("%d,%d,%d",a,b,c);printf("請問是否繼續(xù)修改日期n");printf("*n");printf("*繼續(xù)修改請按“1”,退出請按“2”*n");printf("*n");scanf("%d",&n);if(n=2)break;case 2: printf("請輸入當前是哪年哪月哪日星期幾,用逗號隔開n"); scanf("%d,%d,%d,%d",d,e,f,g); break; void main() /主函數 獲取系統(tǒng)時間 給各個函數傳送相關的時間信息int a=0,b=0,c=0,d,e,f,g,h=1;SYSTEMTIME t;GetLocalTime(&t); a=t.wHour;b=t.wMinute;c=t.wSecond;d=t.wYear;e=t.wMonth;f=t.wDay;g=t.wDayOfWeek;initgraph(640, 480);fun3();fun2();fun4();setwritemode(R2_XORPEN);while(h=1)fun1(a,b,c);fun5(d,e,f,g);Sleep(1000);fun1(a,b,c);fun5(d,e,f,g);c+;if(c%60=0)b+;if(b%60=0)a+;if(a%24=0)f+;g+;if(e%2=1&&e<8)|(e%2=0&&e>7)&&f=31)/日歷進制e+;if(e%2=0&&e<8)|(e%2=1&&e>7)&&f=30)e+;if(e%2=1&&e<8)|(e%2=0&&e>7)&&f>31)f=f%31;if(e%2=0&&e<8)|(e%2=1&&e>7)&&f>30)f=f%30;char str;if(kbhit()!=0)str=getch();if(str=r|str=R)closegraph();fun6(&a,&b,&c,&d,&e,&f,&g);initgraph(640, 480);fun3();fun2();fun4();setwritemode(R2_XORPEN);else h+;closegraph(); e=e%12;if(e=0)e=12;23

注意事項

本文(機械時鐘程序報告 本科畢業(yè)設計(論文))為本站會員(1888****888)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!