C-课程设计-对参赛结果分数进行处理_第1页
C-课程设计-对参赛结果分数进行处理_第2页
C-课程设计-对参赛结果分数进行处理_第3页
C-课程设计-对参赛结果分数进行处理_第4页
C-课程设计-对参赛结果分数进行处理_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE18课程设计报告课程设计题目:对参赛结果分数进行处理目录一目的*************************2二基本要求*************************2三创新要求*************************2三创新要求*************************2四写出设计说明书*************************2五实验题目*************************2六实现流程分析*************************3七程序源代码*************************5八运行结果*************************13九问题分析 *************************15十结构分析*************************15十一个性功能介绍***********************15十二课程设计的目的与要求********************15十三课程设计小结************************16C++课程设计一目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。二基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的系统结构;(2)要求在设计的过程中,建立清晰的类关系图,描述出类族之间的关系;(3)在系统中定义的每个类中要有各自的属性和方法;(4)在系统的设计中,要用到面向对象的封装、继承和派生、多态的属性。三创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。四写出设计说明书

程序源代码大致有三部分,计算除掉一个最高分和一个最低分之后的平均分,计算除掉一个最高分和一个最低分之后的总分,最后是排序,程序主要是实现了这几个功能,说起来很容易的过程,但写起来一点都不容易。五实验题目:对参赛结果分数进行处理参赛选手n人(n>1),评委m人(m>2),评委给每一选手打一个分数score(分数score为小于等于10的一个正实数)。选手的最后得分lastScore计算方法为(1)m<9时,去掉一个最高分和一个最低分后另m-2个得分的平均值。(2)m≥9时,去掉两个最高分和两个最低分后另m-4个得分的平均值。假设事先已经建立了text型的数据文件f1.txt,其中依次记录着n个选手的编号(一个正整数)、姓名(一个字符串)以及m个评委给出的得分。请编制程序,依次从数据文件f1.txt中读入n个选手的有关信息,而后按上述规定方法计算出每一个选手的最后得分,而且往屏幕上以及另一个text型文件f2.txt中同时输出如下形式的结果信息。假设参赛选手人数n=5,评委人数m=7,磁盘文件f1.txt中的初始数据为:1zhangjin8.89.37.98.78.99.79.22lintao8.98.28.68.88.59.19.33guojian8.98.48.78.68.68.48.64maling7.98.38.58.68.58.98.35liuyifan9.59.19.89.29.09.58.9

那么,程序执行后,屏幕显示结果以及磁盘文件f2.txt中的结果均应该为:

参赛号

姓名

最高分

最低分

累积分

最后得分

1

zhangjin

9.7

7.9

44.9

8.98

2

lintao

9.3

8.2

43.9

8.78

3

guojian

8.9

8.4

42.9

8.58

4

maling

8.9

7.9

42.2

8.44

5

liuyifan

9.8

8.9

46.3

9.26

