第十四周项目2-带姓名的成绩单

设score[8]数组中存储8名同学的C++成绩,增加一个数组string name[8]并赋初值,表示同学们的姓名。这两个数组中,每名同学的姓名与成绩的下标要始终保持一致。

(1)输出按成绩排序后的同学的名单。

(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。

/*
 *Copyright (c) 2014,烟台大学计算机学院
 *All gight reserved.
 *文件名称:temp.cpp
 *作者:邵帅
 *完成时间:2014年11月27日
 *版本号:v1.0
*/
#include<iostream>
#include<string>
using namespace std;
const int num = 8;
int main()
{
    int i, j, t;
    string temp;
    string name[num] =
    { "zhao", "qian", "sun", "li", "zhou", "wu", "zheng", "wang" };
    double score[num] = { 79, 84, 65, 89, 60, 92, 78, 56 };
    // (1)按成绩排序并输出结果
    for (j = 1; j <= num-1; j++)
        for (i = 0; i < num - j; i++)
            if (score[i] < score[i + 1])
            {
                t = score[i];
                temp = name[i];
                score[i] = score[i + 1];
                name[i] = name[i + 1];
                score[i + 1] = t;
                name[i + 1] = temp;
            }
    cout << "按成绩排序后输出的结果为:" << endl;
    for (i = 0; i < num; i++)
        cout << name[i] << ":" << score[i] << endl;

    // (2)按姓名排序并输出结果
    for (j = 1; j <= num-1; j++)
        for (i = 0; i < num - j; i++)
            if (name[i] > name[i + 1])
            {
                t = score[i];
                temp = name[i];
                score[i] = score[i + 1];
                name[i] = name[i + 1];
                score[i + 1] = t;
                name[i + 1] = temp;
            }
    cout << "按姓名排序后输出的结果为:" << endl;
    for (i = 0; i < num; i++)
        cout << name[i] << ":" << score[i] << endl;
    return 0;
}

运行结果:



(3)数据由score.txt提供。

/*
 *Copyright (c) 2014,烟台大学计算机学院
 *All gight reserved.
 *文件名称:temp.cpp
 *作者:邵帅
 *完成时间:2014年11月27日
 *版本号:v1.0
*/
#include<iostream>
#include<string>
#include<fstream>
#include<cstdlib>
using namespace std;
const int num = 8;
int main()
{
	int i=0, j, t;
	string temp;
	string name[num] =
		{ "zhao", "qian", "sun", "li", "zhou", "wu", "zheng", "wang" };
	double score[num];
	// 打开文件
	ifstream infile("score.txt",ios::in);
	if (!infile)
	{
		cerr<<"没有找到文件!"<<endl;
		exit (1);
	}
	while (i<num)
	  {
	  	infile>>score[i];
	  	i++;
	  }
    infile.close();
	// (1)按成绩排序并输出结果
	for (j = 1; j <= num-1; j++)
		for (i = 0; i < num - j; i++)
			if (score[i] < score[i + 1])
			{
				t = score[i];
	   		 temp = name[i];
				score[i] = score[i + 1];
				name[i] = name[i + 1];
				score[i + 1] = t;
				name[i + 1] = temp;
			}
	cout << "按成绩排序后输出的结果为:" << endl;
	for (i = 0; i < num; i++)
		cout << name[i] << ":" << score[i] << endl;

	// (2)按姓名排序并输出结果
		for (j = 1; j <= num-1; j++)
		for (i = 0; i < num - j; i++)
			if (name[i] > name[i + 1])
			{
				t = score[i];
	   		 temp = name[i];
				score[i] = score[i + 1];
				name[i] = name[i + 1];
				score[i + 1] = t;
				name[i + 1] = temp;
			}
	cout << "按姓名排序后输出的结果为:" << endl;
	for (i = 0; i < num; i++)
		cout << name[i] << ":" << score[i] << endl;
	return 0;
}

运行结果:






@ Mayuko

posted @ 2014-11-27 22:23  麻麻麻麻鱼鱼  阅读(133)  评论(0编辑  收藏  举报