1 // chapter10_1_account.h
2
3 #ifndef LEARN_CPP_CHAPTER10_1_ACCOUNT_H
4 #define LEARN_CPP_CHAPTER10_1_ACCOUNT_H
5
6 #include <iostream>
7 #include <string>
8
9
10 class Account {
11 private:
12 std::string name_;
13 std::string id_;
14 double deposit_;
15 public:
16 Account();
17 Account(std::string,std::string,double);
18 void show() const;
19 bool in(double);
20 bool out(double);
21 };
22
23
24 #endif //LEARN_CPP_CHAPTER10_1_ACCOUNT_H
25
26 // chapter10_1_account.cpp
27
28 #include "chapter10_1_account.h"
29
30 Account::Account() {
31 name_ = "none";
32 id_ = "none";
33 deposit_ = 0;
34 }
35
36 Account::Account(std::string name, std::string id, double deposit) {
37 name_ = name;
38 id_ = id;
39 deposit_ = deposit;
40 }
41
42 void Account::show() const {
43 using namespace std;
44 cout.precision(16);
45 cout << "account info: " << endl
46 << "\tname: " << name_ << endl
47 << "\tid: " << id_ << endl
48 << "\tdeposit: " << deposit_ << endl;
49 }
50
51 bool Account::in(double n) {
52 if (n <= 0)
53 return false;
54 else
55 deposit_ += n;
56 return true;
57 }
58
59 bool Account::out(double n) {
60 if (deposit_ < n)
61 return false;
62 else
63 deposit_ -= n;
64 return true;
65 }
66
67 // run
68
69 void ch10_1() {
70 Account a;
71 a.show();
72 Account b{"kxgkhy","4523452345",1000.123};
73 b.show();
74 b.in(123.123);
75 b.show();
76 b.out(123.123);
77 b.show();
78 }
 1 // chapter10_2_person.h
2
3 #ifndef LEARN_CPP_CHAPTER10_2_PERSON_H
4 #define LEARN_CPP_CHAPTER10_2_PERSON_H
5
6 #include <iostream>
7 #include <cstring>
8
9 class Person {
10 private:
11 static const int LIMIT = 25;
12 std::string lname_;
13 char fname_[LIMIT];
14 public:
15 Person();
16 Person(const std::string & lname, const char * fname = "Heyyou");
17 void show() const;
18 void formalshow() const;
19 };
20
21 #endif //LEARN_CPP_CHAPTER10_2_PERSON_H
22
23 // chapter10_2_person.cpp
24
25
26 #include "chapter10_2_person.h"
27
28 Person::Person() {
29 lname_ = "";
30 fname_[0] = '\0';
31 }
32
33 Person::Person(const std::string & lname, const char * fname) {
34 lname_ = lname;
35 strcpy(fname_, fname);
36 }
37
38 void Person::show() const {
39 using namespace std;
40 cout << fname_ << " " << lname_ << endl;
41 }
42
43 void Person::formalshow() const {
44 using namespace std;
45 cout << lname_ << ", " << fname_ << endl;
46 }
47
48
49 // run
50
51 void ch10_2() {
52 Person one;
53 Person two("Smythecraft");
54 Person three("DimWiddy", "Sam");
55 one.show();
56 one.formalshow();
57 two.show();
58 two.formalshow();
59 three.show();
60 three.formalshow();
61 }
 1 // chapter10_3_golf.h
2
3 #ifndef LEARN_CPP_CHAPTER10_3_GOLF_H
4 #define LEARN_CPP_CHAPTER10_3_GOLF_H
5
6
7 class Golf {
8 private:
9 static const int LIMIT = 40;
10 char fullname_[LIMIT];
11 int handicap_;
12 public:
13 Golf();
14 Golf(const char * fullname, int handicap = 0);
15 void setGolf();
16 void show() const;
17 };
18
19
20 #endif //LEARN_CPP_CHAPTER10_3_GOLF_H
21
22
23 // chapter10_3_golf.cpp
24
25
26 #include "chapter10_3_golf.h"
27 #include <iostream>
28 #include <cstring>
29
30 Golf::Golf() {
31 fullname_[0] = '\0';
32 handicap_ = 0;
33 }
34
35 Golf::Golf(const char *fullname, int handicap) {
36 strcpy(fullname_, fullname);
37 handicap_ = handicap;
38 }
39
40 void Golf::setGolf() {
41 using namespace std;
42 char fullname[LIMIT];
43 int handicap;
44 cout << "enter fullname: ";
45 cin.getline(fullname, LIMIT);
46 cout << "enter handicap: ";
47 while (!(cin >> handicap)) {
48 cin.clear();
49 while (cin.get() != '\n')
50 continue;
51 cout << "must a number: ";
52 }
53 *this = Golf(fullname, handicap);
54 }
55
56 void Golf::show() const {
57 using namespace std;
58 cout << "fullname: " << fullname_ << endl
59 << "handicap: " << handicap_ << endl;
60 }
61
62
63 // run
64
65
66
67 void ch10_3() {
68 Golf a;
69 a.show();
70 Golf b("kxg");
71 b.show();
72 Golf c("kxgkhy", 123);
73 c.show();
74 std::cout << "reset c: " << std::endl;
75 c.setGolf();
76 c.show();
77 }
  1 // chapter10_4_sales.h
