版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C語言課程設(shè)計基本方法講解軟件開發(fā)成功的重要前提2規(guī)劃(對系統(tǒng)進行分析)(一)準(zhǔn)確理解題目要求3要做什么?實現(xiàn)什么功能?理解題目要求,系統(tǒng)應(yīng)該有什么樣的運行過程用文字(輔以圖形)描述清楚基本功能處理什么數(shù)據(jù)?各種數(shù)據(jù)分類描述清楚文字(輔以圖形)寫清楚有什么信息要處理標(biāo)出哪些數(shù)據(jù)是需要輸入的標(biāo)出哪些數(shù)據(jù)是需要輸出的有哪些關(guān)鍵處理?如果需要計算,計算方法(或公式)是什么如果需要排序、檢索,依據(jù)是什么(二)表示和定義數(shù)據(jù)4采用C語言基本數(shù)據(jù)結(jié)構(gòu)
結(jié)構(gòu):用以表示具有關(guān)聯(lián)的一組數(shù)據(jù),比如一個企業(yè)員工,他的姓名、年齡、電子郵件等信息;
數(shù)組:存儲多個對象、實體,比如結(jié)構(gòu)數(shù)組,每個數(shù)組元素表示一個企業(yè)員工;
鏈表:和數(shù)組作用類似,存儲多個對象,添加、刪除對象等操作比較靈活;
文件:把對象數(shù)據(jù)保存到磁盤上,比如企業(yè)所有員工的個人信息存成一個數(shù)據(jù)文件。輔助用的數(shù)據(jù)結(jié)構(gòu)比如排序,可能要用到輔助鏈表或數(shù)組(三)結(jié)構(gòu)化設(shè)計5確定功能模塊和調(diào)用關(guān)系
可按照調(diào)用的層次組織,主程序調(diào)用大的模塊,大的模塊又調(diào)用小的模塊,形成一種清晰的功能拆分關(guān)系;
畫出功能模塊層次圖,并對每個模塊實現(xiàn)的功能和方法給出文字描述。自頂向下逐個模塊編碼主程序/主界面功能模塊子功能模塊更小的子功能模塊直到實現(xiàn)到最末端的細(xì)節(jié)功能為止自頂向下設(shè)計的形式主程序功能1功能2功能3功能4功能5子功能3.1子功能3.2子功能3.1.1子功能3.1.2子功能3.1.36自頂向下設(shè)計的代碼示例int
main(int
argc,
char**argv){/*主函數(shù)*/while(true){DisplayMenu();/*菜單*/ReadChoice();switch(choice);{case
0:FunctionA();break;case
1:FunctionB();break;……}}}/*再來設(shè)計子功能函數(shù)*/FunctionA(){……FunctionA-1();/*調(diào)用子功能*/……FunctionA-2();/*調(diào)用子功能*/……}/*細(xì)化子功能*/FunctionA-1(){……FunctionA-1-1();/*下一級*/……}(四)編碼的要求8鋸齒型程序書寫格式子代碼塊相對于上一級代碼塊,要有正確的縮進,美觀,易讀性好要有注釋代碼語句實現(xiàn)的功能或者采取的方法要有注釋函數(shù)要說明函數(shù)實現(xiàn)的功能;每個函數(shù)參數(shù)表示的意義;返回數(shù)據(jù)的類型和意義實例講解9題目二十二:校際運動會管理系統(tǒng)(一)理解題目10題目二十二:校際運動會管理系統(tǒng)問題描述:初始化輸入:N-參賽學(xué)??倲?shù),M-男子競賽項目數(shù),
W-女子競賽項目數(shù)各項目名次取法有如下幾種:取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;取前3名:第1名得分5,第2名得分3,第3名得分2;用戶自定義:各名次權(quán)值由用戶指定。由程序提醒用戶填寫比賽結(jié)果,輸入各項目獲獎運動員的信息。所有信息記錄完畢后,用戶可以查詢各個學(xué)校的比賽成績,生成團體總分報表,查看參賽學(xué)校信息和比賽項目信息等。從題目描述可得系統(tǒng)運行過程參賽學(xué)校女子項目男子項目初始化輸入成績輸入項目名次名次策略成績統(tǒng)計系統(tǒng)數(shù)據(jù)(項目-學(xué)校-名次)名次數(shù)據(jù)(名次-對應(yīng)分?jǐn)?shù))(按學(xué)校統(tǒng)計)團體總分(男子總分+女子總分)查詢學(xué)校信息比賽項目信息總分?jǐn)?shù)據(jù)11從運行過程可得系統(tǒng)主要功能12系統(tǒng)運行時輸入初始化參數(shù),包括參賽學(xué)校、男子項目、女子項目的數(shù)目和信息;設(shè)定名次分值方案;初始化完成后,提供菜單選項:錄入各比賽項目的名次;查詢各校的團體總分;查詢學(xué)校信息;查詢比賽項目信息;其中,錄入比賽名次,要求每一個比賽項目,都能錄入其前N名每一名次由哪家學(xué)校獲得;查詢學(xué)校信息,要求輸出該學(xué)?;拘畔⑼?,還輸出它的團體總分;查詢比賽項目,要求輸出該項目基本信息外,還輸出該項目前N名分屬什么學(xué)校;自動統(tǒng)計功能:要求錄入各個比賽項目的各名次獲得者后,根據(jù)名次和分值的對應(yīng)關(guān)系,自動統(tǒng)計每個學(xué)校的團體總分。從運行過程可得系統(tǒng)主要數(shù)據(jù)13參賽學(xué)校信息:學(xué)校數(shù)量,各校名稱等;男子項目信息:項目數(shù)量,各項目名稱等;女子項目信息;項目數(shù)量,各項目名稱等;名次和分值的對應(yīng)信息:前多少名可得分,各次得多少分;名次信息:某個項目的前N名分別是哪個學(xué)校;團體總分信息:假設(shè)按學(xué)校統(tǒng)計,并且男隊和女隊一起組成團體總分,則計算方法為該學(xué)校的男隊和女隊分別在各項目中獲得的名次折算(對應(yīng))成分?jǐn)?shù),然后求和。確定數(shù)據(jù)的來源14直接輸入的數(shù)據(jù):參賽學(xué)校信息;男子項目信息;女子項目信息;名次和分值的對應(yīng)信息;名次信息。系統(tǒng)自動計算所得數(shù)據(jù):團體總分。后續(xù)設(shè)計可據(jù)此規(guī)劃,凡是需要用戶輸入的數(shù)據(jù),都需要提供功能菜單和相應(yīng)輸入界面;自動計算的數(shù)據(jù),則需要提供獨立的功能模塊或者函數(shù)進行計算。關(guān)鍵的計算方法(公式)15主要是統(tǒng)計學(xué)校的團體總分
每個比賽項目,不管是男子項目還是女子項目,都有個名次表,比如第一名是哪個學(xué)校,第二名是哪個學(xué)校;
每個名次都對應(yīng)一個分值,比如第一名得5分,第二名得3分等,分值和名次對應(yīng)關(guān)系初始化時由用戶確定;
某校在所有比賽項目中取得的有效名次對應(yīng)的分?jǐn)?shù)總和,即為團體總分。
例,某校男子標(biāo)槍得第一名(5分),女子鐵餅得第二名(3分),女子跳遠(yuǎn)得第一名(5分),其它各比賽項目均未獲得有效名次,則該校團體總分5+3+5=13(二)表示和定義主要數(shù)據(jù)編號學(xué)校校名多個學(xué)校如何表示?通過數(shù)組int
school_num;/*全局變量,學(xué)校數(shù),由初始化決定*/stird,uncamtehead24個學(xué)ne校x校t
*/school
isd,cnhahmeools[24]id;,n/am*e
最多通過鏈表學(xué)校1next
next學(xué)校2
學(xué)校3①16編號女子項目名稱多個項目如何表示?通過數(shù)組int
women_item_num;/*全局變量,女子項目數(shù),由初始化決定*/struct
women_itemwomen_items[24];/*最多24個女子比項目*/②17編號男子項目名稱多個項目如何表示?通過數(shù)組與前類似,略。通過鏈表與前類似,略。③18名次名次分值分值④多個名次分值如何表示?通過數(shù)組int
rank_score_num;/*全局變量,前
N名可以獲得分?jǐn)?shù),由初始化決定*/struct
rank_scorerank_scores[24];/*比 項目最多允許前24名獲得分?jǐn)?shù)*/初始化時,選擇方案1或方案2,程序內(nèi)定19項目編號比名次項目類型名次表⑤結(jié)構(gòu)中,rank_table為整型指針,指向一個動態(tài)分配的整型數(shù)組,數(shù)組的長度為
rank_score_num,即如果前N名可以得分,此數(shù)組長度就是N,數(shù)組元素存儲學(xué)校的編號,表示第幾名被哪個學(xué)校獲得。上述為單個比 項目的名次結(jié)構(gòu),各個比20名次鏈表示意圖項目編號;項目類型(男/女);名次表(數(shù)組):headnext比賽項目1第一名學(xué)校編號第二名學(xué)校編號第三名學(xué)校編號……項目編號;項目類型(男/女);名次表(數(shù)組):next第一名學(xué)校編號第二名學(xué)校編號第三名學(xué)校編號……注意:名次輸入以選擇為主,如列出所有比賽項目供選擇,選擇一個項目后,程序內(nèi)部自然知道他的編號和類型,然后允許用戶依次選擇第一名是哪個學(xué)校,第二名是哪個學(xué)校,以此類推。比賽項目221學(xué)校編號團體總分團體總分⑥團體總分由系統(tǒng)自動統(tǒng)計獲得,不是直接輸入的數(shù)據(jù)。多個學(xué)校如何表示表示?通過數(shù)組int
school_num;/*在學(xué)校初始化時已定義*/struct
team_score
team_scores[24];22(三)結(jié)構(gòu)化設(shè)計主程序初始化成績錄入成績統(tǒng)計查詢計算每個學(xué)校在每個項目上得分,得分依據(jù)是名次方案,求和得團體總分添加男子項目添加女子項目設(shè)定名次方案選擇名次方案自定義方案選擇比賽項目分別輸入該項目第1,2,…N名是哪個學(xué)校,這前N名學(xué)??梢垣@得分?jǐn)?shù)查詢某校團體總分查詢學(xué)校信息;比賽項目信息功能拆分和調(diào)用關(guān)系添加參賽學(xué)校23結(jié)果-各比項目的名次*/int
main(int
argc,
char**argv){/*主函數(shù)*/Initial();/*初始化*/while(true){DisplayMenu();/*菜單*/choice=ReadChoice();switch(choice);{case
0:ReadRank();/*輸入比break;case
1:SearchTeamScore();/*查詢團體總分*/……}}}24Initial(){/*初始化*/……ReadSchools();/*錄入?yún)W(xué)校信息*/項目信息*/ReadManItems();/*錄入男子比ReadWomenItems();ReadRankScores();……}DisplayMenu(){/*顯示菜單*/……}……25ReadSchools(){while(1){/*輸出提示信息*//*自動生成學(xué)校編號*//*讀入學(xué)校名字*//*將新學(xué)校添加到學(xué)校數(shù)組或鏈表中*//*按ESC返回*/}/*自動統(tǒng)計輸入的參賽學(xué)校數(shù)目*//*返回*/}……26(四)界面問題27
如果用字符界面,要提供按鍵菜單,如果設(shè)計成圖形界面菜單更好;
輸入的數(shù)據(jù),盡量用提供選項的方式,減少擊鍵量,提高界面友好度,比如,輸入比賽結(jié)果時,先列出所有比賽項目,讓用戶選一個;然后打印信息,指示當(dāng)前輸入哪一名次的學(xué)校,然后列出所有參賽學(xué)校,讓用戶選出獲得該名次的學(xué)校,而不是直接輸入學(xué)校名或者學(xué)校編號;
查詢輸出界面,輸出查詢結(jié)果到屏幕后,程序應(yīng)暫停,并等候鍵盤按鍵,用戶按任意鍵后,才返回上層菜單,這樣用戶才有機會看清楚查詢的結(jié)果。(五)數(shù)據(jù)存儲的問題(提高)
文件類型:數(shù)據(jù)對象一般都對應(yīng)為一個結(jié)構(gòu),因此用二進制方式創(chuàng)建文件,逐個結(jié)構(gòu)寫到文件內(nèi)即可,例,每個參賽學(xué)校都是一個結(jié)構(gòu)體,可把該結(jié)構(gòu)整體寫入文件中,各個學(xué)校順序?qū)懙酱疟P文件;
項目的比賽結(jié)果,因為項目的有效名次數(shù)目在初始化的時候決定,比賽結(jié)果的結(jié)構(gòu)體中,有效名次表只是一個指針,要把項目連同該項目的名次表正確寫入磁盤,需要做些額外處理。比如在文件中同時記錄結(jié)構(gòu)體大小,否則下次讀數(shù)據(jù)無法正確區(qū)分不同的結(jié)構(gòu)體。28系統(tǒng)分析總結(jié)29
1.理解題目,整理出系統(tǒng)大概運行過程(文字描述或配圖);2.整理出需要的基本功能(文字描述);
3.整理出要處
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度環(huán)保技術(shù)改造項目合同3篇
- 2025版煤炭物流倉儲一體化服務(wù)合同模板4篇
- 2024珠寶銷售合同
- 2025年度高新技術(shù)企業(yè)研發(fā)費用加計扣除代理合同3篇
- 2025年度銷售合同信息共享與部門協(xié)同辦公2篇
- 2025年度XX農(nóng)業(yè)廢棄物資源化利用與污水處理合同3篇
- 2024水電站電力輸出及銷售合同協(xié)議
- 2025年度環(huán)保型廠房出租與能源管理一體化服務(wù)合同3篇
- 二零二五年齡上限勞動合同規(guī)范樣本2篇
- 二零二五年度風(fēng)景名勝區(qū)草坪修剪與修復(fù)合同3篇
- MT/T 199-1996煤礦用液壓鉆車通用技術(shù)條件
- GB/T 6144-1985合成切削液
- GB/T 10357.1-2013家具力學(xué)性能試驗第1部分:桌類強度和耐久性
- 第三方在線糾紛解決機制(ODR)述評,國際商法論文
- 第5章-群體-團隊溝通-管理溝通
- 腎臟病飲食依從行為量表(RABQ)附有答案
- 深基坑-安全教育課件
- 園林施工管理大型園林集團南部區(qū)域養(yǎng)護標(biāo)準(zhǔn)圖例
- 排水許可申請表
- 低血糖的觀察和護理課件
- 計量檢定校準(zhǔn)技術(shù)服務(wù)合同協(xié)議書
評論
0/150
提交評論