# C++程式設計
僑光科技大學 資訊科技系
114學年度第2學期
開課班級:日資科114忠、114孝
上課時間:星期二第2-4節、第5-7節
授課老師:高吉隆
#### [Padlet投影片連結](https://padlet.com/kevinkao888/cpp/)
#### [VSCode+TDM-GCC+C/C++下載(系統管理員執行)](https://ocu.tw/download/VSCode.exe)
#### [Hackmd記事本連結](https://hackmd.io/@kevinkao888/BkM4GVoQs)
###### tags: `課程大綱`
----
## 課程介紹
* 課程大綱
* 教學目標
* 每週目標
* 成績計算
----
### 課程大綱
* Chap1:C語言與程式階層架構
* Chap2:變數、資料型態與運算子
* Chap3:選擇結構
* Chap4:多向選擇結構
* Chap5:迴圈結構
* Chap6:進階迴圈概念
* Chap7:陣列
* Chap8:二維陣列
* Chap9:搜尋與排序
* Chap10:自訂函數與遞迴
* Chap11:字串處理
* Chap12:系統函數、檔案輸出
* Chap13:位址與指標
* Chap14:結構
----
### 教學目標
* 透過C++程式語言認識程式撰寫的技巧
* 透過程式範例的閱讀與實作增進程式能力
* 透過AI工具協助初學者更快了解程式技巧
* 透過隨堂作業提升自我學習的能力
* 透過隨堂考試提升對程式理解的能力
----
|週|前9週|演練2%|作業4%|考試8%|
|-|-------- |:-:|:-:|:-:|
|1|C++語言|1章
|2|變數型態|2章
|3|選擇結構|3章
|4|進階選擇|4章|1-2章|1-2章
|5|迴圈結構|5章||
|6|移至6/13|
|7|巢狀迴圈|6章|3-4章|3-4章
|8|一維陣列|7章
|9|期中考週 ||5-6章|5-6章
----
|週|後9週|演練2%|作業4%|考試8%|
|-|-------- |:-:|:-:|:-:|
|10|二維陣列|8章
|11|搜尋排序|9章
|12|函數與遞迴|10章|7-8章|7-8章
|13|字串處理|11章
|14|系統函數|12章|9-11章|9-11章
|15|位址與指標|13章
|16|結構|14章
|17|期末考週||12-14章|12-14章
|18|期末補救週|
----
## 評分標準
* 期中成績:50%
* 上課演練第1-7次:14%(2%/次)
* 課後作業第1-3次:12%(4%/次)
* 隨堂考試第1-3次:24%(8%/次)
* 期末成績:50%
* 上課演練第8-14次:14%(2%/次)
* 課後作業第4-6次:12%(4%/次)
* 隨堂考試第4-6次:24%(8%/次)
----
### 教科書
* 名稱:C++程式設計入門(第二版)
* 出版社:碁峰
* 作者:黃建庭

