C++面向对象程序设计习题集(2)

2019-04-14 13:58

分)、sum2(累计数学总分)、sum3(累计英语总分);另外有一个构造函数、3个求三门课程平均分的成员函数和一个disp( )成员函数。程序如下:

#include #include #include const int N=4; class student {

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 #include #include const int N=3; class Stud {

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 #include #include const int Max=10; class student {

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 #include #include const int N=5; class person {

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;


C++面向对象程序设计习题集(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学生作业鼓励性评语作业评语

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: