演算法提高 c++_ch04_02_修正版
演算法提高 c++ch04_02修正版
時間限制:1.0s 記憶體限制:256.0MB
提交此題
【題目描述】
實現一個時間類Time。將小時,分鐘和秒儲存為int型成員變數。要求該類中包含一個建構函式,訪問用的函式,一個推進當前時間的函式adv(),一個重新設定當前時間(即將當前時間設為00:00:00)的函式reset()和輸出結果函式print()。注意時間按數字式電子表格式顯示,即小時、分、秒分別用兩位表示,如果其中之一小於10,則前方補0,如22:01:00(中間不含空格),另外按該格式依次輸出時、分、秒後,以endl結尾。當輸入時間超出合法範圍(提示:注意上下界)時,請自動按照24小時制進行轉換,請務必注意時分秒為負值時的處理,如輸入25:00:61,則輸出應為01:01:01,輸入-1:-1:-1,應該輸出22:58:59。
第一步:依據題意定義Time類
class Time
{
// 請補充
};
第二步:利用如下測試程式對所編寫的Time類進行測試。
int main()
{
// 當前時間
int hour, minute, second;
// 時間增量
int incr_hr, incr_min, incr_sec;
cin >> hour >> minute >> second >> incr_hr >> incr_min >> incr_sec;
Time t( hour, minute, second );
t.print();
t.adv( incr_hr, incr_min, incr_sec );
t.print();
t.reset();
t.print();
return 0;
}
輸入格式
輸入一行,6個int型別數字,以空格間隔。
輸出格式
輸出三行時間,時間格式為24小時制,xx:xx:xx,英文標點,不足兩位十位數補0。
第一行為初始時間,第二行為adv()後的時間,第三行為reset()後的時間
示例1輸入
0 0 0 0 0 -1
示例1輸出
00:00:00
23:59:59
00:00:00
示例3:
示例2輸入
25 63 61 0 0 1
示例2輸出
02:04:01
02:04:02
00:00:00
示例3輸入
-50 -24 0 50 45 90
示例3輸出
21:36:00
00:22:30
00:00:00
程式碼已經屬於c++的基礎應用範疇了,所以需要懂class內如何建公共變數以及建類
#include<iostream>
#include<cstdio>
using namespace std;
class Time{
public:
int h,m,s;
Time(int hour,int minute,int second)
{
h=hour;
m=minute;
s=second;
}
void adv(int hr,int min,int sec)
{
int temp;
s+=sec;
if(s>=0&&s<60)
{
temp=0;
}
else
{
s>=60?temp=1:temp=-1;
s>=60?s=s-60:s+=60;
}
m+=(min+temp);
if(m>=0&&m<60)
{
temp=0;
}
else
{
m>=60?temp=1:temp=-1;
m>=60?m-=60:m+=60;
}
h+=(hr+temp);
if(h<0)
h+=24;
else
h-=24;
if(h>=0&&h<=23&&m>=0&&m<=59&&s>=0&&s<=59)
return;
else
adv(0,0,0);
}
void print()
{
adv(0,0,0);
if(h<10)
printf("0%d:",h);
else
printf("%d:",h);
if(m<10)
printf("0%d:",m);
else
printf("%d:",m);
if(s<10)
printf("0%d\n",s);
else
printf("%d\n",s);
}
void reset()
{
s=m=h=0;
}
};
int main()
{
int hour,minute,second;
int incr_hr,incr_min,incr_sec;
cin>>hour>>minute>>second>>incr_hr>>incr_min>>incr_sec;
Time t(hour,minute,second);
t.print();
t.adv(incr_hr,incr_min,incr_sec);
t.print();
t.reset();
t.print();
return 0;
}
相關文章
- 演算法提高 拿糖果演算法
- 演算法提高 超級瑪麗演算法
- php無限遍歷目錄-修正版PHP
- Unpacking Script-->ExECryptor1.53(修正版)
- 【修正版】狼叔的2017年總結:
- 藍橋杯演算法提高——字串匹配(Java)演算法字串匹配Java
- 藍橋杯 演算法提高 字串壓縮演算法字串
- 演算法提高 聰明的美食家演算法
- [外掛擴充套件]友情連結外掛修正版套件
- [藍橋杯][演算法提高VIP]尤拉函式演算法函式
- [藍橋杯][演算法提高VIP]超級瑪麗演算法
- [藍橋杯][演算法提高VIP]大數加法演算法
- 利用AdaBoost元演算法提高分類效能演算法
- [藍橋杯][演算法提高VIP]奪寶奇兵 dp演算法
- 演算法提高 我們的征途是星辰大海演算法
- 試題 演算法提高 質數2(C語言)演算法C語言
- 演算法提高 11-2刪除重複元素演算法
- 試題集—— 演算法提高 學霸的迷宮演算法
- 藍橋杯 -- 演算法提高 身份證號碼升級演算法
- [藍橋杯][演算法提高VIP]分蘋果 線段樹演算法蘋果
- 藍橋杯 演算法提高 拿糖果(完全揹包dp)演算法
- 演算法提高 12-1三角形演算法
- Java實現 藍橋杯 演算法提高 八數碼(BFS)Java演算法
- 死磕一週演算法,我讓服務效能提高50%演算法
- 演算法提高 數的劃分 動態規劃 無序演算法動態規劃
- 演算法提高 ADV-171 身份證號碼升級演算法
- 《前端演算法系列》如何讓前端程式碼速度提高60倍前端演算法
- 試題 演算法提高 小寫轉換為大寫 C++演算法C++
- 題目 1501: [藍橋杯][演算法提高VIP]分蘋果演算法蘋果
- CSP-S提高組資料結構演算法模板大合集資料結構演算法
- 分享紅旗出版社《家庭藏書集錦》bug修正版:內嵌字型版
- [藍橋杯][演算法提高VIP]最大乘積 貪心 雙指標演算法指標
- [Java] 藍橋杯ADV-203 演算法提高 8皇后·改Java演算法
- 藍橋杯 演算法提高 P0102(Java解題)演算法Java
- 第九篇:使用 AdaBoost 元演算法提高分類器效能演算法
- 藍橋杯_演算法提高_身份證升級(簡單字元處理)演算法字元
- [Java] 藍橋杯ADV-213 演算法提高 3-2求存款Java演算法
- 2016藍橋杯演算法提高——身份證號碼升級演算法