版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中南大學(xué)二○一五~二○一六學(xué)年第一學(xué)期信息科學(xué)與工程學(xué)院《計(jì)算機(jī)與程序設(shè)計(jì)基礎(chǔ)》程序設(shè)計(jì)報(bào)告課程名稱:計(jì)算機(jī)與程序設(shè)計(jì)語(yǔ)言基礎(chǔ)班級(jí):2015級(jí)計(jì)算機(jī)工程試驗(yàn)班學(xué)號(hào):0902150424姓名:張志凌云指導(dǎo)教師:汪潔二○一五年十二月目錄一、需求分析 -2-1.要解決的問(wèn)題 -2-2.基本要求 -2-3.限制條件 -3-二、總體設(shè)計(jì) -3-1.算法分析 -3-2.程序設(shè)計(jì)流程圖 -4-3.程序設(shè)計(jì)組成框圖 -4-三、詳細(xì)設(shè)計(jì) -7-1.參數(shù)說(shuō)明 -7-2.函數(shù)功能 -8-3.函數(shù)調(diào)用關(guān)系描述 -8-四、調(diào)試與測(cè)試 -9-五、測(cè)試結(jié)果 -9-六、心得體會(huì) -9-七、附錄 -9-1.源程序清單(含注釋) -9-2.結(jié)果(圖文,包括測(cè)試數(shù)據(jù)和運(yùn)行結(jié)果) -20-一、需求分析1.要解決的問(wèn)題設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng): A采用菜單界面 B可以對(duì)學(xué)生信息進(jìn)行錄入,增加,修改,刪除,查詢,統(tǒng)計(jì),顯示,排序和存盤 C可以按班進(jìn)行管理,可增加、刪除班級(jí) D將學(xué)生信息保存在文件中??梢愿鶕?jù)學(xué)生總分、單科分高低排序并輸出 E增加、修改、刪除、查詢、統(tǒng)計(jì)學(xué)生信息必須使用鏈表實(shí)現(xiàn)(從文件中讀取信息至鏈表再進(jìn)行處理,或者將鏈表信息存入文件) F可以根據(jù)自身理解為系統(tǒng)增加新的功能。 學(xué)生信息包括:學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門以上課程成績(jī)2.基本要求(改)1.理解算法的基本概念;2.使用常量、變量、運(yùn)算符與表達(dá)式、程序控制結(jié)構(gòu)、數(shù)組、函數(shù)、編譯預(yù)處理、指針、結(jié)構(gòu)體與共用體及文件等C語(yǔ)言要素進(jìn)行程序設(shè)計(jì);3.在一種C語(yǔ)言開(kāi)發(fā)環(huán)境下進(jìn)行C程序設(shè)計(jì)的基本步驟;3.限制條件⑴硬件:一般PC機(jī)。⑵軟件:操作系統(tǒng)為Windows8,設(shè)計(jì)語(yǔ)言為VisualC++或TurboC2.0。二、總體設(shè)計(jì)1.算法分析以上所給的課程設(shè)計(jì)的題目,每一個(gè)對(duì)象都包括多個(gè)屬性。所以要考慮數(shù)據(jù)的存儲(chǔ)形式要用結(jié)構(gòu)體類型來(lái)實(shí)現(xiàn)。首先,應(yīng)該考慮定義一個(gè)結(jié)構(gòu),其次,我們應(yīng)該考慮數(shù)據(jù)的存儲(chǔ)形式:是定義一個(gè)數(shù)組來(lái)存儲(chǔ),還是定義一個(gè)鏈表呢?在這里假如我們以數(shù)組的方式來(lái)存儲(chǔ),當(dāng)然可以,但是我們知道,假如我們定義一個(gè)數(shù)組的話,我們首先必須知道學(xué)生人數(shù)大概是多少,以便我們確定數(shù)組的大小,但是題目中沒(méi)有給出,而且題目要求中有大量的刪除、插入操作,所以用鏈表的方式比較方便。對(duì)于菜單的實(shí)現(xiàn),首先我們用printf函數(shù)把程序的功能列出來(lái),然后等待用戶選擇而執(zhí)行不同的函數(shù),執(zhí)行完了一個(gè)功能后又回到菜單。保存數(shù)據(jù)要通過(guò)文件來(lái)實(shí)現(xiàn),文件的讀寫操作請(qǐng)參考教材文件一章及其他參照書的有關(guān)文件的章節(jié)。2、程序設(shè)計(jì)流程圖3、程序設(shè)計(jì)組成框圖(1)刪除函數(shù)structstudent*delete(structstudent*head)輸入一個(gè)姓名,進(jìn)行匹配沒(méi)找到,pOld后移找到首節(jié)點(diǎn)pHead=pOld->next;其他pHead=pOld->next;釋放空間(2)排序(3)修改函數(shù)structstudent*correct(structstudent*a)pNew=l->next當(dāng)pNew->number!=charnum[]&&pNew!=1pNew下移找到匹配沒(méi)有找到匹配信息進(jìn)行修改。料可以修改輸入各修改信息(4)查詢函數(shù)structstudent*pre(structstudent*head)pNew=l->next當(dāng)pNew->number!=charnum[]&&pNew!=1輸出p的結(jié)點(diǎn)pNew移向下一個(gè)節(jié)點(diǎn)p=p->next(后移一個(gè)結(jié)點(diǎn))(5)插入函數(shù)structstudent*add(structstudent*head)初始r指向頭結(jié)點(diǎn)使r指向最末尾;是新加入的節(jié)點(diǎn)插入末尾分配區(qū)域,輸入數(shù)據(jù)(6)保存函數(shù)structstudent*save(structstudent*a)定義文件指針fp=fopen(“c:\\student”,”wb”)(使指針指向文件,只允許只讀)fp=NULL是否重新打p=l->next開(kāi)文件p!=0時(shí)發(fā)生錯(cuò)誤讀取一個(gè)長(zhǎng)度為結(jié)點(diǎn)的數(shù)據(jù)塊并流向是fp否p=p->next(后移一個(gè)結(jié)點(diǎn))保存成功fclose(fp)關(guān)閉文件三、詳細(xì)設(shè)計(jì)1、參數(shù)說(shuō)明structstudent{ charname[30]; charsex[5]; intage; charnumber[10]; charglass[30]; intmath_grades; intEnglish_grades; intC_grades; chartotal[10]; structstudent*next; intorder; };2、函數(shù)功能Structstudent*add;\\保存Structstudent*correct;\\修改structstudent*screen_loading\\加載structstudent*pre\\查詢structstudent*correct|\\修改structstudent*sort\\排序structstudent*student_delete\\刪除voidsave\\存儲(chǔ)3、函數(shù)調(diào)用關(guān)系描述witch(choice){case1:for(;;){head=screen_loading(head);printf("請(qǐng)輸入新增的學(xué)生信息\n");head=add(head);printf("是否需要保存?1:是。2,返回菜單。\n");scanf("%d",&i);if(i=1){ save(head);} if(i=2) break;case2:head=sort(head);break;case3:head=correct(head);break;case4:head=student_delete(head);break;case5:head=pre(head);break;case6:exit(0);}四、調(diào)試與測(cè)試試方法:從網(wǎng)絡(luò)、課本、其他輔導(dǎo)書中了解每一個(gè)函數(shù)的具體編譯方法,先調(diào)試每一個(gè)函數(shù),再一個(gè)個(gè)合起來(lái)進(jìn)去,通過(guò)修繕主函數(shù)的銜接來(lái)保證它們正常運(yùn)行。測(cè)試過(guò)程中遇到的主要問(wèn)題:如何連接起各個(gè)函數(shù),如何在每一次操作后返回主菜單,如何保存到一個(gè)文件中并可以下次調(diào)用,程序卡死等一系列問(wèn)題。采取的解決措施:通過(guò)自學(xué)課本第九章和第十章內(nèi)容,以及查閱其他輔導(dǎo)資料,在與其他同學(xué)相互討論的基礎(chǔ)上,自己不斷完善程序,在不斷的修改中找到正確的方法。五、調(diào)試結(jié)果失敗。。程序總是運(yùn)行錯(cuò)誤要停止運(yùn)行六、心得體會(huì)本次課程設(shè)計(jì)是在學(xué)習(xí)了《C語(yǔ)言程序設(shè)計(jì)(第二版)》的基礎(chǔ)上自學(xué)九、十章的內(nèi)容完成的。雖然遇到了許多問(wèn)題,但是在不斷修改和詢問(wèn)中,也積累了許多曾經(jīng)不了解的知識(shí)。在編程過(guò)程中,遇到了很多困難,還有一些曾經(jīng)忽視的小細(xì)節(jié),都帶給我不少困難,通過(guò)向同學(xué)請(qǐng)教,上網(wǎng)查
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年經(jīng)濟(jì)公司綜合崗筆試題及答案
- 2025年安徽省人事人才網(wǎng)考試及答案
- 2025年中學(xué)行政事業(yè)編考試及答案
- 2026年跨越歷史的春節(jié)與家族傳承
- 2025年中南大學(xué)輔導(dǎo)員筆試題及答案
- 2025年柏鄉(xiāng)教資筆試答案
- 2025年國(guó)企巡檢崗筆試題庫(kù)及答案
- 2026年人工智能算法工程師實(shí)戰(zhàn)技能提升培訓(xùn)
- 2026年老舊小區(qū)改造政策落實(shí)情況分析
- 2025年公職編制筆試及答案
- 下肢動(dòng)脈栓塞的護(hù)理
- 總經(jīng)理聘用管理辦法
- 長(zhǎng)護(hù)險(xiǎn)護(hù)理培訓(xùn)
- DB34∕T 4648-2023 鋼結(jié)構(gòu)橋梁頂推施工技術(shù)規(guī)程
- 2025年時(shí)政100題(附答案)
- 貸款用別人名字協(xié)議書
- 寺院圍墻修繕?lè)桨?3篇)
- 麻醉科PDCA持續(xù)改進(jìn)麻醉術(shù)后鎮(zhèn)痛
- 6.3+基層群眾自治制度+課件高中政治統(tǒng)編版必修三政治與法治
- 村級(jí)公路管護(hù)協(xié)議書
- 班級(jí)思想教育工作
評(píng)論
0/150
提交評(píng)論