----
### 上課方式
* 上課講解:投影片教學
* 因書籍著作權因素,不提供投影片
* 課堂點名:配合學校政策
* 依照學校系統課程缺曠紀錄計算
* 上課演練:隨堂範例說明(28%)
* 下課前繳交線上平台隨堂範例練習
* 課後作業:上機程式測驗、課後評量(24%)
* 於指定日期前繳交至僑光教學平台
* 隨堂考試:上機程式測驗、課後評量(48%)
* 於指定日期上課時間考試
----
### 上課點名
* 第1次上課全部學生點名
* 本課程有課中演練和隨堂測驗,不另行點名
* 若有隨堂測驗
* 直接依缺考者為上課缺席
* 第無隨堂測驗
* 只點上次沒有交課中演練同學
----
### 上課演練/課後作業規定
* 上課演練程式請至[網路教學平台](https://tronclass.ocu.edu.tw/)繳交
* 繳交方式:每1題皆需含2個檔案
* 1個程式碼檔案(cpp檔),其中每行註解
* 1個執行結果檔案(txt檔)
* 評分方式:若期限內未交則為40分
* 執行正確:80分
* 註解完整、縮排對齊:+5或10分/項
* 結果錯誤、編譯錯誤:-5或10分/項
* 程式碼開頭請加註解如下:
```
// 班級:[請輸入班級]
// 學號:[請輸入學號]
// 姓名:[請輸入姓名]
```
----
### 隨堂考試
* 第4、6、9、12、14、17週各考1次,共6次
* 考試範圍:1-2、3-4、5-6、7-8、9-11、12-14章
* 題目來源:教科書、投影片、程式演練
* 題目類型:
* 4選1單選題:100分
* 如50題,每題2分
---
## Visual Studio Code 安裝
* 安裝VSC編輯器:[下載](https://vscode.download.prss.microsoft.com/dbazure/download/stable/072586267e68ece9a47aa43f8c108e0dcbf44622/VSCodeUserSetup-x64-1.109.5.exe)後,並安裝
* 安裝C++編譯器 TDM-GCC:[下載](https://github.com/jmeubank/tdm-gcc/releases/download/v10.3.0-tdm64-2/tdm64-gcc-10.3.0-2.exe)後,並安裝
* 選擇Create,並選擇MinGW-w64
* 安裝擴充元件(Extensions):C/C++,並安裝
* 重新啟動VSC,建立新目錄:C:\C++
* 新增檔案,輸入以下程式碼,儲存為A.cpp
```c=
#include<iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
```
* 按【F5】執行,選擇C++(GDB/LLDB),
* 選擇C:\TDM-GCC-64\bin\g++.exe
----
## 電腦教室環境設置
* 安裝VS Code編輯器:已安裝
* 安裝TDM-GCC編譯器:[下載連結](https://ocu.tw/download/tdm64-gcc.exe),並安裝
* 刪除資料夾 C:\使用者\User\\.vscode\extensions
* 安裝VS Code中的C/C++擴充元件:點選安裝
* 開啟資料夾(D:\C++\),新增檔案(A.cpp),如:
```c=
#include<iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
```
* 按【F5】執行,選擇C++(GDB/LLDB)
* 選擇g++.exe (C:\TDM-GCC-64\bin\g++.exe)
----
## 運用AI工具撰寫程式教學
* 方法一:自行把程式輸入,檢查語法和偵錯
* 方法二:使用AI工具先將程式草稿完成再修正
* 使用Gemini:請登入Google帳號
* 輸入以下提示詞:後面請接程式題目
* 擷取Gemini提供的程式複製至VS Code
* 執行並檢查語法錯誤,和檢查結果
* AI提示詞和範例程式題目
```
請用C++程式撰寫完成以下說明,並在每一行都加上註解說明
```
```
1.請使用輸入和輸出功能,詢問提示「請問學號?」
2.請使用者輸入學號
3.最後顯示「你好,(學號)」
```
----
### 作業問題清單
* 答錯1或2題,請參考Padlet投影片中的作業說明
* 缺執行結果,請將結果儲存為txt檔案一併上傳
* 缺程式碼,請將程式原始碼儲存為cpp檔案上傳
* 缺程式註解,請將每行加上註解,完整說明程式
* 缺班級、座號、姓名,請填自己的資訊!
----
## AI工具撰寫程式(進階提示詞)
* 請針對所有輸入或輸出內容做判斷
1. 輸入內容空白檢查:空白則提示後結束
2. 輸入內容長度檢查:超過則提示後結束
3. 輸入格式錯誤檢查:不合則提示後結束
* 如數量應為非負整數,若為負數或小數
* 如長度應為正整數或正小數,若為負數或0
* 如名稱應為英文,若為數字
4. 輸出內容若為金額,請加千分位(逗點)
5. 輸出內容若為小數,四捨五入至小數2位
6. 輸出內容若為英文,請將每個字變大寫
----
### 上課演練1-1
* 請使用C++程式撰寫以下功能,並每行註解
* 輸出以下三行字串!
我在僑光科技大學
資訊科技系的
第一個C++語言程式
### 上課演練1-2
* 請使用C++程式撰寫以下功能,並每行註解
1. 輸出詢問「請問你的姓名為何?」
2. 等待輸入使用者的姓名
3. 最後輸出「你好,(姓名)!」
### 課後作業1-1
* 請使用C++程式撰寫以下功能,並每行註解
1. 輸出詢問「請問你今年幾歲?」
2. 等待使用者輸入年齡
3. 最後輸出「我今年(年齡)歲!」
### 課後作業1-2
* 請使用C++程式撰寫以下功能,並每行註解
1. 輸出詢問「請問你的姓名為何?」
2. 等待使用者輸入姓名
3. 最後輸出以下幾行文字
4. 部分文字內容自由發揮
--- 自動回覆信件 ---
親愛的 (姓名) 您好:
(以下內容自由發揮)
### 上課演練2-1
* 請使用C++程式撰寫以下功能,並每行註解
1. 請設計一個服裝金額計算系統
2. 已知上衣250元、褲子300元、背心200元
3. 請使用者輸入購買上衣、褲子和背心的數量
4. 並計算總金額為何?
### 上課演練2-2
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入圓的半徑
2. 輸出該圓的圓周長和圓面積
### 課後作業2-1
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入長方形的長與寬
2. 等待使用者輸入長與寬
3. 最後輸出計算長方形周長與面積
### 課後作業2-2
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入第一次期中考、第二次期中考、期末考成績
2. 等待使用者輸入共三次的成績
3. 最後輸出計算三次成績的總分與平均
### 上課演練3-1
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入成績
2. 若成績大於或等於60分,則印出「很好,請繼續保持下去」
### 上課演練3-2
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入購買金額
2. 如果金額達2000元,則打9折購買
3. 若未達則原價購買
### 課後作業3-1
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入一個數值,輸出該數的絕對值
2. 其中絕對值為
* 若該數小於0,則取該數的負號,其餘不變
### 課後作業3-2
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入一個直角座標系的座標X和Y
2. 請輸出該座標為第1~4象限或在座標軸上
### 上課演練4-1
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入身高和體重,並註明單位
2. 由身高和體重計算BMI值,計算至小數點2位
3. 若BMI小於18,則顯示「體重過輕」
4. 若BMI小於24,則顯示「體重正常」
5. 若BMI小於27,則顯示「體重過重」
6. 其餘則顯示「體重肥胖」
### 上課演練4-2
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入所得稅淨額,單位為元
2. 若金額不超過50萬,稅率:5%,扣除額:0
3. 若金額不超過100萬,稅率:10%,扣除額:25,000
4. 若金額不超過200萬,稅率:20%,扣除額:125,000
5. 若金額不超過400萬,稅率:30%,扣除額:325,000
6. 其餘則稅率:40%,扣除額:625,000
### 課後作業4-1:3數找最大值
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入3個數值A、B、C
2. 輸出最大的值為何?
### 課後作業4-2:門票購買
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入門票張數
2. 一張門票100元
3. 購買2-5張打9折
4. 購買6-10張打8折
5. 購買11-20張打7折
6. 購買21張以上打6折
7. 計算門票總金額
### 上課演練5-1:自動加總計算
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入起始值
2. 請使用者輸入結束值
3. 請使用者輸入遞增值
4. 由起始值開始,每次數值遞增值,加總至結束值
5. 最後顯示總和
### 上課演練5-2:猜數字遊戲
* 請使用C++程式撰寫以下功能,並每行註解
1. 隨機產生一個1至100之間的正確值
2. 請使用者輸入猜測的數字
3. 系統回答該數字和正確值比較,為猜中或應該大一點或小一點?
4. 若猜測不正確則,重覆猜至猜中為止
### 課後作業5-1:求平方和
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入一個正整數N
2. 計算由1開始加總合計每一個連續正整數的平方和至N為止
3. 顯示最後的總和
### 課後作業5-2:求滿足條件最小值
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用者輸入一個正整數S
2. 求最小值n,滿足由1開始合計連續正整數的平方和大於S
3. 顯示最小值n
### 上課演練6-1:九九乘法表
* 請使用C++程式撰寫以下功能,並每行註解
1. 請列出九九乘法表的完整內容,共81個
2. 請注意每一欄需要對齊,如乘法和等於等符號
### 上課演練6-2:帳號密碼檢查
* 請使用C++程式撰寫以下功能,並每行註解
1. 請使用迴圈,詢問使用者帳號和密碼
2. 比對帳號和密碼和正確的帳號(user)l和密碼(1234)是否一致?
3. 若一致,則顯示通過驗證,並結束程式
4. 若不一致,則重新輸入帳號和密碼,直到正確為止
### 課後作業6-1:列印單位矩陣
* 請使用C++程式撰寫以下功能,並每行註解
1. 請列出一個單位矩陣的值
2. 請使用者輸入單位矩陣的維度
3. 其中單位矩陣為一個方陣
4. 單位矩陣的值為左上到右下的值為1,其餘為0
### 課後作業6-2:擲骰子擲至6為止
* 請使用C++程式撰寫以下功能,並每行註解
1. 請隨機產生一個1-6的數字,模擬擲骰子的值
2. 開始擲骰子之後,如果為6,則顯示完成
3. 若不為6,則繼續擲下一次骰子,直到擲到6為止
---
### 課中演練 CH02_01.cpp
* 請於程式中宣告2個整數變數:
1. 變數名稱為a,無初始值。
2. 變數名稱為b,初始值設為12。
* 並將以上2變數顯示如下:
* 變數a=0
* 變數b=12
```c=
#include <iostream>
using namespace std;
int main() {
int a;
int b = 12;
cout << "變數a=" << a << endl;
cout << "變數b=" << b;
return 0;
}
```
----
### 課中演練 CH02_02.cpp
請於程式中宣告2個變數,並顯示所佔位元組:
| 類型 | 變數名稱 | 初始值 |
|-|-|-|
| 短整數 | number1 | 0200(八進位) |
| 整數 | number2 | 0x33f(十六進位) |
並將以上2變數顯示如下:
短整數=128所佔位元組:2
整數=831所佔位元組:4
----
```c=
#include<iostream>
using namespace std;
int main() {
short int number1=0200;//宣告短整數變數,並以八進位數設定其值
int number2=0x33f;//宣告整數變數,並以十六進位數設定其值
cout<<"短整數="<<number1<<"所佔位元組:"<<sizeof(number1)<<endl;
cout<<"整數="<<number2<<"所佔位元組:"<<sizeof(number2)<<endl;
return 0;
}
```
----
### 課中演練 CH02_03.cpp
請於程式中宣告2個變數,並顯示所佔位元組:
1. 類型為單精確度浮點數,變數名稱為Num1,初始值設為1.742f
2. 類型為倍精確度浮點數,變數名稱為Num2,初始值設為4.159
並將以上2變數顯示如下:
單精確度浮點數=1.742所佔位元組:4
倍精確度浮點數=4.159所佔位元組:8
----
```c=
#include <iostream>
using namespace std;
int main() {
float Num1 = 1.742f; // 宣告float變數
double Num2 = 4.159; // 宣告double變數
cout<<"單精確度浮點數="<<Num1<<"所佔位元組="<<sizeof(Num1)<<endl;
cout<<"雙精確度浮點數="<<Num2<<"所佔位元組="<<sizeof(Num2)<<endl;
return 0;
}
```
----
### 課中演練 CH02_04.cpp
請於程式中宣告2個變數,並顯示所佔位元組:
1. 類型為字元,變數名稱為Char1,初始值設為0xA
2. 類型為字元,變數名稱為Char2,初始值設為'\\'
並將以上2變數顯示如下:
字元=
所佔位元組:1
字元=\\所佔位元組:1
----
```c=
#include <iostream>
using namespace std;
int main() {
char Char1=0xA;//換行的十六進位ASCII碼
char Char2='\\';//反斜線的跳脫字元
cout<<"字元="<<Char1<<"所佔位元組:"<<sizeof(Char1)<<endl;
cout<<"字元="<<Char2<<"所佔位元組:"<<sizeof(Char2)<<endl;
return 0;
}
```
----
### 課中演練 CH02_05.cpp
請於程式中宣告2個變數,並顯示所佔位元組:
1. 類型為布林,變數名稱為Bool1,初始值設為10
2. 類型為布林,變數名稱為Bool2,初始值設為5 > 8
並將以上2變數顯示如下:
布林=1所佔位元組:1
布林=0所佔位元組:1
----
```c=
#include <iostream>
using namespace std;
int main() {
bool Bool1= 10;
bool Bool2= 5 > 8;
cout<<"布林="<<Bool1<<"所佔位元組:"<<sizeof(Bool1)<<endl;
cout<<"布林="<<Bool2<<"所佔位元組:"<<sizeof(Bool2)<<endl;
return 0;
}
```
---
### 課中演練 CH03_01.cpp
請於程式中宣告2個整數變數,並分別用算術運算子顯示各種運算結果:
1. 變數名稱為A,初始值設為21
2. 變數名稱為B,初始值設為6
並將以下2個運算結果顯示如下:
A=21, B=6
A/B=3
A%B=3
----
```c=
#include<iostream>
using namespace std;
int main() {
int A = 21, B = 6;
cout << "A=" << A << ", B=" << B << endl;
cout << "A/B=" << A/B << endl;
cout << "A%B=" << A%B << endl;
return 0;
}
```
---
### 課中演練 CH03_02.cpp
請於程式中宣告2個整數變數,並分別用關係運算子顯示各種運算結果:
1.變數名稱為A,初始值設為11
2.變數名稱為B,初始值設為15
並將以下2個運算結果顯示如下:
A=11, B=15
A!=B=1
A>=B=0
----
```c=
#include<iostream>
using namespace std;
int main() {
int A = 11, B = 15;
cout << "A=" << A << ", B=" << B << endl;
cout << "A!=B=" << (A!=B) << endl;
cout << "A>=B=" << (A>=B);
return 0;
}
```
----
### 課中演練 CH03_03.cpp
請於程式中宣告2個整數變數,並分別用位元運算子顯示各種運算結果:
1.變數名稱為A,初始值設為13
2.變數名稱為B,初始值設為57
並將以下2個運算結果顯示如下:
A=13, B=57
A&B=9
A|B=61
----
```c=
#include<iostream>
using namespace std;
int main() {
int A=13, B=57;
cout << "A=" << A << ", B=" << B << endl;
cout << "A&B=" << (A&B) << endl;
cout << "A|B=" << (A|B);
return 0;
}
```
----
### 課中演練 CH03_04.cpp
請於程式中宣告2個整數變數,並分別用遞增或遞減運算子顯示各種運算結果:
1.變數名稱為A,初始值設為5
2.變數名稱為B,無初始值
經過以下2個運算後,顯示A, B變數值:
```c=
B=A++
B=++A
```
將A, B值顯示如下:
A=5, B=0
B=A++, A=6, B=5
B=++A, A=7, B=7
----
```c=
#include<iostream>
using namespace std;
int main() {
int A=5, B;
cout << "A=" << A << ", B=" << B << endl;
B=A++;
cout << "B=A++, A=" << A << ", B=" << B << endl;
B=++A;
cout << "B=++A, A=" << A << ", B=" << B << endl;
return 0;
}
```
----
### 課中演練 CH03_06.cpp
請於程式中宣告4個整數變數,計算出成績的總分及平均,並使用強制資料型態轉換,顯示運算結果,含小數位數:
1.變數名稱為sorce1,初始值設為78
2.變數名稱為sorce2,初始值設為69
3.變數名稱為sorce3,初始值設為92
4.變數名稱為sum,初始值設為0
計算總分及平均後,顯示數值,並包括小數:
sum=239
average=79.6667
----
```c=
#include<iostream>
using namespace std;
int main() {
int score1 = 78, score2 = 69, score3 = 92;
int sum =0;
sum = score1 + score2 + score3;
cout << "sum=" << sum << endl;
cout << "average=" << (float) sum/3;
return 0;
}
```
---
### 課中演練 CH04_01.cpp
```c=
#include <iostream>
using namespace std;
int main() {
int score = 0;
cout << "請輸入國文成績:" << endl;
cin >> score;
if(score >= 60)
cout << "本科成績及格。" << endl;
else
cout << "本科成績不及格。" << endl;
return 0;
}
```
----
### 課中演練 CH04_02.cpp
```c=
#include <iostream>
using namespace std;
int main() {
int Score;
cout << "輸入學生的分數:" << endl;
cin >> Score;
if (Score > 100)
cout << "超過 100 分" << endl;
else if (Score < 0)
cout << "不會有負的分數吧" << endl;
else if (Score >= 60)
cout << "不錯喔,得到 " << Score << " 分";
else
cout << "不太理想喔,只得了 " << Score << " 分";
return 0;
}
```
----
### 課中演練 CH04_04.cpp
```c=
#include <iostream>
using namespace std;
int main() {
char select;
cout << "(A)義大利" << endl;
cout << "(B)巴黎" << endl;
cout << "(C)日本" << endl;
cout << "請輸入你要旅遊的地點:" << endl;
cin >> select;
switch(select) {
case 'a':
case 'A':
cout<<"義大利5日遊$35000" << endl;
break;
case 'b':
case 'B':
cout<<"巴黎7日遊$40000" << endl;
break;
case 'c':
case 'C':
cout<<"日本5日遊$25000" << endl;
break;
default:
cout<<"選項錯誤" << endl;
}
return 0;
}
```
----
### 課中演練 CH04_05.cpp
```c=
#include <iostream>
using namespace std;
int main() {
int i, n, sum=0;
cin >> n;
for(i = 1; i <= n; i++)
sum += i;
cout << "1+2+...+" << n << "=" << sum;
return 0;
}
```
----
### 課中演練 CH04_06.cpp
```c=
#include <iostream>
using namespace std;
int main() {
int i, j;
for (i = 1; i <= 9; i++) {
for (j = 2; j <= 9; j++) {
cout << j << '*' << i << '=' << j * i << ' ';
}
cout << endl;
}
return 0;
}
```
----
### 課中演練 CH04_08.cpp
```c=
#include <iostream>
using namespace std;
int main() {
int sum = 0, i = 0, S = 0;
cout << "請問連續整數加總到多少會超過S值,請輸入S值:" << endl;
cin >> S;
do {
i ++;
sum += i;
} while(sum <= S) ;
cout << "連續整數加總到" << i << "會超過" << S;
return 0;
}
```
---
### 課中演練 CH05_01.cpp
```c=
#include <iostream>
using namespace std;
int main()
{
int score[6] = {50, 80, 70};
for (int i = 3; i < 6; i++)
{
cout << "第" << i + 1 << "個元素為:" << endl;
cin >> score[i];
}
for (int i = 0; i < 6; i++)
cout << "score[" << i << "]=" << score[i] << endl;
return 0;
}
```
----
### 課中演練 CH05_02.cpp
```c=
#include <iostream>
using namespace std;
int main()
{
int score[4][5], fail[4] = {0}, sum[4] = {0};
for (int i = 0; i < 4; i++)
{
cout << "請輸入" << i + 1 << "號的國、英、數、自、社五科成績:" << endl;
for (int j = 0; j < 5; j++)
{
cin >> score[i][j];
sum[i] += score[i][j];
if (score[i][j] < 60)
fail[i] += 1;
}
}
for (int i = 0; i < 4; i++)
cout << i + 1 << "號的總分:" << sum[i] << ",平均:" << sum[i] / 5.0 <<
",共有" << fail[i] << "科不及格" << endl;
return 0;
}
```
----
### 課中演練 CH05_05.cpp
```c=
#include <iostream>
using namespace std;
int main()
{
char Str[6][30] = {"張繼 楓橋夜泊",
"==============",
"月落烏啼霜滿天",
"江楓漁火對愁眠",
"姑蘇城外寒山寺",
"夜半鐘聲到客船"};
int i;
for (i = 0; i < 6; i++)
cout << Str[i] << endl;
return 0;
}
```
----
### 課中演練 CH05_06.cpp
```c=
#include <iostream>
#include <string>
using namespace std;
int main()
{
char ch[] = ", ";
string firstname; //宣告字串類別
string lastname; //宣告字串類別
string input1("請輸入姓氏:");
string input2 = "請輸入名字:";
cout << input1 << endl;
cin >> lastname; //輸入字串
cout << input2 << endl;
cin >> firstname; //輸入字串
string fullname = firstname + ch + lastname; //以運算子作字串的串接
cout << "您的全名為:" << fullname << endl;
return 0;
}
```
----
### 課中演練 CH05_08.cpp
```c=
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1 = "Overseas Chinese University";
string key = "";
cout << "請在以下字串\"" << str1 << "\",要找的字串:" << endl;
cin >> key;
size_t pos = str1.find(key);
if (pos != str1.npos)
cout << "在字串的第" << pos << "個位置找到" << key << "字串";
else
cout << "找不到!";
return 0;
}
```
----
### 課中演練 CH07_02.cpp
```c=
#include <iostream>
using namespace std;
int my_pow(int x, int r)
{
int i, sum = 1;
for (i = 0; i < r; i++)
sum = sum * x;
return sum;
}
int main()
{
int x, r;
cout << "請輸入兩個數字:" << endl;
cin >> x;
cin >> r;
cout << x << "的" << r << "次方=" << my_pow(x, r) << endl; //呼叫my_pow()函數
return 0;
}
```
{"metaMigratedAt":"2023-06-17T07:12:19.287Z","metaMigratedFrom":"Content","breaks":true,"description":"僑光科技大學 資訊科技系111學年度第1學期開課班級:日資科111孝上課時間:星期四第2-4節課程學分:必修3學分授課老師:高吉隆","title":"C++程式設計","contributors":"[{\"id\":\"9eed60a5-6546-4dfd-8445-07f81bcfde52\",\"add\":23055,\"del\":8229,\"latestUpdatedAt\":1775531770604}]"}