1. 程式人生 > >第七週-專案1-時間類

第七週-專案1-時間類

/*        
* 程式的版權和版本宣告部分        
* Copyright (c)2013, 煙臺大學計算機學院學生        
* All rightsreserved.        
* 檔名稱: object.cpp        
* 作者:楊紹寧       
* 完成日期: 2013年  4  月 16日        
* 版本號: v1.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;
};
bool Time::is_24=true;
bool Time::from0=false;
Time::Time(int m,int n,int z):hour(m),minute(n),sec(z){}
void Time::show_time()//根據is_24和from0,輸出適合形式-20:23:5/8:23:5 pm/08:23:05 pm
{
	int h;
	if(is_24)
		h=hour;
	else
		h=hour%12;
	if(h<10&&from0)
		cout<<'0';  
		cout<<h<<':';  
	if(minute<10&&from0)
		cout<<'0';  
		cout<<minute<<':';  
	if(sec<10&&from0)
		cout<<'0';  
		cout<<sec;  
	if(!is_24)
	{
		if(hour>12)
			cout<<"pm";
		else
			cout<<"am";
	}
	cout<<endl;
}
void Time::add_seconds(int n)//增加n秒鐘
{
	sec+=n;
	if(sec>59)
	{
		add_minutes(sec/60);      
		sec%=60;

	}
}
void Time::add_minutes(int n)
{
	minute+=n;
	if(minute>59)
	{
		 add_hours(minute/60);    
		 minute%=60;   
	}
}
void Time::add_hours(int n)//增加n小時
{
	hour+=n;
	if(hour>23)
	{
		hour%=24;
	}
}
void Time::change24()
{
	is_24=!is_24;
}
void Time::changefrom0()
{
	from0=!from0;
}
//下面寫出靜態成員的初始化及各成員函式的定義……
int main( ) //執行結果如圖所示
{ 
	int n=10;
	Time t1(23,14,25),t2(8,45,6); 
	cout<<"24時制,不前導0:"<<endl;
	cout<<"t1是:";
	t1.show_time();  
	cout<<"t2是:";
	t2.show_time();
	cout<<"10小時後,切換是否前導0"<<endl;
	t1.add_hours(n);
	t2.add_hours(n);
	Time::changefrom0();
	cout<<"t1是:";
	t1.show_time();
	cout<<"t2是:";
	t2.show_time();
	cout<<"換一種制度:"<<endl;
	Time::change24();
	cout<<"t1是:";
	t1.show_time();
	cout<<"t2是:";
	t2.show_time();

}


結果:

感受:布林型別,靜態變數!

相關推薦

-專案1-時間

/* * 程式的版權和版本宣告部分 * Copyright (c)2013, 煙臺大學計算機學院學生 * All rightsreserved. * 檔名稱: object.cpp * 作者:楊

專案1-點-成員函式

問題及程式碼: /* *Copyright (c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:zwj.cpp *作 者:張偉晶 *完成日期:2

專案1-點-一般函式

問題及程式碼: /* *Copyright (c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:zwj.cpp *作 者:張偉晶 *完成日期:2

專案3 時間的練習(1

/* *Copyright(c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:test2.cpp *作 者:劉金石 *完成日期:201

專案時間1

問題及程式碼: /* *Copyright(c)2016,煙臺大學計算機與控制工程學院 *All right reserved. *檔名稱:main.cpp *作 者:郝昱猛 *完成日期:2016年4月5日 *版 本 號:v1.0 * *問題描述:在原

專案3-時間(2)修改

修改原因:在上一篇博文中第五週專案3-時間類(2)中提交的程式碼存在一些問題:  (1) 老師給出的程式碼中,輸入60或24也算作合法時間,但是在現實生活中並不存在這樣的時間,所以要把程式碼改一下; (2)當輸入的要增加的秒,分,小時數加上原本的時,分,秒數大於60或者24

專案3-時間(2)

問題及程式碼: /* *Copyright (c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:zwj.cpp *作 者:張偉晶 *完成日期:2

專案時間(2)

問題及程式碼: /* *Copyright(c)2016,煙臺大學計算機與控制工程學院 *All right reserved. *檔名稱:main.cpp *作 者:郝昱猛 *完成日期:2016年4月5日 *版 本 號:v1.0 * *問題描述:在原

--專案1建立環形佇列演算法庫

* * Copyright (c++) 2015 煙臺大學計算機學院 * All right reserved. * 檔名稱:huan.cpp * 作 者: 商文軻 *

專案3-時間(2)

/* *Copyright(c)2014,煙臺大學計算機與控制工程學院 *Allrights reserved. *檔名稱:test.cpp *作者:肖雪 *完成日期:2016年4月12日 *版本號:v1.0 * *問題描述: (2)

專案3-時間

/*2015.煙臺大學計算機與控制工程學院 *ALL rightreserved. *檔名稱:test.cpp *作者:陳文浩 *完成日期:2016年4月6日。 */ /*問題及程式碼: 閱讀、執行程式後,按要求擴充類的功能 [cp

專案1-求並聯電阻

#include <iostream> using namespace std; int main() { double R1,R2,R; cout<<"請輸入兩個電阻阻值R1,R2 :"<<endl;

--專案1-靜態成員應用

/* * Copyright (c) 2011, 煙臺大學計算機學院 * All rights reserved. * 作 者:王靜 * 完成日期:2013 年 4 月 16 日 * 版 本 號:v1.0 * 輸入描述: * 問題描述: 設計含有靜

專案3 時間的練習(2)

/* *Copyright(c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:5.4-3.2.cpp *作 者:劉金石 *完成日期:2016年3月29日 *版本 號:v1.0 *問題描述:時間類的練習,增加三個成

專案時間2

/* *copyright(c)2016,煙臺大學計算機與控制工程學院 *All rights reserved. *檔名稱:text.cpp *作者:閆舒 *完成日期:2016年5月31日 *版本號:Code::Blocks 12.11

15專案三——分數中的運算子過載(1

/*  * Copyright (c) 2014, 煙臺大學計算機學院  * All rights reserved.  * 檔名稱:test.cpp  * 作    者:李曉凱  * 完成日期:2015年 4 月 29 日  * 版 本 號:v1.0  *  * 問題描

專案三——分數中的運算子過載(1

/* *Copyright (c) 2014,煙臺大學計算機學院 *All rights reserved. *檔名稱: test.cpp *作 者:陳丹 *完成日期:2015年5月5日 *版本號:v1.0 * *問題描述:實現分數類中的運

十三專案1最小生成樹的普里姆演算法

/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年11月27日 * 版本號:VC6.0 * 問題描述:最小生成樹的普里姆演算法 * 輸入描述:無 * 程式輸出:

十三專案1最小生成樹的克魯斯卡爾演算法

/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年11月30日 * 版本號:VC6.0 * 問題描述:最小生成樹的克魯斯卡爾演算法 * 輸入描述:無 * 程式輸

專案1】二叉樹演算法驗證(一)

/* Copyright (c)2017,煙臺大學計算機與控制工程學院 All rights reserved. 檔名稱:33.cpp 作 者:尚文哲 完成日期:2017年11月9日 問題描述: 執行並重複測試教學內容中涉及的演算法。改