实例8.1
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#include<iostream> inline double square(double x) { return x * x; } int main() { using namespace std; double a, b; double c = 13.0; a = square(5.0); b = square(4.5 + 7.5); cout << "a = " << a << ",b = " << b << "n"; cout << "c = " << c; cout << ",C squared = " << square(c++) << "n"; cout << "Now c = " << c << "n"; system("pause"); return 0; }
实例8.2
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#include<iostream> int main() { using namespace std; int rats = 101; int &rodents = rats; cout << "rats = " << rats; cout << ",rodents = " << rodents << endl; rodents++; cout << "rats = " << rats; cout << ",rodents = " << rodents << endl; cout << "rats address = " << &rats; cout << ",rodents address = " << &rodents << endl; system("pause"); return 0; }
实例8.3
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#include<iostream> int main() { using namespace std; int rats = 101; int &rodents = rats; cout << "rats = " << rats; cout << ",rodents = " << rodents << endl; cout << "rat address = " << &rats; cout << ",rodents address = " << &rodents << endl; int bunnies = 50; rodents = bunnies; cout << "bunnies = " << bunnies; cout << ",rats = " << rats; cout << ",rodents = " << rodents << endl; cout << "bunnies address = " << &bunnies; cout << ",rodents address = " << &rodents << endl; system("pause"); return 0; }
实例8.4
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47#include<iostream> void swapr(int &a, int &b); void swapp(int *p, int *q); void swapv(int a, int b); int main() { using namespace std; int wallet1 = 300; int wallet2 = 350; cout << "wallet1 = $" << wallet1; cout << " wallet2 = $" << wallet2 << endl; cout << "Using reference to swap contents:n"; swapr(wallet1, wallet2); cout << "wallet1 = $" << wallet1; cout << "wallet2 = $" << wallet2 << endl; cout << "Using pointers to swap contents again:n"; swapp(&wallet1, &wallet2); cout << "wallet1 = $" << wallet1; cout << "wallet2 = $" << wallet2 << endl; cout << "Trying to use passing by value:n"; swapv(wallet1, wallet2); cout << "wallet1 = &" << wallet1; cout << " wallet2 = $" << wallet2 << endl; system("pause"); return 0; } void swapr(int &a, int &b) { int temp; temp = a; a = b; b = temp; } void swapp(int *p, int *q) { int temp; temp = *p; *p = *q; *q = temp; } void swapv(int a, int b) { int temp; temp = a; a = b; b = temp; }
实例8.5
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24#include<iostream> double cube(double a); double refcube(double &ra); int main() { using namespace std; double x = 3.0; cout << cube(x); cout << " = cube of " << x << endl; cout << refcube(x); cout << "= cube of " << x << endl; system("pause"); return 0; } double cube(double a) { a *= a * a; return a; } double refcube(double &ra) { ra *= ra * ra; return ra; }
实例8.6
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64#include<iostream> #include<string> struct free_throws { std::string name; int made; int attempts; float percent; }; void display(const free_throws &ft); void set_pc(free_throws &ft); free_throws &accumulate(free_throws &target, const free_throws &source); int main() { free_throws one = { "Ifelsa Branch",13,14 }; free_throws two = { "Andor Knott",10,16 }; free_throws three = { "Minnie Max",7,9 }; free_throws four = { "Whily Looper",5,9 }; free_throws five = { "Long Long",6,14 }; free_throws team = { "Throwgoods",0,0 }; free_throws dup; set_pc(one); display(one); accumulate(team, one); display(team); display(accumulate(team, two)); accumulate(accumulate(team, three), four); display(team); dup = accumulate(team, five); std::cout << "Displaying team:n"; display(team); std::cout << "Displaying dup after assignment:n"; display(dup); set_pc(four); accumulate(dup, five) = four; std::cout << "Displaying dup after ill-advised assignment:n"; display(dup); system("pause"); return 0; } void display(const free_throws &ft) { using std::cout; cout << "Name: " << ft.name << 'n'; cout << " Made: " << ft.made << 't'; cout << "Attempts: " << ft.attempts << 't'; cout << "Percent:" << ft.percent << 'n'; } void set_pc(free_throws &ft) { if (ft.attempts != 0) ft.percent = 100.0f * float(ft.made) / float(ft.attempts); else ft.percent = 0; } free_throws &accumulate(free_throws &target, const free_throws &source) { target.attempts += source.attempts; target.made += source.made; set_pc(target); return target; }
实例8.7
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46#include<iostream> #include<string> using namespace std; string version1(const string &s1, const string &s2); const string &version2(string &s1, const string &s2); const string &version3(string &s1, const string &s2); int main() { string input; string copy; string result; cout << "Enter a string:"; getline(cin, input); copy = input; cout << "Your string as entered:" << input << endl; result = version1(input, "***"); cout << "Your string enhanced:" << result << endl; cout << "Your original string:" << input << endl; result = version2(input, "###"); cout << "Your string enhanced:" << result << endl; cout << "Your original string:" << input << endl; cout << "Resetting original string.n"; input = copy; result = version3(input, "@@@"); cout << "Your string enhanced:" << result << endl; cout << "Your original string:" << input << endl; system("pause"); return 0; } string version1(const string &s1, const string &s2) { string temp; temp = s2 + s1 + s2; return temp; } const string &version2(string &s1, const string &s2) { s1 = s2 + s1 + s2; return s1; } const string &version3(string &s1, const string &s2) { string temp; temp = s2 + s1 + s2; return temp; }
实例8.8
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55#include<iostream> #include<fstream> #include<cstdlib> using namespace std; void file_it(ostream &os, double fo, const double fe[], int n); const int LIMIT = 5; int main() { ofstream fout; const char *fn = "ep-data.txt"; fout.open(fn); if (!fout.is_open()) { cout << "Can't open " << fn << endl; exit(EXIT_FAILURE); } double objective; cout << "Enter the focal lengh of your " "telescope objectives in mm:"; cin >> objective; double eps[LIMIT]; cout << "Enter the focal lengths,in mm,of " << LIMIT << " eyepieces:n"; for (int i = 0; i < LIMIT; i++) { cout << "Eyepiece #" << i + 1 << ":"; cin >> eps[i]; } file_it(fout, objective, eps, LIMIT); file_it(cout, objective, eps, LIMIT); cout << "Donen"; system("pause"); return 0; } void file_it(ostream &os, double fo, const double fe[], int n) { ios_base::fmtflags initial; initial = os.setf(ios_base::fixed); os.precision(0); os << "Focal length of objective:" << fo << " mmn"; os.setf(ios::showpoint); os.precision(1); os.width(12); os << "f.1. eyepiece"; os.width(15); os << "magnification" << endl; for (int i = 0; i < n; i++) { os.width(12); os << fe[i]; os.width(15); os << int(fo / fe[i] + 0.5) << endl; } os.setf(initial); }
实例8.9
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30#include<iostream> const int ArSize = 80; char *left(const char *str, int n = 1); int main() { using namespace std; char sample[ArSize]; cout << "Enter a string:n"; cin.get(sample, ArSize); char *ps = left(sample, 4); cout << ps << endl; delete[] ps; ps = left(sample); cout << ps << endl; delete[] ps; system("pause"); return 0; } char *left(const char *str, int n) { if (n < 0) n = 0; char *p = new char[n + 1]; int i; for (i = 0; i < n&&str[i]; i++) p[i] = str[i]; while (i <= n) p[i++] = ''; return p; }
实例8.10
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50#include<iostream> unsigned long left(unsigned long num, unsigned ct); char * left(const char *str, int n = 1); int main() { using namespace std; char *trip = (char *)"Hawaii!!" ; unsigned long n = 12345678; int i; char *temp; for (i = 1; i < 10; i++) { cout << left(n, i) << endl; temp = left(trip, i); cout << temp << endl; delete[] temp; } system("pause"); return 0; } unsigned long left(unsigned long num, unsigned ct) { unsigned digits = 1; unsigned long n = num; if (ct == 0 || num == 0) return 0; while (n /= 10) digits++; if (digits > ct) { ct = digits - ct; while (ct--) num /= 10; return num; } else return num; } char *left(const char *str, int n) { if (n < 0) n = 0; char *p = new char[n + 1]; int i; for (i = 0; i < n&&str[i]; i++) p[i] = str[i]; while (i <= n) p[i++] = ''; return p; }
实例8.11
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30#include<iostream> template<typename T> void Swap(T &a, T &b); int main() { using namespace std; int i = 10; int j = 20; cout << "i,j = " << i << "," << j << ".n"; cout << "Using complier-generated int swapper:n"; Swap(i, j); cout << "Now i,j = " << i << "," << j << ".n"; double x = 24.5; double y = 81.7; cout << "x,y = " << x << "," << y << ".n"; cout << "Using complier-generated double swapper:n"; Swap(x,y); cout << "Now x,y = " << x << "," << y << ".n"; system("pause"); return 0; } template <typename T> void Swap(T &a, T &b) { T temp; temp = a; a = b; b = temp; }
实例8.12
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55#include<iostream> template <typename T> void Swap(T &a, T &b); template<typename T> void Swap(T *a, T *b, int n); void Show(int a[]); const int Lim = 8; int main() { using namespace std; int i = 10, j = 20; cout << "i,j = " << i << "," << j << ".n"; cout << "Using complier-generated int swapper:n"; Swap(i, j); cout << "Now i,j = " << i << "," << j << ".n"; int d1[Lim] = { 0,7,0,4,1,7,7,6 }; int d2[Lim] = { 0,7,2,0,1,9,6,9 }; cout << "Original arrays:n"; Show(d1); Show(d2); Swap(d1, d2, Lim); cout << "Swapped arrays:n"; Show(d1); Show(d2); system("pause"); return 0; } template<typename T> void Swap(T &a, T &b) { T temp; temp = a; a = b; b = temp; } template<typename T> void Swap(T a[], T b[], int n) { T temp; for (int i = 0; i < n; i++) { temp = a[i]; a[i] = b[i]; b[i] = temp; } } void Show(int a[]) { using namespace std; cout << a[0] << a[1] << "/"; cout << a[2] << a[3] << "/"; for (int i = 4; i < Lim; i++) cout << a[i]; cout << endl; }
实例8.13
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58#include<iostream> template<typename T> void Swap(T &a, T &b); struct job { char name[40]; double salary; int floor; }; template <> void Swap<job>(job &j1, job &j2); void Show(job &j); int main() { using namespace std; cout.precision(2); cout.setf(ios::fixed, ios::floatfield); int i = 10, j = 20; cout << "i,j = " << i << "," << j << ".n"; cout << "Using complier-generated int swapper:n"; Swap(i, j); cout << "Now i,j = " << i << "," << j << ".n"; job sue = { "Susan Yaffee",73000.60,7 }; job sidney = { "Sidney Taffee",78060.72,9 }; cout << "Before job swapping:n"; Show(sue); Show(sidney); Swap(sue, sidney); cout << "After job swapping:n"; Show(sue); Show(sidney); system("pause"); return 0; } template<typename T> void Swap(T &a, T &b) { T temp; temp = a; a = b; b = temp; } template<> void Swap<job>(job &j1, job &j2) { double t1; int t2; t1 = j1.salary; j1.salary = j2.salary; j2.salary = t1; t2 = j1.floor; j1.floor = j2.floor; j2.floor = t2; } void Show(job &j) { using namespace std; cout << j.name << ":$" << j.salary << " on floor " << j.floor << endl; }
实例8.14
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48#include<iostream> template<typename T> void ShowArray(T arr[], int n); template<typename T> void ShowArray(T *arr[], int n); struct debts { char name[50]; double amount; }; int main() { using namespace std; int things[6] = { 13,31,103,301,310,130 }; struct debts mr_E[3] = { {"Ima Wolfe",2400.0}, {"Ura Foxe",1300.0}, {"Iby Stout",1800.0} }; double *pd[3]; for (int i = 0; i < 3; i++) pd[i] = &mr_E[i].amount; cout << "Listing Mr.E's counts of things:n"; ShowArray(things, 6); cout << "Listing Mr.E's debts:n"; ShowArray(pd, 3); system("pause"); return 0; } template<typename T> void ShowArray(T arr[], int n) { using namespace std; cout << "Template An"; for (int i = 0; i < n; i++) cout << arr[i] << ' '; cout << endl; } template<typename T> void ShowArray(T *arr[], int n) { using namespace std; cout << "template Bn"; for (int i = 0; i < n; i++) cout << *arr[i] << ' '; cout << endl; }
实例8.15
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#include<iostream> template<class T> T lesser(T a, T b) { return a < b ? a : b; } int lesser(int a, int b) { a = a < 0 ? -a : a; b = b < 0 ? -b : b; return a < b ? a : b; } int main() { using namespace std; int m = 20; int n = -30; double x = 15.5; double y = 25.9; cout << lesser(m, n) << endl; cout << lesser(x, y) << endl; cout << lesser<>(m, n) << endl; cout << lesser<int>(x, y) << endl; system("pause"); return 0; }
最后
以上就是欣喜微笑最近收集整理的关于C++PrimerPlus(第6版)中文版第八章实例代码的全部内容,更多相关C++PrimerPlus(第6版)中文版第八章实例代码内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复