使用者工具

網站工具


You are not allowed to perform this action
cpp:2025spring:hw4

Turnin作業4

  • Turnin Code: cpp.hw4
  • Due Date: 3/16 Sunday 23:59 (midnight) Hard Deadline
  • 本次作業繳交期限為3月16日週日晚上11點59分0秒!

繳交方式說明

本次Turnin作業包含多個程式題,建議同學可以為這次作業先建立一個資料夾hw4,然後在該資料夾內再為每一題建立一個子資料夾,用以進行每一題的作答以及上傳。每一題的子資料夾名稱已寫於題目前方,請務必依照題目的規定建立子資料夾,例如第1題為p1、第2題為p2,餘依此類推。當我們完成某一個題目的作答後,就可以使用turnin指令將該題的答案上傳。以第1題為例,當我們在p1子資料夾裡完成作答後,就可以回到hw4資料夾,使用以下指令將其上傳:

[user@ws hw4]$ turnin▴cpp.hw4▴p1↵

當然,你也可以等到所有題目都完成後,再回到hw4資料夾,使用以下指令將所有題目都加以上傳:

[user@ws hw4]$ turnin▴cpp.hw4▴.↵

本文使用▴及↵代表空白字元與Enter換行字元,並且將使用者輸入的部份使用灰階方式顯示。 另外,題目的執行結果中,如果出現(、)、:、;、.與,等符號,皆為英文半形!

當你完成此次作業的繳交後,可以使用turnin指令的-ls參數,查看已繳交的結果。若已經正確地依要求繳交此次作業,那麼你將可以看到類似以下的查詢結果:

[user@ws hw4]$ turnin -ls cpp.hw4
.:
total 24
drwxrwx---. 2 turninman 1669401585 4096 Mar  5 20:57 p1
drwxrwx---. 2 turninman 1669401585 4096 Mar  5 20:57 p2
drwxrwx---. 2 turninman 1669401585 4096 Mar  5 20:57 p3
drwxrwx---. 2 turninman 1669401585 4096 Mar  5 20:57 p4
drwxrwx---. 2 turninman 1669401585 4096 Mar  5 20:57 p5
drwxrwx---. 2 turninman 1669401585 4096 Mar  5 20:57 p6

./p1:
total 4
-rw-rw----. 1 turninman 1669401585 4 Mar  5 20:57 sort.cpp

./p2:
total 4
-rw-rw----. 1 turninman 1669401585 4 Mar  5 20:57 barchart.cpp

./p3:
total 4
-rw-rw----. 1 turninman 1669401585 4 Mar  5 20:57 aggregation.cpp

./p4:
total 4
-rw-rw----. 1 turninman 1669401585 4 Mar  5 20:57 score.cpp

./p5:
total 4
-rw-rw----. 1 turninman 1669401585 5 Mar  5 20:57 checkAnswer.cpp

./p6:
total 4
-rw-rw----. 1 turninman 1669401585 5 Mar  5 20:57 matrix.cpp

[user@ws hw4]$

【注意:以上的執行結果僅供參考,包含檔案上傳的日期、時間、大小等皆會依實際情況有所不同,請自行仔細檢查是否有正確繳交。】

若是發現自己繳交錯誤的同學,也可以使用以下的指令,將此次作業所有已上傳的檔案與資料夾全部清空:

[user@ws hw2]$ turnin▴-rm▴cpp.hw4▴.↵


p1 數值排序

請設計一個C++語言的程式sort.cpp,讓使用者輸入10個整數後,進行遞減(由大到小)排序加以輸出。此題的執行結果可參考如下:

[user@ws hw]$ ./a.out↵
Please▴input▴10▴numbers:▴17▴3▴98▴99▴2▴0▴-1▴4▴221▴-10↵
The▴numbers▴are▴sorted▴as▴follows:↵
221▴99▴98▴17▴4▴3▴2▴0▴-1▴-10↵
[3:23 user@ws hw] ./a.out↵
Please▴input▴10▴numbers:▴9▴2▴1▴88▴2▴34▴2▴7▴11▴0↵
The▴numbers▴are▴sorted▴as▴follows:↵
88▴34▴11▴9▴7▴2▴2▴2▴1▴0↵
[user@ws hw]$

p2 畫出長條圖

請設計一個C++語言的程式barchart.cpp,此程式讀入使用者輸入的7個整數(都是介於0(含)至10(含)之間的整數),並依據其值輸出長條圖。本題的執行結果可參考如下:

【注意: 第3-13行皆為程式執行時的輸出,但由於排版上無法對齊,故改以灰階方塊處理,並不是程式的輸入。同學們也可以參考課本286頁第8章習題第7題的執行結果。】

