#include <iostream>
#include <string.h>
using namespace std;
class student
{
private:
int number;
int id;
char name[10];
double com_score;
double chi_score;
double ele_score;
double sum_score;
public:
student(): com_score(0), chi_score(0), ele_score(0), sum_score(0) {}
void set_id( int id1 ) { id = id1; }
void set_name( char* name1 ) { strcpy( name, name1 ); }
void show_id() { cout << "座號:" << id << endl; }
void show_name() { cout << "英文姓名:" << name << endl; }
void show_number(){ cout << "名次:" << number << endl; }
void input_com_score( double com_score1 ){ com_score = com_score1; sum_score += com_score1; }
void input_chi_score( double chi_score1 ){ chi_score = chi_score1; sum_score += chi_score1; }
void input_ele_score( double ele_score1 ){ ele_score = ele_score1; sum_score += ele_score1; }
double get_sum_score(){ return sum_score; }
void set_number(int number1){ number = number1; }
void show_score()
{
cout << "計概成績是:" << com_score << endl;
cout << "國文成績是:" << chi_score << endl;
cout << "電路成績是:" << ele_score << endl;
cout << "總成績是:" << get_sum_score() << endl;
}
void show_student()
{
cout << "===============" << endl;
show_number();
show_id();
show_name();
show_score();
}
};
int main()
{
int id1, i = 0, j, count = 0;
char name1[10];
double com_score1, chi_score1, ele_score1, temp = 0.0;
student student1[50];
while( 1 )
{
cout << "Please Input Student" << (count+1) << "'s 座號";
cout << "(Program will quit if 座號 is 99999):";
cin >> id1;
if( id1 == 99999 )
{
cout << "Bye Bye." << endl;
break;
}
student1[i].set_id( id1 );
cout << "Please Input Student" << (count+1) << "'s 英文姓名:";
cin >> name1;
student1[i].set_name( name1 );
student1[i].set_number( i+1 );
cout << "Please Input Student" << (count+1) << "'s 計概成績:";
cin >> com_score1;
cout << "Please Input Student" << (count+1) << "'s 國文成績:";
cin >> chi_score1;
cout << "Please Input Student" << (count+1) << "'s 電路成績:";
cin >> ele_score1;
student1[i].input_com_score( com_score1 );
student1[i].input_chi_score( chi_score1 );
student1[i].input_ele_score( ele_score1 );
count++;
i++;
}
int number1[count];
double sort_score[count];
for( i = 0; i < count; i++ )
{
sort_score[i] = student1[i].get_sum_score();
}
for( i = 0; i < count; i++ )
{
for( j = i; j < count; j++ )
{
if( sort_score[j] > sort_score[i] )
{
temp = sort_score[j];
sort_score[j] = sort_score[i];
sort_score[i] = temp;
}
}
}
for( i = 0; i < count; i++ )
{
for( j = 0; j < count ; j++ )
{
if( sort_score[i] == student1[j].get_sum_score())
{
student1[j].set_number((i+1));
student1[j].show_student();
}
}
}
return 0;
}
執行結果如下:
walter:/opt/testc# g++ test1227.cpp
walter:/opt/testc# ./a.out
Please Input Student1's 座號(Program will quit if 座號 is 99999):1
Please Input Student1's 英文姓名:Walter
Please Input Student1's 計概成績:10
Please Input Student1's 國文成績:10
Please Input Student1's 電路成績:10
Please Input Student2's 座號(Program will quit if 座號 is 99999):2
Please Input Student2's 英文姓名:Daniel
Please Input Student2's 計概成績:30
Please Input Student2's 國文成績:30
Please Input Student2's 電路成績:30
Please Input Student3's 座號(Program will quit if 座號 is 99999):3
Please Input Student3's 英文姓名:Jack
Please Input Student3's 計概成績:20
Please Input Student3's 國文成績:20
Please Input Student3's 電路成績:20
Please Input Student4's 座號(Program will quit if 座號 is 99999):99999
Bye Bye.
===============
名次:1
座號:2
英文姓名:Daniel
計概成績是:30
國文成績是:30
電路成績是:30
總成績是:90
===============
名次:2
座號:3
英文姓名:Jack
計概成績是:20
國文成績是:20
電路成績是:20
總成績是:60
===============
名次:3
座號:1
英文姓名:Walter
計概成績是:10
國文成績是:10
電路成績是:10
總成績是:30