C語言I博客作業06❤
1.作業頭
這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11553 |
這個作業的目標 | <與上周作業要求基本一致,讓我們能夠學會自主學習的技能,自主找到自己的錯誤,以他人為老師,學習其優點避免其缺點> |
學號 | <20209134> |
一、本周教學內容&目標
第3章 分支結構 3.3 使學生熟悉多分支結構switch語句的使用。
二、本周作業頭
這個作業屬於哪個課程 | <C語言程序設計II> |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11553 |
我在這個課程的目標是 | <每周上課之前提前預習下堂課內容,在下學期上課之前,學完下學期內容,並提前學習Python與Java> |
這個作業在那個具體方面幫助我實現目標 | <這個作業的內容要求可以很好的督促我完成我的目標,比如PTA的練習截圖等> |
參考文獻 | https://www.bilibili.com/video/BV1x7411M74h |
三、本周作業
- 1.PTA實驗作業
- 2.代碼互評
- 3.學習總結
四、作業格式
1.PTA實驗作業:
1.1 題目名1: 7-4 前天是哪天
內容描述:本題目要求讀入年、月、日,然后判斷前天日期。輸入格式:在一行中輸入年、月、日。(日期為有效日期)
輸出格式:輸出前天日期,格式形如2020-10-16。
輸入樣例:
2020 10 16
輸出樣例:
2020-10-14
輸入樣例:
2020 1 2
輸出樣例:
2019-12-31
輸入樣例:
2019 3 2
輸出樣例:
2019-2-28
1.1.1 數據處理:
數據表達:用了三個整形變量:year,month,day通過鍵盤輸入三個數值,year可用於判斷該題目中的閏年平年;month可用於判斷year是否需要-1;day可用於判斷month的-1或者不變。
數據處理:用到的表達式有標准輸入輸出語句,if——else判斷語句,通過上述的year,month,
day進行判斷各該輸出的數值。
**函數參數:該題僅含有一個主函數,不含被調函數**
1.1.2實驗代碼截圖:
1.1.3 造測試數據:
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2020 11 15 | 2020-11-13 | 閏年,天數>2 |
2020 1 1 | 2019-12-30 | 閏年,天數<2 |
2019 5 1 | 2019-4-29 | 平年,天數<2 |
2019 4 21 | 2019-4-19 | 平年,天數>2 |
1.1.4 PTA提交列表及說明:
1.部分正確:因為代碼數過於長,之前寫代碼的時候沒有注意到格式問題,導致后面的很多括號對應出錯,於是if else的嵌套就有判斷失誤問題出現,於是導致了部分正確,最后再看了一遍格式以及括號的對應問題后解決了該問題。
1.2 題目2:7-3 計算天數
1.2.1數據處理:
數據表達:運用了16個整形變量,其中13個是表示每個月天數的變量,另外三個用來表示年月日的值。每個月的數值直接賦值,年月日通過鍵盤輸入進程序。
數據處理:該程序包含標准輸入輸出函數,以及if—else語句和switch語句的嵌套使用,通過if else的判斷語句判斷該年是平年還是閏年。
**函數參數:該代碼只含一個主函數,未涉及被調函數。**
1.2.2實驗代碼截圖:
1.2.3 造測試數據:
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2020/02/07 | 38 | 閏年,月數<=2 |
2020/04/21 | 112 | 閏年,月數>2 |
2019/02/07 | 38 | 平年,月數<=2 |
2019/04/21 | 111 | 平年,月數<=2 |
1.2.4 PTA提交列表及說明:
部分正確1:第一次運行時忘記判定閏年,導致閏年的月份大於2時會少一天
部分正確2:第二次運行時輸出判斷重復,判斷的一些小問題導致輸出語句輸出了2次
2.代碼互評:
同學代碼截圖1:
自己代碼截圖1:
- 1.該同學是用abcx表示年月日的數值,並且直接在switch語句中加上每個月的數值,而我是用y m d(year month day的縮寫)表示年月日,同時將每個月的數值表示出來
- 2.該同學直接用switch判斷出x的天數,再判斷是平年還是閏年,如果是平年就用x-1,比我用兩大段switch的代碼簡單太多
同學代碼截圖2:
自己代碼截圖2:
- 1.該同學代碼與我的代碼截然不同,我的是用純粹的if——else的判斷語句,而該同學用的是switch的判斷,顯然比我的代碼更簡單明智
- 2.該同學運用的是a,b,c,x,y來表示年月日的數值,而我是用year month day來表示,讓人見名知意。
3.學習總結:
3.1 學習進度條:
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
8 | 29h | 508 | 輸入、輸出函數 | 除法的運算法則 |
9 | 34h | 603 | 其他類型的函數如整型浮點型 | 判斷語句if else |
10 | 31h | 563 | for循環、if else判斷 | 近期剛了解到的數組問題 |
11 | 30h | 686 | for循環的嵌套使用、調用自己定義的函數 | 調用自己定義的函數時還不夠熟練 |
12 | 29h | 664 | 判斷語句的進一步學習以及自學while循環與數組 | 判斷語句的嵌套以及while循環不夠熟練,數組有些迷茫 |
13 | 25h | 721 | 判斷語句switch | switch判斷語句運用還不夠熟練 |
3.2 累積代碼行和博客字數:
3.3 學習內容總結和感悟:
3.3.1 學習內容總結:
3.3.2 學習體會:
本周學習到了一個新知識點———switch判斷語句
其用法為:
switch(條件){
case a:執行語句;break;
case b:執行語句;break;
case c:執行語句;break;
case n:執行語句;break;
default:執行條件;break;
}
本周的學習體會:對於本周學習到的switch判斷語句其實一開始我是拒絕的,他麻煩復雜,每條條件都要輸入一次case 一次執行 一次break異常麻煩,但是不久的今天,我看到了其他幾位同學的優秀代碼作業(某位不願透露姓名的劉日華同學),同一份PTA作業我的代碼是70行,他的代碼是40行(此處省略3000字),他的switch語句運用的如魚得水,真的令人刮目相待,所以還是我的經驗太少,思維太慢,所以——存在即合理,對於任何的代碼的存在,它一定有他的優勢之處,因此,不要在剛學到某一樣新事物時就急着否定它!!
然后就到了日常吐槽環節:是琛哥良心發現了嗎嘿嘿,最近幾周的作業都是完成PTA的作業然后挑幾道題目做,表示just so so啦~我已經完全適應這樣的作業強度啦,就這就這??就這點作業就想打敗李大樂了?不可能!!!
又到了每周慣例的逼逼賴賴時間:這周聽說自己的方法僥幸被鄒老師和周老師兩位行業巨頭注意到了,一開始我是非常飄飄然的,但是細細一想這是兩位老師在給我機會表現自己,就慢慢平靜下來了,其實我分享的也不是什么非常特別的方法,對於每一位同學大家應該也都有自己的學習方法,但是每個人自己的學習方法一定是對於自己來說暫時效率最高的方法,對於其他人的優秀方法我們應該學會聆聽,嘗試去試試,說不定可以讓自己提升更快。
最后的最后祝願同學們在最近的考試中:春風得意馬蹄疾,一日看盡長安花