




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第10章 綜合應(yīng)用程序設(shè)計(jì)問(wèn)題問(wèn)題原由原由從從第章介紹了第章介紹了C/C+程序設(shè)計(jì)的基本內(nèi)容。程序設(shè)計(jì)的基本內(nèi)容。怎樣從軟件工程的角度進(jìn)行綜合應(yīng)用程序設(shè)計(jì)呢?怎樣從軟件工程的角度進(jìn)行綜合應(yīng)用程序設(shè)計(jì)呢?本章力圖通過(guò)綜合應(yīng)用程序設(shè)計(jì)實(shí)例,全面了解和本章力圖通過(guò)綜合應(yīng)用程序設(shè)計(jì)實(shí)例,全面了解和掌握開發(fā)應(yīng)用程序的全過(guò)程。掌握開發(fā)應(yīng)用程序的全過(guò)程。本章通過(guò)四本章通過(guò)四個(gè)實(shí)例個(gè)實(shí)例項(xiàng)目項(xiàng)目( (電子電子萬(wàn)年歷、萬(wàn)年歷、俄羅斯方塊俄羅斯方塊游戲、游戲、圖書借閱管理系統(tǒng)、學(xué)生成績(jī)管理圖書借閱管理系統(tǒng)、學(xué)生成績(jī)管理系統(tǒng)系統(tǒng)) )的的程序設(shè)計(jì),全面概括了程序設(shè)計(jì),全面概括了C語(yǔ)言的所有內(nèi)容以語(yǔ)言的所有內(nèi)容以及
2、及C+語(yǔ)言的初步應(yīng)用,語(yǔ)言的初步應(yīng)用,教學(xué)教學(xué)重點(diǎn)重點(diǎn)能力能力要求要求掌握掌握: : 應(yīng)用應(yīng)用程序的基本設(shè)計(jì)方法的開發(fā)步驟。程序的基本設(shè)計(jì)方法的開發(fā)步驟。了解:了解:通過(guò)應(yīng)用成績(jī)?cè)O(shè)計(jì),了解軟件工程概念。通過(guò)應(yīng)用成績(jī)?cè)O(shè)計(jì),了解軟件工程概念。熟悉熟悉: : 編寫程序代碼、程序調(diào)試和程序測(cè)試方法。編寫程序代碼、程序調(diào)試和程序測(cè)試方法。 2 10.1 電子萬(wàn)年歷電子萬(wàn)年歷 10.4 學(xué)生成績(jī)管理系統(tǒng)學(xué)生成績(jī)管理系統(tǒng) 10.3 圖書借閱管理系統(tǒng)圖書借閱管理系統(tǒng) 10.2 俄羅斯方塊游戲俄羅斯方塊游戲310.1電子萬(wàn)年歷 電子萬(wàn)年歷在計(jì)算機(jī)系統(tǒng)中、手機(jī)里、電子詞典中、電子萬(wàn)年歷在計(jì)算機(jī)系統(tǒng)中、手機(jī)里、電子
3、詞典中、MP4播放器中、辦公桌上,甚至家庭擺設(shè)等隨處可見。播放器中、辦公桌上,甚至家庭擺設(shè)等隨處可見。 掌握語(yǔ)言程序設(shè)計(jì)的基本知識(shí)、基本思想和基本應(yīng)用,掌握語(yǔ)言程序設(shè)計(jì)的基本知識(shí)、基本思想和基本應(yīng)用,熟悉了解開發(fā)應(yīng)用系統(tǒng)的基本方法。熟悉了解開發(fā)應(yīng)用系統(tǒng)的基本方法。 標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸入/輸出函數(shù)的應(yīng)用;輸出函數(shù)的應(yīng)用; 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)方法;順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)方法; 系統(tǒng)庫(kù)函數(shù)的應(yīng)用方法;系統(tǒng)庫(kù)函數(shù)的應(yīng)用方法; 用戶自定義函數(shù)的定義、聲明及調(diào)用方法等。用戶自定義函數(shù)的定義、聲明及調(diào)用方法等。 按功能模塊進(jìn)行設(shè)計(jì)、組織、調(diào)試的基本方法。按功能模塊進(jìn)行設(shè)計(jì)、組
4、織、調(diào)試的基本方法。 410.1.2系統(tǒng)需求分析 電子萬(wàn)年歷用來(lái)提供查詢電子萬(wàn)年歷用來(lái)提供查詢,主要實(shí)現(xiàn)以下三個(gè)查詢功能主要實(shí)現(xiàn)以下三個(gè)查詢功能: 功能功能1:要求從鍵盤輸入年份,輸出該年要求從鍵盤輸入年份,輸出該年12個(gè)月的日歷。個(gè)月的日歷。 功能功能2:要求從鍵盤輸入年份和月份,輸出該月的日歷。要求從鍵盤輸入年份和月份,輸出該月的日歷。 功能功能3:要求從鍵盤輸入年要求從鍵盤輸入年、月月、日日, 輸出該日是星期幾輸出該日是星期幾。 日歷顯示功能:日歷顯示功能:自動(dòng)顯示系統(tǒng)日期所在月份的月歷,自動(dòng)顯示系統(tǒng)日期所在月份的月歷,并能突出顯示當(dāng)期日期。并能突出顯示當(dāng)期日期。 日期查詢功能:日期查詢
5、功能:顯示查詢?nèi)掌?、月份、是否為閏年。顯示查詢?nèi)掌凇⒃路荨⑹欠駷殚c年。 支持鍵盤操作:支持鍵盤操作:通過(guò)鍵盤調(diào)整年份、月份和日期。通過(guò)鍵盤調(diào)整年份、月份和日期。 參數(shù)排錯(cuò)功能:參數(shù)排錯(cuò)功能:能對(duì)輸入的日期進(jìn)行合法性檢查。能對(duì)輸入的日期進(jìn)行合法性檢查。510.1.3系統(tǒng)總體設(shè)計(jì)根據(jù)以上需求分析,系統(tǒng)應(yīng)有功能控制、打印輸出、日歷根據(jù)以上需求分析,系統(tǒng)應(yīng)有功能控制、打印輸出、日歷顯示和鍵值獲取等顯示和鍵值獲取等4個(gè)功能模塊,系統(tǒng)結(jié)構(gòu)如圖個(gè)功能模塊,系統(tǒng)結(jié)構(gòu)如圖101所示。所示。 圖圖 101 系統(tǒng)功能模塊系統(tǒng)功能模塊功功能能控控制制模模塊塊打打印印輸輸出出模模塊塊日日歷歷顯顯示示模模塊塊鍵鍵值值獲獲
6、取取模模塊塊萬(wàn)年歷系統(tǒng)萬(wàn)年歷系統(tǒng)610.1.3系統(tǒng)總體設(shè)計(jì) 本系統(tǒng)的結(jié)構(gòu)由本系統(tǒng)的結(jié)構(gòu)由4個(gè)模個(gè)模塊所組成,由主函數(shù)塊所組成,由主函數(shù)main()實(shí)行控制,按照系統(tǒng)工作實(shí)行控制,按照系統(tǒng)工作順序,其工作流程如圖順序,其工作流程如圖102所示。所示。主控函數(shù)主要對(duì)輸入主控函數(shù)主要對(duì)輸入?yún)?shù)進(jìn)行檢查,以保證輸參數(shù)進(jìn)行檢查,以保證輸入?yún)?shù)正確,不會(huì)對(duì)后續(xù)入?yún)?shù)正確,不會(huì)對(duì)后續(xù)程序造成影響;其次,對(duì)程序造成影響;其次,對(duì)輸入的年份和月份進(jìn)行處輸入的年份和月份進(jìn)行處理和計(jì)算,判斷輸入年份理和計(jì)算,判斷輸入年份是否為閏年。是否為閏年。圖圖 10102 2 萬(wàn)年歷設(shè)計(jì)流程圖萬(wàn)年歷設(shè)計(jì)流程圖顯示當(dāng)日日期顯示當(dāng)
7、日日期開開 始始結(jié)結(jié) 束束顯示當(dāng)月第顯示當(dāng)月第1 1天是星期幾天是星期幾是否為閏年是否為閏年輸入輸入yearyear、monthmonth、dayday輸入合法嗎?輸入合法嗎?710.1.3系統(tǒng)總體設(shè)計(jì) 功能控制模塊:功能控制模塊:用來(lái)實(shí)現(xiàn)日期合法性檢查、閏年判斷和用來(lái)實(shí)現(xiàn)日期合法性檢查、閏年判斷和星期計(jì)算。星期計(jì)算。 打印輸出模塊:打印輸出模塊:用來(lái)實(shí)現(xiàn)輸出顯示和打印指定個(gè)數(shù)的空用來(lái)實(shí)現(xiàn)輸出顯示和打印指定個(gè)數(shù)的空格、打印分隔線、打印用戶使用手冊(cè)、打印當(dāng)前日期你對(duì)應(yīng)的格、打印分隔線、打印用戶使用手冊(cè)、打印當(dāng)前日期你對(duì)應(yīng)的星期以及打印給定的星期。星期以及打印給定的星期。 日歷顯示模塊:日歷顯示模
8、塊:用來(lái)實(shí)現(xiàn)日歷生成和顯示。用來(lái)實(shí)現(xiàn)日歷生成和顯示。 鍵值獲取模塊:鍵值獲取模塊:主要用于對(duì)鍵盤操作的響應(yīng),由函數(shù)主要用于對(duì)鍵盤操作的響應(yīng),由函數(shù)void getKey Value()獲取按鍵值,根據(jù)鍵值調(diào)整當(dāng)前日期,并調(diào)獲取按鍵值,根據(jù)鍵值調(diào)整當(dāng)前日期,并調(diào)用日歷顯示模塊中的用日歷顯示模塊中的showCalendar()函數(shù)來(lái)實(shí)現(xiàn)日歷生成和輸函數(shù)來(lái)實(shí)現(xiàn)日歷生成和輸出,其實(shí)現(xiàn)過(guò)程如圖出,其實(shí)現(xiàn)過(guò)程如圖104所示。所示。 810.1.3系統(tǒng)總體設(shè)計(jì) 本程序沒有自定義結(jié)構(gòu)體,僅定義了全局變量。本程序沒有自定義結(jié)構(gòu)體,僅定義了全局變量。 struct date sysTime:系統(tǒng)結(jié)構(gòu)體,用于存儲(chǔ)系
9、統(tǒng)系統(tǒng)結(jié)構(gòu)體,用于存儲(chǔ)系統(tǒng)日期。該結(jié)構(gòu)體有日期。該結(jié)構(gòu)體有3個(gè)成員,分別是個(gè)成員,分別是da_year、da_mon和和da_day,分別表示年、月和日。,分別表示年、月和日。 int currentYear:表示當(dāng)前的年份。表示當(dāng)前的年份。 int currentMonth:表示當(dāng)前的月份。表示當(dāng)前的月份。 int currentDay:表示當(dāng)前的日期。表示當(dāng)前的日期。 int n_currentMon:表示當(dāng)前月的天數(shù)。表示當(dāng)前月的天數(shù)。 int n_lastMon:表示上一個(gè)月的天數(shù)。表示上一個(gè)月的天數(shù)。910.1.4 系統(tǒng)功能實(shí)現(xiàn) 電子萬(wàn)年歷系統(tǒng)設(shè)計(jì)項(xiàng)目的實(shí)現(xiàn)分為項(xiàng)目建立、項(xiàng)目需電子萬(wàn)
10、年歷系統(tǒng)設(shè)計(jì)項(xiàng)目的實(shí)現(xiàn)分為項(xiàng)目建立、項(xiàng)目需求分析、項(xiàng)目算法設(shè)計(jì)、代碼編寫與調(diào)試、代碼測(cè)試、代碼求分析、項(xiàng)目算法設(shè)計(jì)、代碼編寫與調(diào)試、代碼測(cè)試、代碼完善等多個(gè)環(huán)節(jié)。完善等多個(gè)環(huán)節(jié)。 在進(jìn)行本項(xiàng)目的程序設(shè)計(jì)時(shí),建議按教材在進(jìn)行本項(xiàng)目的程序設(shè)計(jì)時(shí),建議按教材358頁(yè)表頁(yè)表101定義定義模塊中的函數(shù),然后進(jìn)行調(diào)試。模塊中的函數(shù),然后進(jìn)行調(diào)試。 根據(jù)模塊結(jié)構(gòu),按模塊進(jìn)行編程,并在每個(gè)程序代碼前根據(jù)模塊結(jié)構(gòu),按模塊進(jìn)行編程,并在每個(gè)程序代碼前寫上模塊顯示結(jié)構(gòu)。寫上模塊顯示結(jié)構(gòu)。 參數(shù)輸入與驗(yàn)證:參數(shù)輸入與驗(yàn)證:對(duì)輸入?yún)?shù)作驗(yàn)證,若輸入?yún)?shù)對(duì)輸入?yún)?shù)作驗(yàn)證,若輸入?yún)?shù)不合法,則重新輸入,允許輸入不合法,則重
11、新輸入,允許輸入3次,若次,若3次均不正確,則結(jié)次均不正確,則結(jié)束程序束程序 。1010.1.4 系統(tǒng)功能實(shí)現(xiàn) 閏年判斷:閏年判斷:判斷判斷year為閏年還是平年,為后續(xù)程序設(shè)為閏年還是平年,為后續(xù)程序設(shè)計(jì)作判斷。仿照算法設(shè)計(jì)中的公式,寫出閏年判斷函數(shù)計(jì)作判斷。仿照算法設(shè)計(jì)中的公式,寫出閏年判斷函數(shù)leapyear()。 計(jì)算是星期幾:計(jì)算是星期幾:根據(jù)根據(jù)dayNum()函數(shù)返回的結(jié)果,計(jì)函數(shù)返回的結(jié)果,計(jì)算算month中的星期值。中的星期值。 計(jì)算是第幾天:計(jì)算是第幾天:根據(jù)輸入的根據(jù)輸入的month值,計(jì)算值,計(jì)算month第第一天在該年中是第多少天。一天在該年中是第多少天。 易修改:易
12、修改:為了便于日后修改,每個(gè)函數(shù)應(yīng)在入口處為了便于日后修改,每個(gè)函數(shù)應(yīng)在入口處加入較詳細(xì)的注釋。加入較詳細(xì)的注釋。 易記憶:易記憶:給變量命名時(shí),名字中盡可能多地包含必給變量命名時(shí),名字中盡可能多地包含必要的信息。要的信息。1110.1.4 系統(tǒng)功能實(shí)現(xiàn) 易閱讀:易閱讀:當(dāng)結(jié)構(gòu)嵌套時(shí),內(nèi)層結(jié)構(gòu)采用縮進(jìn)形式,當(dāng)結(jié)構(gòu)嵌套時(shí),內(nèi)層結(jié)構(gòu)采用縮進(jìn)形式,以明確結(jié)構(gòu)的界限。以明確結(jié)構(gòu)的界限。 易理解:易理解:盡量采用容易理解的表達(dá)式。盡量采用容易理解的表達(dá)式。 易排錯(cuò):易排錯(cuò):編碼最基本的要求是語(yǔ)法和邏輯的正確。編碼最基本的要求是語(yǔ)法和邏輯的正確。 異常處理:異常處理:通過(guò)輸入錯(cuò)誤數(shù)據(jù)格式驗(yàn)證工程代碼對(duì)通過(guò)
13、輸入錯(cuò)誤數(shù)據(jù)格式驗(yàn)證工程代碼對(duì)異常輸入的處理能力。異常輸入的處理能力。 平年平年2月驗(yàn)證:月驗(yàn)證:輸入輸入2011-2能驗(yàn)證千年能驗(yàn)證千年2月的打印輸出。月的打印輸出。 閏年其它月份驗(yàn)證:閏年其它月份驗(yàn)證:輸入閏年的其它月份如輸入閏年的其它月份如2012-11可以驗(yàn)證輸出結(jié)果。可以驗(yàn)證輸出結(jié)果。 平年其它月份驗(yàn)證:平年其它月份驗(yàn)證:輸入平年其它月份如輸入平年其它月份如2011-11可可以驗(yàn)證輸出結(jié)果。以驗(yàn)證輸出結(jié)果。 1210.2 俄羅斯方塊游戲 本項(xiàng)目旨在訓(xùn)練學(xué)生的基本編程能力和游戲開發(fā)技巧,本項(xiàng)目旨在訓(xùn)練學(xué)生的基本編程能力和游戲開發(fā)技巧,熟悉熟悉C語(yǔ)言圖形模式下的編程。本項(xiàng)目中涉及語(yǔ)言圖形
14、模式下的編程。本項(xiàng)目中涉及C語(yǔ)言的結(jié)構(gòu)語(yǔ)言的結(jié)構(gòu)體、數(shù)組、時(shí)鐘中斷及繪圖等方面的知識(shí)。體、數(shù)組、時(shí)鐘中斷及繪圖等方面的知識(shí)。 這里介紹開發(fā)俄羅斯方塊游戲的實(shí)現(xiàn)方法,用這里介紹開發(fā)俄羅斯方塊游戲的實(shí)現(xiàn)方法,用C語(yǔ)言編語(yǔ)言編程實(shí)現(xiàn)俄羅斯方塊游戲涉及的主要知識(shí)點(diǎn)有以下幾個(gè)方面:程實(shí)現(xiàn)俄羅斯方塊游戲涉及的主要知識(shí)點(diǎn)有以下幾個(gè)方面:結(jié)構(gòu)體、數(shù)組、時(shí)鐘中斷及繪圖等方面的知識(shí)。結(jié)構(gòu)體、數(shù)組、時(shí)鐘中斷及繪圖等方面的知識(shí)。 應(yīng)用結(jié)構(gòu)體類型編程;應(yīng)用結(jié)構(gòu)體類型編程; 應(yīng)用數(shù)組編程;應(yīng)用數(shù)組編程; 時(shí)鐘中斷系統(tǒng)的應(yīng)用方法;時(shí)鐘中斷系統(tǒng)的應(yīng)用方法; C語(yǔ)言的繪圖知識(shí)等;語(yǔ)言的繪圖知識(shí)等;1310.2.2 系統(tǒng)需求分析
15、 游戲本身是一種娛樂,因此,必須使游戲者在游戲過(guò)程游戲本身是一種娛樂,因此,必須使游戲者在游戲過(guò)程中感到有趣。與此同時(shí),通過(guò)這種中感到有趣。與此同時(shí),通過(guò)這種“娛樂娛樂”,應(yīng)能對(duì)游戲者,應(yīng)能對(duì)游戲者在智能、創(chuàng)造性等方面具有一定的啟迪、激發(fā)、引導(dǎo)作用。在智能、創(chuàng)造性等方面具有一定的啟迪、激發(fā)、引導(dǎo)作用。 要使游戲者感到該游戲格外有趣,在游戲操作過(guò)程中,要使游戲者感到該游戲格外有趣,在游戲操作過(guò)程中,游戲系統(tǒng)應(yīng)具有以下功能和特點(diǎn):游戲系統(tǒng)應(yīng)具有以下功能和特點(diǎn): 游戲操作引導(dǎo):游戲操作引導(dǎo):在游戲過(guò)程中,在當(dāng)前游戲畫面中,在游戲過(guò)程中,在當(dāng)前游戲畫面中,出現(xiàn)下一個(gè)游戲方塊,這樣有利于游戲者控制游戲的
16、策略。出現(xiàn)下一個(gè)游戲方塊,這樣有利于游戲者控制游戲的策略。 方便任意操作:方便任意操作:能實(shí)現(xiàn)對(duì)游戲方塊的左、右、下、能實(shí)現(xiàn)對(duì)游戲方塊的左、右、下、上的快速移動(dòng)、下落和旋轉(zhuǎn)。上的快速移動(dòng)、下落和旋轉(zhuǎn)。1410.2.2 系統(tǒng)需求分析 畫面顯示更新:畫面顯示更新:當(dāng)游戲方塊左右移動(dòng)、下落、旋轉(zhuǎn)時(shí),當(dāng)游戲方塊左右移動(dòng)、下落、旋轉(zhuǎn)時(shí),要清除先前的游戲方塊。要清除先前的游戲方塊。 具有成績(jī)記錄:具有成績(jī)記錄:在游戲過(guò)程中自動(dòng)計(jì)算游戲分?jǐn)?shù),以激在游戲過(guò)程中自動(dòng)計(jì)算游戲分?jǐn)?shù),以激勵(lì)游戲者具有技能性的操作。勵(lì)游戲者具有技能性的操作。 游戲幫助功能:游戲幫助功能:游戲者進(jìn)入游戲后,系統(tǒng)具有隨時(shí)跟蹤游戲者進(jìn)入游戲
17、后,系統(tǒng)具有隨時(shí)跟蹤本游戲如何操作的友情提示。本游戲如何操作的友情提示。1510.2.3 系統(tǒng)總體設(shè)計(jì) 根據(jù)以上需求分析,系統(tǒng)應(yīng)有游戲方塊預(yù)覽功能、控制根據(jù)以上需求分析,系統(tǒng)應(yīng)有游戲方塊預(yù)覽功能、控制功能、顯示更新功能、速度更新功能、幫助功能等,其模塊功能、顯示更新功能、速度更新功能、幫助功能等,其模塊結(jié)構(gòu)如圖結(jié)構(gòu)如圖105所示:所示:圖圖 105 俄羅斯方塊游戲功能描述圖俄羅斯方塊游戲功能描述圖方方塊塊預(yù)預(yù)覽覽模模塊塊方方塊塊控控制制模模塊塊顯顯示示更更新新模模塊塊分分?jǐn)?shù)數(shù)更更新新模模塊塊俄羅斯方塊游戲俄羅斯方塊游戲幫幫助助功功能能模模塊塊16 方塊預(yù)覽模塊:方塊預(yù)覽模塊:在游戲過(guò)程中,當(dāng)在
18、游戲底板中出現(xiàn)在游戲過(guò)程中,當(dāng)在游戲底板中出現(xiàn)一個(gè)游戲方塊時(shí)一個(gè)游戲方塊時(shí),必須在游戲方塊預(yù)覽區(qū)域中出現(xiàn)下一個(gè)游戲必須在游戲方塊預(yù)覽區(qū)域中出現(xiàn)下一個(gè)游戲方塊,這樣有利于游戲玩家控制游戲的策略。方塊,這樣有利于游戲玩家控制游戲的策略。 方塊控制模塊:方塊控制模塊:通過(guò)各種條件的判斷,實(shí)現(xiàn)對(duì)游戲方通過(guò)各種條件的判斷,實(shí)現(xiàn)對(duì)游戲方塊的左移、右移、快速下移、自由下落、旋轉(zhuǎn)功能以及行滿塊的左移、右移、快速下移、自由下落、旋轉(zhuǎn)功能以及行滿消除行的功能。消除行的功能。 顯示更新模塊:顯示更新模塊:當(dāng)游戲方塊左右移動(dòng)、下落、旋轉(zhuǎn)時(shí)當(dāng)游戲方塊左右移動(dòng)、下落、旋轉(zhuǎn)時(shí),要清除先前的游戲方塊要清除先前的游戲方塊,用新
19、坐標(biāo)重繪游戲方塊。當(dāng)消除滿行用新坐標(biāo)重繪游戲方塊。當(dāng)消除滿行時(shí),要重繪游戲底板的當(dāng)前狀態(tài)。時(shí),要重繪游戲底板的當(dāng)前狀態(tài)。 速度更新模塊:速度更新模塊:在游戲者進(jìn)行游戲過(guò)程中,需要按照在游戲者進(jìn)行游戲過(guò)程中,需要按照一定的游戲規(guī)則給游戲者計(jì)算游戲分?jǐn)?shù)。一定的游戲規(guī)則給游戲者計(jì)算游戲分?jǐn)?shù)。 幫助功能模塊:幫助功能模塊:游戲者進(jìn)入游戲后,將有對(duì)本游戲如游戲者進(jìn)入游戲后,將有對(duì)本游戲如何操作的溫馨提示。何操作的溫馨提示。10.2.3 系統(tǒng)總體設(shè)計(jì)17 主控函數(shù)主控函數(shù)main( )實(shí)現(xiàn)對(duì)整個(gè)程序的運(yùn)行控流程制以及相關(guān)實(shí)現(xiàn)對(duì)整個(gè)程序的運(yùn)行控流程制以及相關(guān)功能模塊的調(diào)用功能模塊的調(diào)用。 整個(gè)游戲的操作是通
20、過(guò)以下整個(gè)游戲的操作是通過(guò)以下5個(gè)功能模塊來(lái)實(shí)現(xiàn)的。個(gè)功能模塊來(lái)實(shí)現(xiàn)的。 方塊預(yù)覽模塊:方塊預(yù)覽模塊:游戲方塊將在如圖游戲方塊將在如圖107所示的所示的44的的正方形小方塊中預(yù)覽。正方形小方塊中預(yù)覽。 方塊控制模塊:方塊控制模塊:這是該游戲開發(fā)的重點(diǎn)和難點(diǎn)部分。這是該游戲開發(fā)的重點(diǎn)和難點(diǎn)部分。 左移的實(shí)現(xiàn)過(guò)程。左移的實(shí)現(xiàn)過(guò)程。 右移的實(shí)現(xiàn)過(guò)程右移的實(shí)現(xiàn)過(guò)程 下移的實(shí)現(xiàn)過(guò)程下移的實(shí)現(xiàn)過(guò)程 旋轉(zhuǎn)的實(shí)現(xiàn)過(guò)程旋轉(zhuǎn)的實(shí)現(xiàn)過(guò)程10.2.3 系統(tǒng)總體設(shè)計(jì)圖圖10107 7 游戲方塊預(yù)覽游戲方塊預(yù)覽18 顯示更新模塊:顯示更新模塊:清除游戲方塊的過(guò)程是先畫輪廓再填清除游戲方塊的過(guò)程是先畫輪廓再填充的方式,使用
21、背景色填充小方塊,然后使用前景色畫一個(gè)游充的方式,使用背景色填充小方塊,然后使用前景色畫一個(gè)游戲底板中的小方塊。戲底板中的小方塊。 分?jǐn)?shù)更新模塊:分?jǐn)?shù)更新模塊:當(dāng)判斷出一行滿時(shí)當(dāng)判斷出一行滿時(shí),score變量加一固變量加一固定值定值(如如10),可以把等級(jí),可以把等級(jí)level看作是速度看作是速度speed 游戲底板游戲底板BOARD結(jié)構(gòu)體結(jié)構(gòu)體 游戲方塊游戲方塊SHAPE結(jié)構(gòu)體結(jié)構(gòu)體 SHAPE結(jié)構(gòu)數(shù)組結(jié)構(gòu)數(shù)組10.2.3 系統(tǒng)總體設(shè)計(jì)1910.2.4 系統(tǒng)功能實(shí)現(xiàn) 在進(jìn)行本項(xiàng)目的程序設(shè)計(jì)時(shí),建議按教材在進(jìn)行本項(xiàng)目的程序設(shè)計(jì)時(shí),建議按教材367頁(yè)表頁(yè)表102定義模塊中的函數(shù),然后進(jìn)行調(diào)試。定
22、義模塊中的函數(shù),然后進(jìn)行調(diào)試。 俄羅斯方塊程序按模塊化編程,分為俄羅斯方塊程序按模塊化編程,分為4個(gè)功能模塊個(gè)功能模塊 。 主函數(shù)主函數(shù)main():實(shí)現(xiàn)對(duì)整個(gè)程序的運(yùn)行控制。實(shí)現(xiàn)對(duì)整個(gè)程序的運(yùn)行控制。 時(shí)鐘中斷處理:時(shí)鐘中斷處理:速度越快,時(shí)間中斷的間隔也就越短。速度越快,時(shí)間中斷的間隔也就越短。 成績(jī)、速度及幫助的顯示:成績(jī)、速度及幫助的顯示:為了幫助游戲者操作,必為了幫助游戲者操作,必須提供幫助,為了鼓勵(lì)游戲者,必須顯示游戲成績(jī)與速度。須提供幫助,為了鼓勵(lì)游戲者,必須顯示游戲成績(jī)與速度。 滿行處理:滿行處理:當(dāng)游戲方塊不能滿足相關(guān)操作條件時(shí),可當(dāng)游戲方塊不能滿足相關(guān)操作條件時(shí),可以調(diào)用以
23、下函數(shù)來(lái)處理。以調(diào)用以下函數(shù)來(lái)處理。2010.3 圖書借閱管理系統(tǒng) 設(shè)計(jì)一個(gè)圖書借閱管理系統(tǒng),需要使用函數(shù)、數(shù)組、指針、設(shè)計(jì)一個(gè)圖書借閱管理系統(tǒng),需要使用函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、鏈表和文件等,基本上涵蓋了結(jié)構(gòu)體、鏈表和文件等,基本上涵蓋了C語(yǔ)言程序設(shè)計(jì)的所有語(yǔ)言程序設(shè)計(jì)的所有基礎(chǔ)階段的知識(shí)。基礎(chǔ)階段的知識(shí)。 函數(shù)的定義與調(diào)用;函數(shù)的定義與調(diào)用; 指針變量做為函數(shù)參數(shù);指針變量做為函數(shù)參數(shù); 結(jié)構(gòu)體數(shù)組的應(yīng)用;結(jié)構(gòu)體數(shù)組的應(yīng)用; 字符串函數(shù)的應(yīng)用;字符串函數(shù)的應(yīng)用; 文件的打開、關(guān)閉及讀文件的打開、關(guān)閉及讀/寫操作等。寫操作等。2110.3.2 系統(tǒng)需求分析 圖書借閱管理系統(tǒng)中的實(shí)體主要有圖書
24、和用戶。對(duì)一般圖書借閱管理系統(tǒng)中的實(shí)體主要有圖書和用戶。對(duì)一般用戶來(lái)說(shuō),主要功能有查找圖書、瀏覽圖書、借書、還書等;用戶來(lái)說(shuō),主要功能有查找圖書、瀏覽圖書、借書、還書等;對(duì)管理員來(lái)說(shuō),除了一般用戶的權(quán)限外,還具備有管理功能,對(duì)管理員來(lái)說(shuō),除了一般用戶的權(quán)限外,還具備有管理功能,即注冊(cè)圖書、注冊(cè)用戶、注銷圖書、注銷用戶等維護(hù)管理功即注冊(cè)圖書、注冊(cè)用戶、注銷圖書、注銷用戶等維護(hù)管理功能。能。 一個(gè)功能比較完善、具有實(shí)用價(jià)值的圖書借閱管理系統(tǒng),一個(gè)功能比較完善、具有實(shí)用價(jià)值的圖書借閱管理系統(tǒng),從業(yè)務(wù)流程來(lái)講,要求能實(shí)現(xiàn)用戶的注冊(cè)、注銷、查找、瀏從業(yè)務(wù)流程來(lái)講,要求能實(shí)現(xiàn)用戶的注冊(cè)、注銷、查找、瀏覽、
25、借書、還書,圖書的注冊(cè)、注銷、查找、瀏覽、外借和覽、借書、還書,圖書的注冊(cè)、注銷、查找、瀏覽、外借和歸還等。因此,應(yīng)具有以下歸還等。因此,應(yīng)具有以下6項(xiàng)基本功能。項(xiàng)基本功能。 用戶登錄:用戶登錄:系統(tǒng)用戶分為管理員和學(xué)生。系統(tǒng)用戶分為管理員和學(xué)生。 2210.3.2 系統(tǒng)需求分析 圖書信息管理:圖書信息管理:包括;書號(hào)、書名、作者、圖書分包括;書號(hào)、書名、作者、圖書分類、出版社、出版時(shí)間、單價(jià)、總量和庫(kù)存量。類、出版社、出版時(shí)間、單價(jià)、總量和庫(kù)存量。 學(xué)生信息管理。學(xué)生信息管理。包括:輸入學(xué)生信息、保存學(xué)生信包括:輸入學(xué)生信息、保存學(xué)生信息、修改學(xué)生信息、添加學(xué)生信息、刪除和輸出學(xué)生信息。息、
26、修改學(xué)生信息、添加學(xué)生信息、刪除和輸出學(xué)生信息。 圖書查詢功能:圖書查詢功能:圖書查詢分為:按書名查詢、按作圖書查詢分為:按書名查詢、按作者查詢者查詢、按圖書分類查詢按圖書分類查詢、按出版社查詢和按出版時(shí)間查詢。按出版社查詢和按出版時(shí)間查詢。 借書功能:借書功能:借書時(shí),先判斷學(xué)生是否有空閑的借書借書時(shí),先判斷學(xué)生是否有空閑的借書卡,若有空閑的借書卡,則要求學(xué)生輸入所借圖書的書號(hào)???,若有空閑的借書卡,則要求學(xué)生輸入所借圖書的書號(hào)。 還書功能:還書功能:還書時(shí),先檢查學(xué)生的借書卡,然后要還書時(shí),先檢查學(xué)生的借書卡,然后要求學(xué)生輸入所還圖書的書號(hào),將對(duì)應(yīng)借書卡上的記錄清零,求學(xué)生輸入所還圖書的書
27、號(hào),將對(duì)應(yīng)借書卡上的記錄清零,并修改該書的庫(kù)存量。并修改該書的庫(kù)存量。2310.3.3 系統(tǒng)總體設(shè)計(jì) 根據(jù)上述需求分析,圖書借閱管理系統(tǒng)應(yīng)具有用戶登錄根據(jù)上述需求分析,圖書借閱管理系統(tǒng)應(yīng)具有用戶登錄管理模塊、圖書信息管理模塊、學(xué)生信息管理模塊、圖書查管理模塊、圖書信息管理模塊、學(xué)生信息管理模塊、圖書查詢管理模塊、圖書借閱管理模塊,其結(jié)構(gòu)如圖詢管理模塊、圖書借閱管理模塊,其結(jié)構(gòu)如圖109所示。所示。 用戶登錄管理模塊:用戶登錄管理模塊:用于實(shí)現(xiàn)管理員和學(xué)生登錄管理。用于實(shí)現(xiàn)管理員和學(xué)生登錄管理。 圖書信息管理模塊:圖書信息管理模塊:用于實(shí)現(xiàn)圖書信息的輸入、保存、用于實(shí)現(xiàn)圖書信息的輸入、保存、修改
28、、添加、刪除、輸出等。修改、添加、刪除、輸出等。 學(xué)生信息管理模塊:學(xué)生信息管理模塊:用于實(shí)現(xiàn)學(xué)生信息的輸入、保存、用于實(shí)現(xiàn)學(xué)生信息的輸入、保存、修改、添加、刪除、輸出等。修改、添加、刪除、輸出等。 圖書查詢管理模塊:圖書查詢管理模塊:用于實(shí)現(xiàn)按不同條件對(duì)圖書信息用于實(shí)現(xiàn)按不同條件對(duì)圖書信息進(jìn)行查詢。進(jìn)行查詢。 圖書借閱管理模塊:圖書借閱管理模塊:用于實(shí)現(xiàn)圖書的借閱和歸還管理。用于實(shí)現(xiàn)圖書的借閱和歸還管理。24 圖書借閱管理系統(tǒng)由圖書借閱管理系統(tǒng)由5個(gè)模塊組成,所有模塊都位于主函個(gè)模塊組成,所有模塊都位于主函數(shù)數(shù)main()之下,用戶通過(guò)主函數(shù)中提供的菜單選擇相應(yīng)的模塊,之下,用戶通過(guò)主函數(shù)中
29、提供的菜單選擇相應(yīng)的模塊,執(zhí)行具體的功能操作,因此,主函數(shù)的設(shè)計(jì)是極為重要的執(zhí)行具體的功能操作,因此,主函數(shù)的設(shè)計(jì)是極為重要的。 用戶登錄管理模塊:用戶登錄管理模塊:是進(jìn)入圖書借閱管理系統(tǒng)的必備模是進(jìn)入圖書借閱管理系統(tǒng)的必備模塊,主要實(shí)現(xiàn)兩項(xiàng)功能,一是用來(lái)完成管理員登錄工作塊,主要實(shí)現(xiàn)兩項(xiàng)功能,一是用來(lái)完成管理員登錄工作 ;二是;二是用來(lái)完成學(xué)生登錄工作用來(lái)完成學(xué)生登錄工作 。 圖書信息管理模塊:圖書信息管理模塊:用于實(shí)現(xiàn)圖書信息的輸入、保存、用于實(shí)現(xiàn)圖書信息的輸入、保存、修改、添加、刪除、輸出等修改、添加、刪除、輸出等6個(gè)方面的操作。個(gè)方面的操作。 學(xué)生信息管理模塊:學(xué)生信息管理模塊:其功能
30、與圖書信息管理模塊相似,其功能與圖書信息管理模塊相似,它用于實(shí)現(xiàn)學(xué)生信息的輸入、保存、修改、添加、刪除、輸出它用于實(shí)現(xiàn)學(xué)生信息的輸入、保存、修改、添加、刪除、輸出等等6個(gè)方面的操作。個(gè)方面的操作。 10.3.3 系統(tǒng)總體設(shè)計(jì)25 圖書信息查詢模塊:圖書信息查詢模塊:用于實(shí)現(xiàn)按不同條件對(duì)圖書信息進(jìn)用于實(shí)現(xiàn)按不同條件對(duì)圖書信息進(jìn)行查詢。行查詢。 圖書借閱管理模塊:圖書借閱管理模塊:主要是對(duì)圖書借閱卡的信息管理,主要是對(duì)圖書借閱卡的信息管理,包括圖書借閱管理和圖書歸還管理。包括圖書借閱管理和圖書歸還管理。 該系統(tǒng)可以定義四種結(jié)構(gòu)體類型,包括日期類型、借書卡該系統(tǒng)可以定義四種結(jié)構(gòu)體類型,包括日期類型、
31、借書卡類型、圖書類型和學(xué)生類型,其中在圖書類型中要使用日期類類型、圖書類型和學(xué)生類型,其中在圖書類型中要使用日期類型,而在學(xué)生類型中要使用日期和借書卡類型。型,而在學(xué)生類型中要使用日期和借書卡類型。10.3.3 系統(tǒng)總體設(shè)計(jì)2610.3.4 系統(tǒng)功能實(shí)現(xiàn) 為便于設(shè)計(jì)出圖書借閱管理系統(tǒng),這里給出圖書借閱管為便于設(shè)計(jì)出圖書借閱管理系統(tǒng),這里給出圖書借閱管理系統(tǒng)的函數(shù)功能描述以及模塊化編程,供設(shè)計(jì)時(shí)參考。理系統(tǒng)的函數(shù)功能描述以及模塊化編程,供設(shè)計(jì)時(shí)參考。 在進(jìn)行本項(xiàng)目程序設(shè)計(jì)時(shí),建議按教材在進(jìn)行本項(xiàng)目程序設(shè)計(jì)時(shí),建議按教材372頁(yè)表頁(yè)表103定定義模塊中的函數(shù),然后進(jìn)行調(diào)試。義模塊中的函數(shù),然后進(jìn)行
32、調(diào)試。 圖書借閱管理系統(tǒng)是按圖書借閱管理系統(tǒng)是按5個(gè)模塊進(jìn)行設(shè)計(jì)的,各模塊由多個(gè)模塊進(jìn)行設(shè)計(jì)的,各模塊由多個(gè)自定義函數(shù)或系統(tǒng)函數(shù)組成。個(gè)自定義函數(shù)或系統(tǒng)函數(shù)組成。 用戶登錄管理模塊:用戶登錄管理模塊:是進(jìn)入圖書借閱管理系統(tǒng)的模塊,是進(jìn)入圖書借閱管理系統(tǒng)的模塊,用來(lái)完成管理員登錄工作和完成學(xué)生登錄工作,分別由函數(shù)用來(lái)完成管理員登錄工作和完成學(xué)生登錄工作,分別由函數(shù)ManagerLogin()和和StudentLogin()來(lái)實(shí)現(xiàn),并由來(lái)實(shí)現(xiàn),并由main函數(shù)調(diào)函數(shù)調(diào)用。用。2710.3.4 系統(tǒng)功能實(shí)現(xiàn) 圖書信息管理模塊:圖書信息管理模塊:實(shí)行圖書信息的輸入、保存、修改、實(shí)行圖書信息的輸入、保存
33、、修改、添加、刪除、輸出等添加、刪除、輸出等6個(gè)方面的操作。個(gè)方面的操作。 學(xué)生信息管理模塊:學(xué)生信息管理模塊:實(shí)行學(xué)生信息的輸入、保存、修改、實(shí)行學(xué)生信息的輸入、保存、修改、添加、刪除、輸出等添加、刪除、輸出等6個(gè)方面的操作。個(gè)方面的操作。 圖書信息查詢模塊:圖書信息查詢模塊:實(shí)行按不同條件對(duì)圖書信息進(jìn)行查實(shí)行按不同條件對(duì)圖書信息進(jìn)行查詢。詢。 圖書借閱管理模塊:圖書借閱管理模塊:實(shí)行圖書借閱管理和圖書歸還管理。實(shí)行圖書借閱管理和圖書歸還管理。在實(shí)行模塊化編程的過(guò)程中,首先考慮的是主控函數(shù)在實(shí)行模塊化編程的過(guò)程中,首先考慮的是主控函數(shù)main()的的編程,系統(tǒng)操作界面、各功能選項(xiàng)(菜單)、用
34、戶密碼設(shè)置,編程,系統(tǒng)操作界面、各功能選項(xiàng)(菜單)、用戶密碼設(shè)置,都應(yīng)安排在主控函數(shù)都應(yīng)安排在主控函數(shù)main()中,重要功能模塊和共用功能模塊中,重要功能模塊和共用功能模塊都應(yīng)直接由主控函數(shù)都應(yīng)直接由主控函數(shù)main()控制,然后分層調(diào)用,這樣有利于控制,然后分層調(diào)用,這樣有利于系統(tǒng)的拓展、更新和維護(hù)。系統(tǒng)的拓展、更新和維護(hù)。 2810.4 學(xué)生成績(jī)管理系統(tǒng) 學(xué)生成績(jī)管理系統(tǒng)是數(shù)據(jù)庫(kù)管理系統(tǒng)的又一個(gè)典型應(yīng)用實(shí)例。學(xué)生成績(jī)管理系統(tǒng)是數(shù)據(jù)庫(kù)管理系統(tǒng)的又一個(gè)典型應(yīng)用實(shí)例。開發(fā)出高效實(shí)用的學(xué)生成績(jī)管理系統(tǒng),對(duì)學(xué)生成績(jī)進(jìn)行統(tǒng)一管理,開發(fā)出高效實(shí)用的學(xué)生成績(jī)管理系統(tǒng),對(duì)學(xué)生成績(jī)進(jìn)行統(tǒng)一管理,實(shí)現(xiàn)學(xué)生成績(jī)
35、信息管理工作流程的系統(tǒng)化、規(guī)范化和自動(dòng)化有著實(shí)現(xiàn)學(xué)生成績(jī)信息管理工作流程的系統(tǒng)化、規(guī)范化和自動(dòng)化有著極為重要的作用和意義。極為重要的作用和意義。 本程序旨在訓(xùn)練讀者的基本編程能力,了解管理信息系統(tǒng)的本程序旨在訓(xùn)練讀者的基本編程能力,了解管理信息系統(tǒng)的開發(fā)流程,熟悉開發(fā)流程,熟悉C+的文件和單鏈表的各種基本操作。具體為:的文件和單鏈表的各種基本操作。具體為: 了解程序設(shè)計(jì)的過(guò)程和方法。了解程序設(shè)計(jì)的過(guò)程和方法。 掌握學(xué)生成績(jī)管鋰系統(tǒng)的設(shè)計(jì)思想和方法。掌握學(xué)生成績(jī)管鋰系統(tǒng)的設(shè)計(jì)思想和方法。 熟悉學(xué)生成績(jī)管理系統(tǒng)的源代碼。熟悉學(xué)生成績(jī)管理系統(tǒng)的源代碼。 通過(guò)學(xué)習(xí)提高程序設(shè)計(jì)的能力。通過(guò)學(xué)習(xí)提高程序設(shè)
36、計(jì)的能力。2910.4.1 系統(tǒng)設(shè)計(jì)目標(biāo) 用用C+語(yǔ)言開發(fā)學(xué)生成績(jī)管理系統(tǒng),涉及的主要知識(shí)點(diǎn)語(yǔ)言開發(fā)學(xué)生成績(jī)管理系統(tǒng),涉及的主要知識(shí)點(diǎn)有以下幾個(gè)方面:有以下幾個(gè)方面: 選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu);選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu); 函數(shù)的建立;函數(shù)的建立; 數(shù)組的應(yīng)用;數(shù)組的應(yīng)用; 指針的應(yīng)用;指針的應(yīng)用; 數(shù)據(jù)的統(tǒng)計(jì)、查詢、排序;數(shù)據(jù)的統(tǒng)計(jì)、查詢、排序; 結(jié)構(gòu)體類型、類和對(duì)象的使用;結(jié)構(gòu)體類型、類和對(duì)象的使用; 鏈表的使用(利用鏈表,實(shí)現(xiàn)數(shù)據(jù)記錄的插入、修鏈表的使用(利用鏈表,實(shí)現(xiàn)數(shù)據(jù)記錄的插入、修改、刪除、排序等操作);改、刪除、排序等操作); 數(shù)據(jù)文件的建立、打開、讀數(shù)據(jù)文件的建立、打開、讀/寫、關(guān)閉。寫、關(guān)
37、閉。3010.4.2 系統(tǒng)需求分析 為了開發(fā)一個(gè)方便、適用的學(xué)生成績(jī)管理系統(tǒng),在設(shè)計(jì)前為了開發(fā)一個(gè)方便、適用的學(xué)生成績(jī)管理系統(tǒng),在設(shè)計(jì)前必須對(duì)該系統(tǒng)的信息進(jìn)行認(rèn)真的調(diào)查研究。對(duì)系統(tǒng)的具體要求必須對(duì)該系統(tǒng)的信息進(jìn)行認(rèn)真的調(diào)查研究。對(duì)系統(tǒng)的具體要求如下:如下: 成績(jī)錄入:成績(jī)錄入:輸入學(xué)生的各項(xiàng)信息,并計(jì)算課程的平均成輸入學(xué)生的各項(xiàng)信息,并計(jì)算課程的平均成績(jī)???jī)。 成績(jī)查詢:成績(jī)查詢:根據(jù)學(xué)號(hào)查詢某學(xué)生各項(xiàng)成績(jī)或全班學(xué)生的根據(jù)學(xué)號(hào)查詢某學(xué)生各項(xiàng)成績(jī)或全班學(xué)生的成績(jī),輸出各項(xiàng)查詢結(jié)果。成績(jī),輸出各項(xiàng)查詢結(jié)果。 成績(jī)處理:成績(jī)處理:修改原有成績(jī)、添加新生的成績(jī)、刪除不需修改原有成績(jī)、添加新生的成績(jī)、刪
38、除不需保存的成績(jī)。保存的成績(jī)。 成績(jī)統(tǒng)計(jì):成績(jī)統(tǒng)計(jì):統(tǒng)計(jì)每門課程各個(gè)分?jǐn)?shù)段的人數(shù)、每門課程統(tǒng)計(jì)每門課程各個(gè)分?jǐn)?shù)段的人數(shù)、每門課程平均分?jǐn)?shù)、不及格人數(shù)等。平均分?jǐn)?shù)、不及格人數(shù)等。3110.4.2 系統(tǒng)需求分析 成績(jī)排許:成績(jī)排許:對(duì)選定課程成績(jī)、平均成績(jī)、總分等進(jìn)行對(duì)選定課程成績(jī)、平均成績(jī)、總分等進(jìn)行排序。排序。 建立文本界面進(jìn)行輸入和選擇。建立文本界面進(jìn)行輸入和選擇。 數(shù)據(jù)以文件形式存儲(chǔ)。數(shù)據(jù)以文件形式存儲(chǔ)。 通過(guò)對(duì)學(xué)生成績(jī)管理工作內(nèi)容的分析,設(shè)計(jì)的學(xué)生成績(jī)通過(guò)對(duì)學(xué)生成績(jī)管理工作內(nèi)容的分析,設(shè)計(jì)的學(xué)生成績(jī)管理系統(tǒng)應(yīng)包含以下功能。管理系統(tǒng)應(yīng)包含以下功能。 成績(jī)輸入功能:成績(jī)輸入功能:輸入學(xué)生的成
39、績(jī)信息,包括班級(jí)、學(xué)輸入學(xué)生的成績(jī)信息,包括班級(jí)、學(xué)號(hào)、姓名及課程的成績(jī)。數(shù)據(jù)可以從鍵盤輸入,也可以從文號(hào)、姓名及課程的成績(jī)。數(shù)據(jù)可以從鍵盤輸入,也可以從文件中讀取。件中讀取。3210.4.2 系統(tǒng)需求分析 成績(jī)輸出功能:成績(jī)輸出功能:輸出班級(jí)所有學(xué)生的成績(jī)記錄。成績(jī)輸出班級(jí)所有學(xué)生的成績(jī)記錄。成績(jī)記錄可以直接輸出在屏幕上或保存到磁盤文件中。記錄可以直接輸出在屏幕上或保存到磁盤文件中。 成績(jī)查詢功能:成績(jī)查詢功能:查詢指定學(xué)號(hào)學(xué)生的成績(jī)及相關(guān)信息。查詢指定學(xué)號(hào)學(xué)生的成績(jī)及相關(guān)信息。 成績(jī)處理功能:成績(jī)處理功能:修改或刪除指定學(xué)號(hào)學(xué)生的成績(jī)記錄,修改或刪除指定學(xué)號(hào)學(xué)生的成績(jī)記錄,或增加學(xué)生的成績(jī)
40、記錄,或?qū)W(xué)生成績(jī)進(jìn)行排序。或增加學(xué)生的成績(jī)記錄,或?qū)W(xué)生成績(jī)進(jìn)行排序。 成績(jī)統(tǒng)計(jì)功能:成績(jī)統(tǒng)計(jì)功能:計(jì)算每門課程的平均分,統(tǒng)計(jì)每門課計(jì)算每門課程的平均分,統(tǒng)計(jì)每門課程不及格人數(shù),以及相關(guān)信息。程不及格人數(shù),以及相關(guān)信息。 通過(guò)需求分析,全面了解對(duì)應(yīng)問(wèn)題及其環(huán)境,為問(wèn)題涉通過(guò)需求分析,全面了解對(duì)應(yīng)問(wèn)題及其環(huán)境,為問(wèn)題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、完全化,最終形成設(shè)計(jì)方案及其規(guī)格說(shuō)明。完全化,最終形成設(shè)計(jì)方案及其規(guī)格說(shuō)明。 3310.4.3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 通過(guò)對(duì)學(xué)生成績(jī)管理系統(tǒng)功能要求的分析,該系統(tǒng)的結(jié)構(gòu)通過(guò)對(duì)學(xué)生成績(jī)管
41、理系統(tǒng)功能要求的分析,該系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)如圖設(shè)計(jì)如圖1011所示。所示。圖圖 101011 11 學(xué)生成績(jī)管理系統(tǒng)功能模塊結(jié)構(gòu)圖學(xué)生成績(jī)管理系統(tǒng)功能模塊結(jié)構(gòu)圖從從鍵鍵盤盤輸輸入入從從文文件件讀讀入入修修改改成成績(jī)績(jī)記記錄錄刪刪除除成成績(jī)績(jī)記記錄錄插插入入成成績(jī)績(jī)記記錄錄排排序序成成績(jī)績(jī)記記錄錄按按姓姓名名查查詢?cè)儼窗磳W(xué)學(xué)號(hào)號(hào)查查詢?cè)冚斴敵龀鲋林疗疗聊荒惠斴敵龀鲋林廖奈募徊患凹案窀竦牡娜巳藬?shù)數(shù)各各課課程程平平均均分分輸入記錄輸入記錄管理模塊管理模塊處理記錄處理記錄管理模塊管理模塊查詢記錄查詢記錄管理模塊管理模塊輸出記錄輸出記錄管理模塊管理模塊學(xué)生成績(jī)管理系統(tǒng)學(xué)生成績(jī)管理系統(tǒng)統(tǒng)計(jì)記錄統(tǒng)計(jì)記錄管理
42、模塊管理模塊3410.4.3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)是在主控函數(shù)的管理下進(jìn)行的。主控模學(xué)生成績(jī)管理系統(tǒng)是在主控函數(shù)的管理下進(jìn)行的。主控模塊由塊由main()函數(shù)和函數(shù)和menu()函數(shù)組成,實(shí)現(xiàn)控制系統(tǒng)流程控制和函數(shù)組成,實(shí)現(xiàn)控制系統(tǒng)流程控制和顯示菜單顯示菜單。(本系統(tǒng)執(zhí)行的主控流程圖省略)。(本系統(tǒng)執(zhí)行的主控流程圖省略) main()函數(shù):函數(shù):控制整個(gè)系統(tǒng)的運(yùn)行流程控制整個(gè)系統(tǒng)的運(yùn)行流程,各功能模塊的各功能模塊的函數(shù)均由主函數(shù)控制調(diào)用。在主函數(shù)中,通過(guò)循環(huán)執(zhí)行一個(gè)函數(shù)均由主函數(shù)控制調(diào)用。在主函數(shù)中,通過(guò)循環(huán)執(zhí)行一個(gè)swibh開關(guān)語(yǔ)句來(lái)運(yùn)行系統(tǒng)。在循環(huán)體中,根據(jù)用戶輸入的數(shù)開關(guān)語(yǔ)句來(lái)
43、運(yùn)行系統(tǒng)。在循環(huán)體中,根據(jù)用戶輸入的數(shù)字調(diào)用相應(yīng)函數(shù)完成相應(yīng)功能。字調(diào)用相應(yīng)函數(shù)完成相應(yīng)功能。 menu()函數(shù):函數(shù):主要實(shí)現(xiàn)顯示系統(tǒng)的菜單界面。在主要實(shí)現(xiàn)顯示系統(tǒng)的菜單界面。在main函數(shù)的循環(huán)體內(nèi)只需調(diào)用該函數(shù)函數(shù)的循環(huán)體內(nèi)只需調(diào)用該函數(shù), 即可達(dá)到循環(huán)顯示菜單的功即可達(dá)到循環(huán)顯示菜單的功能,方便用戶選擇。按鍵時(shí)有效的輸入為能,方便用戶選擇。按鍵時(shí)有效的輸入為09之間任意數(shù)值。之間任意數(shù)值。 3510.4.4 使用結(jié)構(gòu)體設(shè)計(jì) 學(xué)生成績(jī)信息由班級(jí)、學(xué)號(hào)、姓名、各門課程成績(jī)、總分學(xué)生成績(jī)信息由班級(jí)、學(xué)號(hào)、姓名、各門課程成績(jī)、總分和名次等數(shù)據(jù)構(gòu)成。盡管學(xué)生成績(jī)信息包含的數(shù)據(jù)是相同的,和名次等數(shù)
44、據(jù)構(gòu)成。盡管學(xué)生成績(jī)信息包含的數(shù)據(jù)是相同的,但三種方法在數(shù)據(jù)類型的定義格式上是不一樣的。但三種方法在數(shù)據(jù)類型的定義格式上是不一樣的。 成績(jī)輸入模塊用來(lái)完成從數(shù)據(jù)文件中讀入學(xué)生成績(jī),也可成績(jī)輸入模塊用來(lái)完成從數(shù)據(jù)文件中讀入學(xué)生成績(jī),也可以從鍵盤逐個(gè)輸入學(xué)生成績(jī)。成績(jī)輸入通過(guò)以從鍵盤逐個(gè)輸入學(xué)生成績(jī)。成績(jī)輸入通過(guò)Input(Stu_Score s )函數(shù)、函數(shù)、Read(Stu Score s )函數(shù)實(shí)現(xiàn)成績(jī)輸入。函數(shù)實(shí)現(xiàn)成績(jī)輸入。 Input(Stu_Score s )函數(shù):函數(shù):用來(lái)通過(guò)鍵盤將學(xué)生成績(jī)用來(lái)通過(guò)鍵盤將學(xué)生成績(jī)信息輸入到結(jié)構(gòu)體數(shù)組中。信息輸入到結(jié)構(gòu)體數(shù)組中。 Read(Stu Sc
45、ore s )函數(shù):函數(shù):用來(lái)從已有磁盤文件中讀用來(lái)從已有磁盤文件中讀取成績(jī)信息到結(jié)構(gòu)體數(shù)組中。取成績(jī)信息到結(jié)構(gòu)體數(shù)組中。 3610.4.4 使用結(jié)構(gòu)體設(shè)計(jì) 成績(jī)查詢模塊用來(lái)完成按學(xué)號(hào)和姓名查找學(xué)生,然后查找成績(jī)查詢模塊用來(lái)完成按學(xué)號(hào)和姓名查找學(xué)生,然后查找該學(xué)生的成績(jī)信息。成績(jī)查詢通過(guò)該學(xué)生的成績(jī)信息。成績(jī)查詢通過(guò)Search函數(shù)、函數(shù)、Search_Name函數(shù)和函數(shù)和Search_Score函數(shù)實(shí)現(xiàn)。函數(shù)實(shí)現(xiàn)。 Search Num(Stu_Scores ,char stu_num15)函數(shù):函數(shù):用來(lái)用來(lái)查找指定學(xué)號(hào)學(xué)生是否存在,若存在,則返回該學(xué)生所在的位查找指定學(xué)號(hào)學(xué)生是否存在,若
46、存在,則返回該學(xué)生所在的位置。置。 Search_Name(Stu_Score s ,char stu_name10)函數(shù):函數(shù):用用來(lái)查找指定姓名學(xué)生是否存在,若存在,則返回該學(xué)生所在的來(lái)查找指定姓名學(xué)生是否存在,若存在,則返回該學(xué)生所在的位置。位置。 Search_Score(Stu_Score s )函數(shù):函數(shù):用來(lái)查找指定用來(lái)查找指定學(xué)生的成績(jī)信息,若存在該學(xué)生,則將其成績(jī)顯示在屏幕上。學(xué)生的成績(jī)信息,若存在該學(xué)生,則將其成績(jī)顯示在屏幕上。 3710.4.4 使用結(jié)構(gòu)體設(shè)計(jì) 成績(jī)處理通過(guò)成績(jī)處理通過(guò)Modify函數(shù)、函數(shù)、Delete函數(shù)、函數(shù)、Insert函數(shù)、函數(shù)、Soft_Sum
47、函數(shù)和函數(shù)和Sort_Num函數(shù)來(lái)實(shí)現(xiàn)。函數(shù)來(lái)實(shí)現(xiàn)。 Modify(Stu_Score s )函數(shù):函數(shù):用來(lái)修改指定學(xué)號(hào)學(xué)生用來(lái)修改指定學(xué)號(hào)學(xué)生的成績(jī)信息。的成績(jī)信息。 Delete(Stu_Score s )函數(shù):函數(shù):用來(lái)刪除指定學(xué)號(hào)學(xué)生用來(lái)刪除指定學(xué)號(hào)學(xué)生的成績(jī)信息。的成績(jī)信息。 Insert(Stu_Scores )函數(shù):函數(shù):用來(lái)增加一個(gè)學(xué)生的成用來(lái)增加一個(gè)學(xué)生的成績(jī)信息???jī)信息。 Soft_Sum(Stu_Score s )函數(shù):函數(shù):用來(lái)按總分降序?qū)τ脕?lái)按總分降序?qū)λ袑W(xué)生進(jìn)行排序,并給出名次。所有學(xué)生進(jìn)行排序,并給出名次。 3810.4.4 使用結(jié)構(gòu)體設(shè)計(jì) Sort_Num(
48、Stu_Score s )函數(shù):函數(shù):用來(lái)對(duì)所有學(xué)生按用來(lái)對(duì)所有學(xué)生按學(xué)號(hào)從小到大進(jìn)行排序。學(xué)號(hào)從小到大進(jìn)行排序。 成績(jī)統(tǒng)計(jì)模塊用來(lái)統(tǒng)計(jì)每門課的平均分和統(tǒng)計(jì)每門課程成績(jī)統(tǒng)計(jì)模塊用來(lái)統(tǒng)計(jì)每門課的平均分和統(tǒng)計(jì)每門課程不及格的人數(shù),并顯示在屏幕上。成績(jī)統(tǒng)計(jì)通過(guò)不及格的人數(shù),并顯示在屏幕上。成績(jī)統(tǒng)計(jì)通過(guò)Course_Ave函數(shù)和函數(shù)和Statistic_Course函數(shù)來(lái)實(shí)現(xiàn)。函數(shù)來(lái)實(shí)現(xiàn)。 Course_Ave(Stu_Score s )函數(shù):函數(shù):用來(lái)統(tǒng)計(jì)每門課用來(lái)統(tǒng)計(jì)每門課的平均分。的平均分。 Statistic_Course(Stu_Score s )函數(shù):函數(shù):用來(lái)統(tǒng)計(jì)每用來(lái)統(tǒng)計(jì)每門課程不及格
49、的人數(shù)。門課程不及格的人數(shù)。 3910.4.4 使用結(jié)構(gòu)體設(shè)計(jì) 成績(jī)輸出模塊主要完成兩項(xiàng)任務(wù):一是通過(guò)成績(jī)輸出模塊主要完成兩項(xiàng)任務(wù):一是通過(guò)Output函數(shù)將函數(shù)將所有學(xué)生的成績(jī)信息顯示在屏幕上;二是通過(guò)所有學(xué)生的成績(jī)信息顯示在屏幕上;二是通過(guò)Save函數(shù)將成績(jī)函數(shù)將成績(jī)信息保存至磁盤文件中。信息保存至磁盤文件中。 Output(Stu Scores s )函數(shù):函數(shù):用來(lái)將所有學(xué)生的成績(jī)用來(lái)將所有學(xué)生的成績(jī)信息顯示在屏幕上。信息顯示在屏幕上。 Save(Stu_Score s )函數(shù):函數(shù):用來(lái)將成績(jī)信息保存至磁用來(lái)將成績(jī)信息保存至磁盤文件中。盤文件中。 4010.4.5 使用鏈表設(shè)計(jì) 使用
50、鏈表設(shè)計(jì)本系統(tǒng)時(shí),只需關(guān)心指針有沒有指到鏈表尾,使用鏈表設(shè)計(jì)本系統(tǒng)時(shí),只需關(guān)心指針有沒有指到鏈表尾,而不必知道班級(jí)學(xué)生人數(shù),故不需要實(shí)時(shí)記錄人數(shù)。而不必知道班級(jí)學(xué)生人數(shù),故不需要實(shí)時(shí)記錄人數(shù)。 成績(jī)輸入模塊通過(guò)成績(jī)輸入模塊通過(guò)Input(node *head) )函數(shù)和函數(shù)和Read(node *head)函數(shù)來(lái)實(shí)現(xiàn)信息輸入。函數(shù)來(lái)實(shí)現(xiàn)信息輸入。 Input(node *head)函數(shù):函數(shù):用來(lái)通過(guò)鍵盤將若干名學(xué)生的用來(lái)通過(guò)鍵盤將若干名學(xué)生的成績(jī)信息輸入到鏈表中,生成一條有序鏈表。成績(jī)信息輸入到鏈表中,生成一條有序鏈表。 Read(node *head)函數(shù):函數(shù):用來(lái)直接從文件中讀取成績(jī)信
51、用來(lái)直接從文件中讀取成績(jī)信息到鏈表中,生成一條有序鏈表。息到鏈表中,生成一條有序鏈表。 成績(jī)查詢模塊通過(guò)成績(jī)查詢模塊通過(guò)Search_Num(node *head,char stu_num15)函數(shù)、函數(shù)、Search Name(node *head,char stu_name15函數(shù)、函數(shù)、Search_Score(node *head)實(shí)現(xiàn)實(shí)現(xiàn)3種查詢。種查詢。4110.4.5 使用鏈表設(shè)計(jì) Search_Num(node *head,char stu_num15)函數(shù)函數(shù): 用來(lái)在鏈表中查找指定學(xué)號(hào)學(xué)生是否存在,若存在,則返用來(lái)在鏈表中查找指定學(xué)號(hào)學(xué)生是否存在,若存在,則返回指向該學(xué)生所在結(jié)點(diǎn)的指針?;刂赶蛟搶W(xué)生所在結(jié)點(diǎn)的指針。 Search Name(node *head,char stu_name15)函
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 非洲文化的獨(dú)特魅力與價(jià)值
- 音樂會(huì)場(chǎng)布置中色彩心理學(xué)的運(yùn)用策略
- 財(cái)務(wù)風(fēng)險(xiǎn)識(shí)別與評(píng)估技術(shù)探討
- 音樂、舞蹈、戲劇的育人價(jià)值匯報(bào)
- 江蘇專版2025版高考英語(yǔ)大二輪復(fù)習(xí)專題3閱讀理解第二節(jié)推理判斷題三寫作意圖題學(xué)案牛津譯林版
- 跨文化交際能力在影視傳媒中的應(yīng)用
- 購(gòu)物車安全使用的法律責(zé)任
- 浙江國(guó)企招聘2025浙江省農(nóng)發(fā)集團(tuán)社會(huì)招聘94人筆試參考題庫(kù)附帶答案詳解
- 旅行社導(dǎo)游個(gè)人工作總結(jié)(10篇)
- 浙江2024年12月浙江省金華市人才服務(wù)和人事考試中心招考2名編外工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 【講座培訓(xùn)】《中小學(xué)教育懲戒規(guī)則(試行)》解讀課件
- 中科大《無(wú)機(jī)化學(xué)》課件1氣體、液體和溶液的性質(zhì)
- 復(fù)婚合同協(xié)議書模板
- U8-EAI二次開發(fā)說(shuō)明
- 2006 年全國(guó)高校俄語(yǔ)專業(yè)四級(jí)水平測(cè)試試卷
- 浙江省勞動(dòng)保障監(jiān)察員培訓(xùn)監(jiān)察執(zhí)法程序(林琳)
- 新人教版數(shù)學(xué)四年級(jí)下冊(cè)全冊(cè)表格式教案
- 閩教版(2020版)六年級(jí)下冊(cè)信息技術(shù)整冊(cè)教案
- 二手房買賣合同正式版空白
- 食品銷售經(jīng)營(yíng)者食品安全管理制度(零售)
- 通信電源-概述ppt課件
評(píng)論
0/150
提交評(píng)論