C語言博客作業--函數嵌套調用


一、實驗作業

1.1 PTA題目:遞歸實現順序輸出整數

1.1.1設計思路

定義函數printdigits,形參為n接收數字
判斷n/10是否不等於0
    如果是則遞歸調用函數printdigits(n/10)
輸出當前n的最后一位並換行

1.1.2代碼截圖

1.1.3調試問題

本題比較簡單,思路清晰,一遍就過,並無調試問題。

1.2 學生成績管理系統

1.2.1 畫函數模塊圖,簡要介紹函數功能

new_student( )新增學生信息函數
output_student( )輸出學生信息函數
sum( ),average( )計算總分和平均分函數
sort( )按平均分排序函數;sort1( )學號排序的函數;sort2( )總分排序的函數;
modify( )修改學生成績的函數;search( )查詢學生信息的函數;
delet( )刪除學生成績信息函數;check( )檢查學號的函數

1.2.2 截圖展示工程文件

1.2.3 函數代碼部分截圖

本系統代碼總行數:320
頭文件

插入學生信息及學生成績信息代碼

刪除學生成績信息代碼

總分排序代碼

1.2.4 調試結果展示

菜單

能夠新增學生信息,並計算總分和平均分。

根據輸入學號和課程號修改學生成績信息

根據輸入學號和課程刪除學生成績信息

輸出顯示所有學生成績信息。(按照學號排好序的)

能夠分別按照總分和平均分進行排序

能夠根據學號查詢學生信息

退出系統

用戶學號輸入非法

輸入重復學號

查詢不到相應學生信息

1.2.5 調試碰到問題及解決辦法

  • 1.在調試過程中我突然發現信息的輸出與輸入不符,都是一堆亂碼,這個問題困擾了我很久,因為我之前還是沒問題的,后來突然發現在輸入的那個函數里的count沒有賦初值,所以導致了錯誤。
  • 2.在計算總和和平均分時,由於直接對結構體內容進行了修改,導致其它的一些功能錯誤,比如刪除學生成績這一功能,后來就把它們賦給另一些變量,這樣就解決了問題。

二、截圖本周題目集的PTA最后排名

三、閱讀代碼

猴子吃桃

猴子第一天摘下若干個桃子,當即吃了一半,還不過癮就多吃了一個。第二天早上又將剩下的桃子吃了一半,還是不過癮又多
吃了一個。以后每天都吃前一天剩下的一半再加一個。到第10天剛好剩一個。問猴子第一天摘了多少個桃子?

我們可以先將這10天分開來看,第十天時剩下一個,而這一個正是“前一天剩下的一半再加一個”,那么第九天就是有2*(1+1)=4個,此時再將第九天與第八天一起看,則第8天有2*(3+1)個,由此遞推。

四、本周學習總結

1.1.介紹本周學習內容

  • 1.函數嵌套調用:可以用main函數解決整個問題,它調用解決小問題的函數,而這些函數有進一步調用解決更小問題的函數,從而形成函數的嵌套調用;采用結構化思想,使代碼看起來更加清晰,結構明確。
  • 2.遞歸:利用函數的嵌套調用,可以使函數自己調用自己;遞歸函數有兩個關鍵點,遞歸出口和遞歸式子;這兩個條件缺一不可;遞歸函數實質是把問題簡化成形式相同比較簡單的一些情況,可以解決一些用其他方法很難解決的問題。
  • 3.宏定義格式為:#define 宏名 宏定義字符串
  • 4.宏的用途:(1)符號常量,如PI,數組大小定義,以增加程序的靈活性;(2)簡單的函數功能實現;(3)為程序書寫帶來一些方便,當程序中需要多次書寫一些相同內容時,可以把內容簡寫為宏。注意點:宏只是進行替換。
  • 5.#include<需包含的文件名>這個將從系統文件夾里查找;#include"需包含的文件名"這個將從當前文件夾里查找,找不到再從系統文件夾里找。
  • 6.編譯預處理命令不會被編譯。
  • 7.指針數組定義格式:類型名 *數組名[數組長度];
  • 8.二級指針:指向指針的指針,定義格式為:類型名**變量名;
  • 9.命令行參數:形式為:命令名 參數1 參數2 ··· 參數n。可以在DOS環境的命令窗口中,輸入可執行文件名作為命令,運行該程序。

2.學習體會

在經過了快一個學期的學習,我從這門課程中學到了很多;記得在開學之前我就開始接觸C語言了,在打出自己的第一個代碼Hello World之后,我的內心是無比激動的;后來在經過課堂上的學習與每天打代碼練習,我對於C語言的認識也越來越深,代碼量也越變越大,從當初的寥寥幾行代碼,到現在的幾百行代碼,回顧這個成長的過程,我的有一點成就感。但是隨着學習的不斷深入,我感覺也越來越難了,比如這一次的學生成績管理系統,對於提高它的健壯性,我感到有些無從下手;所以我還需要繼續不斷努力,爭取取得一些好成績。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM