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

C++对参赛结果分数进行处理 第2页

更新时间:2011-5-14:  来源:毕业论文
C++对参赛结果分数进行处理 第2页
/*前面所做的题有所欠缺,所以我有参照着再写了一个*/
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;

struct player //结构体定义

 int number;
    char name[20];
    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()   //主函数
{
 ifstream fin;  /*文件打开操作*/ 
    fin.open("f1.txt");
    if (fin.fail())
 {
  cout<<"文件读取失败..." <<endl;
        exit(0);
 }
   int rows=0; //确定选手数
   int cols=0;   //确定裁判人数
   char temp;
   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(); 
   for(int k=0;k<rows;++k)   //整理player成绩,先进行排序,然后计算,最后输出到文件
   Sort(list[k].score,cols);
   ofstream fout;
   fout.open("f2.txt");
   if(fout.fail())
   {
    cout<< "文件建立失败!";
       exit(0);
   }
   fout<< "-----------------------------------------------------------\n";
   fout<< " 参赛号    姓 名    最低分    最高分    累计分    最后得分\n";
   fout<< "-----------------------------------------------------------\n";
   fout.setf(ios_base::fixed);  // 格式控制
   for(int 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[0];   
       fout.width(10);
    原文请找腾讯752018766优,文-论'文.网http://www.youerw.com/        fout.width(11);
       fout.precision(2);
       fout<<Average(list[h].score,cols);   
       fout<<endl;
   }

   cout<< "-----------------------------------------------------------\n";
   cout<< " 参赛号    姓 名    最低分    最高分    累计分    最后得分\n";
   cout<< "-----------------------------------------------------------\n";
   for(h=0;h<rows;++h)    //屏幕输出
   {
    cout<<setw(2)<<list[h].number;
    cout<<setw(10)<<list[h].name;
    cout<<setw(6)<<list[h].score[0];
    cout<<setw(6)<<list[h].score[cols-1];
    cout<<setw(6)<<Total(list[h].score,cols);
    cout<<setw(6)<<Average(list[h].score,cols);
    cout<<endl;
   }
   cout<<"-----------------------------------------------------------\n";
   fout<<"-----------------------------------------------------------\n";
     cout<<"f2.txt文件成功建立\n";
     return 0;
}

上一页  [1] [2] 

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

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