分)、sum2(累计数学总分)、sum3(累计英语总分);另外有一个构造函数、3个求三门课程平均分的成员函数和一个disp( )成员函数。程序如下:
#include
int no;//学号
char name[10];//姓名 int degl;//语文成绩 int deg2;//数学成绩 int deg3;//英语成绩
static int suml;//语文总分 statac int sum2;//数学总分 static int sum3;//英语总分 public:
student(int n,char na[],int dl,int d2,int d3) {
no=n;
strcpy(name,na);
degl=dl;deg2=d2;deg3=d3;
suml+=degl;sum2+=deg2;sum3+=deg3; }
double avgl(){return(suml*1.0)/N;} double avg2(){return(sum2*1.0)/N;} double avg3(){return(sum3*1.0)/N;}} void disp() {
cout< int student::suml=0; int student::sum2=0; int student::sum3=0; void main() { double (student::*fp)(); //定义成员函数指针 student s1(1,\student s2(2,\student s3(3,\student s4(4,\; cout<<\输出结果\ cout<<\学号 姓名 语文数学英语\s1.disp(); S2.disp(); S3.disp(); S4.disp(); fp=student::avgl; cout<<\语文平均分:\; fp=student::avg2; cout<<\数学平均分:\fp=student::avg3; cout<<\英语平均分:\ } 6. 编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在80~89分数段的学生数据。 【知识点】:2.2 2.3 【参考分】:20分 【难易度】:B 【答案】:设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,另有两个普通成员函数setdata()和disp(),前者用于设置对象数据,后者用于只输出成绩在80~89分数段的学生数据。在main()函数中定义了一个对象数组用于存储输入的学生数据。 程序如下: #include int no; char name[10]; int deg; publiC: void setdata(int n,char na[],int d) { no=n;deg=d; strcpy(name,na); } void disp() { if(deg>=80&°<=89) cout< void main() { Stud st[N]; int i,n,d; char na[10]; cout<<\输入学号姓名成绩\ for(i=0;i cout<<\第\个学生:\ cin>>n>>na>>d; St[i].Setdata(n,na,d); cout<<\输出数据\ cout<<\学号 姓名 成绩\for(i=0;i 7. 编写一个程序统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前70%的学生定为合格(PASS),而后30%的学生定为不及格(FAIL)。 【知识点】:2.2 2.3 3.1 【参考分】:40分 【难易度】:A 【答案】:设计一个类student,包含学生的姓名和成绩等数据,以及setname()、setdeg()、getname()和 getdeg()等4个成员函数。设计一个类compute,包含两个私有数据成员,即学生人数ns和student类的对象数组na[],另有3个公共成员函数getdata( )、sort( )、disp( ),它们的功能分别用于数据获取、按成绩排序和输出数据。 程序如下: #include char name[10]; int deg; public: void setname(char na[]){strcpy(name,na);} char *getname(){return name;} void setdeg(int d){deg=d;} int getdeg(){return deg;} }; class compute { int ns; student na[Max]; public: void getdata(); void sort(); void disp(); }; void compute::getdata() { int i,tdeg; char tname[10]; cout<<\输入学生人数:\ cin>>ns; cout<<\输入学生姓名和成绩:\ for(i=O;i cout<<\第\个学生:\ cin>>tname>>tdeg; na[i].setname(tname); me[i].setdeg(tdeg); } } void compute::sort() { int i,j,pick; student temp; for(i=0;i pick=i; for(j=i+1;j if(na[J].getdeg()>na[pick].getdeg()) pick=j; } temp=na[i]; na[i]=na[pick]; na[pick]=temp; } } void compute::disp() { int cutoff,i; cout<<\输出结果\ cout<<\ 姓名 成绩合格否\ cout<<” ------- ---- ------”< cout< cout<<\ else cout<<\ } } void main() { compute obj; obj.getdata(); obj.sort(); obj.disp() } 8. 编写一个程序,输入用户的姓名和电话号码,按姓名的词典顺序排列后,输出用户的姓名和电话号码。 【知识点】:2.2 2.3 3.1 【参考分】:40分 【难易度】:B 【答案】:设计一个类person,包含学生的姓名和电话号码等数据,以及semame()、setnum()、gemame()和gemum()等4个成员函数。设计一个类compute,包含一个私有数据成员,即person类的对象数组pn[],另有3个公共成员函数getdata()、sort()、disp(),它们的功能分别用于数据获取、按姓名的词典顺序排序和输出数据。程序如下: #include char name[10]; char num[10]; public: void setname(char na[]){strcpy(name,na);} void setnum(char nu[]){strcpy(num,nu);) char *getname(){return name;} char *getnum(){return num;) }; class compute { person pn[N]; public: void getdata(); void getsort(); void outdata(); }; void compute::getdata() { int i;