[user@ws hw]$ ./a.out↵
Please▴input▴7▴numbers:▴3▴2▴0▴4▴1▴6▴7↵
.▴.▴.▴.▴.▴.▴.↵
.▴.▴.▴.▴.▴.▴.↵
.▴.▴.▴.▴.▴.▴.↵
.▴.▴.▴.▴.▴.▴#↵
.▴.▴.▴.▴.▴#▴#↵
.▴.▴.▴.▴.▴#▴#↵
.▴.▴.▴#▴.▴#▴#↵
#▴.▴.▴#▴.▴#▴#↵
#▴#▴.▴#▴.▴#▴#↵
#▴#▴.▴#▴#▴#▴#↵
1▴2▴3▴4▴5▴6▴7↵
[user@ws hw]$

p3 計算多位學生的成績(一)

請設計一個C++語言的程式aggregation.cpp,讓使用者輸入10筆學生的成績(皆為整數)後,計算他們的平均(無條件捨棄至小數點後一位)、最高分與最低分後輸出。請特別注意,當所輸入的成績低於0分時,該成績以0分計:所輸入的成績超過100時,以100分計。此題的執行結果如下:

[user@ws hw]$ ./a.out↵
Please▴input▴10▴scores:▴189▴175▴66▴48▴90▴100▴-73▴80▴-2▴0↵
Average=58.4↵
MaxScore=100↵
MinScore=0↵
[user@ws hw]$ ./a.out↵
Please▴input▴10▴scores:▴199▴88▴77▴66▴-11▴22▴-33▴100▴155▴180↵
Average=65.3↵
MaxScore=100↵
MinScore=0↵
[user@ws hw]$

p4(*) 計算多位學生的成績(二)

請設計一個C++語言的程式score.cpp,讓使用者輸入10筆學生的成績(皆為介於0(含)到100(含)間的整數)。請將其中最高分的6次的平均(四捨五入到整數位)加以輸出。執行結果如下:

[user@ws hw]$ ./a.out↵
Please▴input▴10▴scores:▴89▴75▴66▴48▴90▴100▴73▴79▴2▴0↵
Average(top▴6▴scores)▴=▴84↵
[user@ws hw]$ ./a.out↵
Please▴input▴10▴scores:▴66▴80▴100▴95▴90▴60▴0▴75▴90▴100↵
Average(top▴6▴scores)▴=▴93↵
[user@ws hw]$ ./a.out↵
Please▴input▴10▴scores:▴100▴100▴100▴95▴100▴100▴100▴75▴90▴100↵
Average(top▴6▴scores)▴=▴100↵
[user@ws hw]$

p5 熟悉的幾A幾B

請設計一個C++語言的程式checkAnswer.cpp,讓使用者輸入4個數字,並在所輸入的數字沒有重複的前提下,與數字1234進行比較。若有數值與位置皆相同的數字則記為A,數值正確但位置不正確的數字則記為B,請將比較後的結果輸出。此題的執行結果可參考如下:

[user@ws hw]$ ./a.out↵
Please▴input▴a▴4-digits▴number:▴2314↵
Checking▴a▴Result:▴1A3B↵
[user@ws hw]$ ./a.out↵
Please▴input▴a▴4-digits▴number:▴3456↵
Checking▴a▴Result:▴0A2B↵
[user@ws hw]$ ./a.out↵
Please▴input▴a▴4-digits▴number:▴0456↵
Checking▴a▴Result:▴0A1B↵
[user@ws hw]$ ./a.out↵
Please▴input▴a▴4-digits▴number:▴3222↵
Duplicated▴Input!↵
[user@ws hw]$

p6 矩陣的應用

請設計一個C++語言的程式matrix.cpp,接收 n 個整數(1 ≤ n ≤ 100),將這些數存入陣列,並計算:

  • 陣列中的 最大值 (max)
  • 陣列中的 最小值 (min)
  • 最大值與最小值的差(max - min)

使用者輸入格式:
第一行輸入一個正整數 n(表示有多少個整數,此題假設n>1)。
第二行輸入 n 個整數(每個數的範圍:-1000 ≤ i ≤ 1000)。

[user@ws hw]$ ./a.out↵
Please▴input▴the▴size▴of▴the▴matrix:▴5↵
Please▴input▴5▴integers:▴3▴8▴-2▴10▴1↵
Max:▴10↵
Min:▴-2↵
Difference:▴12↵
[user@ws hw]$ ./a.out↵
Please▴input▴the▴size▴of▴the▴matrix:▴4↵
Please▴input▴4▴integers:▴-5▴-10▴-2▴-8↵
Max:▴-2↵
Min:▴-10↵
Difference:▴8↵
[user@ws hw]$ ./a.out↵
Please▴input▴the▴size▴of▴the▴matrix:▴101↵
The▴size▴of▴matrix▴is▴not▴acceptable!↵
[user@ws hw]$ ./a.out↵
Please▴input▴the▴size▴of▴the▴matrix:▴4↵
Please▴input▴4▴integers:▴1001▴-10▴-2▴-8↵
One▴or▴more▴integers▴are▴out▴of▴range!↵
[user@ws hw]$

cpp/2025spring/hw4.txt · 上一次變更: 2025/03/12 02:35 由 junwu

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki