




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第10章 綜合應(yīng)用程序設(shè)計(jì)問題問題原由原由從從第章介紹了第章介紹了C/C+程序設(shè)計(jì)的基本內(nèi)容。程序設(shè)計(jì)的基本內(nèi)容。怎樣從軟件工程的角度進(jìn)行綜合應(yīng)用程序設(shè)計(jì)呢?怎樣從軟件工程的角度進(jìn)行綜合應(yīng)用程序設(shè)計(jì)呢?本章力圖通過綜合應(yīng)用程序設(shè)計(jì)實(shí)例,全面了解和本章力圖通過綜合應(yīng)用程序設(shè)計(jì)實(shí)例,全面了解和掌握開發(fā)應(yīng)用程序的全過程。掌握開發(fā)應(yīng)用程序的全過程。本章通過四本章通過四個(gè)實(shí)例個(gè)實(shí)例項(xiàng)目項(xiàng)目( (電子電子萬年歷、萬年歷、俄羅斯方塊俄羅斯方塊游戲、游戲、圖書借閱管理系統(tǒng)、學(xué)生成績管理圖書借閱管理系統(tǒng)、學(xué)生成績管理系統(tǒng)系統(tǒng)) )的的程序設(shè)計(jì),全面概括了程序設(shè)計(jì),全面概括了C語言的所有內(nèi)容以及語言的所有內(nèi)容以
2、及C+語言的初步應(yīng)用,語言的初步應(yīng)用,教學(xué)教學(xué)重點(diǎn)重點(diǎn)能力能力要求要求掌握掌握: : 應(yīng)用程序的基本設(shè)計(jì)方法的開發(fā)步驟。應(yīng)用程序的基本設(shè)計(jì)方法的開發(fā)步驟。了解:了解:通過應(yīng)用成績設(shè)計(jì),了解軟件工程概念。通過應(yīng)用成績設(shè)計(jì),了解軟件工程概念。熟悉熟悉: : 編寫程序代碼、程序調(diào)試和程序測試方法。編寫程序代碼、程序調(diào)試和程序測試方法。 2 10.1 電子萬年歷電子萬年歷 10.4 學(xué)生成績管理系統(tǒng)學(xué)生成績管理系統(tǒng) 10.3 圖書借閱管理系統(tǒng)圖書借閱管理系統(tǒng) 10.2 俄羅斯方塊游戲俄羅斯方塊游戲310.1電子萬年歷 電子萬年歷在計(jì)算機(jī)系統(tǒng)中、手機(jī)里、電子詞典中、電子萬年歷在計(jì)算機(jī)系統(tǒng)中、手機(jī)里、電子
3、詞典中、MP4播放器中、辦公桌上,甚至家庭擺設(shè)等隨處可見。播放器中、辦公桌上,甚至家庭擺設(shè)等隨處可見。 掌握語言程序設(shè)計(jì)的基本知識、基本思想和基本應(yīng)用,掌握語言程序設(shè)計(jì)的基本知識、基本思想和基本應(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)庫函數(shù)的應(yīng)用方法;系統(tǒng)庫函數(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)需求分析 電子萬年歷用來提供查詢電子萬年歷用來提供查詢,主要實(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)掌凇⒃路?、是否為閏年。 支持鍵盤操作:支持鍵盤操作:通過鍵盤調(diào)整年份、月份和日期。通過鍵盤調(diào)整年份、月份和日期。 參數(shù)排錯(cuò)功能:參數(shù)排錯(cuò)功能:能對輸入的日期進(jìn)行合法性檢查。能對輸入的日期進(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、取模模塊塊萬年歷系統(tǒng)萬年歷系統(tǒng)610.1.3系統(tǒng)總體設(shè)計(jì) 本系統(tǒng)的結(jié)構(gòu)由本系統(tǒng)的結(jié)構(gòu)由4個(gè)模塊所組成,由主函數(shù)個(gè)模塊所組成,由主函數(shù)main()實(shí)行控實(shí)行控制,按照系統(tǒng)工作順序,其工作流程如圖制,按照系統(tǒng)工作順序,其工作流程如圖102所示。所示。主控函數(shù)主要對輸入?yún)?shù)進(jìn)行檢查,以保證輸入?yún)?shù)正主控函數(shù)主要對輸入?yún)?shù)進(jìn)行檢查,以保證輸入?yún)?shù)正確,不會(huì)對后續(xù)程序造成影響;其次,對輸入的年份和月份確,不會(huì)對后續(xù)程序造成影響;其次,對輸入的年份和月份進(jìn)行處理和計(jì)算,判斷輸入年份是否為閏年。進(jìn)行處理和計(jì)算,判斷輸入年份是否為閏年。圖圖 10102 2 萬年歷設(shè)計(jì)流程圖萬年歷設(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ì) 功能控制模塊:功能控制模塊:用來實(shí)現(xiàn)日期合法性檢查、閏年判斷用來實(shí)現(xiàn)日期合法性檢查、閏年判斷和星期計(jì)算。和星期計(jì)算。 打印輸出模塊:打印輸出模塊:用來實(shí)現(xiàn)輸出顯示和打印指定個(gè)數(shù)的用來實(shí)現(xiàn)輸出顯示和打印指定個(gè)數(shù)的空格、打印分隔線、打印用戶使用手冊、打印當(dāng)前日期你對空格、打印分隔線、打印用戶使用手冊、打印當(dāng)前日期你對應(yīng)的星期以及打印給定的星期。應(yīng)的星期以及打印給定的星期。 日歷顯示模塊:日歷顯示模塊
8、:用來實(shí)現(xiàn)日歷生成和顯示。用來實(shí)現(xiàn)日歷生成和顯示。 鍵值獲取模塊:鍵值獲取模塊:主要用于對鍵盤操作的響應(yīng),由函數(shù)主要用于對鍵盤操作的響應(yīng),由函數(shù)void getKey Value()獲取按鍵值,根據(jù)鍵值調(diào)整當(dāng)前日期,獲取按鍵值,根據(jù)鍵值調(diào)整當(dāng)前日期,并調(diào)用日歷顯示模塊中的并調(diào)用日歷顯示模塊中的showCalendar()函數(shù)來實(shí)現(xiàn)日歷生函數(shù)來實(shí)現(xiàn)日歷生成和輸出,其實(shí)現(xiàn)過程如圖成和輸出,其實(shí)現(xiàn)過程如圖104所示。所示。 810.1.3系統(tǒng)總體設(shè)計(jì) 本程序沒有自定義結(jié)構(gòu)體,僅定義了全局變量。本程序沒有自定義結(jié)構(gòu)體,僅定義了全局變量。 struct date sysTime:系統(tǒng)結(jié)構(gòu)體,用于存儲(chǔ)系統(tǒng)
9、系統(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) 電子萬年歷系統(tǒng)設(shè)計(jì)項(xiàng)目的實(shí)現(xiàn)分為項(xiàng)目建立、項(xiàng)目需電子萬年
10、歷系統(tǒng)設(shè)計(jì)項(xiàng)目的實(shí)現(xiàn)分為項(xiàng)目建立、項(xiàng)目需求分析、項(xiàng)目算法設(shè)計(jì)、代碼編寫與調(diào)試、代碼測試、代碼求分析、項(xiàng)目算法設(shè)計(jì)、代碼編寫與調(diào)試、代碼測試、代碼完善等多個(gè)環(huán)節(jié)。完善等多個(gè)環(huán)節(jié)。 在進(jìn)行本項(xiàng)目的程序設(shè)計(jì)時(shí),建議按教材在進(jìn)行本項(xiàng)目的程序設(shè)計(jì)時(shí),建議按教材358頁表頁表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)證:對輸入?yún)?shù)作驗(yàn)證,若輸入?yún)?shù)對輸入?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ò):編碼最基本的要求是語法和邏輯的正確。編碼最基本的要求是語法和邏輯的正確。 異常處理:異常處理:通過輸入錯(cuò)誤數(shù)據(jù)格式驗(yàn)證工程代碼對異通過
13、輸入錯(cuò)誤數(shù)據(jù)格式驗(yàn)證工程代碼對異常輸入的處理能力。常輸入的處理能力。 平年平年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語言圖形模式下的編程。本項(xiàng)目中涉及語言圖形模
14、式下的編程。本項(xiàng)目中涉及C語言的結(jié)構(gòu)語言的結(jié)構(gòu)體、數(shù)組、時(shí)鐘中斷及繪圖等方面的知識。體、數(shù)組、時(shí)鐘中斷及繪圖等方面的知識。 這里介紹開發(fā)俄羅斯方塊游戲的實(shí)現(xiàn)方法,用這里介紹開發(fā)俄羅斯方塊游戲的實(shí)現(xiàn)方法,用C語言編語言編程實(shí)現(xiàn)俄羅斯方塊游戲涉及的主要知識點(diǎn)有以下幾個(gè)方面:程實(shí)現(xiàn)俄羅斯方塊游戲涉及的主要知識點(diǎn)有以下幾個(gè)方面:結(jié)構(gòu)體、數(shù)組、時(shí)鐘中斷及繪圖等方面的知識。結(jié)構(gòu)體、數(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語言的繪圖知識等;語言的繪圖知識等;1310.2.2 系統(tǒng)需求分析
15、游戲本身是一種娛樂,因此,必須使游戲者在游戲過程游戲本身是一種娛樂,因此,必須使游戲者在游戲過程中感到有趣。與此同時(shí),通過這種中感到有趣。與此同時(shí),通過這種“娛樂娛樂”,應(yīng)能對游戲者,應(yīng)能對游戲者在智能、創(chuàng)造性等方面具有一定的啟迪、激發(fā)、引導(dǎo)作用。在智能、創(chuàng)造性等方面具有一定的啟迪、激發(fā)、引導(dǎo)作用。 要使游戲者感到該游戲格外有趣,在游戲操作過程中,要使游戲者感到該游戲格外有趣,在游戲操作過程中,游戲系統(tǒng)應(yīng)具有以下功能和特點(diǎn):游戲系統(tǒng)應(yīng)具有以下功能和特點(diǎn): 游戲操作引導(dǎo):游戲操作引導(dǎo):在游戲過程中,在當(dāng)前游戲畫面中,在游戲過程中,在當(dāng)前游戲畫面中,出現(xiàn)下一個(gè)游戲方塊,這樣有利于游戲者控制游戲的策
16、略。出現(xiàn)下一個(gè)游戲方塊,這樣有利于游戲者控制游戲的策略。 方便任意操作:方便任意操作:能實(shí)現(xiàn)對游戲方塊的左、右、下、能實(shí)現(xiàn)對游戲方塊的左、右、下、上的快速移動(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í),要清除先前的游戲方塊。要清除先前的游戲方塊。 具有成績記錄:具有成績記錄:在游戲過程中自動(dòng)計(jì)算游戲分?jǐn)?shù),以在游戲過程中自動(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ù)覽模塊:在游戲過程中,當(dāng)在游
18、戲底板中出在游戲過程中,當(dāng)在游戲底板中出現(xiàn)一個(gè)游戲方塊時(shí)現(xiàn)一個(gè)游戲方塊時(shí),必須在游戲方塊預(yù)覽區(qū)域中出現(xiàn)下一個(gè)游必須在游戲方塊預(yù)覽區(qū)域中出現(xiàn)下一個(gè)游戲方塊,這樣有利于游戲玩家控制游戲的策略。戲方塊,這樣有利于游戲玩家控制游戲的策略。 方塊控制模塊:方塊控制模塊:通過各種條件的判斷,實(shí)現(xiàn)對游戲通過各種條件的判斷,實(shí)現(xiàn)對游戲方塊的左移、右移、快速下移、自由下落、旋轉(zhuǎn)功能以及行方塊的左移、右移、快速下移、自由下落、旋轉(zhuǎn)功能以及行滿消除行的功能。滿消除行的功能。 顯示更新模塊:顯示更新模塊:當(dāng)游戲方塊左右移動(dòng)、下落、旋轉(zhuǎn)當(dāng)游戲方塊左右移動(dòng)、下落、旋轉(zhuǎn)時(shí)時(shí),要清除先前的游戲方塊要清除先前的游戲方塊,用新坐
19、標(biāo)重繪游戲方塊。當(dāng)消除用新坐標(biāo)重繪游戲方塊。當(dāng)消除滿行時(shí),要重繪游戲底板的當(dāng)前狀態(tài)。滿行時(shí),要重繪游戲底板的當(dāng)前狀態(tài)。 速度更新模塊:速度更新模塊:在游戲者進(jìn)行游戲過程中,需要按在游戲者進(jìn)行游戲過程中,需要按照一定的游戲規(guī)則給游戲者計(jì)算游戲分?jǐn)?shù)。照一定的游戲規(guī)則給游戲者計(jì)算游戲分?jǐn)?shù)。 幫助功能模塊:幫助功能模塊:游戲者進(jìn)入游戲后,將有對本游戲游戲者進(jìn)入游戲后,將有對本游戲如何操作的溫馨提示。如何操作的溫馨提示。10.2.3 系統(tǒng)總體設(shè)計(jì)17 主控函數(shù)主控函數(shù)main( )實(shí)現(xiàn)對整個(gè)程序的運(yùn)行控流程制以及相實(shí)現(xiàn)對整個(gè)程序的運(yùn)行控流程制以及相關(guān)功能模塊的調(diào)用關(guān)功能模塊的調(diào)用。 整個(gè)游戲的操作是通過
20、以下整個(gè)游戲的操作是通過以下5個(gè)功能模塊來實(shí)現(xiàn)的。個(gè)功能模塊來實(shí)現(xiàn)的。 方塊預(yù)覽模塊:方塊預(yù)覽模塊:游戲方塊將在如圖游戲方塊將在如圖107所示的所示的44的正方形小方塊中預(yù)覽。的正方形小方塊中預(yù)覽。 方塊控制模塊:方塊控制模塊:這是該游戲開發(fā)的重點(diǎn)和難點(diǎn)部分。這是該游戲開發(fā)的重點(diǎn)和難點(diǎn)部分。 左移的實(shí)現(xiàn)過程。左移的實(shí)現(xiàn)過程。 右移的實(shí)現(xiàn)過程右移的實(shí)現(xiàn)過程 下移的實(shí)現(xiàn)過程下移的實(shí)現(xiàn)過程 旋轉(zhuǎn)的實(shí)現(xiàn)過程旋轉(zhuǎn)的實(shí)現(xiàn)過程10.2.3 系統(tǒng)總體設(shè)計(jì)圖圖10107 7 游戲方塊預(yù)覽游戲方塊預(yù)覽18 顯示更新模塊:顯示更新模塊:清除游戲方塊的過程是先畫輪廓再填清除游戲方塊的過程是先畫輪廓再填充的方式,使用背
21、景色填充小方塊,然后使用前景色畫一個(gè)充的方式,使用背景色填充小方塊,然后使用前景色畫一個(gè)游戲底板中的小方塊。游戲底板中的小方塊。 分?jǐn)?shù)更新模塊:分?jǐn)?shù)更新模塊:當(dāng)判斷出一行滿時(shí)當(dāng)判斷出一行滿時(shí),score變量加一固變量加一固定值定值(如如10),可以把等級,可以把等級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頁表頁表102定義模塊中的函數(shù),然后進(jìn)行調(diào)試。定義
22、模塊中的函數(shù),然后進(jìn)行調(diào)試。 俄羅斯方塊程序按模塊化編程,分為俄羅斯方塊程序按模塊化編程,分為4個(gè)功能模塊個(gè)功能模塊 。 主函數(shù)主函數(shù)main():實(shí)現(xiàn)對整個(gè)程序的運(yùn)行控制。實(shí)現(xiàn)對整個(gè)程序的運(yùn)行控制。 時(shí)鐘中斷處理:時(shí)鐘中斷處理:速度越快,時(shí)間中斷的間隔也就越短。速度越快,時(shí)間中斷的間隔也就越短。 成績、速度及幫助的顯示:成績、速度及幫助的顯示:為了幫助游戲者操作,必為了幫助游戲者操作,必須提供幫助,為了鼓勵(lì)游戲者,必須顯示游戲成績與速度。須提供幫助,為了鼓勵(lì)游戲者,必須顯示游戲成績與速度。 滿行處理:滿行處理:當(dāng)游戲方塊不能滿足相關(guān)操作條件時(shí),可當(dāng)游戲方塊不能滿足相關(guān)操作條件時(shí),可以調(diào)用以下
23、函數(shù)來處理。以調(diào)用以下函數(shù)來處理。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語言程序設(shè)計(jì)語言程序設(shè)計(jì)的所有基礎(chǔ)階段的知識。的所有基礎(chǔ)階段的知識。 函數(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、用戶。對一般圖書借閱管理系統(tǒng)中的實(shí)體主要有圖書和用戶。對一般用戶來說,主要功能有查找圖書、瀏覽圖書、借書、還書等;用戶來說,主要功能有查找圖書、瀏覽圖書、借書、還書等;對管理員來說,除了一般用戶的權(quán)限外,還具備有管理功能,對管理員來說,除了一般用戶的權(quán)限外,還具備有管理功能,即注冊圖書、注冊用戶、注銷圖書、注銷用戶等維護(hù)管理功即注冊圖書、注冊用戶、注銷圖書、注銷用戶等維護(hù)管理功能。能。 一個(gè)功能比較完善、具有實(shí)用價(jià)值的圖書借閱管理系統(tǒng),一個(gè)功能比較完善、具有實(shí)用價(jià)值的圖書借閱管理系統(tǒng),從業(yè)務(wù)流程來講,要求能實(shí)現(xiàn)用戶的注冊、注銷、查找、瀏從業(yè)務(wù)流程來講,要求能實(shí)現(xiàn)用戶的注冊、注銷、查找、瀏覽、借
25、書、還書,圖書的注冊、注銷、查找、瀏覽、外借和覽、借書、還書,圖書的注冊、注銷、查找、瀏覽、外借和歸還等。因此,應(yīng)具有以下歸還等。因此,應(yīng)具有以下6項(xiàng)基本功能。項(xiàng)基本功能。 用戶登錄:用戶登錄:系統(tǒng)用戶分為管理員和學(xué)生。系統(tǒng)用戶分為管理員和學(xué)生。 2210.3.2 系統(tǒng)需求分析 圖書信息管理:圖書信息管理:包括;書號、書名、作者、圖書分類、包括;書號、書名、作者、圖書分類、出版社、出版時(shí)間、單價(jià)、總量和庫存量。出版社、出版時(shí)間、單價(jià)、總量和庫存量。 學(xué)生信息管理。學(xué)生信息管理。包括:輸入學(xué)生信息、保存學(xué)生信息、包括:輸入學(xué)生信息、保存學(xué)生信息、修改學(xué)生信息、添加學(xué)生信息、刪除和輸出學(xué)生信息。修
26、改學(xué)生信息、添加學(xué)生信息、刪除和輸出學(xué)生信息。 圖書查詢功能:圖書查詢功能:圖書查詢分為:按書名查詢、按作者圖書查詢分為:按書名查詢、按作者查詢查詢、按圖書分類查詢按圖書分類查詢、按出版社查詢和按出版時(shí)間查詢。按出版社查詢和按出版時(shí)間查詢。 借書功能:借書功能:借書時(shí),先判斷學(xué)生是否有空閑的借書卡,借書時(shí),先判斷學(xué)生是否有空閑的借書卡,若有空閑的借書卡,則要求學(xué)生輸入所借圖書的書號。若有空閑的借書卡,則要求學(xué)生輸入所借圖書的書號。 還書功能:還書功能:還書時(shí),先檢查學(xué)生的借書卡,然后要求還書時(shí),先檢查學(xué)生的借書卡,然后要求學(xué)生輸入所還圖書的書號,將對應(yīng)借書卡上的記錄清零,并學(xué)生輸入所還圖書的書
27、號,將對應(yīng)借書卡上的記錄清零,并修改該書的庫存量。修改該書的庫存量。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)按不同條件對圖書信用于實(shí)現(xiàn)按不同條件對圖書信息進(jìn)行查詢。息進(jìn)行查詢。 圖書借閱管理模塊:圖書借閱管理模塊:用于實(shí)現(xiàn)圖書的借閱和歸還管用于實(shí)現(xiàn)圖書的借閱和歸還管理。理。24 圖書借閱管理系統(tǒng)由圖書借閱管理系統(tǒng)由5個(gè)模塊組成,所有模塊都位于主個(gè)模塊組成,所有模塊都位于主函數(shù)函數(shù)main()之下,用戶通過主函數(shù)中提供的菜單選擇相應(yīng)的之下,用戶通過主函數(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)功能,一是用來完成管理員登錄工作模塊,主要實(shí)現(xiàn)兩項(xiàng)功能,一是用來完成管理員登錄工作 ;二是用來完成學(xué)生登錄工作二是用來完成學(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)按不同條件對圖書信息用于實(shí)現(xiàn)按不同條件對圖書信息進(jìn)行查詢。進(jìn)行查詢。 圖書借閱管理模塊:圖書借閱管理模塊:主要是對圖書借閱卡的信息管理,主要是對圖書借閱卡的信息管理,包括圖書借閱管理和圖書歸還管理。包括圖書借閱管理和圖書歸還管理。 該系統(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頁表頁表103定定義模塊中的函數(shù),然后進(jìn)行調(diào)試。義模塊中的函數(shù),然后進(jìn)行調(diào)試
32、。 圖書借閱管理系統(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)的模塊,用來完成管理員登錄工作和完成學(xué)生登錄工作,分別由函數(shù)用來完成管理員登錄工作和完成學(xué)生登錄工作,分別由函數(shù)ManagerLogin()和和StudentLogin()來實(shí)現(xiàn),并由來實(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í)行按不同條件對圖書信息進(jìn)行實(shí)行按不同條件對圖書信息進(jìn)行查詢。查詢。 圖書借閱管理模塊:圖書借閱管理模塊:實(shí)行圖書借閱管理和圖書歸還管實(shí)行圖書借閱管理和圖書歸還管理。理。在實(shí)行模塊化編程的過程中,首先考慮的是主控函數(shù)在實(shí)行模塊化編程的過程中,首先考慮的是主控函數(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é)生成績管理系統(tǒng) 學(xué)生成績管理系統(tǒng)是數(shù)據(jù)庫管理系統(tǒng)的又一個(gè)典型應(yīng)用學(xué)生成績管理系統(tǒng)是數(shù)據(jù)庫管理系統(tǒng)的又一個(gè)典型應(yīng)用實(shí)例。開發(fā)出高效實(shí)用的學(xué)生成績管理系統(tǒng),對學(xué)生成績進(jìn)實(shí)例。開發(fā)出高效實(shí)用的學(xué)生成績管理系統(tǒng),對學(xué)生成績進(jìn)行統(tǒng)一管理,實(shí)現(xiàn)學(xué)生成績信息管理工作流程
35、的系統(tǒng)化、規(guī)行統(tǒng)一管理,實(shí)現(xiàn)學(xué)生成績信息管理工作流程的系統(tǒng)化、規(guī)范化和自動(dòng)化有著極為重要的作用和意義。范化和自動(dòng)化有著極為重要的作用和意義。 本程序旨在訓(xùn)練讀者的基本編程能力,了解管理信息系本程序旨在訓(xùn)練讀者的基本編程能力,了解管理信息系統(tǒng)的開發(fā)流程,熟悉統(tǒng)的開發(fā)流程,熟悉C+的文件和單鏈表的各種基本操作。的文件和單鏈表的各種基本操作。具體為:具體為: 了解程序設(shè)計(jì)的過程和方法。了解程序設(shè)計(jì)的過程和方法。 掌握學(xué)生成績管鋰系統(tǒng)的設(shè)計(jì)思想和方法。掌握學(xué)生成績管鋰系統(tǒng)的設(shè)計(jì)思想和方法。 熟悉學(xué)生成績管理系統(tǒng)的源代碼。熟悉學(xué)生成績管理系統(tǒng)的源代碼。 通過學(xué)習(xí)提高程序設(shè)計(jì)的能力。通過學(xué)習(xí)提高程序設(shè)計(jì)的
36、能力。2910.4.1 系統(tǒng)設(shè)計(jì)目標(biāo) 用用C+語言開發(fā)學(xué)生成績管理系統(tǒng),涉及的主要知識點(diǎn)語言開發(fā)學(xué)生成績管理系統(tǒng),涉及的主要知識點(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)體類型、類和對象的使用;結(jié)構(gòu)體類型、類和對象的使用; 鏈表的使用(利用鏈表,實(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é)生成績管理系統(tǒng),在設(shè)計(jì)為了開發(fā)一個(gè)方便、適用的學(xué)生成績管理系統(tǒng),在設(shè)計(jì)前必須對該系統(tǒng)的信息進(jìn)行認(rèn)真的調(diào)查研究。對系統(tǒng)的具體前必須對該系統(tǒng)的信息進(jìn)行認(rèn)真的調(diào)查研究。對系統(tǒng)的具體要求如下:要求如下: 成績錄入:成績錄入:輸入學(xué)生的各項(xiàng)信息,并計(jì)算課程的平均輸入學(xué)生的各項(xiàng)信息,并計(jì)算課程的平均成績。成績。 成績查詢:成績查詢:根據(jù)學(xué)號查詢某學(xué)生各項(xiàng)成績或全班學(xué)生根據(jù)學(xué)號查詢某學(xué)生各項(xiàng)成績或全班學(xué)生的成績,輸出各項(xiàng)查詢結(jié)果。的成績,輸出各項(xiàng)查詢結(jié)果。 成績處理:成績處理:修改原有成績、添加新生的成績、刪除不修改原有成績、添加新生的成績、刪除不需
38、保存的成績。需保存的成績。 成績統(tǒng)計(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ìn)對選定課程成績、平均成績、總分等進(jìn)行排序。行排序。 建立文本界面進(jìn)行輸入和選擇。建立文本界面進(jìn)行輸入和選擇。 數(shù)據(jù)以文件形式存儲(chǔ)。數(shù)據(jù)以文件形式存儲(chǔ)。 通過對學(xué)生成績管理工作內(nèi)容的分析,設(shè)計(jì)的學(xué)生成績通過對學(xué)生成績管理工作內(nèi)容的分析,設(shè)計(jì)的學(xué)生成績管理系統(tǒng)應(yīng)包含以下功能。管理系統(tǒng)應(yīng)包含以下功能。 成績輸入功能:成績輸入功能:輸入學(xué)生的成績信
39、息,包括班級、學(xué)輸入學(xué)生的成績信息,包括班級、學(xué)號、姓名及課程的成績。數(shù)據(jù)可以從鍵盤輸入,也可以從文號、姓名及課程的成績。數(shù)據(jù)可以從鍵盤輸入,也可以從文件中讀取。件中讀取。3210.4.2 系統(tǒng)需求分析 成績輸出功能:成績輸出功能:輸出班級所有學(xué)生的成績記錄。成績輸出班級所有學(xué)生的成績記錄。成績記錄可以直接輸出在屏幕上或保存到磁盤文件中。記錄可以直接輸出在屏幕上或保存到磁盤文件中。 成績查詢功能:成績查詢功能:查詢指定學(xué)號學(xué)生的成績及相關(guān)信息。查詢指定學(xué)號學(xué)生的成績及相關(guān)信息。 成績處理功能:成績處理功能:修改或刪除指定學(xué)號學(xué)生的成績記錄,修改或刪除指定學(xué)號學(xué)生的成績記錄,或增加學(xué)生的成績記錄
40、,或?qū)W(xué)生成績進(jìn)行排序?;蛟黾訉W(xué)生的成績記錄,或?qū)W(xué)生成績進(jìn)行排序。 成績統(tǒng)計(jì)功能:成績統(tǒng)計(jì)功能:計(jì)算每門課程的平均分,統(tǒng)計(jì)每門課計(jì)算每門課程的平均分,統(tǒng)計(jì)每門課程不及格人數(shù),以及相關(guān)信息。程不及格人數(shù),以及相關(guān)信息。 通過需求分析,全面了解對應(yīng)問題及其環(huán)境,為問題涉通過需求分析,全面了解對應(yīng)問題及其環(huán)境,為問題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、完全化,最終形成設(shè)計(jì)方案及其規(guī)格說明。完全化,最終形成設(shè)計(jì)方案及其規(guī)格說明。 3310.4.3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 通過對學(xué)生成績管理系統(tǒng)功能要求的分析,該系統(tǒng)的結(jié)通過對學(xué)生成績管理系統(tǒng)
41、功能要求的分析,該系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)如圖構(gòu)設(shè)計(jì)如圖1011所示。所示。圖圖 101011 11 學(xué)生成績管理系統(tǒng)功能模塊結(jié)構(gòu)圖學(xué)生成績管理系統(tǒng)功能模塊結(jié)構(gòu)圖從從鍵鍵盤盤輸輸入入從從文文件件讀讀入入修修改改成成績績記記錄錄刪刪除除成成績績記記錄錄插插入入成成績績記記錄錄排排序序成成績績記記錄錄按按姓姓名名查查詢詢按按學(xué)學(xué)號號查查詢詢輸輸出出至至屏屏幕幕輸輸出出至至文文件件不不及及格格的的人人數(shù)數(shù)各各課課程程平平均均分分輸入記錄輸入記錄管理模塊管理模塊處理記錄處理記錄管理模塊管理模塊查詢記錄查詢記錄管理模塊管理模塊輸出記錄輸出記錄管理模塊管理模塊學(xué)生成績管理系統(tǒng)學(xué)生成績管理系統(tǒng)統(tǒng)計(jì)記錄統(tǒng)計(jì)記錄管理模塊
42、管理模塊3410.4.3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 學(xué)生成績管理系統(tǒng)是在主控函數(shù)的管理下進(jìn)行的。主控學(xué)生成績管理系統(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ù)中,通過循環(huán)執(zhí)行一的函數(shù)均由主函數(shù)控制調(diào)用。在主函數(shù)中,通過循環(huán)執(zhí)行一個(gè)個(gè)swibh開關(guān)語句來運(yùn)行系統(tǒng)。在循環(huán)體中,根據(jù)用戶輸入開關(guān)語句來運(yùn)行系統(tǒng)
43、。在循環(huán)體中,根據(jù)用戶輸入的數(shù)字調(diào)用相應(yīng)函數(shù)完成相應(yīng)功能。的數(shù)字調(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é)生成績信息由班級、學(xué)號、姓名、各門課程成績、總學(xué)生成績信息由班級、學(xué)號、姓名、各門課程成績、總分和名次等數(shù)據(jù)構(gòu)成。盡管學(xué)生成績信息包含的數(shù)據(jù)是相同分和名次等數(shù)據(jù)構(gòu)成。
44、盡管學(xué)生成績信息包含的數(shù)據(jù)是相同的,但三種方法在數(shù)據(jù)類型的定義格式上是不一樣的。的,但三種方法在數(shù)據(jù)類型的定義格式上是不一樣的。 成績輸入模塊用來完成從數(shù)據(jù)文件中讀入學(xué)生成績,也成績輸入模塊用來完成從數(shù)據(jù)文件中讀入學(xué)生成績,也可以從鍵盤逐個(gè)輸入學(xué)生成績。成績輸入通過可以從鍵盤逐個(gè)輸入學(xué)生成績。成績輸入通過Input(Stu_Score s )函數(shù)、函數(shù)、Read(Stu Score s )函數(shù)實(shí)現(xiàn)成函數(shù)實(shí)現(xiàn)成績輸入??冚斎搿?Input(Stu_Score s )函數(shù):函數(shù):用來通過鍵盤將學(xué)生成用來通過鍵盤將學(xué)生成績信息輸入到結(jié)構(gòu)體數(shù)組中??冃畔⑤斎氲浇Y(jié)構(gòu)體數(shù)組中。 Read(Stu Scor
45、e s )函數(shù):函數(shù):用來從已有磁盤文件中用來從已有磁盤文件中讀取成績信息到結(jié)構(gòu)體數(shù)組中。讀取成績信息到結(jié)構(gòu)體數(shù)組中。 3610.4.4 使用結(jié)構(gòu)體設(shè)計(jì) 成績查詢模塊用來完成按學(xué)號和姓名查找學(xué)生,然后查成績查詢模塊用來完成按學(xué)號和姓名查找學(xué)生,然后查找該學(xué)生的成績信息。成績查詢通過找該學(xué)生的成績信息。成績查詢通過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ù):用用來查找指定學(xué)號學(xué)生是否存在,若存在,則返回該學(xué)生所在來查找指定學(xué)號學(xué)生是否存在,若存在,則
46、返回該學(xué)生所在的位置。的位置。 Search_Name(Stu_Score s ,char stu_name10)函數(shù):函數(shù):用來查找指定姓名學(xué)生是否存在,若存在,則返回該學(xué)生所用來查找指定姓名學(xué)生是否存在,若存在,則返回該學(xué)生所在的位置。在的位置。 Search_Score(Stu_Score s )函數(shù):函數(shù):用來查找指用來查找指定學(xué)生的成績信息,若存在該學(xué)生,則將其成績顯示在屏幕定學(xué)生的成績信息,若存在該學(xué)生,則將其成績顯示在屏幕上。上。 3710.4.4 使用結(jié)構(gòu)體設(shè)計(jì) 成績處理通過成績處理通過Modify函數(shù)、函數(shù)、Delete函數(shù)、函數(shù)、Insert函數(shù)、函數(shù)、Soft_Sum函數(shù)
47、和函數(shù)和Sort_Num函數(shù)來實(shí)現(xiàn)。函數(shù)來實(shí)現(xiàn)。 Modify(Stu_Score s )函數(shù):函數(shù):用來修改指定學(xué)號學(xué)用來修改指定學(xué)號學(xué)生的成績信息。生的成績信息。 Delete(Stu_Score s )函數(shù):函數(shù):用來刪除指定學(xué)號學(xué)用來刪除指定學(xué)號學(xué)生的成績信息。生的成績信息。 Insert(Stu_Scores )函數(shù):函數(shù):用來增加一個(gè)學(xué)生的成用來增加一個(gè)學(xué)生的成績信息??冃畔?。 Soft_Sum(Stu_Score s )函數(shù):函數(shù):用來按總分降序?qū)τ脕戆纯偡纸敌驅(qū)λ袑W(xué)生進(jìn)行排序,并給出名次。所有學(xué)生進(jìn)行排序,并給出名次。 3810.4.4 使用結(jié)構(gòu)體設(shè)計(jì) Sort_Num(St
48、u_Score s )函數(shù):函數(shù):用來對所有學(xué)生按用來對所有學(xué)生按學(xué)號從小到大進(jìn)行排序。學(xué)號從小到大進(jìn)行排序。 成績統(tǒng)計(jì)模塊用來統(tǒng)計(jì)每門課的平均分和統(tǒng)計(jì)每門課程成績統(tǒng)計(jì)模塊用來統(tǒng)計(jì)每門課的平均分和統(tǒng)計(jì)每門課程不及格的人數(shù),并顯示在屏幕上。成績統(tǒng)計(jì)通過不及格的人數(shù),并顯示在屏幕上。成績統(tǒng)計(jì)通過Course_Ave函數(shù)和函數(shù)和Statistic_Course函數(shù)來實(shí)現(xiàn)。函數(shù)來實(shí)現(xiàn)。 Course_Ave(Stu_Score s )函數(shù):函數(shù):用來統(tǒng)計(jì)每門課用來統(tǒng)計(jì)每門課的平均分。的平均分。 Statistic_Course(Stu_Score s )函數(shù):函數(shù):用來統(tǒng)計(jì)用來統(tǒng)計(jì)每門課程不及格的人數(shù)
49、。每門課程不及格的人數(shù)。 3910.4.4 使用結(jié)構(gòu)體設(shè)計(jì) 成績輸出模塊主要完成兩項(xiàng)任務(wù):一是通過成績輸出模塊主要完成兩項(xiàng)任務(wù):一是通過Output函數(shù)函數(shù)將所有學(xué)生的成績信息顯示在屏幕上;二是通過將所有學(xué)生的成績信息顯示在屏幕上;二是通過Save函數(shù)將函數(shù)將成績信息保存至磁盤文件中。成績信息保存至磁盤文件中。 Output(Stu Scores s )函數(shù):函數(shù):用來將所有學(xué)生的成用來將所有學(xué)生的成績信息顯示在屏幕上??冃畔@示在屏幕上。 Save(Stu_Score s )函數(shù):函數(shù):用來將成績信息保存至用來將成績信息保存至磁盤文件中。磁盤文件中。 4010.4.5 使用鏈表設(shè)計(jì) 使用鏈表
50、設(shè)計(jì)本系統(tǒng)時(shí),只需關(guān)心指針有沒有指到鏈表使用鏈表設(shè)計(jì)本系統(tǒng)時(shí),只需關(guān)心指針有沒有指到鏈表尾,而不必知道班級學(xué)生人數(shù),故不需要實(shí)時(shí)記錄人數(shù)。尾,而不必知道班級學(xué)生人數(shù),故不需要實(shí)時(shí)記錄人數(shù)。 成績輸入模塊通過成績輸入模塊通過Input(node *head) )函數(shù)和函數(shù)和Read(node *head)函數(shù)來實(shí)現(xiàn)信息輸入。函數(shù)來實(shí)現(xiàn)信息輸入。 Input(node *head)函數(shù):函數(shù):用來通過鍵盤將若干名學(xué)用來通過鍵盤將若干名學(xué)生的成績信息輸入到鏈表中,生成一條有序鏈表。生的成績信息輸入到鏈表中,生成一條有序鏈表。 Read(node *head)函數(shù):函數(shù):用來直接從文件中讀取成用來直接
51、從文件中讀取成績信息到鏈表中,生成一條有序鏈表??冃畔⒌芥湵碇?,生成一條有序鏈表。 成績查詢模塊通過成績查詢模塊通過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ù): 用來在鏈表中查找指定學(xué)號學(xué)生是否存在,若存在,則用來在鏈表中查找指定學(xué)號學(xué)生是否存在,若存在,則返回指向該學(xué)生所在結(jié)點(diǎn)的指針。返回指向該學(xué)生所在結(jié)點(diǎn)的指針。 Search Name(node *head,char stu_name15)函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制定科學(xué)的招聘與選拔流程計(jì)劃
- 城市交通與城市規(guī)劃理論創(chuàng)新研究重點(diǎn)基礎(chǔ)知識點(diǎn)
- 城市交通規(guī)劃政策研究重點(diǎn)基礎(chǔ)知識點(diǎn)
- 社交媒體營銷的季度目標(biāo)與策略計(jì)劃
- 2024年湛江市民政局招聘工作人員筆試真題
- 網(wǎng)絡(luò)管理工具的優(yōu)勢及試題及答案
- 2024年江西長運(yùn)科技有限公司招聘客服人員真題
- 2024年海南省地質(zhì)局下屬事業(yè)單位真題
- 2024年貴州省農(nóng)業(yè)農(nóng)村廳下屬事業(yè)單位真題
- 2024年寧波慈溪市附海鎮(zhèn)招聘筆試真題
- 安徽省1號卷A10聯(lián)盟2025屆高三5月最后一卷語文試題及答案
- 2025屆金融行業(yè)校招面試真題及答案
- 環(huán)保再生塑料椅行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 初中生物會(huì)考試卷及答案2024
- 河北省邢臺(tái)市一中等校2024-2025學(xué)年高二下學(xué)期期中語文試題(含答案)
- 2025-2030中國高壓變頻器行業(yè)市場深度調(diào)研及投資價(jià)值與投資前景研究報(bào)告
- 2025年游戲開發(fā)與設(shè)計(jì)專業(yè)考試試卷及答案
- 《重金屬廢水處理工藝中的鐵碳微電解塔設(shè)計(jì)案例》2100字
- 《心力衰竭護(hù)理》課件
- 西昌古詩文品讀智慧樹知到期末考試答案2024年
- GB/T 3836.31-2021爆炸性環(huán)境第31部分:由防粉塵點(diǎn)燃外殼“t”保護(hù)的設(shè)備
評論
0/150
提交評論