学校运动会成绩统计面向对象实验报告.doc_第1页
学校运动会成绩统计面向对象实验报告.doc_第2页
学校运动会成绩统计面向对象实验报告.doc_第3页
学校运动会成绩统计面向对象实验报告.doc_第4页
学校运动会成绩统计面向对象实验报告.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告目 录1.设计任务 2.设计要求 43.设计方案 44. 设计内容 44. 11软件达到的目的44. 12 软件功能说明44. 1.2.1 各项功能说明55.软件设计环境与原理55.1 设计环境与模块的划分 55.1.1 软件设计环境55.1.2 软件模块的划分55.2 软件设计主要原理65.2.1 采用的主要数据结构类型65.2.2 各个模块之间的调用关系和数据储存格式说明76软件的设计过程86.1 各软件模块之间的调用方式86.2 软件中实现各项功能的函数与程序代码87.设计结果与分析148.总结19381.设计任务运用面向对象语言描述成绩类,学院类,项目等类,每一个类应包含数据成员和成员函数。设计基类和派生类,并运用多态性和虚函数的知识。注重面向对象程序设计理论知识的理解与实际的动手编程能力,要求学生源文件用多文件的工程结构,数据存储用文件形式,标准的C+输入输出,功能完善,适当的注释等知识。本课程设计要实现的主要功能如下:1)建立成绩类,学院类,项目等类2)学校运动会信息的初始化4)学校运动会成绩信息的输入、排序、添加、查找、保存5)学校运动会信息的输出2.设计要求【基本要求】1、 使用继承减少重复代码;2、 使用多态性统一通讯协议,使程序易于维护;3、 体现数据抽象和封装;4、 体现数据访问属性和继承属性。3.设计方案学校运动会成绩统计4.设计内容41软件达到的目的该软件主要是实现对学校运动会成绩进行系统化的管理,首先可以对学校运动会成绩基本信息进行输入和存取,其次可以读取显示学校运动会成绩统的相关信息,然后可以删除和修改学校运动会成绩相关信息,还有就是可按编号查询此学校运动会成绩的相关信息。由此来系统化管理学校运动会成绩,并达到简易操作的目的。42 软件功能说明 对学校运动会成绩的信息进行整理,输入、输出、保存、排序、查找等功能4.2.1 各项功能说明(1)学校运动会成绩基本信息的录入和保存: 这部分的功能主要包括信息的录入和保存,首先按程序提示分别输入有关学校运动会成绩的相关信息包括学院编号、项目编号、运动员性别、各个项目的成绩等。录入完毕后系统将显示全部学校运动会成绩,信息中已包含对学校运动会成绩基本信息。可以选择是否保存,选择存盘后,系统则自动将学生信息存入电脑中的文件123.txt中。(2)学校运动会成绩的排序:这部分的功能主要包括学校运动会成绩的排序,首先按程序提示分别输入有关学校运动会成绩的相关信息包括学院编号、项目编号、运动员性别来给团体总分和男子和女子总分排序。(3)学校运动会成绩的输出:这部分的功能主要是首先按程序提示分别输入有关学校运动会成绩的相关信息包括学院编号、项目编号、运动员性别来输出学院团体总分和男子和女子总分。(4)按编号查找学校运动会成绩信息: 此项功能可以根据用户输入的学校编号和项目编号查出该学校运动会成绩的所有信息。(5)对需要保存的学生信息进行保存。 这部分的功能主要是对输入的运动会的成绩进行保存放在123.txt的文件中。(6)读取学校运动会成绩信息:这部分的主要功能是对保存在123.txt文件中的信息读取出来并且输出来。(7)退出系统,结束任务。五.软件设计环境与原理5.1 设计环境与模块的划分5.1.1 软件设计环境 Microsoft Visual C+ 6.05.1.2 软件模块的划分该软件主要组成模块和各个模块之间的调用关系如下图:菜单保存学校运动会成绩信息退出学校运动会成绩管理系统查找学校运动会成绩信息读取学校运动会成绩信息排序学校运动会成绩信息输入学校运动会成绩信息进入学校运动统成绩系统保存到123.txt文档5.2 软件设计主要原理5.2.1 采用的主要数据结构类型该程序采用的是结构体类型来处理学生的所有基本信息,如下所述。包含的库函数有:#include stdafx.h#include #includefstream.h#include #include包含的函数有:int & ReturnSchool()return school; int & ReturnScore()return score; int & ReturnMark()return mark; void SetRecord_3(int i);void SetRecord_5(int i); void output();School();void Innput(); int SumScoreSchool(int number); int MSumScoreSchool(int number); int FSumScoreSchool(int number); void OutPut(void); void SumOutPut(void); void MSumOutPut(void); void save_to_file();void FSumOutPut(void);void get(char * c);void paixuWhole(void);void paixuWholeM(void);void paixuWholeF(void); void ItemSearch(int SchoolNumber,int ItemNumber);void SchoolSearch(int ItemNumber);void qd();void exit();void menu();void main();5.2.2 各个模块之间的调用关系和数据储存格式说明各函数模块之间的调用关系主要是主函数调用所有其它功能函数和菜单函数,并利用循环使各个功能函数运行完毕后都会回到菜单。该程序的数据以txt文件储存。六软件的设计过程6.1 各软件模块之间的调用方式程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。6.2 软件中实现各项功能的函数与程序代码/ 000.cpp : Defines the entry point for the console application./#include stdafx.h#include /控制颜色#includefstream.h#include #includeclass Record/最小的类,用来记录得奖者的信息 friend class Subject; friend class RankList;private: int school; int score; int mark;public: Record(int s=-1,int sc=0,int m=0):school(s),score(sc),mark(m) int & ReturnSchool()return school; int & ReturnScore()return score; int & ReturnMark()return mark;class Subject/它嵌套Record类,正好组成一个项目 friend class RankList;public: Record Rec5; void SetRecord_3(int i); void SetRecord_5(int i);class School/主要为了输出的方便 friend class RankList; int WholeScoreM,WholeScoreF,WholeScore; void output() coutWholeScoreMtWholeScoreFtWholeScoreendl; School() WholeScoreM=0; WholeScoreF=0; WholeScore=0; ;class RankList/他嵌套Subject类,正好组成所有的项目private: Subject Subject5;public: School school5; void Input(); int SumScoreSchool(int number);/.按照学院代码查找学院总分 int MSumScoreSchool(int number);/按照学院代码查找学院男子团体总分 int FSumScoreSchool(int number);/按照学院代码查找学院女子团体总分 void OutPut(void);/按学院代码输出所有的总分 void SumOutPut(void);/输出所有学院总分排名 void MSumOutPut(void);/输出学院男子总分排名 void save_to_file();/存入文件 void FSumOutPut(void);/输出学院女子总分排名 void get(char * c);/从文件中读取数据 void paixuWhole(void); void paixuWholeM(void); void paixuWholeF(void); void ItemSearch(int SchoolNumber,int ItemNumber);/按学院编号查询学院某个项目的情况 void SchoolSearch(int ItemNumber);/可以按项目编号查询取得前三或前五名的学院;void RankList:get(char * c) fstream fin(c,ios:in|ios:out); if(!fin) cerropencerror!endl; exit(1); for(int k=0;k3;k+) for(int j=0;jSubjectk.Recj.ReturnSchool(); finSubjectk.Recj.ReturnScore(); finSubjectk.Recj.ReturnMark(); for( k=3;k5;k+) for(int j=0;jSubjectk.Recj.ReturnSchool(); finSubjectk.Recj.ReturnScore(); finSubjectk.Recj.ReturnMark(); _getch();void RankList:save_to_file() ofstream outfile(123.txt,ios:out); if(!outfile) cerropen error!endl; exit(1); for(int k=0;k3;k+) for(int j=0;j5;j+) outfileSubjectk.Recj.ReturnSchool() Subjectk.Recj.ReturnScore() Subjectk.Recj.ReturnMark()endl; for( k=3;k5;k+) for(int j=0;j3;j+) outfileSubjectk.Recj.ReturnSchool() Subjectk.Recj.ReturnScore() Subjectk.Recj.ReturnMark()endl; outfile.close(); _getch();void RankList:ItemSearch(int SchoolNumber,int ItemNumber) int temp=0; if(ItemNumber3) for(int i=0;i5;i+) if(SubjectItemNumber.Reci.ReturnSchool()=SchoolNumber) cout第SchoolNumber学院在男子项目ItemNumber取得i+1名endl; temp+; else for(int i=0;i3;i+) if(SubjectItemNumber.Reci.ReturnSchool()=SchoolNumber) cout第SchoolNumber学院在女子项目ItemNumber取得i+1名endl; temp+; if(temp=0) cout第SchoolNumber学院在项目ItemNumber没有取得名次endl; _getch();void RankList:SchoolSearch(int ItemNumber) if(ItemNumber3) for(int i=0;i5;i+) cout取得男子项目第i+1名的学院是SubjectItemNumber.Reci.ReturnSchool()endl; else for(int i=0;i3;i+) cout取得女子项目第i+1名的学院是SubjectItemNumber.Reci.ReturnSchool()endl; _getch();void Subject:SetRecord_3(int i) /为取前三名的项目建立记录 int a,j; cout请输入第i+1名的学院,成绩endl; couta; bool Tag=true; while(Tag) if(a5) cout输入错误!只有5个学院!endl; couta; else Tag=false; Reci.school=a; couta; Reci.score=a; bool flag=true; if(i0) while(flag) for(j=0;jRecj.score) cout输入错误!重新输入!a; Reci.score=a; else flag=false; switch(i) case 0:Reci.mark=10;break; case 1:Reci.mark=5;break; case 2:Reci.mark=2;break; _getch();void Subject:SetRecord_5(int i)/为取前五名的项目建立记录 int a; cout请输入第i+1名的学院,成绩endl; couta; bool Tag=true; while(Tag) if(a5) cout输入错误!只有5个学院!endl; couta; else Tag=false; Reci.school=a; couta; Reci.score=a; bool flag=true; if(i0) while(flag) for(int j=0;jRecj.score) cout输入错误!重新输入!endl; couta; Reci.score=a; else flag=false; switch(i) case 0:Reci.mark=10;break; case 1:Reci.mark=5;break; case 2:Reci.mark=2;break; case 3:Reci.mark=0;break; case 4:Reci.mark=0;break; _getch();void RankList:Input() int i,j; for(i=0;i3;i+) cout项目i+1(男子,取前五名)endl; for(j=0;j5;j+) Subjecti.SetRecord_5(j); for(i=3;i5;i+) cout项目i+1(女子,取前三名)endl; for(j=0;j3;j+) Subjecti.SetRecord_3(j); _getch();int RankList:SumScoreSchool(int number)/查找学院总分 int gole=MSumScoreSchool(number)+FSumScoreSchool(number); schoolnumber.WholeScore=gole; return gole;int RankList:MSumScoreSchool(int number) int WholeScore=0,i,j; for(i=0;i3;i+) for(j=0;j5;j+) if(Subjecti.Recj.ReturnSchool()=number) WholeScore=WholeScore+Subjecti.Recj.ReturnMark(); schoolnumber.WholeScoreM=WholeScore; return WholeScore; _getch();int RankList:FSumScoreSchool(int number) int WholeScore=0,i,j; for(i=3;i5;i+) for(j=0;j5;j+) if(Subjecti.Recj.ReturnSchool()=number) WholeScore=WholeScore+Subjecti.Recj.ReturnMark(); schoolnumber.WholeScoreF=WholeScore; return WholeScore; _getch();void RankList:paixuWhole() int bound,j,t; School o; bound=4; while(bound!=0) t=0; for(j=0;j=bound;j+) if(schoolj.WholeScoreschoolj+1.WholeScore) o=schoolj; schoolj=schoolj+1; schoolj+1=o; t=j; bound=t; _getch();void RankList:paixuWholeM() int bound,j,t; School o; bound=4; while(bound!=0) t=0; for(j=0;j=bound;j+) if(schoolj.WholeScoreMschoolj+1.WholeScoreM) o=schoolj; schoolj=schoolj+1; schoolj+1=o; t=j; bound=t; _getch();void RankList:paixuWholeF() int bound,j,t; School o; bound=4; while(bound!=0) t=0; for(j=0;j=bound;j+) if(schoolj.WholeScoreFschoolj+1.WholeScoreF) o=schoolj; schoolj=schoolj+1; schoolj+1=o; t=j; bound=t; _getch();void RankList:OutPut(void) for(int i=0;i5;i+) SumScoreSchool(i); MSumScoreSchool(i); FSumScoreSchool(i); cout学院 男团总分 女团总分 总分endl; for(i=0;i5;i+) coutit; schooli.output(); _getch();void RankList:SumOutPut(void) int i,k; for(i=0;i5;i+) SumScoreSchool(i); MSumScoreSchool(i); FSumScoreSchool(i); paixuWhole(); cout学院总分排名为(根据学院代码)endl; cout学院 男团总分 女团总分 总分endl; for(k=0;k5;k+) coutkt; schoolk.output(); _getch();void RankList:MSumOutPut(void) int i,k; for(i=0;i5;i+) SumScoreSchool(i); MSumScoreSchool(i); FSumScoreSchool(i); paixuWholeM(); cout学院男子团体总分排名为(根据学院代码)endl; for(k=0;k5;k+) coutkt; schoolk.output(); _getch();void RankList:FSumOutPut(void) int i,k; for(i=0;i5;i+) SumScoreSchool(i); MSumScoreSchool(i); FSumScoreSchool(i); paixuWholeF(); cout学院女子团体总分排名为(根据学院代码)endl; for(k=0;k5;k+) coutkt; schoolk.output(); _getch();void exit() system(CLS); int i,b; for(i=0;i=2;i+) system(COLOR B); system(CLS); coutnnendlendl; couttt |endl; couttt | endl; couttt 欢迎 | 下次 endl; couttt 再使用 | 本系统 endl; couttt | endl; couttt 南昌航空大学 软件学院 endl; couttt 设计者:许谱龙 endl; couttt 2011年 endl; couttt 02月 endl; couttt 28日 endl; couttt endl; couttt endl; couttt endl; couttt endl; for(b=1;b=20000000;b+) system(CLS); system(COLOR A); coutnnendlendl; couttt |endl; couttt | endl; couttt 欢迎 | 下次 endl; couttt 再使用 | 本系统 endl; couttt | endl; couttt 南昌航空大学 软件学院 endl; couttt 设计者:许谱龙 endl; couttt 2011年 endl; couttt 02月 endl; couttt 28日 endl; couttt endl; couttt endl; couttt endl; couttt endl; couttt endl; couttt endl; for(b=1;b=20000000;b+) coutnntttt版权所有,盗版必究!endl; exit(0);void menu() system(CLS); system(COLOR B); int i; for(i=0;i=10;i+)coutendl;cout- 学生运动会成绩统计-endlendl;coutt1.按学院编号查询学院某个项目的情况:endl;coutt2.可以按项目编号查询取的前五名的人:endl;coutt3.键盘输入:endl;coutt4.学院总分排名:endl;coutt5.男子总分排名:endl;coutt6.女子总分排名:endl;coutt7.按学院代码输出所有的部分:endl;coutt8.存入文件:endl;coutt9.从文件中读取数据:endl;coutt10.退出系统:endlendlendl;coutsel;switch(sel)case 1:cout请输入学院和项目编号:SNIN;b.ItemSearch( SN, IN);break;case 2:cout请输入项目编号:IN;b.SchoolSearch( IN );break;case 3:b.Input();break;case 4:b.paixuWhole();b.SumOutPut();break;case

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论