#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

arrow
arrow
    全站熱搜

    Walter Blyss 發表在 痞客邦 留言(0) 人氣()