2
3
4 #ifndef LEARN_CPP_CHAPTER10_4_SALES_H
5 #define LEARN_CPP_CHAPTER10_4_SALES_H
6
7 namespace SALES10
8 {
9 class Sales {
10 private:
11 static const int QUARTERS = 4;
12 double sales_[QUARTERS];
13 double average_;
14 double max_;
15 double min_;
16 public:
17 Sales();
18 Sales(const double * ar, int n);
19 void setSales();
20 void show() const;
21 };
22 }
23
24 #endif //LEARN_CPP_CHAPTER10_4_SALES_H
25
26
27 // chapter10_4_sales.cpp
28
29
30 #include "chapter10_4_sales.h"
31 #include <iostream>
32 #include <cfloat>
33
34 SALES10::Sales::Sales() {
35 for (int i = 0; i < QUARTERS; ++ i)
36 sales_[i] = -1;
37 average_ = -1;
38 min_ = -1;
39 max_ = -1;
40 }
41
42 SALES10::Sales::Sales(const double *ar, int n) {
43 double sum = 0, min = DBL_MAX, max = DBL_MIN;
44 for (int i = 0; i < QUARTERS; ++ i) {
45 if (i < n) {
46 sales_[i] = ar[i];
47 if (sales_[i] < min)
48 min = sales_[i];
49 if (sales_[i] > max)
50 max = sales_[i];
51 sum += sales_[i];
52 }
53 else
54 sales_[i] = -1;
55 }
56 average_ = sum / n;
57 min_ = min;
58 max_ = max;
59 }
60
61 void SALES10::Sales::setSales() {
62 using namespace std;
63 double sum = 0, min = DBL_MAX, max = DBL_MIN;
64 int n = 0;
65 cout << "enter sales: " << endl;
66 for (int i = 0; i < QUARTERS; ++ i) {
67 if (!(cin >> sales_[i]))
68 break;
69 cin.get();
70 ++ n;
71 sum += sales_[i];
72 if (sales_[i] > max)
73 max = sales_[i];
74 if (sales_[i] < min)
75 min = sales_[i];
76 }
77 for (int i = n; i < QUARTERS; ++ i)
78 sales_[i] = -1;
79 average_ = sum / n;
80 min_ = min;
81 max_ = max;
82 }
83
84 void SALES10::Sales::show() const {
85 using namespace std;
86 cout << "sales: ";
87 for (int i = 0; i < QUARTERS; ++ i)
88 if (sales_[i])
89 cout << sales_[i] << " ";
90 cout << endl;
91 cout << "average: " << average_ << endl;
92 cout << "max: " << max_ << endl;
93 cout << "min: " << min_ << endl;
94 }
95
96
97 // run
98
99 void ch10_4() {
100 using std::cout;
101 using std::endl;
102 double s[3] = {1.1,2.2,3.3};
103 SALES10::Sales a(s, 3);
104 a.show();
105 SALES10::Sales b;
106 b.show();
107 b.setSales();
108 b.show();
109 }
1 // chapter10_5
2
3 // run
4
5 void ch10_5() {
6 using namespace std;
7 cout << "landexie o.o" << endl;
8 }
 1 // chapter10_6_move.h
2
3 #ifndef LEARN_CPP_CHAPTER10_6_MOVE_H
4 #define LEARN_CPP_CHAPTER10_6_MOVE_H
5
6
7 class Move {
8 private:
9 double x_;
10 double y_;
11 public:
12 Move(double a = 0, double b = 0);
13 void show() const;
14 Move add(const Move & m) const;
15 void reset(double a = 0, double b = 0);
16 };
17
18
19
20 #endif //LEARN_CPP_CHAPTER10_6_MOVE_H
21
22
23 // chapter10_6_move.cpp
24
25 #include "chapter10_6_move.h"
26 #include <iostream>
27
28 Move::Move(double a, double b) {
29 x_ = a;
30 y_ = b;
31 }
32
33 void Move::show() const {
34 using namespace std;
35 cout << "x: " << x_ << endl
36 << "y: " << y_ << endl;
37 }
38
39 Move Move::add(const Move & m) const {
40 return Move(x_ + m.x_, y_ + m.y_);
41 }
42
43 void Move::reset(double a, double b) {
44 x_ = a;
45 y_ = b;
46 }
47
48 // run
49
50 void ch10_6() {
51 using namespace std;
52 Move a;
53 a.show();
54 Move b(1);
55 b.show();
56 Move c(1,2);
57 c.show();
58 cout << "reset c: " << endl;
59 c.reset(3,4);
60 c.show();
61 cout << "a + b: " << endl;
62 a.add(b).show();
63 }
 1 // chapter10_7_plorg.h
