版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、源程序閱讀與調(diào)試課程設(shè)計(jì)報(bào)告UNIVERSITY題 目:學(xué)生成績(jī)管理系統(tǒng)班 級(jí):統(tǒng)專軟件1001班小組成員:常永恒 孫東升吳春亮 李強(qiáng)完成時(shí)間:2011年12月13日目錄1 需求分析12 概要設(shè)計(jì)23詳細(xì)設(shè)計(jì)31.1 文件合并31.2 自動(dòng)檢索31.3 數(shù)據(jù)排序31.4 信息查詢34代碼設(shè)計(jì)55 系統(tǒng)測(cè)試11512-X;測(cè)二二二二二46 總結(jié)151 (1.txt ),內(nèi)容如下1需求分析姓名學(xué)號(hào)語(yǔ)文數(shù)學(xué)英語(yǔ)張明明01677882李成友02789188張輝燦03688256王露04564577陳東明05673847現(xiàn)有學(xué)生成績(jī)信息文件學(xué)生成績(jī)信息文件2 (2.txt ),內(nèi)容如下:姓名學(xué)號(hào)語(yǔ)文數(shù)學(xué)
2、英語(yǔ)陳果31576882李華明32889068張明東33484256李明國(guó)34504587陳道亮35475877試編寫(xiě)一管理系統(tǒng),要求如下:1)實(shí)現(xiàn)對(duì)兩個(gè)文件數(shù)據(jù)進(jìn)行合并,生成新文件3.txt2)抽取出三科成績(jī)中有補(bǔ)考的學(xué)生并保存在一個(gè)新文件4.txt3)對(duì)合并后的文件3.txt中的數(shù)據(jù)按總分降序排序4)輸入一個(gè)學(xué)生姓名后,能查找到此學(xué)生的信息并輸出結(jié)果5)要求使用結(jié)構(gòu)體,鏈或數(shù)組等實(shí)現(xiàn)上述要求.6)采用多種方法且算法正確者,可適當(dāng)加分.2概要設(shè)計(jì)3詳細(xì)設(shè)計(jì)3.1文件合并已知:文件 1.txt 、文件 2.txt 、 id、 name Chinese > math english 。求:
3、調(diào)用函數(shù)來(lái)實(shí)現(xiàn)1.txt和2.txt合并為新生成文件3.txt算法:1.函數(shù)以讀的方式打開(kāi)1.txt文件和2.txt文件,以寫(xiě)的方式打開(kāi)3.txt文件;2 .從1.txt讀入一個(gè)數(shù)據(jù)并寫(xiě)入3.txt文件,直到遇到1.txt文件結(jié)束;3 .用上述方式把數(shù)據(jù)寫(xiě)入3.txt直到遇到2.txt文件結(jié)束;4 .關(guān)閉1.txt , 2.txt , 3.txt文件,實(shí)現(xiàn)對(duì)于文件的合并。3.2 自動(dòng)檢索已知:文件 3.txt 、 id、 name Chinese > math、 english 。求:Chinese、math、english中小于60的成績(jī),并顯示名字、學(xué)號(hào)。算法:1.讀取3.txt ;
4、2 .創(chuàng)建 4.txt ;3 .讀取3.txt里面的成績(jī),應(yīng)用studd.chinese<60|stud.english<60|stud.math<60找出不及格的成績(jī);4 .將不及格成績(jī)寫(xiě)入4.txt ;5 .關(guān)閉 3.txt ; 4.txt 。3.3數(shù)據(jù)排序已知:文件 3txt 、id、name Chinese > math、english。求:各個(gè)學(xué)生的總分并按照降序排序算法:1.讀取3.txt ;2 .求出文件3.txt各個(gè)學(xué)生的總分;3 .用選擇排序的方法將學(xué)生的總分進(jìn)行排序;4 .關(guān)閉文件3.txt 。3.4信息查詢已知:文件 3.txt 、 id、 nam
5、e Chinese > math、 english 。求:輸入一個(gè)學(xué)生姓名后,能查找到此學(xué)生的信息并輸出結(jié)果 算法:1.讀取3.txt ;2 .從表的一端開(kāi)始至尾端,順序掃描線性表;3 .依次將線性表中的信息和輸入的信息(姓名)進(jìn)行比較;4 .若相等則查找成功,并輸出該元素。4代碼設(shè)計(jì)#include<iostream>using namespace std;#define SIZE 100typedef structchar name10;int id;int chinese;int math;int english;int sum;Student;Student stud
6、SIZE;int i;int sign=0,sign1=0,sign2=0,sign3=0; void Unitedfile()FILE *fp,*p;Student studd;fp=fopen("1.txt","r");p=fopen("3.txt","w");fscanf(fp,"%*Fn%*c");/*存放學(xué)生數(shù)據(jù)的結(jié)構(gòu)體*/* 合并 1.txt 和 2.txt 為 3.txt*/*以讀的方式打開(kāi)1.txt*/*以寫(xiě)的方式打開(kāi) 3.txt*/*跳過(guò)一行字符串*/fprintf(p,&qu
7、ot; 姓名 學(xué)號(hào) 語(yǔ)文數(shù)學(xué)英語(yǔ) n");while(fscanf(fp,"%s%d%d%d%d",,&studd.id,&studd.chinese,&studd.math,&studd.english)!=EOF) fprintf(p,"%-6s%2d,studd.chinese,studd.math,studd.english寫(xiě)入3.txt ,繼續(xù)讀取直結(jié)束*/ fclose(fp);fp=fopen("2.txt","r");fscanf(fp,"
8、;%*Fn%*c");%d%d %dn",,studd.id);/*讀取1.txt的數(shù)據(jù) 進(jìn)入結(jié)構(gòu)體中,/*關(guān)閉文件1.txt*/*以寫(xiě)的方式打開(kāi)2.txt*/*跳過(guò)一行字符串*/while(fscanf(fp,"%s%d%d%d%d",,&studd.id,&studd.chinese,&studd.math,&studd.english )!=EOF) fprintf(p,"%-6s%2d%d%d %dn",,studd.id,studd.
9、chinese,studd.math,studd.english);/*讀取2.txt的數(shù)據(jù)進(jìn)入結(jié)構(gòu)體中,第5頁(yè)共17頁(yè)寫(xiě)入3.txt ,繼續(xù)讀取直結(jié)束*/fclose(fp);/*關(guān)閉文件2.txt*/fclose(p);/*關(guān)閉文件3.txt*/)void findout()存在一個(gè)新文件4.txt*/*抽取出三科成績(jī)中有補(bǔ)考的學(xué)生并保FILE *fp,*p;Student studd;fp=fopen("3.txt","r");/*以讀的方式打開(kāi)3.txt*/p=fopen("4.txt","w");/*以寫(xiě)
10、的方式 打開(kāi)4.txt*/fscanf(fp,"%*An%*c");/*跳過(guò)一行字符串*/fprintf(p," 姓名學(xué)號(hào) 語(yǔ)文數(shù)學(xué)英語(yǔ)n");while(fscanf(fp,"%s%d%d%d%d",,&studd.id,&studd.chinese,&studd.math,&s tudd.english )!=EOF)if(studd.chinese<60|studd.english<60|studd.math<60)fprintf(p,"%-6s%2
11、d%d%d%dn",,studd.id,studd.chinese,studd.math,studd.english);)/* 從 3.txt中讀入學(xué)生數(shù)據(jù)進(jìn)結(jié)構(gòu)體,判斷是否有不及格的 課程,如果有,則寫(xiě)入文件4.txt 中*/fclose(fp);/*關(guān)閉文件3.txt*/fclose(p);/*關(guān)閉文件4.txt*/)void Selectsort()分降序排序*/*對(duì)合并后的文件3.txt中的數(shù)據(jù)按總int j,k,max1,sum1,sum2,q;i=0;Student temp;FILE *fp;fp=fopen("3.txt",&q
12、uot;r");/*以讀的方式打開(kāi)3.txt*/*跳過(guò)一行字符串*/i=0;fscanf(fp,"%*An%*c");while(fscanf(fp,"%s%d%d%d%d",,&studi.id,&studi.chinese,&studi.math,&studi.english)!=EOF)(i+;/*從3.txt中讀入數(shù)據(jù)進(jìn)結(jié)構(gòu)體數(shù)組stud 中 */fclose(fp);for(j=0;j<i;j+)/*對(duì)結(jié)構(gòu)體數(shù)組中的數(shù)據(jù)進(jìn)行選擇排序*/*每趟是選出一個(gè)最值確定其在結(jié)果序列中的位
13、置,確定元 素的位置是從前往后,而每趟最多進(jìn)行一次交換,其余元素的相對(duì)位置不變。可進(jìn)行降序排序*/max1=j;sum1=studj.math+studj.english+studj.chinese;for(k=j+1;k<i+1;k+) sum2=studk.math+studk.english+studk.chinese; if(sum1<sum2)max1=k;sum1=sum2;if(max1!=j)temp=studmax1;studmax1=studj;studj=temp;studj.sum=sum1;fp=fopen("3.txt","
14、w");/* 將排序后的數(shù)據(jù)寫(xiě)入 3.txt 中*/fprintf(fp," 姓名 學(xué)號(hào) 語(yǔ)文數(shù)學(xué)英語(yǔ)總分n");for(q=0;q<i;q+) fprintf(fp,"%-6s%2d%d%d%d %dn",,studq.id,studq.chinese,studq.math,studq.english,studq.sum );/*關(guān)閉文件3.txt*/fclose(fp);第7頁(yè)共17頁(yè)/*輸入一個(gè)學(xué)生姓名,查找到此學(xué)生的信/*以讀的方式打 開(kāi)3.txt*/if(flag=0)cout<<"無(wú)此
15、學(xué)生相關(guān)信息 "<<endl;息"*/fclose(fp);/*主程序*/int main()system("color 79");int choice;while(1)/*主菜單*/if(sign3=0)printf("/*如無(wú)法找到,則顯示"無(wú)此學(xué)生相關(guān)信/*關(guān)閉文件3.txt*/*背景為白色,字體為淡藍(lán)色*/學(xué)生成績(jī)管理系統(tǒng)void derectfindoutstudent()息并輸出結(jié)果*/(char NAME30;int flag=0;FILE *fp;fp=fopen("3.txt",&qu
16、ot;r");cin>>NAME;while(fscanf(fp,"%s%d%d%d%d%d",,&stud1.id,&stud1.chinese,&stud1.math,&stud1.english,&stud1.sum)!=EOF)(if(strcmp(,NAME)=0)/* 如果輸入的姓名達(dá)到要求 */*輸出顯示其相應(yīng)的信息 */flag=1;cout<<"姓名學(xué)號(hào)語(yǔ)文數(shù)學(xué)英語(yǔ)總分"<<endl;cout<<&q
17、uot; "<<<<""<<stud1.id<<""cout<<stud1.chinese<<""<<stud1.math<<""<<stud1.english<<""<<stud1.sum<<endl;break;n");printf("1.合并 1.txt 和 2.txt 為 3.txtn"
18、);printf("2.抽取出三科成績(jī)中有補(bǔ)考的學(xué)生并保存在一個(gè)新文件4.txtn");printf("3.對(duì)合并后的文件3.txt中的數(shù)據(jù)按總分降序排序 n");printf("4.輸入一個(gè)學(xué)生姓名,查找到此學(xué)生的信息并輸出結(jié)果 n");printf("5.退出 n");printf("請(qǐng)選擇(1-5):");) sign3=1; scanf("%d",&choice);/*輸入功能數(shù)字,顏色按照定義顏色*/switch(choice) case 1: United
19、file(); sign=1; cout<<"操彳1 成功! "<<endl; break;/*輸入1,使用 Unitedfile 函數(shù)。并顯示"操彳1成功!"*/ case 2: if(sign=0) cout<<"請(qǐng)執(zhí)行操作1后再執(zhí)行此項(xiàng)操作! "<<endl; break; ) cout<<"操彳2 成功! "<<endl; findout(); break;/*輸入2,如果sign=0輸出"請(qǐng)執(zhí)行操作1后再執(zhí)行此項(xiàng)操作!&qu
20、ot;。否則輸出”操彳2成功! "*/ case 3: if(sign=0) cout<<"請(qǐng)執(zhí)行操作1后再執(zhí)行此項(xiàng)操作! "<<endl; break; ) Selectsort(); cout<<"操彳3 成功! "<<endl; sign1=1; break;/*輸入3,如果sign=0輸出"請(qǐng)執(zhí)行操作1后再執(zhí)行此項(xiàng)操作!"。否則輸出”操彳3成功! "*/case 4:while(1)char c;cout<<"按姓名查找:"&l
21、t;<endl;derectfindoutstudent();cout<<"繼續(xù)查找請(qǐng)輸入 Y:"<<endl;cout<<"返回主菜單請(qǐng)輸入N:"<<endl;cin>>c;/* 輸入 4,啟用 derectfindoutstudent函數(shù)*/*清屏*/if(c='N'|c='n')break;/N=n=csystem("cls");sign3=0;break;case 5:break;exit(0);/*輸入5,關(guān)閉程序*/retur
22、n 0;5系統(tǒng)測(cè)試5.1 黑盒測(cè)試一一功能測(cè)試曾1-記事本文件出編相梢式通章看GD就助出)E口¥2 86 7 7英GQ 85 7 4學(xué)S3 12 5 8為7 98 4 3文五口7 88 6 7記 6 7 6 5 6號(hào)P12345 一弓。oo o O SHeig 明東圖1 源文件1.txt2 -記事本則顆8268568777M妾梢式(。)蜚5788485047號(hào),12395 司3 33 3 3圖2源文件2.txt支陽(yáng)日 HCBMO0 整Ml77 6 7 762 22 6 AJS 4 2 0 0 8 8 7 5 0- 22'2'20JI II 息i-n8822 6 77776 C訐 g 6985877 4 5英88778076787865654564號(hào)學(xué)22113454533 3 3 3 3用中青除紫-T-陳王陳而圖3生成文件3.txt語(yǔ)567747825687苻英2 5 8 3 2 5 0000 4 3 6 4 4 5文田7 7 s O 7田06 6 6 5 4 5 4燦明東國(guó)亮 東果明陰道 姓張王售雪陳圖4生成文件4.txt'CA" CMn gDe s kt 白, L&g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度衛(wèi)生間清潔劑研發(fā)與供應(yīng)合同3篇
- 二零二五年度2025版文化創(chuàng)意產(chǎn)業(yè)融資合同范本4篇
- 2025年度環(huán)保工程派遣人員勞務(wù)合同范本4篇
- 擔(dān)保合同約定條款協(xié)議書(shū)(2篇)
- 2025年度摩托車租賃平臺(tái)合作合同范本3篇
- 2025年度牧草種植基地環(huán)境保護(hù)合同范本3篇
- 二零二五版苗木種植基地林業(yè)病蟲(chóng)害防治合同2篇
- 二零二五年度物流供應(yīng)鏈融資借款合同大全4篇
- 2025年度洗碗服務(wù)企業(yè)社會(huì)責(zé)任履行合同4篇
- 2025年度二零二五苗木采購(gòu)合作框架合同范本4篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 計(jì)劃合同部部長(zhǎng)述職報(bào)告范文
- 人教版高一地理必修一期末試卷
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專題培訓(xùn)課件
- 二手車車主寄售協(xié)議書(shū)范文范本
- 窗簾采購(gòu)?fù)稑?biāo)方案(技術(shù)方案)
- 五年級(jí)上冊(cè)小數(shù)除法豎式計(jì)算練習(xí)300題及答案
- 語(yǔ)言規(guī)劃講義
- 生活用房設(shè)施施工方案模板
- 上海市楊浦區(qū)2022屆初三中考二模英語(yǔ)試卷+答案
- GB/T 9755-2001合成樹(shù)脂乳液外墻涂料
評(píng)論
0/150
提交評(píng)論