From 354e9d471ee1543428e008d87a662fc230e10f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=B0=A6?= <13581096+liu-qian-6@user.noreply.gitee.com> Date: Fri, 12 Jul 2024 17:55:55 +0800 Subject: [PATCH 1/4] Chapter9exercises --- .../C++PrimerPlusExercises/Chapter9/9.3.cpp" | 31 +++++++++ .../C++PrimerPlusExercises/Chapter9/9.4/9.4" | Bin 0 -> 17120 bytes .../Chapter9/9.4/main.cpp" | 23 +++++++ .../Chapter9/9.4/sales.cpp" | 60 ++++++++++++++++++ .../Chapter9/9.4/sales.h" | 22 +++++++ 5 files changed, 136 insertions(+) create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.3.cpp" create mode 100755 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/9.4" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/main.cpp" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/sales.cpp" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/sales.h" diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.3.cpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.3.cpp" new file mode 100644 index 0000000..40963ad --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.3.cpp" @@ -0,0 +1,31 @@ +#include +#include +#include + +using namespace std; + +struct chaff { + char dross[20]; + int slag; +}; + +int main() { + + char buffer[sizeof(chaff) * 2]; + chaff* chaffs = new (buffer) chaff[2]; + + + strcpy(chaffs[0].dross, "chaff1"); + chaffs[0].slag = 10; + strcpy(chaffs[1].dross, "chaff2"); + chaffs[1].slag = 15; + + + for (int i = 0; i < 2; i++) { + cout << "chaffs[" << i << "]:"; + cout << " dross: " << chaffs[i].dross; + cout << " slag: " << chaffs[i].slag << endl; + } + + return 0; +} diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/9.4" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/9.4" new file mode 100755 index 0000000000000000000000000000000000000000..7fa2d70aaa53308856d2c00147ae7f4abf7b1493 GIT binary patch literal 17120 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 +#include "sales.h" + +using namespace SALES; + +int main(){ + Sales s1, s2; + + setSales(s1); + + const double salesData[QUARTERS] = {300.0, 500.0, 250.0, 300.0}; + setSales(s2, salesData, QUARTERS); + + std::cout << "Sales for s1:" << std::endl; + showSales(s1); + std::cout << std::endl; + + std::cout << "Sales for s2:" << std::endl; + showSales(s2); + + return 0; +} diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/sales.cpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/sales.cpp" new file mode 100644 index 0000000..0f86724 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/sales.cpp" @@ -0,0 +1,60 @@ +// sales.cpp +#include +#include "sales.h" + +namespace SALES{ + + using std::cin; + using std::cout; + using std::endl; + + void setSales(Sales &s, const double ar[], int n){ + + int a = n < QUARTERS ? n : QUARTERS; + double sum = 0.0; + s.max = s.min = ar[0]; + + for (int i = 0; i < a ; i++){ + s.sales[i] = ar[i]; + sum += ar[i]; + if (ar[i] > s.max) + s.max = ar[i]; + if (ar[i] < s.min) + s.min = ar[i]; + } + + for (int i = a; i < QUARTERS; i++){ + s.sales[i] = 0.0; + } + + s.average = sum / n; + } + + void setSales(Sales &s){ + + double sum = 0.0; + cout << "Please enter sales for 4 quarters:" << endl; + + for (int i = 0; i < QUARTERS; i++){ + cout << "Quarter " << (i + 1) << ": "; + cin >> s.sales[i]; + sum += s.sales[i]; + if (i == 0 || s.sales[i] > s.max) + s.max = s.sales[i]; + if (i == 0 || s.sales[i] < s.min) + s.min = s.sales[i]; + } + s.average = sum / QUARTERS; + } + + void showSales(const Sales &s){ + cout << "Sales: "; + for (int i = 0; i < QUARTERS; i++){ + cout << s.sales[i] << " "; + } + cout << endl; + cout << "Average: " << s.average << endl; + cout << "Max: " << s.max << endl; + cout << "Min: " << s.min << endl; + } +} diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/sales.h" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/sales.h" new file mode 100644 index 0000000..2cdf13d --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter9/9.4/sales.h" @@ -0,0 +1,22 @@ +namespace SALES +{ + const int QUARTERS = 4; + + struct Sales + { + double sales[QUARTERS]; + double average; + double max; + double min; + }; + + // 从数组 ar 中复制最多 4 项到 s 的 sales 成员中,并计算和存储输入项目的平均值、最大值和最小值; + // 如果 sales 中有剩余元素,则将其设置为 0 + void setSales(Sales &s, const double ar[], int n); + + // 交互式地收集 4 个季度的销售数据,存储在 s 的 sales 成员中,并计算和存储其平均值、最大值和最小值 + void setSales(Sales &s); + + // 显示结构 s 中的所有信息 + void showSales(const Sales &s); +} -- Gitee From 55a0194ff4c87295ac602d95dc94378b5da78e11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=B0=A6?= <13581096+liu-qian-6@user.noreply.gitee.com> Date: Sat, 13 Jul 2024 19:33:14 +0800 Subject: [PATCH 2/4] chapter10exercise --- .../Chapter10/10.5/main" | Bin 0 -> 36560 bytes .../Chapter10/10.5/main.cpp" | 43 +++++++++++++++ .../Chapter10/10.5/stack.hpp" | 51 ++++++++++++++++++ .../Chapter10/10.6/Move.hpp" | 46 ++++++++++++++++ .../Chapter10/10.6/main" | Bin 0 -> 34616 bytes .../Chapter10/10.6/main.cpp" | 21 ++++++++ 6 files changed, 161 insertions(+) create mode 100755 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/main" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/main.cpp" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/stack.hpp" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/Move.hpp" create mode 100755 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/main" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/main.cpp" diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/main" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/main" new file mode 100755 index 0000000000000000000000000000000000000000..453aea2dca68c8f74e126c7488a71a96c8042e57 GIT binary patch literal 36560 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 b7|UqzZn`cnw>buqcaAq#7iI`#MAiQULgZqf literal 0 HcmV?d00001 diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/main.cpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/main.cpp" new file mode 100644 index 0000000..4b2db05 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/main.cpp" @@ -0,0 +1,43 @@ +#include +#include +#include "stack.hpp" + +typedef customer Item; + +int main() { + Stack stack; + Item cust; + double totalPayment = 0.0; + char input[35]; + + while (true) { + std::cout << "Enter fullname (or 'q' to quit): "; + std::cin.getline(input, 35); + + if (strcmp(input, "q") == 0) { + break; + } + + strcpy(cust.fullname, input); + + std::cout << "Enter payment: "; + std::cin >> cust.payment; + std::cin.ignore(); // 忽略cin保留的换行符 + + if (stack.push(cust)) { + std::cout << "Customer added to stack.\n"; + } else { + std::cout << "Failed to add customer.\n"; + } + } + + while (!stack.isempty()) { + stack.pop(cust); + totalPayment += cust.payment; + std::cout << "Removed customer: " << cust.fullname << ", Payment: " << cust.payment << "\n"; + } + + std::cout << "Total payment: " << totalPayment << std::endl; + + return 0; +} \ No newline at end of file diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/stack.hpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/stack.hpp" new file mode 100644 index 0000000..3b7e04b --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.5/stack.hpp" @@ -0,0 +1,51 @@ + +struct customer { + char fullname[35]; + double payment; +}; + +typedef customer Item; + +class Stack { + +private: + enum { MAX = 10 }; + Item items[MAX]; + int top; + +public: + Stack(); + bool isempty() const; + bool isfull() const; + bool push(const Item & item); + bool pop(Item & item); +}; + +Stack::Stack() { + top = 0; +} + +bool Stack::isempty() const { + return top == 0; +} + +bool Stack::isfull() const { + return top == MAX; +} + +bool Stack::push(const Item & item) { + if (top < MAX) { + items[top++] = item; + return true; + } else + return false; +} + +bool Stack::pop(Item & item) { + if (top > 0) { + item = items[--top]; + return true; + } else + return false; +} + diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/Move.hpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/Move.hpp" new file mode 100644 index 0000000..5e2d405 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/Move.hpp" @@ -0,0 +1,46 @@ +#ifndef MOVE_HPP +#define MOVE_HPP + +#include + +class Move { +private: + double x; + double y; + +public: + + Move(double a = 0, double b = 0); + + + void showmove() const; + + + Move add(const Move &m) const; + + + void reset(double a = 0, double b = 0); +}; + + +Move::Move(double a, double b) : x(a), y(b) {} + +void Move::showmove() const { + + std::cout << "Current x: " << x << ", Current y: " << y << std::endl; +} + + +Move Move::add(const Move &m) const { + + return Move(x + m.x, y + m.y); +} + + +void Move::reset(double a, double b) { + + x = a; + y = b; +} + +#endif diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/main" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/main" new file mode 100755 index 0000000000000000000000000000000000000000..643a3b55cdb27e00c219ff6fe775e2096750f95d GIT binary patch literal 34616 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 literal 0 HcmV?d00001 diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/main.cpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/main.cpp" new file mode 100644 index 0000000..7ee44ca --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter10/10.6/main.cpp" @@ -0,0 +1,21 @@ +#include "Move.hpp" + +int main() { + + Move move1(3, 4); + move1.showmove(); + + + Move move2(2, 6); + move2.showmove(); + + + Move move3 = move1.add(move2); + move3.showmove(); + + + move1.reset(0, 0); + move1.showmove(); + + return 0; +} -- Gitee From 89728d178d545b4f7fb4836210458c32297fb93f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=B0=A6?= <13581096+liu-qian-6@user.noreply.gitee.com> Date: Mon, 15 Jul 2024 13:36:13 +0800 Subject: [PATCH 3/4] update C++ exercises --- .../11.3/.vscode/c_cpp_properties.json" | 19 +++ .../Chapter11/11.3/.vscode/launch.json" | 27 ++++ .../Chapter11/11.3/.vscode/tasks.json" | 30 ++++ .../Chapter11/11.3/main.cpp" | 59 ++++++++ .../Chapter11/11.3/vector.cpp" | 130 ++++++++++++++++++ .../Chapter11/11.3/vector.h" | 43 ++++++ .../Chapter11/11.4/.vscode/tasks.json" | 28 ++++ .../Chapter11/11.4/main.cpp" | 21 +++ .../Chapter11/11.4/mytime3.cpp" | 85 ++++++++++++ .../Chapter11/11.4/mytime3.h" | 26 ++++ 10 files changed, 468 insertions(+) create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/c_cpp_properties.json" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/launch.json" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/tasks.json" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/main.cpp" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/vector.cpp" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/vector.h" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/.vscode/tasks.json" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/main.cpp" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/mytime3.cpp" create mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/mytime3.h" diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/c_cpp_properties.json" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/c_cpp_properties.json" new file mode 100644 index 0000000..7c10f0c --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/c_cpp_properties.json" @@ -0,0 +1,19 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**", + "/usr/include/**", + "/usr/local/include/**" + ], + "defines": [], + "compilerPath": "/usr/bin/g++", + "cStandard": "c11", + "cppStandard": "c++17", + "intelliSenseMode": "gcc-x64", + "compilerArgs": [] + } + ], + "version": 4 +} \ No newline at end of file diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/launch.json" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/launch.json" new file mode 100644 index 0000000..f4f9469 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/launch.json" @@ -0,0 +1,27 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "g++ build and debug active file", + "type": "cppdbg", + "request": "launch", + "program": "${fileDirname}/${fileBasenameNoExtension}", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + "preLaunchTask": "C/C++: g++ 生成活动文件", + "miDebuggerPath": "/usr/bin/gdb", + "internalConsoleOptions": "openOnSessionStart" + } + ] +} diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/tasks.json" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/tasks.json" new file mode 100644 index 0000000..0154d26 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/tasks.json" @@ -0,0 +1,30 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++ 生成活动文件", + "command": "/usr/bin/g++", + "args": [ + + "-fdiagnostics-color=always", + "-g", + //"${file}", + "*.cpp", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/main.cpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/main.cpp" new file mode 100644 index 0000000..6522792 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/main.cpp" @@ -0,0 +1,59 @@ +#include +#include "vector.h" +#include +#include +#include + +int main() { + using namespace std; + using VECTOR::Vector; + srand(time(0)); + + double direction; + Vector step; + Vector result(0.0, 0.0); + unsigned long steps; + double target; + double dstep; + int numTests; + + cout << "Enter the number of tests: "; + cin >> numTests; + + cout << "Enter target distance (q to quit): "; + while (cin >> target) { + cout << "Enter step length: "; + if (!(cin >> dstep)) + break; + + unsigned long maxSteps = 0; + unsigned long minSteps = ULONG_MAX; + unsigned long totalSteps = 0; + + for (int i = 0; i < numTests; ++i) { + result.reset(0.0, 0.0); + steps = 0; + while (result.magval() < target) { + direction = rand() % 360; + step.reset(dstep, direction, Vector::POL); + result = result + step; + steps++; + } + + if (steps > maxSteps) + maxSteps = steps; + if (steps < minSteps) + minSteps = steps; + totalSteps += steps; + } + + cout << "After " << numTests << " tests:\n"; + cout << "Maximum steps: " << maxSteps << endl; + cout << "Minimum steps: " << minSteps << endl; + cout << "Average steps: " << (double)totalSteps / numTests << endl; + + cout << "Enter target distance (q to quit): "; + } + cout << "Bye!\n"; + return 0; +} diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/vector.cpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/vector.cpp" new file mode 100644 index 0000000..8b1e3df --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/vector.cpp" @@ -0,0 +1,130 @@ +// vector.cpp -- methods for the Vector class +#include +#include "vector.h" // includes + +using std::sqrt; +using std::sin; +using std::cos; +using std::atan; +using std::atan2; +using std::cout; + +namespace VECTOR { + + // compute degrees in one radian + const double Rad_to_deg = 45.0 / atan(1.0); + + void Vector ::set_mag() { + mag = sqrt(x * x + y * y); + + } + + void Vector::set_ang() { + if (x == 0.0 && y == 0.00) + ang = 0.0; + else + ang = atan2(y, x); + } + + // default constructor + Vector::Vector() { + x = y = mag =ang = 0.0; + mode = RECT; + } + + // construct vector from rectangular coordinates if form is RECT (the default) + // or else from polar coordinates if form is POL + Vector::Vector(double n1, double n2, Mode form) { + mode = form; + if (form == RECT) { + x = n1; + y = n2; + set_mag(); + set_ang(); + } else if (form == POL) { + double mag = n1; + double ang = n2 / Rad_to_deg; + x = mag * cos(ang); + y = mag * sin(ang); + } else { + cout << "Incorrect 3rd argument to Vector() -- vector set to 0\n"; + x = y = mag = ang = 0.0; + mode = RECT; + } + } + + // reset vector from rectangular coordinates if form is RECT (the default) + // or else from polar coordinates if form is POL + void Vector::reset(double n1, double n2, Mode form) { + mode = form; + if (form == RECT) { + x = n1; + y = n2; + set_mag(); + set_ang(); + } else if (form == POL) { + double mag = n1; + double ang = n2 / Rad_to_deg; + x = mag * cos(ang); + y = mag * sin(ang); + } else { + cout << "Incorrect 3rd argument to Vector() -- vector set to 0\n"; + x = y = mag = ang =0.0; + mode = RECT; + } + } + + Vector::~Vector() { + } + + // set to polar mode + void Vector::polar_mode() { + mode = POL; + } + + // set to rectangular mode + void Vector::rect_mode() { + mode = RECT; + } + + // operator overloading + // add two Vectors + Vector Vector::operator+(const Vector & b) const { + return Vector(x + b.x, y + b.y); + } + + // subtract Vector b from a + Vector Vector::operator-(const Vector & b) const { + return Vector(x - b.x, y - b.y); + } + + // reverse sign of Vector + Vector Vector::operator-() const { + return Vector(-x, -y); + } + + // multiply vector by n + Vector Vector::operator*(double n) const { + return Vector(n * x, n * y); + } + + // friend methods + // multiply n by Vector a + Vector operator*(double n, const Vector & a) { + return a * n; + } + + // display rectangular coordinates if mode is RECT, + // else display polar coordinates if mode is POL + std::ostream & operator<<(std::ostream & os, const Vector & v) { + if (v.mode == Vector::RECT) + os << "(x,y) = (" << v.x << ", " << v.y << ")"; + else if (v.mode == Vector::POL) + os << "(m,a) = (" << v.magval() << ", " + << v.angval() * Rad_to_deg << ")"; + else + os << "Vector object mode is invalid"; + return os; + } + +} // namespace VECTOR diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/vector.h" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/vector.h" new file mode 100644 index 0000000..ce75139 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/vector.h" @@ -0,0 +1,43 @@ +#ifndef VECTOR_H_ +#define VECTOR_H_ + +#include +#include + +namespace VECTOR { + class Vector { + public: + enum Mode { RECT, POL }; + private: + double x; // horizontal value + double y; // vertical value + double mag; + double ang; + Mode mode; // RECT or POL + // private methods for setting values + void set_mag(); + void set_ang(); + + public: + Vector(); + Vector(double n1, double n2, Mode form = RECT); + void reset(double n1, double n2, Mode form = RECT); + ~Vector(); + double xval() const { return x; } // report x value + double yval() const { return y; } // report y value + double magval() const {return mag;} // report magnitude + double angval() const {return ang;} // report angle + void polar_mode(); // set mode to POL + void rect_mode(); // set mode to RECT + // operator overloading + Vector operator+(const Vector & b) const; + Vector operator-(const Vector & b) const; + Vector operator-() const; + Vector operator*(double n) const; + // friends + friend Vector operator*(double n, const Vector & a); + friend std::ostream & operator<<(std::ostream & os, const Vector & v); + }; +} // namespace VECTOR + +#endif // VECTOR_H_ diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/.vscode/tasks.json" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/.vscode/tasks.json" new file mode 100644 index 0000000..cb8b75d --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/.vscode/tasks.json" @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++ 生成活动文件", + "command": "/usr/bin/g++", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/main.cpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/main.cpp" new file mode 100644 index 0000000..89b8abf --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/main.cpp" @@ -0,0 +1,21 @@ +#include +#include "mytime3.h" + +int main() { + Time t1(1, 30); + Time t2(5, 40); + + std::cout << "Time 1: " << t1 << std::endl; + std::cout << "Time 2: " << t2 << std::endl; + + Time t3 = t1 + t2; + std::cout << "Sum: " << t3 << std::endl; + + Time t4 = t1 - t2; + std::cout << "Difference: " << t4 << std::endl; + + Time t5 = t1 * 2.5; + std::cout << "Time 1 multiplied by 3: " << t5 << std::endl; + + return 0; +} diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/mytime3.cpp" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/mytime3.cpp" new file mode 100644 index 0000000..5547210 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/mytime3.cpp" @@ -0,0 +1,85 @@ +#include "mytime3.h" + + +Time::Time() : hours(0), minutes(0) {} + + +Time::Time(int h, int m) : hours(h), minutes(m) { + while (minutes >= 60) { + hours++; + minutes -= 60; + } + while (minutes < 0) { + hours--; + minutes += 60; + } + if (hours < 0) hours = 0; +} + + +void Time::AddMin(int m) { + minutes += m; + while (minutes >= 60) { + hours++; + minutes -= 60; + } +} + + +void Time::AddHr(int h) { + hours += h; +} + + +void Time::Reset(int h, int m) { + hours = h; + minutes = m; + while (minutes >= 60) { + hours++; + minutes -= 60; + } + while (minutes < 0) { + hours--; + minutes += 60; + } + if (hours < 0) hours = 0; +} + + +Time operator+(const Time& t1, const Time& t2) { + Time sum; + sum.minutes = t1.minutes + t2.minutes; + sum.hours = t1.hours + t2.hours + sum.minutes / 60; + sum.minutes %= 60; + return sum; +} + + +Time operator-(const Time& t1, const Time& t2) { + Time diff; + int total1 = t1.minutes + 60 * t1.hours; + int total2 = t2.minutes + 60 * t2.hours; + diff.minutes = (total1 - total2) % 60; + diff.hours = (total1 - total2) / 60; + return diff; +} + + +Time operator*(double n, const Time& t) { + Time result; + long totalMinutes = t.hours * n * 60 + t.minutes * n; + result.hours = totalMinutes / 60; + result.minutes = totalMinutes % 60; + return result; +} + + +Time operator*(const Time& t, double n) { + return n * t; +} + + +std::ostream& operator<<(std::ostream& os, const Time& t) { + os << t.hours << " hours, " << t.minutes << " minutes"; + return os; +} diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/mytime3.h" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/mytime3.h" new file mode 100644 index 0000000..7d644f6 --- /dev/null +++ "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/mytime3.h" @@ -0,0 +1,26 @@ +#ifndef MYTIME3_H +#define MYTIME3_H + +#include + +class Time { +private: + int hours; + int minutes; + +public: + Time(); + Time(int h, int m = 0); + + void AddMin(int m); + void AddHr(int h); + void Reset(int h = 0, int m = 0); + + friend Time operator+(const Time& t1, const Time& t2); + friend Time operator-(const Time& t1, const Time& t2); + friend Time operator*(double n, const Time& t); + friend Time operator*(const Time& t, double n); + friend std::ostream& operator<<(std::ostream& os, const Time& t); +}; + +#endif -- Gitee From 9da62cc7e2c34bd5a2e1f93fb59f96030c5b3805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=B0=A6?= <13581096+liu-qian-6@user.noreply.gitee.com> Date: Mon, 15 Jul 2024 13:42:51 +0800 Subject: [PATCH 4/4] --- .../11.3/.vscode/c_cpp_properties.json" | 19 ------------ .../Chapter11/11.3/.vscode/launch.json" | 27 ----------------- .../Chapter11/11.3/.vscode/tasks.json" | 30 ------------------- .../Chapter11/11.4/.vscode/tasks.json" | 28 ----------------- 4 files changed, 104 deletions(-) delete mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/c_cpp_properties.json" delete mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/launch.json" delete mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/tasks.json" delete mode 100644 "C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/.vscode/tasks.json" diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/c_cpp_properties.json" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/c_cpp_properties.json" deleted file mode 100644 index 7c10f0c..0000000 --- "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/c_cpp_properties.json" +++ /dev/null @@ -1,19 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "/usr/include/**", - "/usr/local/include/**" - ], - "defines": [], - "compilerPath": "/usr/bin/g++", - "cStandard": "c11", - "cppStandard": "c++17", - "intelliSenseMode": "gcc-x64", - "compilerArgs": [] - } - ], - "version": 4 -} \ No newline at end of file diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/launch.json" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/launch.json" deleted file mode 100644 index f4f9469..0000000 --- "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/launch.json" +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "g++ build and debug active file", - "type": "cppdbg", - "request": "launch", - "program": "${fileDirname}/${fileBasenameNoExtension}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ], - "preLaunchTask": "C/C++: g++ 生成活动文件", - "miDebuggerPath": "/usr/bin/gdb", - "internalConsoleOptions": "openOnSessionStart" - } - ] -} diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/tasks.json" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/tasks.json" deleted file mode 100644 index 0154d26..0000000 --- "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.3/.vscode/tasks.json" +++ /dev/null @@ -1,30 +0,0 @@ -{ - "tasks": [ - { - "type": "cppbuild", - "label": "C/C++: g++ 生成活动文件", - "command": "/usr/bin/g++", - "args": [ - - "-fdiagnostics-color=always", - "-g", - //"${file}", - "*.cpp", - "-o", - "${fileDirname}/${fileBasenameNoExtension}" - ], - "options": { - "cwd": "${fileDirname}" - }, - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - }, - "detail": "调试器生成的任务。" - } - ], - "version": "2.0.0" -} \ No newline at end of file diff --git "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/.vscode/tasks.json" "b/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/.vscode/tasks.json" deleted file mode 100644 index cb8b75d..0000000 --- "a/C++/codes/2024-07/\345\210\230\350\260\246/C++PrimerPlusExercises/Chapter11/11.4/.vscode/tasks.json" +++ /dev/null @@ -1,28 +0,0 @@ -{ - "tasks": [ - { - "type": "cppbuild", - "label": "C/C++: g++ 生成活动文件", - "command": "/usr/bin/g++", - "args": [ - "-fdiagnostics-color=always", - "-g", - "${file}", - "-o", - "${fileDirname}/${fileBasenameNoExtension}" - ], - "options": { - "cwd": "${fileDirname}" - }, - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - }, - "detail": "调试器生成的任务。" - } - ], - "version": "2.0.0" -} \ No newline at end of file -- Gitee