




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 成 績(jī) 課 程 設(shè) 計(jì)設(shè)計(jì)課程名稱 C語(yǔ)言課程設(shè)計(jì) 題 目 1 多文件系統(tǒng)設(shè)計(jì) 2鏈表結(jié)構(gòu)系統(tǒng)設(shè)計(jì) 3 訂餐管理系統(tǒng)設(shè)計(jì) 學(xué) 院 常州大學(xué)懷德學(xué)院 專 業(yè) 班 級(jí) 計(jì)算機(jī)141 學(xué) 號(hào) 144160134 姓 名 周堯明 指 導(dǎo) 教 師 林 蔭 部 門 計(jì)算機(jī)教研室 設(shè) 計(jì) 時(shí) 間 2015 年 6 月 26 日 2015 年 7 月 17 日C語(yǔ)言課程設(shè)計(jì)任務(wù)書 常州大學(xué)懷德 學(xué)院 計(jì)算機(jī)141 班 周堯明 同學(xué):一、設(shè)計(jì)題目 1 多文件系統(tǒng)設(shè)計(jì) 2鏈表結(jié)構(gòu)系統(tǒng)設(shè)計(jì) 3 訂餐管理系統(tǒng)設(shè)計(jì)二、C語(yǔ)言課程設(shè)計(jì)的目的和意義C語(yǔ)言課程設(shè)計(jì)是C語(yǔ)言程序設(shè)計(jì)課程的一個(gè)重要的環(huán)節(jié)。它是根據(jù)教學(xué)計(jì)劃的要求
2、,在老師指導(dǎo)下,對(duì)學(xué)生實(shí)施程序設(shè)計(jì)訓(xùn)練的必要過(guò)程,是對(duì)前期課堂教學(xué)效果的檢驗(yàn)。其目標(biāo)在于培養(yǎng)學(xué)生綜合應(yīng)用理論知識(shí)來(lái)分析和解決實(shí)際問(wèn)題的能力。通過(guò)本次課程,要求學(xué)生能夠遵循軟件開(kāi)發(fā)過(guò)程的基本規(guī)范,應(yīng)用結(jié)構(gòu)化程序設(shè)計(jì)的方法,按照題目要求,獨(dú)立完成設(shè)計(jì)任務(wù),使學(xué)生更加深刻地理解和掌握C語(yǔ)言的基本概念、語(yǔ)言特點(diǎn)和編程技巧,為以后相關(guān)課程的學(xué)習(xí)打下良好基礎(chǔ)。三、設(shè)計(jì)內(nèi)容本課程設(shè)計(jì)的內(nèi)容分三個(gè)階段來(lái)完成。各部分目的及內(nèi)容:任務(wù)一 多文件系統(tǒng)設(shè)計(jì)目的:(1)樹(shù)立項(xiàng)目意識(shí),體驗(yàn)C語(yǔ)言的模塊化設(shè)計(jì)風(fēng)格;(2)掌握函數(shù)調(diào)用及其參數(shù)傳遞的方法;(3)學(xué)習(xí)多文件程序的編寫和調(diào)試方法;(4)學(xué)習(xí)基于軟件工程的項(xiàng)目實(shí)現(xiàn)方
3、法和文檔編寫方法。內(nèi)容和要求:(1)使用多文件結(jié)構(gòu)形式完成本設(shè)計(jì)。(2)使用數(shù)組結(jié)構(gòu)存儲(chǔ)學(xué)生的成績(jī),通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)學(xué)生成績(jī)的增加、顯示、指定成績(jī)的刪除、查找和排序。(3)為各項(xiàng)操作功能設(shè)計(jì)菜單。應(yīng)用程序運(yùn)行后,先顯示這個(gè)菜單,然后用戶通過(guò)菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。(4)各功能使用相應(yīng)的函數(shù)實(shí)現(xiàn),各函數(shù)包含在不同的文件中。(5)構(gòu)造獨(dú)立的頭文件,包含所需的所有的頭文件和函數(shù)原型說(shuō)明。(6)設(shè)計(jì)報(bào)告包括課題的需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)和測(cè)試。(7)擴(kuò)展: 性能擴(kuò)展,指用戶使用的友好程度體驗(yàn)。(1)成績(jī)的有效性判斷;(2)部分選單功能必要的循環(huán)操作,等。 功能擴(kuò)展:(1)添加功能;
4、 (2)成績(jī)從文件度讀、寫功能,等。任務(wù)二 鏈表結(jié)構(gòu)系統(tǒng)設(shè)計(jì)目的:(1)熟悉使用結(jié)構(gòu)體和鏈表進(jìn)行復(fù)雜數(shù)據(jù)的表示方法 ;(2)掌握結(jié)構(gòu)體和鏈表數(shù)據(jù)的的常用操作的實(shí)現(xiàn)方法;(3)熟悉一個(gè)完整的信息管理軟件的開(kāi)發(fā)流程、設(shè)計(jì)和表示方法。內(nèi)容和要求:(1) 使用多文件結(jié)構(gòu)形式完成本設(shè)計(jì)。基本要求同任務(wù)一:通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)學(xué)生成績(jī)的增加、顯示、指定成績(jī)的刪除、查找和排序功能。各功能使用相應(yīng)的函數(shù)實(shí)現(xiàn),各函數(shù)包含在不同的文件中。為各項(xiàng)操作功能設(shè)計(jì)菜單。應(yīng)用程序運(yùn)行后,先顯示這個(gè)菜單,然后用戶通過(guò)菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。(2) 使用結(jié)構(gòu)體存儲(chǔ)每位學(xué)生的信息(包括成績(jī)),將多位學(xué)生的信息以鏈表方式組織。(
5、3)使用指針操作訪問(wèn)學(xué)生結(jié)構(gòu)體數(shù)組的每一個(gè)學(xué)生信息。(4)使用動(dòng)態(tài)申請(qǐng)和釋放內(nèi)存函數(shù)完成對(duì)學(xué)生信息的增刪操作。(5)構(gòu)造獨(dú)立的頭文件,包含所需的所有的頭文件和函數(shù)原型說(shuō)明。(6)設(shè)計(jì)報(bào)告包括課題的需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)和測(cè)試。(7)擴(kuò)展:如任務(wù)一。任務(wù)三 訂餐管理系統(tǒng)設(shè)計(jì)目的:(1)熟悉使用軟件工程的思想完成一個(gè)信息系統(tǒng)的設(shè)計(jì)步驟和方法。(2)熟悉軟件設(shè)計(jì)各步驟表示的常用工具。(3)掌握使用C語(yǔ)言進(jìn)行多文件程序編寫和調(diào)試的方法。內(nèi)容和要求:(1)使用多文件結(jié)構(gòu)形式完成本設(shè)計(jì)。(2)為各項(xiàng)操作功能設(shè)計(jì)一個(gè)菜單。應(yīng)用程序運(yùn)行后,先顯示這個(gè)菜單,然后用戶通過(guò)菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)
6、目。(2)使用鏈表結(jié)構(gòu)存儲(chǔ)訂餐信息,通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)訂餐信息添加、查詢、刪除、輸出和排序。(3)為各項(xiàng)操作功能設(shè)計(jì)菜單。應(yīng)用程序運(yùn)行后,先顯示主菜單,然后用戶通過(guò)菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。(4)各功能使用相應(yīng)的函數(shù)實(shí)現(xiàn),各函數(shù)包含在不同的文件中。(5)構(gòu)造獨(dú)立的頭文件,包含所需的所有的頭文件和函數(shù)原型說(shuō)明。(6)設(shè)計(jì)報(bào)告包括課題的需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)和測(cè)試。(7)擴(kuò)展: 性能擴(kuò)展,指用戶使用的友好程度體驗(yàn)。(1)添加訂餐信息;(2)部分選單功能必要的循環(huán)操作,等。 功能擴(kuò)展:(1)添加功能; (2)訂餐信息從文件度讀、寫功能,等。課程設(shè)計(jì)的排版要求一、總體要求1、 紙型:
7、A4;3、頁(yè)面設(shè)置:左、右、下邊距為2.5厘米,上邊距為2.8厘米,頁(yè)眉和頁(yè)腳均為2.0厘米(頁(yè)眉頁(yè)腳如該文檔);4、行間距:固定值18磅;5、中文采用宋體字體,西文、數(shù)字等符號(hào)均采用Times New Roman字體。二、課程設(shè)計(jì)正文排版要求 1 題名(宋體 小四號(hào) 粗體)(段前、段后0.5行)說(shuō)明:章、節(jié)編號(hào)全部頂格排,編號(hào)與標(biāo)題之間空1個(gè)字的間隙。1.1 題名(宋體 五號(hào) 粗體)(段前、段后0.5行)1.1.1 題名(宋體 五號(hào) 粗體)(段前、段后0.5行)×××××××××××
8、×××××××××××××××××××××××××××××××××(內(nèi)容:宋體 五號(hào),段前距和段后距均為0磅;)三、頁(yè)眉和頁(yè)腳常州大學(xué)懷德學(xué)院課程設(shè)計(jì)(字體:宋體、五號(hào)) 學(xué)號(hào):姓名:第 頁(yè) 共 頁(yè)四、設(shè)計(jì)要求1、編寫源程序的要求:(1) 實(shí)現(xiàn)任務(wù)書中的所有功能,可擴(kuò)展
9、;(2) 盡可能使界面友好、直觀、易操作;(3) 源程序要有注釋,使程序容易閱讀;(4)使用多文件實(shí)現(xiàn)。2、撰寫“課程設(shè)計(jì)報(bào)告”,要求如下: (1)封面:統(tǒng)一采用常州大學(xué)課程設(shè)計(jì)說(shuō)明書封面格式 (2)任務(wù)書 (3)目錄 (4)正文。每部分按各自的要求編寫,依次按照任務(wù)一、任務(wù)二和任務(wù)三完成。3、 “課程設(shè)計(jì)報(bào)告”排版要求:4、課程設(shè)計(jì)答辯驗(yàn)收要求:(1)運(yùn)行所設(shè)計(jì)的系統(tǒng);(2)回答有關(guān)問(wèn)題;(3)電子稿:提交源程序和課程設(shè)計(jì)報(bào)告電子稿,打包上傳至網(wǎng)絡(luò)課堂相關(guān)節(jié)點(diǎn)書面稿:提交課程設(shè)計(jì)報(bào)告書面稿五、進(jìn)度安排1 任務(wù)一 多文件系統(tǒng)設(shè)計(jì):16學(xué)時(shí)+課外2 任務(wù)二 鏈表結(jié)構(gòu)系統(tǒng)設(shè)計(jì):16學(xué)時(shí)+課外3任務(wù)
10、三 信息系統(tǒng)設(shè)計(jì)系統(tǒng)分析和系統(tǒng)設(shè)計(jì)階段:4學(xué)時(shí)+課外編程及系統(tǒng)調(diào)試階段:22學(xué)時(shí) +課外總結(jié)和書寫課程設(shè)計(jì)報(bào)告階段:課外考核階段:2學(xué)時(shí)六、設(shè)計(jì)時(shí)間:2015 年 6 月26 日到 2015 年7 月 17 日參考文獻(xiàn)(宋體 小四號(hào) 粗體)內(nèi)容: (中文用宋體五號(hào),西文、數(shù)字等符號(hào)均采用Times New Roman字體):序號(hào)作者.文獻(xiàn)題名M.出版地:出版者,出版年.起止頁(yè)碼如:1毛利銳,沈灌群.中國(guó)教育通史M.濟(jì)南:山東教育出版社,1988.20-222中國(guó)力學(xué)學(xué)會(huì)第三屆全國(guó)實(shí)驗(yàn)流體力學(xué)學(xué)術(shù)會(huì)議論文集C天津:19903李曉東,張慶紅,葉瑾琳氣候?qū)W研究的若干理論問(wèn)題J北京大學(xué)學(xué)報(bào):自然科學(xué)版
11、,1995,35(1):101-106目 錄任務(wù)一 多文件系統(tǒng)設(shè)計(jì).11 問(wèn)題描述.12 系統(tǒng)設(shè)計(jì).1 2.1 系統(tǒng)功能結(jié)構(gòu)圖.1 2.2 系統(tǒng)流程設(shè)計(jì)圖.1 2.3 系統(tǒng)文件結(jié)構(gòu)圖.23 詳細(xì)設(shè)計(jì) .2 3.1文件和自定義函數(shù)間的關(guān)系. . .2 3.2 函數(shù)之間調(diào)用關(guān)系.3 3.3 函數(shù)設(shè)計(jì).44 系統(tǒng)實(shí)現(xiàn).75 系統(tǒng)測(cè)試和結(jié)果.12任務(wù)二 鏈表結(jié)構(gòu)系統(tǒng)設(shè)計(jì).161 問(wèn)題描述.162 系統(tǒng)設(shè)計(jì).16 2.1 系統(tǒng)功能結(jié)構(gòu)圖. .16 2.2 系統(tǒng)流程設(shè)計(jì)圖.16 2.3 數(shù)據(jù)設(shè)計(jì).17 2.4 系統(tǒng)文件結(jié)構(gòu)圖.173 詳細(xì)設(shè)計(jì).18 3.1結(jié)構(gòu)體定義. . .18 3.2文件和自定義函數(shù)間
12、的關(guān)系. .18 3.3 函數(shù)之間調(diào)用關(guān)系.19 3.4 函數(shù)設(shè)計(jì).194 系統(tǒng)實(shí)現(xiàn).205 系統(tǒng)測(cè)試和結(jié)果.25任務(wù)三 訂餐信息系統(tǒng)設(shè)計(jì).271 問(wèn)題描述.272 系統(tǒng)分析.27 2.1 課題的基本要求.27 2.2 輸入/輸出要求.28 2.3 數(shù)據(jù)分析.28 2.4 系統(tǒng)操作流程分析.283 系統(tǒng)設(shè)計(jì).29 3.1 數(shù)據(jù)設(shè)計(jì).29 3.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì).30 3.3 輸入/輸出設(shè)計(jì).313.3.1 輸入設(shè)計(jì).313.3.2 輸出設(shè)計(jì).31 3.4 設(shè)計(jì)過(guò)程中的重點(diǎn)和難點(diǎn).314 詳細(xì)設(shè)計(jì).32 4.1數(shù)據(jù)定義. . .32 4.2文件和自定義函數(shù)間的關(guān)系. .33 4.3 函數(shù)之間調(diào)
13、用關(guān)系.33 4.4 函數(shù)設(shè)計(jì).34 5 系統(tǒng)實(shí)現(xiàn).37 5.1 系統(tǒng)構(gòu)架(文件組織結(jié)構(gòu))37 5.2 源程序清單37 5.3實(shí)現(xiàn)中的重點(diǎn)和難點(diǎn).50 5.4遇到的問(wèn)題及解決.506 測(cè)試和結(jié)果分析總結(jié).50 6.1 測(cè)試和結(jié)果.51 6.2 結(jié)果分析.567 系統(tǒng)使用說(shuō)明.568 結(jié)論.57 8.1課題完成情況說(shuō)明.57 8.2系統(tǒng)的亮點(diǎn).57 8.3系統(tǒng)的不足.57 8.4系統(tǒng)可能的改進(jìn)和擴(kuò)展 57總結(jié).57參考文獻(xiàn).57致謝.58常州大學(xué)懷德學(xué)院課程設(shè)計(jì) 班級(jí):計(jì)算機(jī)141 學(xué)號(hào): 144160134 姓名: 周堯明任務(wù)一 多文件系統(tǒng)設(shè)計(jì)1 問(wèn)題描述本系統(tǒng)是用于管理學(xué)生的成績(jī),通過(guò)本系統(tǒng)
14、可以實(shí)現(xiàn)成績(jī)的輸入、排序、查詢、刪除、插入、顯示的功能,并且還可以顯示所有學(xué)生的成績(jī)。2 系統(tǒng)設(shè)計(jì)2.1系統(tǒng)功能結(jié)構(gòu)圖如圖1所示學(xué)生成績(jī)管理系統(tǒng)刪除學(xué)生成績(jī)查詢學(xué)生成績(jī)顯示學(xué)生成績(jī)排序?qū)W生成績(jī)輸入學(xué)生成績(jī)插入學(xué)生成績(jī) 圖1 系統(tǒng)功能結(jié)構(gòu)圖 學(xué)生成績(jī)管理系統(tǒng)分為6個(gè)部分,分別為輸入學(xué)生成績(jī)、刪除學(xué)生成績(jī)、查詢學(xué)生成績(jī)、顯示學(xué)生成績(jī)、排序?qū)W生成績(jī)、插入學(xué)生成績(jī)。2.2系統(tǒng)流程設(shè)計(jì)圖如圖1所示歡迎界面進(jìn)入菜單選項(xiàng)1.成績(jī)輸入,并判斷是否有效3.成績(jī)循環(huán)查詢5.顯示成績(jī)2.成績(jī)循環(huán)刪除4.成績(jī)排序0退出系統(tǒng).6.循環(huán)插入成績(jī)和判斷插入的成績(jī)是否有效圖1 系統(tǒng)流程設(shè)計(jì)圖該系統(tǒng)會(huì)先進(jìn)入歡迎界面,然后出現(xiàn)7
15、個(gè)菜單,1.成績(jī)輸入,并判斷是否有效,2成績(jī)循環(huán)刪除,3成績(jī)循環(huán)查詢,4成績(jī)排序,5顯示成績(jī),6循環(huán)插入成績(jī),0退出系統(tǒng)。3.1數(shù)據(jù)設(shè)計(jì)2.3系統(tǒng)文件結(jié)構(gòu)圖如圖3所示main.c-主函數(shù)input.c-成績(jī)輸入del.c-成績(jī)刪除find.c-成績(jī)查詢insert.c-成績(jī)插入menu.c-主菜單sort.c-成績(jī)排序display.c-成績(jī)顯示task.h-頭文件圖3系統(tǒng)文件結(jié)構(gòu)圖首先建立一個(gè)工程名為task1.h,然后建立8個(gè)源文件和一個(gè)頭文件,分別為刪除成績(jī)、顯示成績(jī)、查詢成績(jī)、輸入成績(jī)、插入成績(jī)、主菜單、主函數(shù)。3 詳細(xì)設(shè)計(jì)3.1文件和自定義函數(shù)之間的關(guān)系文件名文件所對(duì)應(yīng)的函數(shù)功能說(shuō)明
16、main.cvoid main()主函數(shù),進(jìn)行選擇功能選項(xiàng)menu,cvoid menu()主菜單,輸入功能選項(xiàng)input.cint input(floata,int n)輸入成績(jī),并對(duì)數(shù)據(jù)有效判斷del.cint del(float a,int n)刪除成績(jī),可以循環(huán)刪除find.cvoid find(float a,int n)查詢成績(jī),可以循環(huán)查詢sort.cvoid sort(floata,int n)成績(jī)從高到低排序display.cvoid display(floata,int n) 顯示成績(jī)insert.cint insert(float a,int n)插入成績(jī),如果在成績(jī)表中
17、存在,輸出提示信息;如果不在,將其插入在表的末尾。然后輸出整個(gè)表。 圖4文件和自定義函數(shù)的關(guān)系3.2 函數(shù)之間調(diào)用關(guān)系如圖5所示main()menu()input()del()sort()display()insert()exit()find()圖5 函數(shù)之間調(diào)用關(guān)系3.3 函數(shù)設(shè)計(jì)(1)主函數(shù)A.函數(shù)原型:void main( )B.功能:顯示學(xué)生成績(jī)管理系統(tǒng)的7個(gè)功能選項(xiàng)C.入口參數(shù):無(wú)D.出口參數(shù):無(wú)E.描述:定義一個(gè)數(shù)組來(lái)儲(chǔ)存成績(jī),通過(guò)調(diào)用函數(shù)實(shí)現(xiàn)相應(yīng)的功能。(2)菜單函數(shù)A.函數(shù)原型:void menu( )B.功能:顯示菜單界面C.入口參數(shù):無(wú)D.出口參數(shù):無(wú)E.描述:輸出顯示菜單
18、選項(xiàng) (3)學(xué)生成績(jī)的輸入A.函數(shù)原型:int input(floata,int n)B.功能:輸入學(xué)生的實(shí)際人數(shù)與學(xué)生的成績(jī)并保存到數(shù)組中,然后將輸入的數(shù)據(jù)帶回main函數(shù)C.入口參數(shù):ai 保存學(xué)生的成績(jī);n:學(xué)生人數(shù)D.出口參數(shù):n:學(xué)生實(shí)際人數(shù)n:學(xué)生實(shí)際人數(shù)E .描述:先輸入學(xué)生人數(shù),再輸入學(xué)生成績(jī),并判斷成績(jī)是否有效,無(wú)效從新輸入。打開(kāi)文件,將學(xué)生成績(jī)寫入文件中,最后關(guān)閉文件。(4)刪除學(xué)生成績(jī)A.函數(shù)原型:int del(float a,int n)B.功能:輸入要?jiǎng)h除的成績(jī) C.入口參數(shù): ai 保存學(xué)生的成績(jī);n:學(xué)生人數(shù)D.出口參數(shù):n:學(xué)生實(shí)際人數(shù)E .描述:輸入要?jiǎng)h除的
19、成績(jī),若輸入數(shù)不存在,就輸出不存在,并用循環(huán)判斷是否繼續(xù)。 (5)查詢學(xué)生成績(jī)A.函數(shù)原型:void find(float a,int n)B.功能:輸入要查詢的成績(jī) C.入口參數(shù): ai 保存學(xué)生的成績(jī);n:學(xué)生人數(shù)D.出口參數(shù):無(wú)E .描述:輸入要查詢的成績(jī),若輸入的成績(jī)不存在,就輸出不存在,并用循環(huán)判斷是否繼續(xù)。(6)排序?qū)W生成績(jī)A.函數(shù)原型:void sort(floata,int n)B.功能:成績(jī)排序 C.入口參數(shù):ai 保存學(xué)生的成績(jī); n:學(xué)生人數(shù)D.出口參數(shù):無(wú)E .描述:對(duì)成績(jī)排序并輸出。(7)查詢學(xué)生成績(jī)A.函數(shù)原型:void find(float a,int n)B.功
20、能:輸入要查詢的成績(jī) C.入口參數(shù):ai 保存學(xué)生的成績(jī); n:學(xué)生人數(shù)D.出口參數(shù):無(wú)E .描述:輸入要查詢的成績(jī),若輸入的成績(jī)不存在,就輸出不存在,并用循環(huán)判斷是否繼續(xù)。(8)顯示學(xué)生成績(jī)A.函數(shù)原型:void display(floata,int n)B.功能:成績(jī)顯示 C.入口參數(shù):ai 保存學(xué)生的成績(jī);n:學(xué)生人數(shù)。D.出口參數(shù):無(wú)E .描述:打開(kāi)文件將數(shù)據(jù)從文件中讀出,并把成績(jī)輸出,最后再關(guān)閉文件。(9)插入學(xué)生成績(jī)A.函數(shù)原型:int insert(float a,int n)B.功能:成績(jī)插入 C.入口參數(shù):ai 保存學(xué)生的成績(jī);n:學(xué)生人數(shù)D.出口參數(shù):n:學(xué)生實(shí)際人數(shù)E .
21、描述:先輸入要插入的成績(jī),判斷數(shù)據(jù)是否有效,若有效將其插入到數(shù)組末端,并用循環(huán)判斷是否繼續(xù)。4.系統(tǒng)實(shí)現(xiàn)(1) 頭文件task.h#include"stdio.h"/定義輸入輸出頭文件#include"stdlib.h"/定義清屏頭文件#include"conio.h"/定義通過(guò)控制臺(tái)進(jìn)行數(shù)據(jù)輸入和數(shù)據(jù)輸出#define SIZE 80/宏定義,學(xué)生人數(shù)最大值為80FILE *fp; /定義文件int inpput(float a,int n);int del(float a,int n);void find(float a,int
22、n);void sort(float a,int n);void display(float a,int n);int insert(float a,int n);void menu();(2) 主函數(shù)main.c#include"task.h"void main() /系統(tǒng)主函數(shù)int j,num;float scoreSIZE; while(1)menu();scanf("%d",&j); /輸入讀取的選項(xiàng)的數(shù)字switch(j) /判斷所選項(xiàng)目case 1: num=inpput(score,num);break; case 2: num=
23、del(score,num);display(score,num);break; case 3: find(score,num);break; case 4: sort(score,num);display(score,num);break; case 5: display(score,num);break; case 6: num=insert(score,num);display(score,num);break; case 0: exit(0);(3) 主菜單 menu.c#include"task.h"void menu() /主菜單顯示system("c
24、ls"); /清屏printf("nnnttt 歡迎使用學(xué)生成績(jī)管理系統(tǒng)nnn");printf("ttt*n");printf("ttt* 主菜單 *n");printf("ttt*nnn");printf("tt 1 成績(jī)輸入 2 成績(jī)刪除n");printf("tt 3 成績(jī)查詢 4 成績(jī)排序n");printf("tt 5 顯示成績(jī) 6 成績(jī)插入n"); printf("tt 0 退出系統(tǒng)n");printf(&quo
25、t;tt 請(qǐng)選擇1/2/3/4/5/6/0:");(4) 成績(jī)輸入 input.c#include"task.h"int inpput(float a,int n) /成績(jī)輸入int i;system("cls");if(fp=fopen("text","wb")=NULL)/打開(kāi)文件判斷printf("cannot openn file");exit(1);printf("n請(qǐng)輸入學(xué)生人數(shù)(180):");scanf("%d",&n);
26、/學(xué)生人數(shù)顯示printf("n請(qǐng)輸入學(xué)生成績(jī):");for(i=0;i<n;i+)/循環(huán)輸入學(xué)生成績(jī)scanf("%f",&ai);for(i=0;i<n;i+)if(ai<0|ai>100) /數(shù)據(jù)是否有效判斷printf("數(shù)據(jù)%.1f無(wú)效,繼續(xù)輸入n",ai);scanf("%f",&ai);for(i=0;i<n;i+) /循環(huán)將數(shù)據(jù)寫入文件fprintf(fp,"%.1ft",ai);fclose(fp); /關(guān)閉文件printf(&qu
27、ot;按回車返回:");getch();return n;(5) 成績(jī)刪除 del.c#include"task.h"int del(float a,int n) /成績(jī)刪除int i,j,k=0,b;float m;system("cls");/清屏if(fp=fopen("text","r")=NULL)/以讀的方式打開(kāi)文件printf("cannot read file");exit(1);for(i=0;i<n;i+) /從文件中讀取數(shù)據(jù)fscanf(fp,"%
28、f",&ai);doprintf("n請(qǐng)輸入要?jiǎng)h除的成績(jī):");scanf("%f",&m); /輸入要?jiǎng)h除的成績(jī)for(i=0;i<n;i+) /刪除成績(jī)if(m=ai) k=1;for(j=i;j<n-1;j+)aj=aj+1;n-;break;if(!k)printf("找不到要?jiǎng)h除的成績(jī):");printf("n結(jié)束請(qǐng)按0,繼續(xù)請(qǐng)按1:");scanf("%d",&b);while(b); /循環(huán)刪除fclose(fp); /關(guān)閉文件prin
29、tf("按回車返回:");getch();return n; (6) 排序?qū)W生成績(jī) sort.c#include"task.h"void sort(float a,int n) /成績(jī)排序int i,j,b;float t;if(fp=fopen("text","w")=NULL) /以寫的方式打開(kāi)文件printf("cannot openn file");exit(1);for(i=0;i<n;i+) /從文件中讀取數(shù)據(jù)fscanf(fp,"%f",&ai);
30、for(i=0;i<n-1;i+) /將學(xué)生成績(jī)從高到底排序for(j=0;j<n-i-1;j+) /采用冒泡排序法if(aj<aj+1)t=aj;aj=aj+1;aj+1=t;printf("n輸出排序結(jié)果:"); for(i=0;i<n;i+) /輸出排序結(jié)果printf("%.1ft",ai);printf("n");for(i=0;i<n;i+)fprintf(fp,".1%ft",ai);fclose(fp); /關(guān)閉文件printf("按回車返回:");
31、getch();(7) 顯示學(xué)生成績(jī) display.c#include"task.h"void find(float a,int n) /成績(jī)查詢int i,b;float m;system("cls"); /清屏if(fp=fopen("text","r")=NULL) /以讀的方式打開(kāi)文件printf("cannot read file");exit(1);for(i=0;i<n;i+)fscanf(fp,"%f",&ai); /從文件中讀取數(shù)據(jù)dopri
32、ntf("n請(qǐng)輸入要查詢的成績(jī):");scanf("%f",&m); /輸入要查詢的成績(jī)for(i=0;i<n;i+) /循環(huán)查找輸入的成績(jī)if(m=ai)printf("已找到,是第%d項(xiàng),值為%.fn",i+1,ai);/輸出查詢的成績(jī)break;if(i>=n)printf("找不到!n");printf("n結(jié)束請(qǐng)按0,繼續(xù)請(qǐng)按1:");scanf("%d",&b);while(b);/循環(huán)查找ifclose(fp);printf(&quo
33、t;按回車返回:");getch(); (8) 學(xué)生成績(jī)查詢find.c#include"task.h"void find(float a,int n) /成績(jī)查詢int i,b;float m;system("cls"); /清屏if(fp=fopen("text","r")=NULL) /以讀的方式打開(kāi)文件printf("cannot read file");exit(1);for(i=0;i<n;i+)fscanf(fp,"%f",&ai); /
34、從文件中讀取數(shù)據(jù)doprintf("n請(qǐng)輸入要查詢的成績(jī):");scanf("%f",&m); /輸入要查詢的成績(jī)for(i=0;i<n;i+) /循環(huán)查找輸入的成績(jī)if(m=ai)printf("已找到,是第%d項(xiàng),值為%.fn",i+1,ai);/輸出查詢的成績(jī)break;if(i>=n)printf("找不到!n");printf("n結(jié)束請(qǐng)按0,繼續(xù)請(qǐng)按1:");scanf("%d",&b);while(b); /循環(huán)查找ifclose(f
35、p);printf("按回車返回:");getch();(9)學(xué)生成績(jī)插入 insert.c#include"task.h"int insert(float a,int n) /成績(jī)插入int b,i;float c;system("cls"); /清屏if(fp=fopen("text","w")=NULL) /打開(kāi)文件printf("cannot read file");exit(1);for(i=0;i<n;i+) /從文件中讀取數(shù)據(jù)fscanf(fp,"
36、;%f",&ai);doprintf("輸入要插入的數(shù):n");scanf("%f",&c); /輸入要插入的數(shù)for(i=0;i<n;i+)if(ai=c|c<=0|c>100) /判斷輸入的成績(jī)是否有效printf("n%.1f數(shù)據(jù)錯(cuò)誤,繼續(xù)輸入:n",c);break;if(i>=n) an+=c;printf("n結(jié)束請(qǐng)按0,繼續(xù)請(qǐng)按1:");scanf("%d",&b);while(b); /循環(huán)插入for(i=0;i<n
37、;i+)fprintf(fp,"%.1f",ai); /將插入的數(shù)寫入文件fclose(fp); /關(guān)閉文件printf("按回車返回:");getch();return n;5.系統(tǒng)測(cè)試結(jié)果(1)進(jìn)入歡迎界面:如圖所示(2)學(xué)生成績(jī)輸入:如圖所示(3) 成績(jī)刪除:如圖所示(4)成績(jī)查詢:如圖所示(5)成績(jī)排序:如圖所示(6)成績(jī)插入:如圖所示(7)顯示成績(jī):如圖所示任務(wù)二 鏈表結(jié)構(gòu)系統(tǒng)設(shè)計(jì)1 問(wèn)題描述本程序是通過(guò)鏈表來(lái)實(shí)現(xiàn)對(duì)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)來(lái)保存學(xué)生信息,并在鏈表中實(shí)現(xiàn)數(shù)據(jù)的輸入、刪除、查詢、排序、顯示、插入的功能。本課題需要實(shí)現(xiàn)一些拓展,并且用多文件操作
38、。將成績(jī)存入文件中,還要從文件中讀出成績(jī)。2 系統(tǒng)設(shè)計(jì)2.1系統(tǒng)功能結(jié)構(gòu)圖如圖1所示學(xué)生信息管理系統(tǒng)輸入學(xué)生信息刪除學(xué)生信息查詢學(xué)生信息學(xué)生成績(jī)排序輸出學(xué)生信息插入學(xué)生信息圖1 系統(tǒng)功能結(jié)構(gòu)圖2.2系統(tǒng)流程設(shè)計(jì)圖如圖2所示歡迎界面1.成績(jī)輸入,并判斷成績(jī)是否有效進(jìn)入菜單選項(xiàng)2.循環(huán)刪除成績(jī)3.循環(huán)查找學(xué)生成績(jī)4.學(xué)生成績(jī)排序,并輸出成績(jī)0.退出系統(tǒng)5.輸出學(xué)生成績(jī)6.循環(huán)插入成績(jī),并判斷學(xué)號(hào)是否相同圖2 系統(tǒng)流程設(shè)計(jì)圖2.3數(shù)據(jù)設(shè)計(jì)包括以下成員:學(xué)號(hào):num 整型數(shù)據(jù)姓名:name2020位長(zhǎng)的數(shù)字字符串成績(jī):score浮點(diǎn)型數(shù)據(jù)2.4系統(tǒng)文件結(jié)構(gòu)圖如圖3所示zym_task2.h-頭文件zy
39、m_main.c-主函數(shù)zym_menu.c-主菜單zym_input.c- -成績(jī)輸入zym_del.c-成績(jī)刪除zym_find.c-成績(jī)查詢zym_scort.c-成績(jī)排序zym_display.c-成績(jī)顯示zym_insert.c-成績(jī)插入圖3 系統(tǒng)文件結(jié)構(gòu)圖3詳細(xì)設(shè)計(jì)3.1 結(jié)構(gòu)體定義結(jié)構(gòu)體是一種構(gòu)造類型數(shù)據(jù),可以將一組不同的數(shù)據(jù)組合在一起統(tǒng)一管理。對(duì)于學(xué)生成績(jī)管理程序,每個(gè)學(xué)生的信息除了成績(jī)以外,還可以包含學(xué)號(hào)、姓名等不同類型的數(shù)據(jù)。因此,可構(gòu)造結(jié)構(gòu)體來(lái)表示每一個(gè)學(xué)生的信息,結(jié)構(gòu)體的數(shù)據(jù)包括學(xué)號(hào)、姓名、成績(jī)。結(jié)構(gòu)體定義如下:typedef structint num;char na
40、me20;float score; STU;3.2文件和自定義函數(shù)間關(guān)系文件名文件所對(duì)應(yīng)的函數(shù)功能說(shuō)明zym_main.cvoid main()主函數(shù),進(jìn)行選擇功能選項(xiàng)zym_menu.cvoid menu()主函數(shù),輸入功能選項(xiàng)zym_ input.cSTU *input()輸入學(xué)生信息,并對(duì)數(shù)據(jù)有效判斷,可循環(huán)輸入zym_ del.cSTU* del(STU*h)刪除學(xué)生信息,可循環(huán)刪除zym_find.cvoid find(STU*h)按學(xué)號(hào)查詢成績(jī),可循環(huán)查詢zym_sort.cSTU *scort(STU * h)成績(jī)排序,并輸出學(xué)生信息zym_display.cvoid displ
41、ay(STU *h)學(xué)生成績(jī)顯示zym_insert.cSTU *insert(STU *h)在鏈表的結(jié)尾插入學(xué)生信息,并輸出3.3函數(shù)之間調(diào)用關(guān)系如圖5所示void menu()void main()STU *insert(STU *h)void display(STU *h)void find(STU*h)STU* del(STU*h)STU *input()STU *scort(STU * h)圖5 函數(shù)之間調(diào)用關(guān)系3.4函數(shù)設(shè)計(jì)(1) 主函數(shù)A.函數(shù)原型:void main()B.功能:顯示學(xué)生信息管理系統(tǒng)的7個(gè)功能C.入口參數(shù):無(wú)D.出口參數(shù):無(wú)E.通過(guò)鍵盤的輸入,實(shí)現(xiàn)函數(shù)調(diào)用從而實(shí)現(xiàn)相應(yīng)的功能。(2) 菜單函數(shù)A.函數(shù)原型:void menu()B.功能:顯示菜單主界面C.入口參數(shù):無(wú)D.出口參數(shù):無(wú)E.描述:輸出菜單選項(xiàng)(3) 學(xué)生的信息輸入A.函數(shù)原型:STU *input()B. 功能:輸入學(xué)生信息C.入口參數(shù):無(wú)D. 出口參數(shù):學(xué)生信息單鏈表的頭指針E.描述:循環(huán)輸入學(xué)生信息,并判斷輸入的信息是否有效,有效就寫入鏈表中,無(wú)效則不寫入鏈表。(4) 學(xué)生信息刪除A.函數(shù)原型:STU* del(STU*h)B.功能:學(xué)生信息刪
溫馨提示
- 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智能硬件戰(zhàn)略合作伙伴聯(lián)盟合同模板
- 2025合法土地租賃合同范本
- 2025停車場(chǎng)轉(zhuǎn)讓合同范本
- 初中三模考試試題及答案
- 2025項(xiàng)目經(jīng)理聘用合同模板
- 2025授權(quán)代理合同協(xié)議書范本
- 2025林產(chǎn)品購(gòu)銷合同樣本(合同版本)
- 四川德陽(yáng)c照科目一考試試題及答案
- 生理學(xué)專升本考試試題庫(kù)及答案
- 2024屆合肥市包河中考五模數(shù)學(xué)試題含解析
- GB/T 7424.4-2003光纜第4部分:分規(guī)范光纖復(fù)合架空地線
- GB/T 21010-2007土地利用現(xiàn)狀分類
- GB/T 16983-1997化學(xué)試劑二氯甲烷
- GB/T 15968-2008遙感影像平面圖制作規(guī)范
- GB/T 12467.2-2009金屬材料熔焊質(zhì)量要求第2部分:完整質(zhì)量要求
- 國(guó)家開(kāi)放大學(xué)電大《工程經(jīng)濟(jì)與管理》考題及答案
- 智能樓宇管理員(四級(jí))理論考試(重點(diǎn))題庫(kù)(含答案)
- 國(guó)開(kāi)期末考試《城市管理學(xué)》機(jī)考試題及答案(第13套)
- 內(nèi)蒙古烏海市基本氣象特征
- 脈沖編碼調(diào)制與解調(diào)實(shí)驗(yàn)報(bào)告
- 人教版五年級(jí)下冊(cè)數(shù)學(xué)找次品表格式教案設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論