1. 程式人生 > >C++第3次實驗 類和物件

C++第3次實驗 類和物件

一、問題及程式碼

/*   
* 檔名稱:   靜態成員應用
* 作    者:姜小萌  
* 完成日期:2016年4月8日   
* 版 本 號:vc6.0   
* 對任務及求解方法的描述部分:運用類和物件完成  
* 輸入描述:無  
* 問題描述:  設計含有靜態資料成員和成員函式的Time類。靜態資料成員是類中所有的物件共有的資料,在下面的設計中,時鐘要採用12小時制,還是要使用24小時制,顯示時,不足兩位的數字前是否前導0,都是“影響全域性”的設定,適合作為類中的靜態資料成員。
* 程式輸出:
* 問題分析:運用類和物件以及函式的補充完善程式  
* 演算法設計:略   
*/      
#include <iostream>  
  
using namespace std;  
  
class Time  
{  
public:  
    Time(int=0,int=0,int=0);  
    void show_time( ); //根據is_24和from0,輸出適合形式-20:23:5/8:23:5 pm/08:23:05 pm  
    void add_seconds(int); //增加n秒鐘  
    void add_minutes(int); //增加n分鐘    
    void add_hours(int); //增加n小時    
    static void change24();  //改變靜態成員is_24,在12和24時制之間轉換  
    static void changefrom0();   //改變靜態成員from0,切換是否前導0  
private:  
    static bool is_24; //為true時,24小時制,如20:23:5;為flase,12小時制,顯示為8:23:5 pm   
    static bool from0; //為true時,前導0,8:23:5顯示為08:23:05  
    int hour;  
    int minute;  
    int sec;  
};  
//下面寫出靜態成員的初始化及各成員函式的定義  
Time::Time(int h, int m, int s)  
{  
    hour = h, minute = m, sec = s;  
}  
bool Time::is_24 = true;  
bool Time::from0 = false;  
void Time::show_time( )  
{  
    if (is_24)  
    {  
        if (from0)  
        {  
            cout << (hour < 10 ? "0":"") << hour << ':' 
                << (minute < 10 ? "0":"") << minute << ':' << (sec < 10 ? "0":"") << sec << endl;  
        }      
        else  
        {  
            cout << hour << ':' << minute << ':' << sec << endl;  
        }  
    }  
    else  
    {  
        if (from0)  
        {  
            cout << (hour < 10||(hour - 12 >=0 && hour - 12 < 10) ? "0":"") << (hour > 12 ? hour-12 : hour) << ':' << (minute < 10 ? "0":"") << minute << ':' << (sec < 10 ? "0":"") << sec << ' '  << (hour > 11 ? "pm" : "am") << endl;  
        }  
        else  
        {  
            cout << (hour > 12 ? hour-12 : hour) << ':'<< minute<< ':' << sec << ' ' << (hour > 11 ? "pm" : "am") << endl;  
        }  
    }  
}  
void Time::add_seconds(int s)    
{    
    s = sec + s;    
    sec = s % 60;    
    
    add_minutes(s / 60);    
}    
void Time::add_minutes(int m)    
{    
    m = minute + m;    
    minute = m % 60;    
    
    add_hours(m / 60);    
}    
void Time::add_hours(int h)    
{    
    h = hour + h;    
    hour = h % 24;    
}    
void Time::change24()  
{  
    is_24 = !is_24;  
  
    if (is_24) cout << "已切換為24小時制。" << endl;  
    else cout << "已切換為12小時制。" << endl;  
}  
void Time::changefrom0()  
{  
    from0 = !from0;  
  
    if (from0) cout << "已切換為前導0輸出。" << endl;  
    else cout << "已切換為非前導0輸出。" << endl;  
}  
  
int main( )     
{  
    Time t1(23, 14, 25), t2(8, 45, 6);  
      
    cout << "24時制, 不前導0:" << endl;  
  
    cout << "    t1是:";  
    t1.show_time();  
    cout << "    t2是:";  
    t2.show_time();  
  
    t1.add_hours(10);  
    t2.add_hours(10);  
    Time::changefrom0(); 
    cout << "10小時後, 切換是否前導0:" << endl;  
  
    cout << "    t1是:";  
    t1.show_time();  
    cout << "    t2是:";  
    t2.show_time();  
  
    t1.change24();  
    cout << "換一種制式:" << endl;  
  
    cout << "    t1是:";  
    t1.show_time();  
    cout << "    t2是:";  
    t2.show_time();  
  
    system("pause");  
    return 0;  
}  

二、執行結果


三、心得體會

四、知識點總結


相關推薦

C++3實驗 物件

