练习题目ppt课件_第1页
练习题目ppt课件_第2页
练习题目ppt课件_第3页
练习题目ppt课件_第4页
练习题目ppt课件_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

例题讲解,题1:编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。解:设计一个学生类Stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有两个普通成员函数setdata()和disp(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。在main()函数中定义了一个对象数组用于存储输入的学生数据。,#include#include#defineN3classStudintno;charname10;intdeg;staticintnum;staticintsum;public:voidsetdata(intn,charna,intd)no=n;deg=d;strcpy(name,na);sum+=d;num+;staticdoubleavg()returnsum/num;,voiddisp()coutnnad;sti.setdata(n,na,d);cout“输出数据n”);cout“学号姓名成绩n”);for(i=0;iN;i+)sti.disp();cout“平均分=%gnn”nnad;sti.setdata(n,na,d);cout“输出数据n”;cout“学号姓名成绩n”;for(i=0;iN;i+)sti.disp();,例题讲解,题3:编写一个程序,已有若干个学生数据,这些数据包括学号、姓名、语文成绩、数学成绩和英语成绩,求各门功课的平均分。要求设计不同的成员函数求各门课程的平均分,并使用成员函数指针调用它们。解:设计一个学生类student,包括no(学号)、name(姓名)、deg1(语文成绩)、deg2(数学成绩)、deg3(英语成绩)数据成员和三个静态数据成员sum1(累计语文总分)、sum2(累计数学总分)、sum3(累计英语总分);另外有一个构造函数和三个求平均分的成员函数和一个disp()成员函数。,#include#include#defineN4classstudentintno;charname10;intdeg1;/语文成绩intdeg2;/数学成绩intdeg3;/英语成绩staticintsum1;/语文总分staticintsum2;/数学总分staticintsum3;/英语总分public:student(intn,charna,intd1,intd2,intd3)no=n;strcpy(name,na);deg1=d1;deg2=d2;deg3=d3;sum1+=deg1;sum2+=deg2;sum3+=deg3;,doubleavg1()return(sum1*1.0)/N;doubleavg2()return(sum2*1.0)/N;doubleavg3()return(sum3*1.0)/N;voiddisp()coutnonamedeg1Deg2deg3);intstudent:sum1=0;intstudent:sum2=0;intstudent:sum3=0;,voidmain()double(student:*fp)();/定义成员函数指针students1(1,“Li”,67,89,90);students2(2,“Ma”,67,89,90);students3(3,“Zheng”,67,89,90);students4(4,“Chen”,67,89,90);printf(“输出结果n”);s1.disp();s2.disp();s3.disp();s4.disp();fp=student:avg1;cout“语文平均分:n“(s1.*fp)();fp=student:avg2;cout“数学平均分:n“(s1.*fp)();fp=student:avg3;cout“英语平均分:n“(s1.*fp)();,例题讲解,题4:设计一个类Sample,有一个私有数据成员,建立该类的四个对象s1(n=10)、s2(n=20)、s3(n=30)、和s4(n=40),建立一个成员函数实现对象n值的相加。解:依题意,建立一个成员函数add(),其参数为Sample对象引用,用于累加对象n值。,#includeclassSampleintn;public:Sample()Sample(inti)n=i;voidadd(Sample,voidmain()Samples1(10),s2(20),s3(30),s4(40);s1.add(s2);s1.add(s3);s1.add(s4);s1.disp();coutendl;,点评:通过引入静态数据成员和静态函数也可以。,例题讲解,题5:编写一个程序,设计一个职工类Person,一个系有若干个职工,按职务分为系主任、室主任和职工,给出他们之间的领导关系。解:类Person有姓名、职务和指向领导的指针等私有数据,以及两个构造函数和以下成员函数:setleader()(设置当前职工的领导);getname()(获取职工姓名);getleader()(获取领导者对象指针);disp()(输出姓名和职务)。,#include#include#includeclassPersoncharname10;charprof10;Person*leader;public:Person()strcpy(name,0);strcpy(prof,”0”);leader=0;Person(charn,charp)strcpy(name,n);strcpy(prof,p);leader=newPerson;voidsetleader(Person,voiddisp()coutgetname();coutobj.deg;cout输出结果endl;cout学生(学号obj.no)成绩为obj.degendl;,例题讲解,题7:设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。解:在Triangle类中设计一个友元函数operator+(Trianglet1,Trianglet2),它重载运算符+,返回t1和t2两个三角形的面积之和。,#include#includeclassTriangleintx,y,z;doublearea;public:Triangle(inti,intj,intk)doubles;x=i;y=j;z=k;s=(x+y+z)/2.0;area=sqrt(s*(s-x)*(s-y)*(s-z);voiddisparea()coutArea=areaendl;frienddoubleoperator+(Trianglet1,Trianglet2)returnt1.area+t2.area;,voidmain()Trianglet1(3,4,5),t2(4,5,6);doubles;coutt1:;t1.disparea();coutt2:;t2.disparea();s=t1+t2;cout总面积=sendl;,例题讲解,题8:设计一个学生类student,包括姓名和三门课程成绩,利用重载运算符”+“将所有学生的成绩相加放在一个对象中,再对该对象求各门课程的平均分。解:设计一个学生类student,包括name(姓名)、deg1(语文成绩)、deg2(数学成绩)、deg3(英语成绩)数据成员和用友元重载的“+”运算符,完成两个学生对象成绩的相加;另外有一个构造函数和一个disp()成员函数。另外还有一个友元函数avg()求该对象各门课程的平均分。friendvoidavg(studentintdeg1,deg2,deg3;public:student()student(charna,intd1,intd2,intd3)strcpy(name,na);deg1=d1;deg2=d2;deg3=d3;friendstudentoperator+(students1,students2)staticstudentst

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论