阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明] 以下程序的功能是统计学生成绩,

11 查阅

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

[说明]

以下程序的功能是统计学生成绩,包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前百分之七十的学生定为合格(PASS),而后百分之三十的学生定为不合格(FAIL)。例如,当输入4名学生的姓名和成绩“Alice 67 Mary 90 Tom 56 John 88”后,程序的执行结果如下:

姓名 成绩 合格否

Mary 90 PASS

John 88 PASS

Alice 67 FAIL

Tom 56 FAIL

[C++程序]

include <stdio.h>

include <string.h>

define N 10

class student

{ protected:

char name[10];

int deg;

public:

void setname(charna[]) {strcpy(name,na);}

char * getname() {return name;}

void setdeg(int d) {deg= d;}

int getdeg(){return deg;}

};

class compute

{ int ns;

student na[N];

public:

void getdata();

void sort();

void disp();

};

void compute::getdata()

{ int i,tdeg;

char tname[10];

printf("输入学生人数:");

scanf("%d",&ns);

printf("输入学生姓名和成绩:\n");

for(i=0;i<ns;i+ +){

scanf("%s%d",tname,&tdeg);

(1);

na[i].setdeg(tdeg);

}

}

void compute::sort()

{ int i,j,pick;

(2);

for(i=0;i<ns-1;i+ +){

pick=i;

for(j=i+1;j<ns;j+ +)

if(na[j].getdeg()>na[pick].getdeg()) (3);

temp=na[i];

na[i]=na[pick];

na[pick]=temp;

}

}

void compute::disp()

{ int cutoff,i;

printf("RESULT\n");

printf("姓名 成绩 合格否\n");

cutoff=ns*7/10-1;

for(i=0;i<ns;i+ +) {

printf("%-6s%3d",(4));

if((5)) printf("\tPASS\n");

else printf("\tFAIL\n");

void main()

{ compute obj;

obj.getdata();

obj.sort();

obj.disp();

}

参考答案:

(1) na[i].setname(tname) (2) student temp(3) pick=j(4) na[i].getname()na[i].getdeg() (5) i=cutoff(1) na[i].setname(tname) (2) student temp(3) pick=j(4) na[i].getname(),na[i].getdeg() (5) i=cutoff 解析:本程序定义了两个类student和compute,另有三个公共成员函数getdata()、sor

软考初级