关于运动会分数统计系统数据结构++课程设计实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#includestdlib.h#includefstream.h#includeiostream.hclassRecord//最小的类,用来记录得奖者的信息{friendclassSubject;friendclassRankList;private:intschool;intscore;intmark;public:Record(ints=-1,intsc=0,intm=0):school(s),score(sc),mark(m){}int&ReturnSchool(){returnschool;}int&ReturnScore(){returnscore;}int&ReturnMark(){returnmark;}};classSubject//它嵌套Record类,正好组成一个项目{friendclassRankList;private:RecordRec[5];voidSetRecord_3(inti);voidSetRecord_5(inti);};classSchool//主要为了输出的方便{friendclassRankList;intWholeScoreM,WholeScoreF,WholeScore;voidoutput(){coutWholeScoreM\tWholeScoreF\tWholeScoreendl;}School(){WholeScoreM=0;WholeScoreF=0;WholeScore=0;}};classRankList{//他嵌套Subject类,正好组成所有的项目private:SubjectSubject[5];public:Schoolschool[5];voidInnput();intSumScoreSchool(intnumber);//.按照学校代码查找学校总分intMSumScoreSchool(intnumber);//按照学校代码查找学校男子团体总分intFSumScoreSchool(intnumber);//按照学校代码查找学校女子团体总分voidOutPut(void);//按学校代码输出所有的总分voidSumOutPut(void);//输出所有学校总分排名voidMSumOutPut(void);//输出学校男子总分排名voidsave_to_file();//存入文件voidFSumOutPut(void);//输出学校女子总分排名voidget(char*c);//从文件中读取数据voidpaixuWhole(void);voidpaixuWholeM(void);voidpaixuWholeF(void);voidItemSearch(intSchoolNumber,intItemNumber);//按学校编号查询学校某个项目的情况voidSchoolSearch(intItemNumber);//可以按项目编号查询取得前三或前五名的学校};voidRankList::get(char*c){charch;fstreamfin(c,ios::in|ios::out);if(!fin){cerropencerror!endl;exit(1);}for(intk=0;k3;k++)for(intj=0;j5;j++){finSubject[k].Rec[j].ReturnSchool();finSubject[k].Rec[j].ReturnScore();finSubject[k].Rec[j].ReturnMark();//iofile.read((char*)&Subject[k].Rec[j],sizeof(Subject[k].Rec[j]));}for(k=3;k5;k++)for(intj=0;j3;j++){finSubject[k].Rec[j].ReturnSchool();finSubject[k].Rec[j].ReturnScore();finSubject[k].Rec[j].ReturnMark();//iofile.read((char*)&Subject[k].Rec[j],sizeof(Subject[k].Rec[j]));}}voidRankList::save_to_file(){ofstreamoutfile(123.txt,ios::out);if(!outfile){cerropenerror!endl;exit(1);}for(intk=0;k3;k++)for(intj=0;j5;j++){outfileSubject[k].Rec[j].ReturnSchool()Subject[k].Rec[j].ReturnScore()Subject[k].Rec[j].ReturnMark()endl;}for(k=3;k5;k++)for(intj=0;j3;j++){outfileSubject[k].Rec[j].ReturnSchool()Subject[k].Rec[j].ReturnScore()Subject[k].Rec[j].ReturnMark()endl;}outfile.close();}voidRankList::ItemSearch(intSchoolNumber,intItemNumber){inttemp=0;if(ItemNumber3){for(inti=0;i5;i++){if(Subject[ItemNumber].Rec[i].ReturnSchool()==SchoolNumber){cout第SchoolNumber学校在男子项目ItemNumber取得i+1名endl;temp++;}}}else{for(inti=0;i3;i++){if(Subject[ItemNumber].Rec[i].ReturnSchool()==SchoolNumber){cout第SchoolNumber学校在女子项目ItemNumber取得i+1名endl;temp++;}}}if(temp==0)cout第SchoolNumber学校在项目ItemNumber没有取得名次endl;}voidRankList::SchoolSearch(intItemNumber){if(ItemNumber3){for(inti=0;i5;i++){cout取得男子项目第i+1名的学校是Subject[ItemNumber].Rec[i].ReturnSchool()endl;}}else{for(inti=0;i3;i++){cout取得女子项目第i+1名的学校是Subject[ItemNumber].Rec[i].ReturnSchool()endl;}}}voidSubject::SetRecord_3(inti){//为取前三名的项目建立记录inta,j;cout请输入第i+1名的学校,成绩endl;cout学校:;cina;boolTag=true;while(Tag){if(a5){cout输入错误!只有5个学校!endl;cout学校:;cina;}elseTag=false;}Rec[i].school=a;cout成绩:;cina;Rec[i].score=a;boolflag=true;if(i0){while(flag){for(j=0;ji;j++){if(Rec[i].scoreRec[j].score){cout输入错误!重新输入!endl;cina;Rec[i].score=a;}elseflag=false;}}}switch(i){case0:Rec[i].mark=5;break;case1:Rec[i].mark=3;break;case2:Rec[i].mark=2;break;}}voidSubject::SetRecord_5(inti){//为取前五名的项目建立记录inta;cout请输入第i+1名的学校,成绩endl;cout学校:;cina;boolTag=true;while(Tag){if(a5){cout输入错误!只有5个学校!endl;cout学校:;cina;}elseTag=false;}Rec[i].school=a;cout成绩:;cina;Rec[i].score=a;boolflag=true;if(i0){while(flag){for(intj=0;ji;j++){if(Rec[i].scoreRec[j].score){cout输入错误!重新输入!endl;cout成绩:;cina;Rec[i].score=a;}elseflag=false;}}}switch(i){case0:Rec[i].mark=7;break;case1:Rec[i].mark=5;break;case2:Rec[i].mark=3;break;case3:Rec[i].mark=2;break;case4:Rec[i].mark=1;break;}}voidRankList::Innput(){inti,j;for(i=0;i3;i++){cout项目i+1(男子,取前五名)endl;for(j=0;j5;j++){Subject[i].SetRecord_5(j);}}for(i=3;i5;i++){cout项目i+1(女子,取前三名)endl;for(j=0;j3;j++){Subject[i].SetRecord_3(j);}}}intRankList::SumScoreSchool(intnumber)//查找学校总分{intgole=MSumScoreSchool(number)+FSumScoreSchool(number);school[number].WholeScore=gole;returngole;}intRankList::MSumScoreSchool(intnumber){intWholeScore=0,i,j;for(i=0;i3;i++){for(j=0;j5;j++)if(Subject[i].Rec[j].ReturnSchool()==number){WholeScore=WholeScore+Subject[i].Rec[j].ReturnMark();}}school[number].WholeScoreM=WholeScore;returnWholeScore;}intRankList::FSumScoreSchool(intnumber){intWholeScore=0,i,j;for(i=3;i5;i++){for(j=0;j5;j++)if(Subject[i].Rec[j].ReturnSchool()==number){WholeScore=WholeScore+Subject[i].Rec[j].ReturnMark();}}school[number].WholeScoreF=WholeScore;returnWholeScore;}voidRankList::paixuWhole(){intbound,j,t;Schoolo;bound=4;while(bound!=0){t=0;for(j=0;j=bound;j++)if(school[j].WholeScoreschool[j+1].WholeScore){o=school[j];school[j]=school[j+1];schoo

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功