毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++比赛结果处理 第2页

更新时间:2011-5-11:  来源:毕业论文
/*************************************************

  Copyright (C),  2008

  File name: 软件设计普通题30(30.cpp)

  Author:  计06-1  高战         

  Description: 

  Others:       ....

  Function List:  // 主要函数列表,每条记录应包括函数名及功能简要说明
         struct player                       // 定义 player
     void Sort(double * s, int n);         // 排序函数
                 double Total(double * s, int n);      // 计算总分(去掉最低分和最高分)
                 double Average(double * s, int n);    // 计算最终成绩函数
  History:       


   <author>  <time>   <version >   <desc>

*****************************************************/
#include <iostream>
#include <fstream>
using namespace std;

struct player
{
int number;
char name[40];
double * score;
};

void Sort(double * s, int n);         // 排序函数
double Total(double * s, int n);      // 计算总分(去掉最低分和最高分)
double Average(double * s, int n);    // 计算最终成绩函数
 
int main()
{
  ifstream fin;                    /*文件打开操作*/
  fin.open("f1.txt");
  if (fin.fail())
  {
  cout<<"文件读取失败..."<<endl;
  exit(0);
  }

                 /*读入数据,并分析出数据总行数与每个选手分数的个数(列数)*/
int rows = 0;
int cols = 0;
char temp;
cout<<"********************************************************"<<endl;
cout<<"注意f1文件格式一定要和试验指导书上的格式一样否则出现乱码"<<endl;
cout<<"********************************************************"<<endl;
while (!fin.eof())
{
  temp = fin.get();
  if (temp == '\n')        // 以回车判定行数,文件最后一行数据一定要以\n结束
  rows++;
  else if (temp =='.')    // 以.判定有多少位裁判给分(总计)
  cols++;
}
cols/= rows;              // 每位选手有多少个分数

player *list =new player[rows]; /*为player结构分配空间,然后存入相应数据*/
for (int i = 0; i < rows; ++i)
  list[i].score = new double[cols];
fin.clear();
fin.close();
fin.open("f1.txt");
if (fin.fail())
{
  cout<<"文件读取失败..."<<endl;
  exit(0);
}
for (int m =0;m<rows;++m)
{
  fin>>list[m].number;
  fin>>list[m].name;
  for(int j=0;j<cols;++j)
  fin>>list[m].score[j];
  fin.get();                  
}
fin.close();

/*整理player成绩,先进行排序,然后计算,最后输出到文件*/

for (int k=0;k<rows;++k)
  Sort(list[k].score,cols);
cout<<"-----------------------------------------------------------\n";
cout<<" 参赛号    姓 名    最高分    最低分    累计分    最后得分\n";
cout<<"-----------------------------------------------------------\n";
 cout.setf(ios_base::fixed);       // 格式控制
for (int h = 0;h < rows; ++h)
{
  cout.precision(1);
  cout.width(4);
  cout<<list[h].number;
  cout.width(12);
  cout<<list[h].name;
  cout.width(8);
  cout<<list[h].score[cols - 1];
  cout.width(11);
  cout<<list[h].score[0];
  cout.width(10);
  cout<<Total(list[h].score, cols);
  cout.width(11);
  cout.precision(2);
  cout<<Average(list[h].score, cols);
  cout<<endl;
}

ofstream fout;
fout.open("f2.txt");
if(fout.fail())
{
  cout<<"文件建立失败";
  exit(0);
}
fout<<"-----------------------------------------------------------\n";
fout<<" 参赛号    姓 名    最高分    最低分    累计分    最后得分\n";
fout<<"-----------------------------------------------------------\n";
fout.setf(ios_base::fixed);       // 格式控制
for ( h = 0;h < rows; ++h)
{
  fout.precision(1);
  fout.width(4);
  fout<<list[h].number;
  fout.width(12);
  fout<<list[h].name;
  fout.width(8);
  fout<<list[h].score[cols - 1];
  fout.width(11);
  fout<<list[h].score[0];
  fout.width(10);
  fout<<Total(list[h].score, cols);
  fout.width(11);
  fout.precision(2);
  fout<<Average(list[h].score, cols);
  fout<<endl;
}
fout<<"-----------------------------------------------------------\n";
cout<<"f2.txt文件成功建立。\n";
return 0;
}

void Sort(double * s, int n)                    // 选择排序
原文请找腾讯752018766优,文-论'文.网http://www.youerw.com/   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;
if (n<9)
{
  for (int i = 1; i < n - 1; ++i)
  sum += s[i];
  return sum;
}
else
{
  for(int i=2;i<n-2;++i)
  sum +=s[i];
  return sum;
}
}
 
double Average(double * s,int n) {   return (Total(s,n)/(n-2)); }

上一页  [1] [2] 

C++比赛结果处理 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。