版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告目录设计任务 TOC\o"1-5"\h\z设计要求 4设计方案 4设计内容 44. 1.1软件达到的目的 44. 1.2软件功能说明 41.2.1各项功能说明 5软件设计环境与原理 55.1设计环境与模块的划分 55.1.1软件设计环境 55.1.2软件模块的划分 55.2软件设计主要原理 65.2.1采用的主要数据结构类型 65.2.2各个模块之间的调用关系和数据储存格式说明 7软件的设计过程 86.1各软件模块之间的调用方式 86.2软件中实现各项功能的函数与程序代码 8设计结果与分析 14总结 19设计任务运用面向对象语言描述成绩类,学院类,项目等类,每一个类应包含数据成员和成员函数。设计基类和派生类,并运用多态性和虚函数的知识。注重面向对象程序设计理论知识的理解与实际的动手编程能力,要求学生源文件用多文件的工程结构,数据存储用文件形式,标准的C++输入输出,功能完善,适当的注释等知识。本课程设计要实现的主要功能如下:1) 建立成绩类,学院类,项目等类2) 学校运动会信息的初始化4) 学校运动会成绩信息的输入、排序、添加、查找、保存5) 学校运动会信息的输出设计要求【基本要求】1、 使用继承减少重复代码;2、 使用多态性统一通讯协议,使程序易于维护;3、 体现数据抽象和封装;4、 体现数据访问属性和继承属性。设计方案学校运动会成绩统计设计内容4.1软件达到的目的该软件主要是实现对学校运动会成绩进行系统化的管理,首先可以对学校运动会成绩基本信息进行输入和存取,其次可以读取显示学校运动会成绩统的相关信息,然后可以删除和修改学校运动会成绩相关信息,还有就是可按编号查询此学校运动会成绩的相关信息。由此来系统化管理学校运动会成绩,并达到简易操作的目的。4.2软件功能说明对学校运动会成绩的信息进行整理,输入、输出、保存、排序、查找等功能4.2.1各项功能说明(1) 学校运动会成绩基本信息的录入和保存:这部分的功能主要包括信息的录入和保存,首先按程序提示分别输入有关学校运动会成绩的相关信息包括学院编号、项目编号、运动员性别、各个项目的成绩等。录入完毕后系统将显示全部学校运动会成绩,信息中已包含对学校运动会成绩基本信息。可以选择是否保存,选择存盘后,系统则自动将学生信息存入电脑中的文件123.txt中。(2) 学校运动会成绩的排序:这部分的功能主要包括学校运动会成绩的排序,首先按程序提示分别输入有关学校运动会成绩的相关信息包括学院编号、项目编号、运动员性别来给团体总分和男子和女子总分排序。(3) 学校运动会成绩的输出:这部分的功能主要是首先按程序提示分别输入有关学校运动会成绩的相关信息包括学院编号、项目编号、运动员性别来输出学院团体总分和男子和女子总分。(4) 按编号查找学校运动会成绩信息:此项功能可以根据用户输入的学校编号和项目编号查出该学校运动会成绩的所有信息。(5) 对需要保存的学生信息进行保存。这部分的功能主要是对输入的运动会的成绩进行保存放在123.txt的文件中。(6) 读取学校运动会成绩信息:这部分的主要功能是对保存在123.txt文件中的信息读取出来并且输出来。(7) 退出系统,结束任务。软件设计环境与原理5.1设计环境与模块的划分5.1.1软件设计环境MicrosoftVisualC++6.05.1.2软件模块的划分该软件主要组成模块和各个模块之间的调用关系如下图:退出学校运动会成绩管理保存学校运动会成绩信息查找学校运动会成绩信息读取学校运动会成绩信息排序学校运动会成绩信息输入学校运动会成绩信息进入学校运动统成绩系统退出学校运动会成绩管理保存学校运动会成绩信息查找学校运动会成绩信息读取学校运动会成绩信息排序学校运动会成绩信息输入学校运动会成绩信息进入学校运动统成绩系统保存到123.txt文档5.2软件设计主要原理5.2.1采用的主要数据结构类型该程序采用的是结构体类型来处理学生的所有基本信息,如下所述。包含的库函数有:#include"stdafx.h”#include<stdlib.h>#include"fstream.h”#include<iostream.h>#include<conio.h>包含的函数有:int&ReturnSchool(){returnschool;}int&ReturnScore(){returnscore;}int&ReturnMark(){returnmark;}voidSetRecord_3(inti);voidSetRecord_5(inti);voidoutput();School();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);voidqd();voidexit();voidmenu();voidmain();5.2.2各个模块之间的调用关系和数据储存格式说明各函数模块之间的调用关系主要是主函数调用所有其它功能函数和菜单函数,并利用循环使各个功能函数运行完毕后都会回到菜单。该程序的数据以txt文件储存。软件的设计过程6.1各软件模块之间的调用方式程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。6.2软件中实现各项功能的函数与程序代码//000.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include<stdlib.h>//控制颜色#include"fstream.h"#include<iostream.h>#include<conio.h>classRecordZ/最小的类,用来记录得奖者的信息{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;public:RecordRec[5];voidSetRecord_3(inti);voidSetRecord_5(inti);};classSchool//主要为了输出的方便{friendclassRankList;intWholeScoreM,WholeScoreF,WholeScore;voidoutput(){cout<<WholeScoreM<<"\t"<<WholeScoreF<<"\t"<<WholeScore<<endl;}School(){WholeScoreM=0;WholeScoreF=0;WholeScore=0;}};classRankList{//他嵌套Subject类,正好组成所有的项目private:SubjectSubject[5];public:Schoolschool[5];voidInput();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){fstreamfin(c,ios::in|ios::out);if(!fin){cerr<<"open"<<c<<"error!"<<endl;exit(1);}for(intk=0;k<3;k++)for(intj=0;j<5;j++){fin>>Subject[k].Rec[j].ReturnSchool();fin>>Subject[k].Rec[j].ReturnScore();fin>>Subject[k].Rec[j].ReturnMark();}for(k=3;k<5;k++)for(intj=0;j<3;j++){fin>>Subject[k].Rec[j].ReturnSchool();fin>>Subject[k].Rec[j].ReturnScore();fin>>Subject[k].Rec[j].ReturnMark();}_getch();}voidRankList::save_to_file(){ofstreamoutfile("123.txt”,ios::out);if(!outfile){cerr<<"openerror!"<<endl;exit(1);}for(intk=0;k<3;k++)for(intj=0;j<5;j++){outfile<<Subject[k].Rec[j].ReturnSchool()<<”"<<Subject[k].Rec[j].ReturnScore()<<""<<Subject[k].Rec[j].ReturnMark()<<endl;for(k=3;k<5;k++)for(intj=0;j<3;j++){outfile<<Subject[k].Rec[j].ReturnSchool()<<”"<<Subject[k].Rec[j].ReturnScore()<<""<<Subject[k].Rec[j].ReturnMark()<<endl;}outfile.close();_getch();}voidRankList::ItemSearch(intSchoolNumber,intItemNumber){inttemp=0;if(ItemNumber<3){for(inti=0;i<5;i++){if(Subject[ItemNumber].Rec[i].ReturnSchool()==SchoolNumber){cout<<"第"<<SchoolNumber<<”学院在男子项目"<<ItemNumber<<”取得"<<i+1<<"名"<<endl;temp++;}}}else{for(inti=0;i<3;i++){if(Subject[ItemNumber].Rec[i].ReturnSchool()==SchoolNumber){cout<<"第"<<SchoolNumber<<”学院在女子项目"<<ItemNumber<<”取得"<<i+1<<"名"<<endl;temp++;}}}if(temp==0)cout<<"第"<<SchoolNumber<<”学院在项目”<<ItemNumber<<”没有取得名次"<<endl;_getch();voidRankList::SchoolSearch(intItemNumber){if(ItemNumber<3){for(inti=0;i<5;i++){cout<<"取得男子项目第"<<i+1<<"名的学院是"<<Subject[ItemNumber].Rec[i].ReturnSchool()<<endl;}}else{for(inti=0;i<3;i++){cout<<"取得女子项目第"<<i+1<<"名的学院是"<<Subject[ItemNumber].Rec[i].ReturnSchool()<<endl;}}_getch();voidSubject::SetRecord_3(inti)//为取前三名的项目建立记录{inta,j;cout<<"请输入第"<<i+1<<"名的学院,成绩"<<endl;cout<<"学院:";cin>>a;boolTag=true;while(Tag){if(a>5){cout<<"输入错误!只有5个学院!"<<endl;cout<<"学院:";cin>>a;}elseTag=false;}Rec[i].school=a;cout<<"成绩:”;cin>>a;Rec[i].score=a;boolflag=true;if(i>0){while(flag){for(j=0;j<i;j++){if(Rec[i].score>Rec[j].score){cout<<"输入错误!重新输入!"<<endl;cin>>a;Rec[i].score=a;}elseflag=false;}}}switch(i){case0:Rec[i].mark=10;break;case1:Rec[i].mark=5;break;case2:Rec[i].mark=2;break;}_getch();}voidSubject::SetRecord_5(inti)//为取前五名的项目建立记录{inta;cout<<"请输入第"<<i+1<<"名的学院,成绩"<<endl;cout<<"学院:";cin>>a;boolTag=true;while(Tag){if(a>5){cout<<"输入错误!只有5个学院!"<<endl;cout<<"学院:";cin>>a;elseTag=false;}Rec[i].school=a;cout<<"成绩:";cin>>a;Rec[i].score=a;boolflag=true;if(i>0){while(flag){for(intj=0;j<i;j++){if(Rec[i].score>Rec[j].score){cout<<"输入错误!重新输入!"<<endl;cout<<"成绩:";cin>>a;Rec[i].score=a;}elseflag=false;}}}switch(i){case0:Rec[i].mark=10;break;case1:Rec[i].mark=5;break;case2:Rec[i].mark=2;break;case3:Rec[i].mark=0;break;case4:Rec[i].mark=0;break;}_getch();}voidRankList::Input(){inti,j;for(i=0;i<3;i++){cout<<"项目"<<i+1<<"(男子,取前五名)"<<endl;for(j=0;j<5;j++){Subject[i].SetRecord_5(j);}}for(i=3;i<5;i++){cout<<"项目"<<i+1<<"(女子,取前三名)"<<endl;for(j=0;j<3;j++){Subject[i].SetRecord_3(j);}}_getch();}intRankList::SumScoreSchool(intnumber)//查找学院总分{intgole=MSumScoreSchool(number)+FSumScoreSchool(number);school[number].WholeScore=gole;returngole;}intRankList::MSumScoreSchool(intnumber)intWholeScore=0,i,j;for(i=0;i<3;i++){for(j=0;j<5;j++)if(Subject[i].Rec[j].ReturnSchool()==number){WholeScore=WholeScore+Subject[i].Rec[j].ReturnMark();}}school[number].WholeScoreM=WholeScore;returnWholeScore;_getch();}intRankList::FSumScoreSchool(intnumber){intWholeScore=0,i,j;for(i=3;i<5;i++){if(Subject[i].Rec[j].ReturnSchool()==number){WholeScore=WholeScore+Subject[i].Rec[j].ReturnMark();}}school[number].WholeScoreF=WholeScore;returnWholeScore;_getch();}voidRankList::paixuWhole(){intbound,j,t;Schoolo;bound=4;while(bound!=0){t=0;for(j=0;j<=bound;j++)if(school[j].WholeScore<school[j+1].WholeScore){o=school[j];school[j]=school[j+1];school[j+1]=o;t=j;}bound=t;}_getch();}voidRankList::paixuWholeM(){intbound,j,t;Schoolo;bound=4;while(bound!=0){t=0;for(j=0;j<=bound;j++)if(school[j].WholeScoreM<school[j+1].WholeScoreM){o=school[j];school[j]=school[j+1];school[j+1]=o;t=j;}bound=t;}_getch();}voidRankList::paixuWholeF(){intbound,j,t;Schoolo;bound=4;while(bound!=0){t=0;for(j=0;j<=bound;j++)if(school[j].WholeScoreF<school[j+1].WholeScoreF){o=school[j];school[j]=school[j+1];school[j+1]=o;t=j;}bound=t;}_getch();}voidRankList::OutPut(void){for(inti=0;i<5;i++){SumScoreSchool(i);MSumScoreSchool(i);FSumScoreSchool(i);cout<<"学院"<<""<<"男团总分"<<""<<"女团总分"<<""<<"总分"<<endl;for(i=0;i<5;i++){cout<<i<<"\t";school[i].output();}_getch();}voidRankList::SumOutPut(void){inti,k;for(i=0;i<5;i++){SumScoreSchool(i);MSumScoreSchool(i);FSumScoreSchool(i);}paixuWhole();cout<<"学院总分排名为(根据学院代码)"<<endl;cout<<"学院"<<""<<"男团总分"<<""<<"女团总分"<<""<<"总分"<<endl;for(k=0;k<5;k++){cout<<k<<"\t";school[k].output();}_getch();}voidRankList::MSumOutPut(void){inti,k;for(i=0;i<5;i++){SumScoreSchool(i);MSumScoreSchool(i);FSumScoreSchool(i);}paixuWholeM();cout<<"学院男子团体总分排名为(根据学院代码)"<<endl;for(k=0;k<5;k++){cout<<k<<"\t";school[k].output();}_getch();}voidRankList::FSumOutPut(void){inti,k;for(i=0;i<5;i++){SumScoreSchool(i);MSumScoreSchool(i);FSumScoreSchool(i);}paixuWholeF();cout<<"学院女子团体总分排名为(根据学院代码)"<<endl;for(k=0;k<5;k++){cout<<k<<"\t";school[k].output();}_getch();voidexit()system("CLS");inti,b;for(i=0;iv=2;i++){system("COLORB");system("CLS");cout«"\n\n"«endl«endl;cout«"\t\tl"«endl;cout«"\t\t☆☆☆☆ 1 ☆☆☆☆"«endl;cout«"\t\t☆欢迎 1 下次☆"«endl;cout«"\t\t☆再使用 1 本系统☆"vvendl;cout«"\t\t☆ 1 A"«endl;cout«"\t\t☆ 南昌航空大学软件学院 ☆"vvendl;cout«"\t\t☆ 设计者:许谱龙 ☆"«endl;cout«"\t\t☆ 2011年 ☆"vvendl;cout«"\t\t☆ 02月 ☆"vvendl;
cout«"\t\t ☆28日 ☆"vvendl;cout«"\t\t ☆☆"vvendl;cout«"\t\t☆ ☆"vvendl;cout«"\t\t☆☆"vvendl;cout«"\t\t☆"vvendl;for(b=l;b<=20000000;b++){}system("CLS");system("COLORA");cout«"\n\n"«endl«endl;cout«"\t\tl"«endl;cout«"\t\t★★★★★ 1 ★★★★★"«endl;cout«"\t\t★欢迎1 下次★"«endl;cout«"\t\t★再使用1 本系统★"«endl;cout«"\t\t★1★"«endl;cout«"\t\t★南昌航空大学软件学院★"«endl;cout«"\t\t ★设计者:许谱龙★"«endl;cout«"\t\t ★2011年★"«endl;cout«"\t\t ★02月 -★n«endl;cout«"\t\t28日★"«endl;cout«"\t\t ★ ★"«endl;cout«"\t\t ★ ★"«endl:cout«"\t\tcout«"\t\tcout«"\t\tcout«"\t\tfor(b=l;b<=20000000;b++){}cout«"\n\n\t\t\t\t版权所有,}exit(O);}voidmenu(){system("CLS");system(HCOLORBH);inti;for(i=0;i<=10;i++)cout«endl;★ ★"«endl;★★"«endl;★★"«endl;★"«endl;盗版必究!"«endl;cout<<"\t1.按学院编号查询学院某个项目的情况:"<<endl;cout<<"\t2.可以按项目编号查询取的前五名的人:"<<endl;cout<<"\t3.键盘输入:"<<endl;cout<<"\t4.学院总分排名:"<<endl;cout<<"\t5.男子总分排名:"<<endl;cout<<"\t6.女子总分排名:"<<endl;cout<<"\t7.按学院代码输出所有的部分:"<<endl;cout<<"\t8.存入文件:"<<endl;cout<<"\t9.从文件中读取数据:"<<endl;cout<<"\t10.退出系统 :"<<endl<<endl<<endl;cout<<"\t请选择要实现的功能:";}voidmain(){intSN,IN;Subjecta;RankListb;while(1)system("cls");intsel;menu();cin>>sel;switch(sel){case1:cout<<"请输入学院和项目编号:"<<endl;cin>>SN>>IN;b.ItemSearch(SN,IN);break;case2:cout<<"请输入项目编号:"<<endl;cin>>IN;b.SchoolSearch(IN);break;case3:b.Input();break;case4:b.paixuWhole();b.SumOutPut();break;case5:b.paixuWholeM();b.MSumOutPut();break;case6:b.paixuWholeF();b.FSumOutPut();break;case7:b.OutPut();break;case8:b.save_to_file();break;case9:charc[20];cout<<"请输入文件名:"<<endl;cin>>c;b.get(c);break;case10:exit();break;default:cout<<"无效的命令!"<<endl;_getch();break;}}设计结果与分析在此,我们将把软件使用过程写出,并对此程序的一些细节和具体的操作方法加以说明,说明如下:1、将软件进行初始化。2进入程序,界面如图:o—o•oo•00Qif cfcpGGG。。。申巾 $GGGOOG# #学生运动会成绩统计##GO©OOG$ $ GGGOOG GOGO O*O—★☆t *O • 学生运动会成绩统计 的名目五R的名目五R项前簌某取^窘一珊娜询号 鲍物■[查编父务名名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兽药制造工安全宣贯水平考核试卷含答案
- 2026年网络工程师考试综合知识试题与答案
- 2026年人工智能软件基础考试真题及解析
- 2026年应收账款分析报告
- 柴达木盆地托素湖湖水蒸发进程中硼和氯同位素分馏特性剖析
- 柳州市城市土地利用与经济发展的耦合协同关系研究
- 柚皮素与高良姜挥发油对肺癌A549细胞生长的影响及机制探究
- 柔性摩擦电子学晶体管赋能主动式传感技术的创新与突破
- 染料中间体H酸生产废水处理与资源化:技术、实践与展望
- 某型火炮协调器液压系统动态特性仿真研究
- GB/T 4662-2025滚动轴承额定静载荷
- 果茶店创业计划书
- 隐匿阴茎的诊治2025
- 2025年考研英语二真题及答案解析(完整版)
- 铜川日光温室施工方案
- 项目经理施工现场安全管理要点
- 特殊作业许可管理办法
- 《涉外法治概论》课件 杜涛 -第1-6章 涉外法治的基础理论-涉外经济管理法律制度
- 汉字“金”的演变课件
- 国内外典型案例矿山生态修复与景观创意67P
- DBJT15-197-2020 高大模板支撑系统实时安全监测技术规范
评论
0/150
提交评论