Powered By Blogger

關於我自己

我的相片
網站經營斷斷續續,現在以分享程式練習為主。 因為工作需要,不時會有練習程式的需要。 所以將自己練習的過程分享給大家。 如果有幫助到各位,那就太好了! 如果針對本人或網站內容有任何問題, 歡迎與我聯絡。

2015年4月17日 星期五

【C / C++ 語言】模擬七段顯示器做時間增加與減少

居裡貓碰到了一個有趣的題目。
題目大致上的內容是要用七段顯示器做時間增加及減少。
那這裡無法使用原題目所需的環境跟設備,所以就用別的方法囉。請看~!!
題目大致上為:
題目一:
初始時間 00:00 → 00:01→…→10:00結束時間
題目二:
初始時間 10:00 → 09:59→…→00:00結束時間

以上分別是時間的增加及減少,
那原題目是需要使用到一些特別的設備及編譯環境,
但居裡貓手上沒也因此也無法在那上面實做,就用 VS2010 C++ 來做給大家參考看看囉。

那就來看看居裡貓的程式碼吧~!

 // 123.cpp : 定義主控台應用程式的進入點。
//

#include "stdafx.h"
#include "iostream"
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Hello World!!" << endl;

     //時間增加
    int s0=0,s1=0,s2=0,s3=0; //模擬四個七段顯示器
    cout << s0 << s1 << ":" << s2 << s3 << endl; //顯示初始時間
    while(s0<1) //時間開始增加迴圈
    {//分鐘十位數
        while(s1<10)
        {//分鐘個位數
            while(s2<6)
            {//秒鐘十位數
                for(s3=0;s3<10;)
                {//秒鐘個位數
                    cout << s0 << s1 << ":" << s2 << s3 << endl;
                    s3=s3+1;
                }
                s3=0;
                s2=s2+1;
            }
            s2=0;
            s1=s1+1;
        }
        s1=0;
        s0=s0+1;
        cout << s0 << s1 << ":" << s2 << s3 << endl;
    }
//------------------------------分割線------------------------------------------------
    //時間減少
    int s0=1,s1=0,s2=0,s3=0; //模擬四個七段顯示器
    cout << s0 << s1 << ":" << s2 << s3 << endl; //顯示初始時間
    for(s0=0;;) //時間開始間少,現已減少時間開始迴圈
    {//分鐘十位數
        for(s1=9;;)
        {//分鐘個位數
            for(s2=5;;)
            {//秒鐘十位數
                for(s3=9;;)
                {//秒鐘個位數   
                    cout << s0 << s1 << ":" << s2 << s3 << endl;
                    s3=s3-1;
                    if(s3==0)
                    {
                        cout << s0 << s1 << ":" << s2 << s3 << endl;
                        break;
                    }
                }
                s2=s2-1;
                if(s2<0)
                {
                    break;
                }
            }
            s1=s1-1;
            if(s1<0)
            {
                break;
            }
        }
        s0=s0-1;
        if(s0<0)
        {
            break;
        }

    }
    system("pause");
    //return 0;
}

來看看結果的內容囉~

時間增加的結果:
  
紅框處是比較容易出錯或被忽略的地方(指在原題目的環境下)

時間減少的結果:
紅框處是比較容易出錯或被忽略的地方(指在原題目的環境下)

以上的內容希望大家覺得還可以~

沒有留言:

張貼留言