您的位置:首页 > 其它

第十四周项目 2 带姓名的成绩单(从文件中输入成绩,成绩姓名排序)

2014-11-27 16:51 274 查看
/*
*Copyright (C) 2014,烟台大学计算机学院
*All rights reserved.
*文件名称 :mian.cpp
*作    者 :韩娟
*完成日期 :2014年11月27日
*版 本 号 :v1.0
*
*问题描述 : 从文件中读入成绩,按成绩高低输出,和按姓名排序输出
*输入描述 :略
*程序输出 :按成绩高低输出,和按姓名排序输出
*/
#include <fstream>   //操作文件必写
#include<cstdlib>   //调用exit(1)需要包含cstdlib
#include<iostream>
#include<string>
using namespace std;
const int num=94;
int main()
{
int i=0,j=0,t,a=0;
string temp,name[num];
double score[num];
ifstream infile("score.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0; i<num; i++)
{
infile>>name[i];
infile>>score[i];
if(name[i]=="")
break;
a++;
}
infile.close();
cout<<"同学们按成绩排名为:"<<endl;
for(i=0; i<a-1; ++i)
{
for(j=0; j<a-i-1; ++j)
if(score[j]>score[j+1])
{
t=score[j];
score[j]=score[j+1];
score[j+1]=t;
temp=name[j];
name[j]=name[j+1];
name[j+1]=temp;
}
}
for(j=0; j<num; ++j)
{
cout<<name[j]<<":"<<score[j]<<endl;
}
cout<<endl;
cout<<"同学们按姓名排序为:"<<endl;//(2)按姓名排序并输出结
for(i=0; i<a-1; ++i)
{
for(j=0; j<a-i-1; ++j)
if(name[j]>name[j+1])
{
temp=name[j];
name[j]=name[j+1];
name[j+1]=temp;
t=score[j];
score[j]=score[j+1];
score[j+1]=t;
}
}
for(j=0; j<num; ++j)
{
cout<<name[j]<<":"<<score[j]<<endl;
}
}






知识点总结 :

这个程序用到了读入程序的知识点,一开始是要现在前面把所有的文件数据都读入,然后才开始写后面的程序,主要是前面的文件读入,要用一个for循环语句来进行会比较容易,其他的和上一个程序没有什么区别。

学习心得 :

写这个程序的时候明白了温故而知新的重要性,一定要及时复习前面的知识点,才能更好的写出程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: