c語言時鐘報告,C語言圖形時鐘課程設計實驗報告

41528d3028836879cd698677c3999917.gifC語言圖形時鐘課程設計實驗報告

目錄1.系統功能要求。2. 數據結構設計及說明。3.程序結構(畫流程圖) 。4.各模塊的功能。5.試驗結果(包括輸入數據和輸出結果) 。6.體會。7.參考文獻。8.附錄:程序清單及源程序。? 系統功能要求:在屏幕上顯示一個圖形時鐘(用程序繪制一個與時鐘樣式相似即可) ,時間與系統時間一致,且要隨著時間的走動準確的走動。? 數據結構設計及說明(1) 圖形時鐘要用 TC來編譯,學 C語言時主要用VC,用 TC對我有一定的挑戰性,不熟悉編譯,對圖形函數也沒有太多接觸,做這個有一定難度。(2) 先畫出時鐘基本組成, (時針分針秒針,中心點,表盤及其分隔點) 。(3) 時鐘表設計思想:第一步,確定秒鐘的走時。將圓等分成 60份每過一秒,秒鐘要轉 1/60個圓,亦即一等份。第二步,確定分鐘的走時。將圓等分成 60份每過一分,分鐘要轉 1/60個圓,亦即一等份。- 1 -分鐘自己走的再加秒鐘的,才是分鐘此時的位置。第三步,確定時鐘的走時。將圓等分成 12等分。每過一時,時鐘走一等份。和分鐘一樣,得加上分鐘,秒鐘的走時,才是此刻時鐘的位置。(4) 時鐘走動與系統時間聯系:每過一秒畫出秒針,并除去前一秒的秒針,分針秒針同樣可用。畫線函數與時間聯系使用變量。(5) 設置橫縱坐標x=a*cos(b*c*pi/180-pi/2)+300; y=a*sin(b*c*pi/180-pi/2)+240; 設置表針的動態坐標點 x1=200*sin(i*6*pi/180)+300; y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+300; y2=(200-l)*cos(i*6*pi/180)+240;? 程序結構(畫流程圖)總流程圖:- 2 -開始確定橫縱坐標寫出時鐘表盤并將表盤分 60 份的函數圖形方式初始化函數使指針轉動并除去前一秒的指針畫出時針分針秒針獲取系統時間并寫入結構體 t 中在表盤適當位置插入 12、3、6、9結束指針轉動流程圖:- 3 -結束開始t[0].ti_sec==sgettime(t);setcolor(4);draw(190,s,6);s=t[0].ti_sec;draw(190, s, 6);t[0].ti_min != m NYsetcolor(14);draw(170, m, 6); m = t[0].ti_min;draw(170, m, 6);t[0].ti_hour != h NYsetcolor(7);draw(150, h, 30); h = t[0].ti_hour;draw(150, h, 30);YN? 各模塊的功能- 4 -void init()main()劃時鐘邊框函數和畫鐘點上的短線主函數 圖形初始化時鐘添加 12 點、3 點、6 點、9 點獲取系統時間,畫時針分針秒針將系統時間與時鐘聯系功能功能? 試驗結果(包括輸入數據和輸出結果)void draw(int a, int b, int c) 確定橫縱坐標,確定針分針秒針函數功能- 5 -12369? 體會:剛開始做時基本上什么都不懂,用 TC做,我更不會。不過參考了很多資料,到網上查,泡了幾天圖書館,差不多能寫出基本程序,雖然很多是借鑒別人的,不過能寫成這樣,我心里還是挺高興的。有了一點成功我就很興奮,這是動力。程序很奇特,很多問題都可以用程序編寫,看到那些大型程序我就感覺我也能寫出這樣的程序。程序設計主要靠理解與運用,有些沒有學過的知識不一定要懂得徹底,只要會運用就行。不足之處也很多,程序思路不太清晰可能有些混亂。有很多程序設計使用并不熟練,甚至有些方法掌握不了,更容易忘記。算法結構了解并不深入,獨立自主的想法占據總體達不到要求。需要加強練習和對知識的理解與掌握。? 參考文獻:《C 程序設計思想與方法》《C 語言完全手冊》《C 語言課程設計指導》《百度知道 圖形時針》- 6 -? 附錄:程序清單及源程序 (使用 TC)# include # include # include # define pi 3.1415926 void draw(int a, int b, int c){float x, y;x=a*cos(b*c*pi/180-pi/2)+300; /*確定橫坐標*/y=a*sin(b*c*pi/180-pi/2)+240; /*確定縱坐標*/line(300, 240, x, y);/*繪制時針或分針或秒針*/}void init() /*劃時鐘邊框函數*/ { int i,l,x1,x2,y1,y2; circle(300,240,200);/*以(300,240)為圓心,200為半徑畫圓*/circle(300,240,5);/*以(300,240)為圓心,5 為半徑畫圓*/for(i=0;i<60;i++) /*劃鐘點上的短線*/ { if(i%5==0) l=15; else l=5; x1=200*sin(i*6*pi/180)+300; /*畫線函數*/y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+300; y2=(200-l)*cos(i*6*pi/180)+240; line(x1,y1,x2,y2); } } - 7 -main(){int x, y,i;int gdriver, gmode;unsigned char h, m, s;struct time t[1];gdriver = DETECT;initgraph( /*初始化*/for(i=0;i<=6;i++) { outtextxy(300,80,“12“) ; outtextxy(300,390,“6“); outtextxy(140,230,“9“); outtextxy(460,230,“3“); } init(); /*調用 init()函數*/setwritemode(1);/*將當前線與原有的線進行異或操作*/gettime(t); /*將計算機時間寫入結構體 t中*/h = t[0].ti_hour; /*h賦初值當前時數*/m = t[0].ti_min; /*m賦初值當前分數*/s = t[0].ti_sec; /*s賦初值當前秒數*/setcolor(7); draw(150, h, 30); /*畫時針*/setcolor(14);draw(170, m, 6); /*畫分針*/setcolor(4);draw(190, s, 6); /*畫秒針*/while (!kbhit()){while (t[0].ti_sec == s)- 8 -gettime(t);setcolor(4);draw(190, s, 6); /*清除前面畫的秒針*/s = t[0].ti_sec;draw(190, s, 6);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281570.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281570.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281570.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微軟發布 2023 財年第一季度財報:營收達 501 億美元,同比增長 11%

