C++对参赛选手的得分进行处理源程序
1需求分析
对参赛结果分数进行处理:参赛选手n人(n>1),评委m人(m>2),评委给每一选手打一个分数score(分数score为小于等于10的一个正实数)。选手的最后得分lastScore为去掉一个最高分和一个最低分后另m-2个得分的平均值。
假设事先已经建立了text型的数据文件f1.txt,其中依次记录着n个选手的编号(一个正整数)、姓名(一个字符串)以及m个评委给出的得分。
程序运行截图
6.2 概要设计
流程图:
函数sort
函数total
函数average
Main函数
6.3 详细设计与编码
见上传程序。
6.4 调试分析
程序比较复杂,在编写之前要对文件操作的类容要复习下,花的时间多看看相关类容,然后编写就容易些了。
6.5 用户使用说明
根据界面提示,输入想要的数据。
6.6 设计心得
这是一道关于文件的读写操作的题目,通过这道题对文件的操作更加熟悉了。
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
struct player{ //参赛者
int number;
char name[40];
double * score;
};
void Sort(double * s, int n) // 选择排序
{
double temp;
int pos;
for (int i=0;i<n-1;i++)
{
temp=s[i];
pos=i;
for (int j=i+1;j<n;j++)
{
if (s[j]<temp)
{
temp=s[j];
pos=j;
}
}
s[pos]=s[i];
s[i]=temp;
}
}
double Total(double * s, int n)
{
double sum=0;
for (int i=1; i<n-1;i++) //去掉第一个数(即最小数)和最后一个数(即最大数)
sum += s[i];
return sum;
}
double Average(double * s, int n)
{
return (Total(s, n) / (n - 2));
}
int main()
{
原文请找腾讯752018766辣.文-论'文;网http://www.751com.cn
if(!infile)
{
cout << "Can't open f1.txt!" <<endl;
exit(0); } 1821