?? 9_78.cpp
字號:
#include<iostream.h>
#include<iomanip.h>
#define Max 20
class English
{
int ptr;
int score[Max];
public:
void getdata(int val,int ptr) {score[ptr]=val;}
int disp(int ptr){return score[ptr];}
};
class Computer
{
int ptr;
int score[Max];
public:
void getdata(int val,int ptr) {score[ptr]=val;}
int disp(int ptr){return score[ptr];}
};
class Chinese
{
int ptr;
int score[Max];
public:
void getdata(int val,int ptr) {score[ptr]=val;}
int disp(int ptr){return score[ptr];}
};
class Student:private English,private Computer,private Chinese
{
char name[Max][10];
double average[Max];
static int rank;
public:
void getdata(int index)
{
int score1,score2,score3;
for(int i=0;i<index;i++)
{
average[i]=0;
cout<<"學生姓名:";
cin>>name[i];
cout<<"英語 計算機 中文成績:";
cin>>score1>>score2>>score3;
average[i]+=score1;
average[i]+=score2;
average[i]+=score3;
English::getdata(score1,i);
Computer::getdata(score2,i);
Chinese::getdata(score3,i);
average[i]/=3;
}
}
void sort(int index) //直接選擇排序
{
int i,j,pick;
for(i=0;i<index;i++)
{
pick=0;
while(average[pick]==-1 && pick<index) pick++;
for(j=1;j<index;j++)
{
while(average[j]==-1 && j<index) j++;
if(j<index && average[j]>average[pick])
pick=j;
}
cout<<setw(3)<<rank++<<" ";
cout<<setw(6)<<name[pick]<<" ";
cout<<setw(5)<<English::disp(pick)<<" ";
cout<<setw(7)<<Computer::disp(pick)<<" ";
cout<<setw(5)<<Chinese::disp(pick)<<" ";
cout<<setw(10)<<setprecision(4)<<average[pick]<<endl;
average[pick]=-1;
}
}
};
int Student::rank=1;
void main()
{
Student A;
int num;
cout<<"學生人數:";
cin>>num;
A.getdata(num);
cout<<"輸出結果:"<<endl;
cout<<setw(4)<<"名次"<<setw(6)<<"姓名"<<setw(6)<<"英語"<<setw(9)\
<<"計算機"<<setw(6)<<"中文"<<setw(10)<<"平均分"<<endl;
A.sort(num);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -