Carecerp-Google面接試験問題-569212791022080

7824 ワード

2014-05-08 22:09
テーマリンク
原題:
Implement a class to create timer object in OOP
テーマ:OOP思想でタイマー種類を設計します。
解法:私は自分の考えに基づいて、clock関数をツールにして、起動、停止、表示時間の長さ、リセットの四つの方法を提供します。
コード:
 1 // http://www.careercup.com/question?id=5692127791022080

 2 #include <ctime>

 3 #include <iostream>

 4 #include <string>

 5 using namespace std;

 6 

 7 class Timer {

 8 public:

 9     Timer(): begin(0), end(0) {};

10     

11     clock_t ticks() {

12         if (begin == 0) {

13             return end;

14         } else {

15             end = clock();

16             return end - begin;

17         }

18     };

19     

20     double seconds() {

21         return 1.0 * ticks() / CLOCKS_PER_SEC;

22     };

23     

24     void start() {

25         begin = clock();

26     };

27     

28     void stop() {

29         if (begin > 0) {

30             end =  clock();

31             end -= begin;

32             begin = 0;

33         }

34     };

35     

36     void reset() {

37         begin = end = 0;

38     };

39 private:

40     clock_t begin, end;

41 };

42 

43 int main()

44 {

45     Timer timer;

46     string cmd;

47     

48     while (cin >> cmd) {

49         if (cmd == "start") {

50             timer.start();

51         } else if (cmd == "stop") {

52             timer.stop();

53         } else if (cmd == "time") {

54             printf("%.2f seconds.
", timer.seconds()); 55 } else if (cmd == "reset") { 56 timer.reset(); 57 } 58 } 59 60 return 0; 61 }