版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、河北科技大學(xué)課程設(shè)計報告學(xué)生姓名:孟江曼 學(xué)號: 080705110專業(yè)班級:軟件 081 班課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計設(shè)計題目:學(xué)生成績管理系統(tǒng)學(xué)年學(xué)期: 2010-2011 學(xué)年第二學(xué)期指導(dǎo)教師:鄭廣2011 年 6 月 目錄 TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 一需求分析說明 2 HYPERLINK l bookmark4 o Current Document 1主函數(shù)模塊功能描述 2 HYPERLINK l bookmark6 o Current Document 2文件合并模塊功能描述 2 HYPERLINK
2、l bookmark8 o Current Document 3補(bǔ)考學(xué)生查找模塊功能描述 2 HYPERLINK l bookmark10 o Current Document 4排序模塊功能描述 2 HYPERLINK l bookmark12 o Current Document 5查找模塊功能描述 3 HYPERLINK l bookmark14 o Current Document 推出模塊功能描述 3 HYPERLINK l bookmark16 o Current Document 二.概要設(shè)計說明 3 HYPERLINK l bookmark18 o Current Docume
3、nt 模塊調(diào)用圖: 3 HYPERLINK l bookmark20 o Current Document 三詳細(xì)設(shè)計說明 4 HYPERLINK l bookmark22 o Current Document 主函數(shù)模塊 4 HYPERLINK l bookmark24 o Current Document 文件合并模塊 4 HYPERLINK l bookmark26 o Current Document 學(xué)生信息查找模塊 5 HYPERLINK l bookmark28 o Current Document 補(bǔ)考學(xué)生查找模塊 8 HYPERLINK l bookmark30 o Curr
4、ent Document 排序模塊 9 HYPERLINK l bookmark32 o Current Document 退出模塊 9 HYPERLINK l bookmark34 o Current Document 四調(diào)試分析 10 HYPERLINK l bookmark38 o Current Document 五用戶使用說明 10 HYPERLINK l bookmark40 o Current Document 六課程設(shè)計總結(jié) 11 HYPERLINK l bookmark42 o Current Document 七測試結(jié)果 12 HYPERLINK l bookmark44
5、o Current Document 八參考書目 12一需求分析說明本系統(tǒng)實現(xiàn)了學(xué)生成績管理系統(tǒng)所需的相關(guān)功能,其中的功能主要分為五項:試編寫一管理系統(tǒng),要求如下 :1)實現(xiàn)對兩個文件數(shù)據(jù)進(jìn)行合并,生成新文件3.txt2)抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個新文件4.txt3)對合并后的文件3.txt 中的數(shù)據(jù)按總分降序排序(至少采用兩種排序方法實現(xiàn) )4)輸入一個學(xué)生姓名后,能查找到此學(xué)生的信息并輸出結(jié)果5)要求使用結(jié)構(gòu)體,鏈或數(shù)組等實現(xiàn)上述要求.以下是各功能模塊的功能描述:主函數(shù)模塊功能描述本模塊的主要功能是初始化圖形界面, 進(jìn)入主菜單, 調(diào)用各模塊, 實現(xiàn)軟件 功能。文件合并模塊功能
6、描述本模塊的主要功能是實現(xiàn)對兩個文件數(shù)據(jù)1.txt 、 2.txt 進(jìn)行合并 , 生成新文件 3.txt補(bǔ)考學(xué)生查找模塊功能描述本模塊的主要功能是通過對于查找數(shù)據(jù)中的各科成績來判斷該學(xué)生是否需要補(bǔ)考,如果需要補(bǔ)考則將其信息寫入另外一個文件。排序模塊功能描述本模塊的主要功能是實現(xiàn)對合并后的數(shù)據(jù)3.txt 的內(nèi)容按總分進(jìn)行降序排序, 系統(tǒng)采用的排序方式有快速排序和選擇排序。 根據(jù)用戶的選擇, 進(jìn)行不同排序方式的選擇。.查找模塊功能描述該模塊的功能是當(dāng)用戶輸入學(xué)生信息以后, 可以根據(jù)用戶需要按姓名進(jìn)行不 同方式的查找。第一種是在文件 3.txt中查找;第二種是在結(jié)構(gòu)體中查找。.推由模塊功能描述調(diào)用e
7、xit函數(shù),退出系統(tǒng)。二.概要設(shè)計說明模塊調(diào)用圖:void Unitedfile() 合并 1.txt 和 2.txt 為 3.txtvoid findout()/抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個新文件4.txt3.void sortfile()/提供兩種排序方法4.void xuanze() /對合并后的文件3.txt中的數(shù)據(jù)按總分降序排序void QSort(int low,int high)/ 快速排序void kuaisu()/ 讀取文件,快速排序,將結(jié)果寫入 3.txtvoid findoutstudent()/ 提供兩種查找方法void derectfindoutstude
8、nt()/ 輸入一個學(xué)生姓名 , 查找到此學(xué)生的信 息并輸出結(jié)果void autofindoutstudent()/ 從結(jié)構(gòu)體數(shù)組中查找exit()/ 退出三詳細(xì)設(shè)計說明主函數(shù)模塊調(diào)用各功能模塊,實現(xiàn)文件合并、查找學(xué)生信息、排序等功能。文件合并模塊實現(xiàn)對兩個文件數(shù)據(jù)進(jìn)行合并, 生成新文件3.txt 。調(diào)用函數(shù)Unitedfile()來實現(xiàn), 函數(shù)以讀的方式打開1.txt 文件, 以寫的方式打開3.txt 文件, 從 1.txt讀入一個數(shù)據(jù)并寫入 3.txt 文件,直到遇到 1.txt 文件結(jié)束。關(guān)閉 1.txt 文件, 再以讀的方式打開2.txt 文件,用上述方式直到遇到 2.txt 文件結(jié)束
9、。關(guān)閉2.txt,3.txt 文件。實現(xiàn)對于文件的合并。void Unitedfile()/ 合并 1.txt 和 2.txt 為 3.txtFILE *fp,*p;Student studd;fp=fopen(1.txt,r);/ 以讀的方式打開1.txtp=fopen(3.txt,w);/ 以寫的方式打開3.txtwhile(fscanf(fp,%s%s%d%d%d,,studd.id,&studd.chines e,&studd.math,&studd.english )!=EOF)fprintf(p,%-6s %-6s %-6d %-6d %-6dn,studd.n
10、ame,studd.id,studd.chinese,studd.math,studd.english );/ 讀取 1.txt 的數(shù)據(jù)進(jìn)入結(jié)構(gòu)體中,寫入3.txt ,繼續(xù)讀取直結(jié)束fclose(fp);/ 關(guān)閉文件 1.txtfp=fopen(2.txt,r);/ 以寫的方式打開2.txtwhile(fscanf(fp,%s%s%d%d%d,,studd.id,&studd.chines e,&studd.math,&studd.english )!=EOF)fprintf(p,%-6s %-6s %-6d %-6d %-6dn,,studd.id,s
11、t udd.chinese,studd.math,studd.english );fclose(fp);fclose(p);3 學(xué)生信息查找模塊輸入一個學(xué)生姓名后, 能查找到此學(xué)生的信息并輸出結(jié)果。調(diào)用函數(shù)findoutstudent() 來實現(xiàn)。函數(shù)也提供了兩種查找方法,通過調(diào)用函數(shù)derectfindoutstudent()實現(xiàn)從文件從3.txt 中逐個讀入數(shù)據(jù),再進(jìn)行查找判斷,如果找到所需要的數(shù)據(jù),則查找結(jié)束,否則繼續(xù)查找直至文件結(jié)束。autofindoutstudent() 在進(jìn)行第三步的過程中, 已經(jīng)把 3.txt 中的學(xué)生數(shù)據(jù)讀入了結(jié)構(gòu)體數(shù)組當(dāng)中, 調(diào)用函數(shù) autofindout
12、student() 直接從結(jié)構(gòu)體中進(jìn)行查找。void derectfindoutstudent()/ 輸入一個學(xué)生姓名 , 查找到此學(xué)生的信息并輸出結(jié)果char NAME30;int flag=0;FILE *fp;fp=fopen(3.txt,r);cinNAME;while(fscanf(fp,%s%s%d%d%d%d,,stud1.id,&stud1.chinese,&stud1.math,&stud1.english,&stud1.sum )!=EOF)if(strcmp(,NAME)=0)flag=1;cout 姓名 學(xué)號 語文 數(shù)學(xué) 英語 總
13、分 endl;cout stud1.id;coutstud1.chinese stud1.mathstud1.english stud1.sumendl;break;if(flag=0)cout 無此學(xué)生相關(guān)信息 Name;for(k=1;k=n;k+)if(strcmp(,Name)=0)flag=1;cout 姓名 學(xué)號 語文 數(shù)學(xué)endl; 英語 總分 cout studk.id;coutstudk.chinese studk.mathstudk.english studk.sumendl;break;if(flag=0)co
14、ut 無此學(xué)生相關(guān)信息 endl;void findoutstudent()/ 提供兩種查找方法char c;cout 請選擇查找方法endl;cout1. 從文件 3 中直接查找endl;cout2. 在運(yùn)行第三步的基礎(chǔ)上查找c;cout 請輸入學(xué)生姓名 :;if(sign1=0&c=2)cout 請執(zhí)行操作3 后再執(zhí)行此項操作!endl;return;switch(c)case1:derectfindoutstudent();/ 從文件 3 中直接查找break;case2: autofindoutstudent();/ 從結(jié)構(gòu)體數(shù)據(jù)中直接查找 break; 4 補(bǔ)考學(xué)生查找模塊抽取出三科
15、成績中有補(bǔ)考的學(xué)生并保存在一個新文件 4.txt 。調(diào)用函數(shù)findout() 來實現(xiàn)。函數(shù)以讀的方式打開3.txt 文件,以寫的方式打開4.txt 文件。 讀入 3.txt 文件的一個數(shù)據(jù)到結(jié)構(gòu)體studd 中, 判斷學(xué)生信息中語、 數(shù)和英語中是否具有不及格的, 如果有, 則將數(shù)據(jù)寫入 4.txt 中, 直至遇到 3.txt 文件 結(jié)束。 void findout()/ 抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個新文件4.txtFILE *fp,*p;Student studd;fp=fopen(3.txt,r);p=fopen(4.txt,w);/ 從 3.txt 中讀入學(xué)生數(shù)據(jù)進(jìn)結(jié)構(gòu)體,判
16、斷是否有不及格的課程,如果有,則寫入文件4.txt 中while(fscanf(fp,%s%s%d%d%d,,studd.id,&studd.chinese,&studd.math,&studd.english )!=EOF)if(studd.chinese60|studd.english60|studd.math60) fprintf(p,%-6s %-6s %-6d %-6d %-6dn,,studd.id,st udd.chinese,studd.math,studd.english );fclose(fp);fclose(p);排序模塊對合并后的
17、文件3.txt 中的數(shù)據(jù)按總分降序排序。調(diào)用函數(shù)sortfile() 來實現(xiàn)。函數(shù)提供了兩種排序方法,通過調(diào)用函數(shù)kuaisu() 來實現(xiàn)快速排序,通過調(diào)用函數(shù)xuanze() 來實現(xiàn)選擇排序。void sortfile()/ 提供兩種排序方法char c;cout 請選擇排序方法: endl;cout1. 選擇排序endl;cout2. 快速排序c;switch(c)case1:xuanze();/ 選擇排序break;case2:kuaisu();/ 快速排序break;退出模塊通過調(diào)用函數(shù)exit() 退出。四.調(diào)試分析我遇到的問題:.在實現(xiàn)文件合并功能時,出現(xiàn)錯誤信息:出現(xiàn)以上情況的原
18、因1.txt和2.txt建立位置不正確,應(yīng)和程序在同一根目錄下。c *D:pebug2.eKe并罷口入出合抽退XC中3.名 一 /績或 一艙成文生 tx三后個 L出并一為有txxt查ITL 班 管 主兒存胃. REJIL 分唁 F1文J-序并寺 士口 4-Microsoft Visual! C+ Debug LibraryDebug Assertion Fated!Program: D:iDebjgUiexeFie i fscanf .cLines 54Expression: stream != NULLFor informaticn or how your program can cause
19、 an assenion failure, see the Vfcual C+ documentation on asserts.(Press Retry to debug the application)匚鱉止!重試 虎嘴M I搜狗拼音.在文件合并功能的實現(xiàn)過程中,我還遇到了不熟悉文本文件讀取、寫入的困難。主要原因是函數(shù)使用不熟悉。fprintf ()傳送格式化輸入到一個流中;fscanf ()從一個流中執(zhí)行格式化輸入。.還有就是因為沒有養(yǎng)成良好的變成習(xí)慣, 在編譯的過程中因為馬虎等原因出現(xiàn) 了許多小錯誤,像丟括號、函數(shù)名不統(tǒng)一等問題經(jīng)常使程序編譯不能通過。五.用戶使用說明本系統(tǒng)是一個學(xué)生成績管理系統(tǒng),實現(xiàn)了文件的合并,補(bǔ)考學(xué)生的提取,學(xué) 生信息的排序,信息的查找的功能。其中學(xué)生的信息包含有姓名、學(xué)號、中文、 數(shù)學(xué)、英語和部分。本系統(tǒng)菜單如下:實現(xiàn)對兩個文件數(shù)據(jù)進(jìn)行合并, 生成新文件 3.txt抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個新文件4.txt對合并后的文件3.txt 中的數(shù)據(jù)按總分降序排序輸入一個學(xué)生姓名后, 能查
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年HDTV彩色顯像管及其材料和部件合作協(xié)議書
- 小學(xué)二年級作文家鄉(xiāng)的秋天(10篇)
- Tetridamine-POLI-67-生命科學(xué)試劑-MCE
- Unit 10 Section A (GF-1d)課堂測試試卷 人教版英語八年級上冊
- TcNTPDase1-IN-1-生命科學(xué)試劑-MCE
- 2024年環(huán)保袋項目發(fā)展計劃
- 統(tǒng)考版2025屆高考?xì)v史一輪復(fù)習(xí)課后限時集訓(xùn)4明清君主專制的加強(qiáng)含解析新人教版
- 玉溪師范學(xué)院《單片機(jī)原理及應(yīng)用》2021-2022學(xué)年期末試卷
- 2024年特殊功能的微生物制劑緩釋新型肥料項目合作計劃書
- 鹽城師范學(xué)院《羽毛球高級》2021-2022學(xué)年第一學(xué)期期末試卷
- 2023年11月軟考中級系統(tǒng)集成項目管理工程師下午真題(第二批)
- 2024年中國遙控風(fēng)扇控制器市場調(diào)查研究報告
- 2024年江蘇省鹽城射陽縣部分村(居)宣傳文化管理員招聘57人歷年高頻難、易錯點(diǎn)500題模擬試題附帶答案詳解
- 2024智慧園區(qū)系統(tǒng)建設(shè)規(guī)范
- 人力表單46 - 全體職工大會會議紀(jì)要(裁員)
- 2024-2030年中國紡織服裝行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資研究報告
- GB/T 44413-2024城市軌道交通分類
- GB 19041-2024光氣及光氣化產(chǎn)品生產(chǎn)安全規(guī)范
- 肌肉筋膜疼痛綜合征
- 我與班集體共成長主題班會
- 注冊資本金代繳協(xié)議書范本
評論
0/150
提交評論