北京時間 2022 年 10 月 26 日——微軟發布 2023 財年第一季度財報。財報顯示&#xff0c;截止到 2022 年 9 月 30 日&#xff1a;營收達到 501 億美元&#xff0c;增長 11%&#xff08;按固定匯率計算增長 16%&#xff09;運營收入為 215 億美元&#xff0c;增長 6%&#xff0…

《圖解CSS3:核心技術與案例實戰》——1.3節漸進增強

本節書摘來自華章社區《圖解CSS3&#xff1a;核心技術與案例實戰》一書中的第1章&#xff0c;第1.3節漸進增強&#xff0c;作者 大漠&#xff0c;更多章節內容可以訪問云棲社區“華章社區”公眾號查看 1.3 漸進增強第一次聽到“漸進增強”&#xff08;Progressive Enhancement…

阿里云云主機搭建網站攻略 - 云翼計劃

阿里云服務器&#xff08;云主機&#xff09;搭建網站攻略 - 云翼計劃 提示&#xff1a;此搭建攻略為2017版本&#xff0c;阿里云未跟新前。 最新搭建攻略請前往 Amaya丶夜雨博客 / 最新個人博客 https://www.amayaliu.cn 支持一下哦&#xff0c;謝謝。&#xff08;9.5一…

用c語言遞歸函數做掃雷,【C語言基礎學習---掃雷游戲】(包含普通版+遞歸煉獄版)...

/*******************///以下是源文件game.c內容/*******************/#include"game.h"//初始化棋盤的實現void InitBoard(char board[ROWS][COLS], int rows, int cols, char set){int i 0;int j 0;for (i 0; i < rows; i){for (j 0; j < cols; j){board…

記一次 .NET 某醫療器械 程序崩潰分析

一&#xff1a;背景 1.講故事前段時間有位朋友在微信上找到我&#xff0c;說他的程序偶發性崩潰&#xff0c;讓我幫忙看下怎么回事&#xff0c;上面給的壓力比較大&#xff0c;對于這種偶發性崩潰&#xff0c;比較好的辦法就是利用 AEDebug 在程序崩潰的時候自動抽一管血出來&a…

1251: 字母圖形 [水題]

1251: 字母圖形 [水題] 時間限制: 1 Sec 內存限制: 128 MB提交: 140 解決: 61 統計題目描述 利用字母可以組成一些美麗的圖形&#xff0c;下面給出了一個例子&#xff1a; ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 這是一個5行7列的圖形&#xff0c;請找出這個圖形的規律&…

c語言 三角形三邊abc,C語言代碼輸入abc三個數,求一這3個數為邊長的三角形面積...

2011-01-04 回答#include #include #include #include #include int main(){float a 0.0;float b 0.0;float c 0.0;float s 0.0;double area 0.0;while(true){printf("input your date(a,b,c):");scanf("%f%f%f",&a,&b,&c);if(!isdigit((…

shell腳本中向hive動態分區插入數據

在hive上建表與普通分區表創建方法一樣&#xff1b; 1 CREATE TABLE dwa_m_user_association_circle(2 device_number string, 3 oppo_number string, 4 prov_id_oppo string, 5 area_id_oppo string, 6 dealer_oppo string, 7 short_call_nums bigint, 8 long3…

WPF效果第二百零二篇之TreeView帶連接線