一、問題及程式碼 /* * 檔名稱: 靜態成員應用 * 作 者:姜小萌 * 完成日期:2016年4月8日 * 版 本 號:vc6.0 * 對任務及求解方法的描述部分:運用類和物件完成 * 輸入描述:無 * 問題描述: 設計含有靜態資

C++三章(物件)下篇 (動態建立與釋放,物件的賦值複製,靜態資料成員,友元)

一,物件的動態建立與釋放 new (程式設計師怎麼會沒有朋友??? 來讓我給你new 一個) 在我學過的c中 我們一般都用 malloc 來動態申請空間。現在我們可以用new 來申請空間 Box *pt; pt = new Box; c++允許在new時進行賦值 Box *

c++3實驗-定期存款

#include <iostream> using namespace std; int main() { int type; double dMoney,dPeriod,dRate,dInterest; cout

C++3上機實驗

一、問題及程式碼: /* * 檔名稱:學生成績類 * 作 者: * 完成日期: 2016 年 3 月 26 日 * 版 本 號:v1.0 * 對任務及求解方法的描述部分: * 輸入描述:略 * 問題描述:要求輸出學生的有關資訊。 *

c++實驗——求1000內所有偶數的

/*   * 檔名稱:1000內偶數和 * 作    者:王義傑 * 完成日期:2017 年 4 月 8 日   * 版 本 號:v6.0   * 對任務及求解方法的描述部分:詳細而準確地程式設計  * 輸入描述:通過易懂的單詞定義輸入的單位 * 問題描述:用迴圈語句 * 程式輸出:1000偶數和

C++高階程式設計 九章: 精通物件

本章節最主要講了在類的構造和析構方面, 記憶體是怎樣分配的, 還有幾個關鍵字 : static, const, virtual, inline, 各種過載等等知識點. 1. 究竟什麼時候需要自己寫建構函式, 賦值函式, 拷貝建構函式? 只要你寫的這個類,

130242014034-林偉領-3實驗

目的 com 選擇 有序集合 .com true tput lis 分解 一、實驗目的 1.理解不同體系結構風格的具體內涵。 2.學習體系結構風格的具體實踐。 二、實驗環境 硬件: (依據具體情況填寫) 軟件:Java或任何一種自己熟悉的語言 三、實驗內容 “上下文關鍵

130242014074 林澤民 3實驗

images uppercase 實踐 [] exce 體系 lower spl loser 一、實驗目的 1.理解不同體系結構風格的具體內涵。 2.學習體系結構風格的具體實踐。 二、實驗環境 硬件: (依據具體情況填寫) 軟件:Java或任何一種自己熟悉的語言 三、實驗內

130242014072 邱慧堅 3實驗

length 情況 以及 context key return 刪除 size 系統 一、實驗目的 1.理解不同體系結構風格的具體內涵。 2.學習體系結構風格的具體實踐。 二、實驗環境 硬件: (依據具體情況填寫) 軟件:Java或任何一種自己熟悉的語言 三、實驗內容

130242014050-池國雄-3實驗

讀取 public 語言 contex src spa word 目的 lec 一、實驗目的 1.理解不同體系結構風格的具體內涵。 2.學習體系結構風格的具體實踐。 二、實驗環境 硬件: (依據具體情況填寫) 軟件:Java或任何一種自己熟悉的語言 三、實驗內容 “上下

130242014045 林承暉 3實驗

alpha 單獨 i+1 == 行集 行數 () tostring 類型 一、實驗目的 1.理解不同體系結構風格的具體內涵。 2.學習體系結構風格的具體實踐。 二、實驗環境 硬件: win10系統 軟件:Js 三、實驗內容 “上下文關鍵字”KWIC(Key Word i

130242014022-藍宏錚-3實驗

字母表 分享 檢索 關鍵字 數據類型 結果 let 試用 () 一、實驗目的 1.理解不同體系結構風格的具體內涵。 2.學習體系結構風格的具體實踐。 二、實驗環境 硬件: (依據具體情況填寫) 軟件:Java或任何一種自己熟悉的語言 三、實驗內容 “上下文關鍵字”KWI

130242014033-林錦鵬-3實驗

方法 簡述 lar 定義 構圖 理解 void ted start 1.理解不同體系結構風格的具體內涵。 2.學習體系結構風格的具體實踐。 二、實驗環境 硬件: (依據具體情況填寫) 軟件:Java或任何一種自己熟悉的語言 三、實驗內容 “上下文關鍵字”KWIC(Key

130242014047-徐曉敏-3實驗

關鍵字 功能 思想 edate tex .text lose .com 分享圖片 一、實驗目的 1.理解不同體系結構風格的具體內涵。 2.學習體系結構風格的具體實踐。 二、實驗環境 硬件: win10 軟件:Java 三、實驗內 “上下文關鍵字”KWIC(Key Word

3作業 棧隊列

操作符 中比 等待時間 設計 作業 後綴 comment 2個 截圖 1.學習總結 到現在為止,已經學習了數據結構緒論、線性表、棧和隊列等知識點。嘗試使用思維導圖將這些碎片化的概念、知識點組織起來。使用Xmind畫出知識點及知識點之間的聯系。步驟如下:1.1 寫出你認為本

c++實驗報告

mes ret 實驗 iterator 第三題 叠代器 sta AC RR #include <iostream> #include <vector> #include <string> using namespace std; //

【練習題】十五章--物件(Think Python)

別名有可能讓程式讀起來有困難,因為在一個位置做出的修改有可能導致另外一個位置發生不可預知的情況。這樣也很難去追蹤指向一個物件的所有變數。所以就可以不用別名,而用複製物件的方法。copy 模組包含了一個名叫 copy 的函式,可以複製任意物件: >>> p1 = Point()

036講:物件:給大家介紹物件

目錄 0. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式! 測試題 0. 物件中的屬性和方法,在程式設計中實際是什麼? 1. 類和物件是什麼關係呢? 2. 如果我們定義了一個貓類,那你能想象出由“貓”類例項化的物件有哪些? 3. 類的定義有些時候或

037講:物件:面向物件程式設計

目錄 0. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式! 測試題 0. 以下程式碼體現了面向物件程式設計的什麼特徵? 1. 當程式設計師不想把同一段程式碼寫幾次,他們發明了函式解決了這種情況。當程式設計師已經有了一個類,而又想建立一個非常相近的新類,他們

039講:物件:拾遺

0. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式! (一)組合 上節課我們學習了繼承和多繼承,但是我們有時候發現,有些情況你用繼承也不合適,用多繼承也不是,例如:現在現在要求定義一個類,叫水池,水池裡要有烏龜和魚。那大家就很苦惱了,用多繼承就顯得很奇葩了,因為如