回分類題庫
d279: 104OOP Lab Exercise:Operator Overloading Practice
出處:

Difficulity : N/A
Accepted : 55 Times | Submit :224 Times | Clicks : 734
Accepted : 49 Users | Submit : 51 Users | Accepted rate : 96%
Time Limit :10000 ms | Memory Limit : 64000 KBytes
題目加入時間 : 2015-11-27 16:32

Content :

實作出Box類別,並overload:+, *, -(negative), ==, !=, >, <, <<等運算子。

Box類別有兩個私有成員: id和weight,id的型態為int;weight的型態為double。 

Input :

第1行為Box物件個數n (n>0)
第2~ n+1行為Box物件,格式為id weight,例如:1 20.5,id範圍從1~n且唯一(ID不重複),Box物件輸入時會依照id順序從小到大輸入。
第n+2行開始為指令。 


指令說明:


-1: 結束程式 


1: +,格式: 1 id1 id2
將兩個Box的weight相加,回傳相加後的weight值


2: + (Scalar),格式: 2 id value
將Box的weight加上給定的數值(double),回傳相加後的weight值


3: *,格式: 3 id1 id2
將兩個Box的weight相乘,回傳相乘後的weight值


4: * (Scalar),格式: 4 id value
將Box的weight乘以給定的數值(double),回傳相乘後的weight值


5: - (negative),格式: 5 id
將Box的weight乘以-1,回傳相乘後的weight值


6: ==,格式: 6 id1 id2
比較兩個Box的weight值是否相等
是,回傳1 (int)
否,回傳0 (int)


7: !=,格式: 7 id1 id2
比較兩個Box的weight值是否不相等
是,回傳1 (int)
否,回傳0 (int)


8: <,格式: 8 id1 id2
比較左邊Box的weight值是否小於右邊Box的weight值
是,回傳1 (int)
否,回傳0 (int)


9: >,格式: 9 id1 id2
比較左邊Box的weight值是否大於右邊Box的weight值
是,回傳1 (int)
否,回傳0 (int)


<< (此指令沒有代號)
輸出格式:id: id, weight: weight
例:id: 2, weight: 30

 

Output :

接收指令後,印出參與運算的Box物件,並印出Result: 回傳的值。
例:
現有三個Box物件如下
1 21.5
2 5.3
3 100
 
(一)
Input:
1 1 2
Output: 
id: 1, weight: 21.5
id: 2, weight: 5.3
Result: 26.8
 
(二) 
Input:
4 3 20
Output: 
id: 3, weight: 100
Result: 2000


Sample Input :

5
1 20.5
2 15.3
3 100
4 7.33
5 55.005
1 3 4
2 2 200
7 2 3
-1

Sample Output :

id: 3, weight: 100
id: 4, weight: 7.33
Result: 107.33
id: 2, weight: 15.3
Result: 215.3
id: 2, weight: 15.3
id: 3, weight: 100
Result: 1

Hint :


  

Author :

(管理員:oopTA)

  Solve it!   Status Forum (0)

C++
C
JAVA
69486. oop103703043 (222 ms , 2052KB)
69799. oop103703034 (254 ms , 1028KB)
69598. oop103703003 (256 ms , 2036KB)
69557. oop103703026 (268 ms , 2038KB)
69522. oop103703039 (268 ms , 1264KB)
沒有解題記錄 沒有解題記錄

執行時間會受很多因素影響因此僅供參考,主機等級請看這裡