2
3 #ifndef LEARN_CPP_CHAPTER10_7_PLORG_H
4 #define LEARN_CPP_CHAPTER10_7_PLORG_H
5
6 class Plorg {
7 private:
8 static const int LIMIT = 20;
9 char name_[20];
10 unsigned CI_;
11 public:
12 Plorg(const char * name = "Plorga", unsigned CI = 50);
13 void resetCI(unsigned CI);
14 void show() const;
15 };
16
17
18
19 #endif //LEARN_CPP_CHAPTER10_7_PLORG_H
20
21 // chapter10_7_plorg.cpp
22
23
24 #include "chapter10_7_plorg.h"
25 #include <cstring>
26 #include <iostream>
27
28 Plorg::Plorg(const char * name, unsigned int CI) {
29 strcpy(name_, name);
30 CI_ = CI;
31 }
32
33 void Plorg::resetCI(unsigned int CI) {
34 CI_ = CI;
35 }
36
37 void Plorg::show() const {
38 using namespace std;
39 cout << "name: " << name_ << endl
40 << "CI: " << CI_ << endl;
41 }
42
43
44 // run
45
46 void ch10_7() {
47 using namespace std;
48 Plorg a;
49 a.show();
50 Plorg b("kxg");
51 b.show();
52 Plorg c("kxhkhy", 99);
53 c.show();
54 cout << "reset c CI: " << endl;
55 c.resetCI(100);
56 c.show();
57 }
 1 // chapter10_8_list.h
2
3 #ifndef LEARN_CPP_CHAPTER10_8_LIST_H
4 #define LEARN_CPP_CHAPTER10_8_LIST_H
5
6
7 class List {
8 private:
9 static const int MAXSIZE = 50;
10 int arr_[MAXSIZE];
11 int length_;
12 public:
13 List();
14 List(const int * arr, int length = 0);
15 bool append(int n);
16 bool isempty();
17 bool isfull();
18 void visit(void (*pf) (int));
19 };
20
21
22 #endif //LEARN_CPP_CHAPTER10_8_LIST_H
23
24 // chapter10_8_list.cpp
25
26 #include "chapter10_8_list.h"
27
28 List::List() {
29 length_ = 0;
30 }
31
32 List::List(const int *arr, int length) {
33 for (int i = 0; i < length; ++ i)
34 arr_[i] = arr[i];
35 length_ = length;
36 }
37
38 bool List::append(int n) {
39 if (isfull())
40 return false;
41 arr_[length_ ++] = n;
42 return true;
43 }
44
45 bool List::isempty() {
46 if (length_ == 0)
47 return true;
48 else
49 return false;
50 }
51
52 bool List::isfull() {
53 if (length_ == MAXSIZE)
54 return true;
55 else
56 return false;
57 }
58
59 void List::visit(void (*pf)(int)) {
60 for (int i = 0; i < length_; ++ i)
61 pf(arr_[i]);
62 }
63
64
65 // run
66
67 void ch10_8_show(int n) {
68 using namespace std;
69 cout << n << endl;
70 }
71
72 void ch10_8() {
73 List a;
74 a.visit(ch10_8_show);
75 int arr[10] = {1,2,3,4,5,6,7,8,9,10};
76 List b(arr, 10);
77 b.visit(ch10_8_show);
78 b.append(100);
79 b.visit(ch10_8_show);
80 }

最新文章

  1. SQLServer解析xml到Oracle
  2. Android应用开发-网络编程(二)(重制版)
  3. iOS开发 GET、POST请求方法(NSURLSession篇)
  4. NeHe OpenGL教程 第十六课:雾
  5. [HDOJ5583]Kingdom of Black and White(暴力)
  6. oracle中drop、delete和truncate的区别
  7. Android获取手机屏幕宽高
  8. windows phone 8.1开发:触控和指针事件1
  9. Scroll Segmented Control(Swift)
  10. Linux中的查找命令find
  11. Async/Await 学习与示例
  12. Java笔记Spring(八)
  13. swagger2的接口文档
  14. oracle 远程导入导出(本地win)
  15. caffe.pb.h丢失问题解决方法
  16. 基于双向LSTM和迁移学习的seq2seq核心实体识别
  17. VC++ 学习笔记2 列表框添加字符串
  18. JavaScript callee caller
  19. Tensorflow踩坑之tf.nn.bidirectional_dynamic_rnn()报错 “ValueError: None values not supported.”
  20. (LeetCode 189)Rotate Array

热门文章

  1. spring知识点(面试题)
  2. vim conf文件配色
  3. MZY项目笔记:session歧路
  4. springboot静态资源路径制定
  5. JavaScript之创建对象的模式
  6. Swift-Button 的 highlighted(高亮)
  7. cmd(命令行 )的命令
  8. android kotlin determine file type from bytes 根据文件内容识别文件类型,类似python的filetype
  9. 羽夏笔记——Win32(非WinAPI)
  10. NOIP模拟13「工业题&#183;卡常题&#183;玄学题」