📚 知識家圖書館 奇摩知識+ 紀念館

用 C語言 寫 簡易的 計時程式 (碼錶)

發問者 匿名 ・2005 年 12 月 6 日 ・程式設計

老師說要表現的方式是用像計算機、電子錶顯示的數字一樣, 是直線拼成的那種數字, 可能是按任意鍵,便開始計時,按任意鍵又停止, 一點頭緒也沒有,可以麻煩大大賜教一下, 供我參考,或指點一下,讓我知道個方向,3Q3Q >"<

1 則回答

最佳解答
那就先分成三個部份來解這個問題 : 1. 開始計時與停止計時 2. 將計數的值轉換成電子錶顯示的代號 3. 顯示電子錶上數字的代號 void NumberSwitch(unsigned long a); void DisplayNum(int a , int position); int StartFlag = 0 , StopFlag = 0 , i = 0 ; unsigned long count =0 ; main(){ scanf("Please press any key to start counting \n ", &StartFlag); // 從鍵盤敲一個Key開始計時 . while(StopFlag == 0 ) // 當StopFlag = 0 時 , 一直計數並顯示 { count++; NumberSwitch(count); // Get any key , StopFlag = 1 ; // StopFlag = 1 時此while loop 即會停止 } } void NumberSwitch(unsigned long a) { unsigned long S = 0 , M = 0 , H = 0 ; S = a%60 ; // 秒 M = a/60%60 ; // 分 H = (a/3600)%60 ; // 時 DisplayNum( (S%10) , 1 ); // 1 顯示秒數 DisplayNum( ((S/10)%10) , 2 ); // 2 顯示秒數 DisplayNum( (M%10) , 3 ); // 3 顯示分數 DisplayNum( ((M/10)%10) , 4 ); // 4 顯示分數 DisplayNum( (H%10) , 5 ); // 5 顯示小時 DisplayNum( ((H/10)%10) , 6 ); // 6 顯示小時 } void DisplayNum(int a , int position) { switch(a) { case 0 : // 用ascii code 畫出 0 , 並依照position的位置擺放 break ; case 1 : // 用ascii code 畫出 1 break ; ..... case 9 : // 用ascii code 畫出 9 break ; default : break ; } } 以上是個人想法 , 僅供參考 , 雖然還有一些地方沒寫 , 但是基本架構都有了 , 剩下的自己找書填進去吧 !
~ 別做白日夢 ~(Lv.1) 2005 年 12 月 9 日

電腦與網際網路的其他問題