五招,打破面對程式設計題目無從下手的窘境

2021-10-06 20:35:04 字數 2789 閱讀 5739

學習c++半年,分享一些小經驗。很多初學者在做題目時,對題目不知道從**開始分析,不知道從**開始打**,面對題目陷入無從下手的窘境。接下來我從小作業和大作業分別分析,分析我們無從下手的原因和解決方法。

小作業是指像求水花仙數,求素數,解應用題,列印圖案等,這些難度較低,功能需求單一的題目。這些題目往往不需要多檔案格式,也幾乎用不著物件導向的程式設計思想(下面簡稱oop),過程性和結構性程式設計就足以解決問題。只要把演算法設計好,程式流程想清楚,這類題目就解了。

我主要討論的是大作業。

做個總結:分析+設計,即先寫報告再敲**

大作業指的是一些oop專案,在學校階段,我們一般是接觸不到大專案的,課程題目的話大都是讓我們設計一些簡單的系統。但是無論是大專案還是小專案,程式設計思路都是一致的,主體思維模式也是相同的,從小專案開始,要逐漸培養自己的程式設計思想和能力,這對將來不管是做硬體還後台還是前端都有很大的幫助。

先認識下在開發專案時會常遇見的問題,我們在設計和開發oop專案時,會遇到很多問題,總的來說有三種:

1、迷路。很多初學者,大部分的分析和設計都是為了解決最大的問題,而往往忽略了各種細節的問題,這會導致在開發過程中的「迷路」,簡單地說,就是想好了目的地,也計畫一路開電單車去,卻沒考慮到這中間有一大片沼澤地,於是決定換條路,結果來到另一片沼澤地。

2、分析癱瘓。這往往是由於在當前的開發階段沒有弄清所有的細節而感到不能繼續下去。繼續用上面的比喻,這就是你不斷地尋找新的路線結果發現前面不是高山就是沼澤,你只能原地打圈。當然,無論做多少分析,總有更多問題一直到設計時才暴露,這時就需要迅速的分析和設計,並及時對系統進行執行測試。

3、不定要素的分析。這往往是針對大專案而言的,在分析階段,沒有充分的資訊去發現和解決問題,因此在分析階段就試圖分析所有的不定因素會陷入分析癱瘓,繼續比喻,你決定趟過這片沼澤地,結果在中間發現有潛伏的鱷魚,進退維谷。解決這類問題需要多次迴圈的嘗試。不要畏懼失敗和出錯而不敢下手。

知道我們大概會遇到的問題後,來講下怎麼解決,整個過程可以分為5個階段。我用乙個學生資訊管理系統的例子來簡單說明下。

第一階段,制定計畫

首先決定在此過程中應該有哪些步驟,在什麼時間內完成。舉個例子:

解題思路構造,周一,周二

**框架設計,週三

**完善,周四到週日

合理安排,嚴格按照計畫程序,控制好節奏,很多難題會迎刃而解。

**第二階段,題目分析。**就是解決「我們在做什麼」的問題,確定這個系統要做什麼,這一般在題目中會講清楚,但我們必須有自己的理解,實際上就是對下列問題的回答:

1、誰將使用這個系統?(老師)

2、用這個系統做什麼?(管理學生資訊)

3、這個系統如何工作,或者說有什麼功能?(讀取、修改、輸出資料等)

4、使用這個系統會遇到什麼問題?(檔案讀取,資料儲存、修改、刪除,等)

在對第二階段的問題有一定的理解後,就可以深入地進行分析。

**第三階段,需求分析。**從這階段開始寫報告。需求分析分為2部分:功能需求分析和資料需求分析。

功能需求分析,考慮系統需要實現哪些功能,並一一枚舉出來,給自己最直觀地答案。

舉例:學生資訊管理系統,需要實現以下功能:

1、新增學生資訊:使用者輸入學生資訊

2、刪除學生資訊:輸入學生學號,再次確認後刪除學生資訊

3、修改學生資訊:使用者通過指令指定修改指定學生的指定資訊

4、and so on……

資料需求分析,根據功能需求分析,分析各個功能所需的資料。

舉例:根據上述功能需求分析,系統所需的資料如下:

1、學生總人數

2、學生姓名,性別,學號,各科成績

**第四階段,系統設計。**開始系統的框架設計,分為2個步驟:系統框架設計和系統功能設計。

系統框架設計,這一步驟我們必須做出設計、描述出這個系統需要哪些類和它們是如何互動的,即設計出每個類的名字、功能、資料成員、成員函式和每個類的互動方式。

對學生系統的系統框架設計:

學生系統的系統框架

分別有學生類、課程類、管理類和選單類,學生類和課程類以學號作為橋梁連線起來,管理類負責處理資料,選單類為單體類用做互動介面。大概如此,你大可做得更仔細些,對**實現也有利。

系統功能設計,系統的功能是通過類和函式來實現的,這個階段要完成每個功能具體流程的設計,即每個功能的介面是什麼,用到哪幾個類之間的互動,具體操作流程是什麼?

對學生系統的功能設計:

1、選單功能:系統選單,介面提供使用者所有功能選項。

系統選單業務流程圖

2、新增資訊功能:讀取外部資料後,使用者可選擇新增資訊指令。

新增資訊功能業務流程圖

流程圖展示形式並不唯一,自己能理解就行。

**第五階段,**實現。**通過前面的幾個階段,我們對題目本身和解題過程已經有了乙個很明確的方向,這時我們去打**,能很容易的先構建起乙個框架,再將每個功能看作乙個個子集,對每個功能對每個函式逐一進行完善,再加上後期的測試改進,這將是乙個非常優秀的**

提高孩子速度的五招

09 10 2015 2 49pm 第一招 一分鐘專項訓練。1 訓練孩子專心做題。準備幾十個簡單的加減法口算題 根據年級不同,難度可以不同 規定一分鐘,看孩子最多能做多少道題。讓孩子感覺到一分鐘都能做十多個小題,而自己寫作業的時候,有時候幾分鐘也寫不出乙個小題。2 一分鐘寫漢字訓練,找一些筆畫和書寫...

五招遠離熊貓燒香騷擾

1.立即檢查本機administrator組成員口令,一定要放棄簡單口令甚至空口令,安全的口令是字母數字特殊字元的組合,自己記得住,別讓病毒猜到就行。修改方法 右鍵單擊我的電腦,選擇管理,瀏覽到本地使用者和組,在右邊的窗格中,選擇具備管理員許可權的使用者名稱,單擊右鍵,選擇設定密碼,輸入新密碼就行。...

C 類功能擴充套件預留五招

通過派生類來進行功能擴充套件是基本的物件導向的方式,這種方式大如下 class base virtual void fun class derive public base 這種方式下,基類通過宣告虛函式,讓派生類來覆蓋,最後通過多型來實現擴充套件功能。這種方式的最大的缺點是基類的編寫者一般很難確定...