前面文章中分享了TreeView支持多選;然而在項目上使用時,領導覺得不滿意:體現不了真正的從屬關系;既然領導都發話了;那就開整就行了;今天就再來個帶有連接線的TreeView效果:1、來看看TreeViewItem的Template:2、展開和收縮動畫:3、參考資料https://www.codeproject.com/tips/673…

ObjectTive C語言語法,[譯]理解 Objective-C 運行時(下篇)

本文來自網易云社區作者&#xff1a;宋申易所以到底 objc_msgSend 發生了什么&#xff1f;很多事情。看一下這段代碼&#xff1a;[self printMessageWithString:"Hello World!"];這實際上被編譯器翻譯成&#xff1a;objc_msgSend(self, selector(printMessageWithStr…

菜鳥學習MVC實錄:弄清項目各類庫的作用和用法

MVC模式即&#xff1a;模型&#xff08;Model&#xff09;-視圖&#xff08;View&#xff09;-控制器&#xff08;Controller&#xff09; Model &#xff08;模型&#xff09;&#xff1a;是應用程序中用于處理應用程序數據邏輯的部分。通常模型對象負責數據庫中存取數據View…

SSL服務器

2019獨角獸企業重金招聘Python工程師標準>>> SSL 是一個安全協議&#xff0c;它提供使用 TCP/IP 的通信應用程序間的隱私與完整性。因特網的 超文本傳輸協議&#xff08;HTTP&#xff09;使用 SSL 來實現安全的通信。 在客戶端與服務器間傳輸的數據是通過使用對稱算…

微軟Skype Translator將支持阿拉伯語即時語音翻譯

據美國科技時代網(Tech Times)3月9日報道&#xff0c;日前&#xff0c;微軟旗下即時翻譯軟件Skype Translator再添新語種&#xff0c;微軟宣布Skype Translator已經支持阿拉伯語。Skype用戶可通過使用阿拉伯語即時翻譯與朋友、家人以及海外商業伙伴進行交流。 據報道&#xff0…

是什么讓.NET7的Min和Max方法性能暴增了45倍?

簡介在之前的一篇文章.NET性能系列文章一&#xff1a;.NET7的性能改進中我們聊到Linq中的Min()和Max()方法.NET7比.NET6有高達45倍的性能提升&#xff0c;當時Benchmark代碼和結果如下所示&#xff1a;[Params(1000)] public int Length { get; set; }private int[] arr;[Globa…

html標記語言 --框架

html標記語言 --框架六、框架1、什么是框架 框架將瀏覽器劃分成不同的部分&#xff0c;每一部分加載不同的網頁 實現同一瀏覽器窗口中加載多個頁面的效果。 語法格式<frameset>.......</frameset>2. 屬性2.1 cols使用“像素數”和%分割左右窗口&#xff0c;“*” 表…

c語言兔子洞,數據結構水題選講 - osc_y08db3kb的個人空間 - OSCHINA - 中文開源技術交流社區...

[Ynoi2011]ODT\(O(nlog^2n)\) 的做法非常顯然直接把樹重鏈剖分一下&#xff0c;每個點維護輕兒子的平衡樹就行但是這題 \(1e6\) 的數據范圍使得 \(O(nlog^2n)\) 沒那么容易卡過去(當然很多人卡過去了考慮給一個點很多重兒子那么若一個點有 \(k\) 個重兒子&#xff0c;修改復雜度…

centos 7.x systemd service 配置方法整理

一、存放路徑/etc/systemd/system二、service配置整理2.1 zookeeper.service[Unit]DescriptionZooKeeper ServiceAftersyslog.targetAfternetwork.target[Service]#使用shell腳本啟動的要用forking模式TypeforkingUserzookeeperGroupzookeeper#腳本啟動ExecStart/usr/local/zoo…

MAVEN集成測試環境搭建

1. MAVEN SVN HUDSON SONAR集成測試環境搭建、1.1 軟件準備 Hudson、Jenkins、Sonar1.2 軟件安裝 說明&#xff1a;本例均使用將應用程序部署至web容器下&#xff0c;Hudson和Sonar有其他部署啟動方式&#xff0c;如有需要請自行使用&#xff0c;本文不做贅述。1.2.1 安裝hu…

ubus c語言例子,openwrt之ubus例子

好一個icrootLEDE:/# ubus call test_ubus helloworld {"id":1,"msg":"hi","array":["a","b"]}{"id": 1,"msg": "hi","shuzu": ["a","b"]}文件目…

使用Spring訪問Mongodb的方法大全——Spring Data MongoDB查詢指南

1.概述 Spring Data MongoDB 是Spring框架訪問mongodb的神器&#xff0c;借助它可以非常方便的讀寫mongo庫。本文介紹使用Spring Data MongoDB來訪問mongodb數據庫的幾種方法&#xff1a; 使用Query和Criteria類JPA自動生成的查詢方法使用Query 注解基于JSON查詢在開始前&#…