思考:可进一步考虑找出比赛的第1至第k名,也在屏幕以及f2.txt中同时输出相关的结果信息(k小于等于n,并规定若多个选手最后得分相同时,则有效分(即已删除原来的最高分后)中最高分高者名次优先)。六流程图建立参赛选手类初始化选手信息初始化选手信息选手比赛得分score[m]从大到小排序选手比赛得分score[m]从大到小排序m>=9m>=9计算Score[2]到score[m]的和评委数量m计算Score[2]到score[m]的和评委数量mM<9M<9计算score[1]到score[m]的和计算score[1]到score[m]的和输出比赛选手信息和比赛结果到屏幕输出比赛选手信息和比赛结果到屏幕保存比赛选手信息和比赛结果到文件保存比赛选手信息和比赛结果到文件结束结束七程序源代码#include<iostream>#include<iomanip>#include<string>#include<fstream>usingnamespacestd;constintN=20;classcompetitor{private: intNO; //选手号码 intjudge_amount; //裁判人数 stringname; //选手姓名 doublescore[N]; //选手得分public: competitor(stringna,intno,intju,doubles[N]); //构造函数 intget_no(); stringget_name(); intget_judge_amount(); double*get_score(); voidsort(); //将选手得分从大到小排序 doublemax(); //选手得分最大值 doublemin(); //选手得分最小值 doublelast_score(); //除去最大最小分数后的平均分数 doubletotal_score(); //除去最大最小分数后的累计得分 voidshow_date(); //显示选手信息};competitor::competitor(stringna,intno,intju,doubles[N])//构造函数{ name=na; NO=no; judge_amount=ju; for(inti=0;i<judge_amount;i++) score[i]=s[i]; for(intj=judge_amount;j<N;j++) score[judge_amount]=s[judge_amount];}intcompetitor::get_no(){ returnNO;}stringcompetitor::get_name(){ returnname;}intcompetitor::get_judge_amount(){ returnjudge_amount;}double*competitor::get_score(){ returnscore;}voidcompetitor::sort()//将选手得分从大到小排序{ inti,j,k,temp; for(i=0;i<judge_amount-1;i++) { k=i; for(j=i;j<judge_amount;j++) { if(score[k]<score[j]) k=j; } if(k!=i) { temp=score[i]; score[i]=score[k]; score[k]=temp; } } }doublecompetitor::last_score()//除去最大最小分数后的平均分数{ doublesum=0; if(judge_amount<9) { for(inti=1;i<judge_amount-1;i++) sum+=score[i]; returnsum/(judge_amount-2); } if(judge_amount>=9) { for(inti=2;i<judge_amount-2;i++) sum=sum+score[i]; returnsum/(judge_amount-4); }}doublecompetitor::total_score()//除去最大最小分数后的累计得分{ doublesum=0; if(judge_amount<9) { for(inti=1;i<judge_amount-1;i++) sum+=score[i]; returnsum; } if(judge_amount>=9) { for(inti=2;i<judge_amount-2;i++) sum+=score[i]; returnsum; }}doublecompetitor::max()//选手得分最大值{ returnscore[0];}doublecompetitor::min()//选手得分最小值{ returnscore[judge_amount-1];}voidcompetitor::show_date()//显示参赛选手信息子程序{ cout<<NO; cout<<setw(10)<<name; for(inti=0;i<judge_amount;i++) cout<<setw(5)<<setprecision(2)<<score[i]<<""; cout<<endl;}voidshow_rerult(competitor&player)//计算并显示参赛选手比赛结果子程序{ player.sort(); cout<<player.get_no(); cout<<setw(12)<<player.get_name(); cout<<setw(12)<<setprecision(2)<<player.max(); cout<<setw(12)<<setprecision(2)<<player.min(); cout<<setw(14)<<setprecision(2)<<player.total_score(); cout<<setw(13)<<setprecision(2)<<player.last_score()<<endl;}ofstream&operator<<(ofstream&base,competitor&a)//运算符重载,向指定文件输入选手的资料{base<<a.get_no()<<""<<a.get_name()<<"";for(inti=0;i<a.get_judge_amount();i++)base<<""<<a.get_score()[i];base<<endl;returnbase;}voidout_to_file(competitora)//将比赛结果保存到文件d:\\competitorresult.txt中{ ofstreamoutfile1; outfile1.open("d:\\competitorresult.txt",ios::app);outfile1<<""<<a.get_no()<<""<<setw(-5)<<a.get_name()<<""<<a.max()<<""<<a.min();outfile1<<""<<a.total_score()<<""<<a.last_score()<<endl; outfile1.close();//关闭文件}intmain(){ doublet1[20]={8.8,9.3,7.9,8.7,8.9,9.7,9.2};//选手1得分doublet2[20]={8.9,8.2,8.6,8.8,8.5,9.1,9.3};//选手2得分doublet3[20]={8.9,8.4,8.7,8.6,8.6,8.4,8.6};//选手3得分doublet4[20]={7.9,8.3,8.5,8.6,8.5,8.9,8.3};//选手4得分doublet5[20]={9.5,9.1,9.8,9.2,9.0,9.5,8.9};//选手5得分competitorplayer1("zhangjin",1,7,t1);//调用player1构造函数competitorplayer2("lintao",2,7,t2);//调用player2构造函数competitorplayer3("guojian",3,7,t3);//调用player3构造函数competitorplayer4("maling",4,7,t4);//调用player4构造函数competitorplayer5("liuyifan",5,7,t5);//调用player5构造函数 player1.show_date();//显示选手1比赛信息 player2.show_date();//显示选手2比赛信息 player3.show_date();//显示选手3比赛信息 player4.show_date();//显示选手4比赛信息 player5.show_date();//显示选手5比赛信息 cout<<"NO"<<setw(10)<<"Name"<<setw(16)<<"Maxscore"<<setw(13)<<"Minscore";//向显示屏输出 cout<<setw(15)<<"Totalscore"<<setw(12)<<"Lastscore"<<endl; show_rerult(player1);//显示选手1比赛结果 show_rerult(player2);//显示选手2比赛结果 show_rerult(player3);//显示选手3比赛结果 show_rerult(player5);//显示选手5比赛结果 show_rerult(player4);//显示选手4比赛结果 ofstreamoutfile1("d:\\competitordata.txt");//保存到D盘competitordata.txt outfile1<<player1<<player2<<player3<<player4<<player5;//将选手player1到player5的数据保存到文件competitordata.txt中 outfile1.close();//关闭文件 ofstreamoutfile2; outfile2.open("d:\\competitorresult.txt",ios::app); outfile2<<""<<"NO"<<setw(10)<<"Name"<<setw(15)<<"Maxscore"<<setw(12)<<"Minscore";//向显示屏输出 outfile2<<setw(14)<<"Totalscore"<<setw(13)<<"Lastscore"<<endl; out_to_file(player1);//将player1比赛结果保存到文件d:\\competitorresult.txt out_to_file(player2);//将player2比赛结果保存到文件d:\\competitorresult.txt out_to_file(player3);//将player3比赛结果保存到文件d:\\competitorresult.txt out_to_file(player4);//将player4比赛结果保存到文件d:\\competitorresult.txt out_to_file(player5);//将player5比赛结果保存到文件d:\\competitorresult.txt return1;}八运行结果程序所创建的两个文件competitordata.txt和competitorresult.txt:文件competitordata.txt内容文件competitorresult.txt内容九问题分析1.课题内容本课题对参赛选手分数进行处理,就像我们平时比赛中评分一样,去掉最高分和最低分,剩下的分数的和的平均分就是最后的分。在程序设计过程中比较繁杂,有很多变量和函数,很容易出错。所以在写的过程中要特别细心。2.功能结构有对数据的输入,输入之后要进行计算,计算过程中涉及很多的方法和函数,例如重载,析构函数,构造函数等等。十结构分析程序源代码大致有三部分,计算除掉一个最高分和一个最低分之后的平均分,计算除掉一个最高分和一个最低分之后的总分,最后是排序,程序主要是实现了这几个功能,说起来很容易的过程,但写起来一点都不容易。十一个性功能介绍1.本程序实现了题目的要求:对选手是比赛分数进行了,求最大值,最小值,累计得分,最后得分,选手名次排序。2.在本程序中运行后,用户可以手动根据提示输入,参赛选手的信息和评委的给分,系统会自动处理信息,并把处理结果保存到文件和向屏幕输出。十二课程设计的目的与要求1教学目的在《面向对象程序设计》课程教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统的设计与开发,深入复习并进一步掌握面向对象的程序设计思想与方法。同时,作为整个实践教学体系一部分,系统培养学生采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能。2教学要求从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:1)根据实现的功能,划分出合理的对象类,明确对象类间的关系。2)为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。3)编程简练,程序功能齐全,能正确运行。4)说明书、流程图要清楚,规范5)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。十三课程设计小结1.在课程设计过程中,问题百出,这主要是自己对这门课程的掌握的不够熟练,C++中新增了很多新词和语法,由于理解不够,所以在做的过程中常常会遇到很多问题,并且不能及时得到解答,在写代码中我才意识到自己对这门课程的掌握有多少,例如,刚开始,缺省我基本都不会用,还有析构函数、构造函数拷贝构造函数都搞不清楚,这是我在课程设计中遇到的问题,所以我觉得如果要想学好这门课,还需要继续努力。2.除了上述的问题外,在课程设计中也学到了很多,对这门课有了更多的了解,面对对象程序设计的方法更直观,把对象定义成问题的概念,问题的抽象,或者具有明确边界和意义的事物。将问题分成对象的方法与对问题的判断和问题的性质有关。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用单片机在高楼恒压供水系统中的应用基于ATmega16单片机的流量控制器的开发

温馨提示

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

评论

0/150

提交评论