C++上机题目复习及答案2-8444_第1页
C++上机题目复习及答案2-8444_第2页
C++上机题目复习及答案2-8444_第3页
C++上机题目复习及答案2-8444_第4页
C++上机题目复习及答案2-8444_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

第十周上机题目题目:建立一个矩阵类Array,存储一个n×n矩阵并能完成矩阵转置运算。要求如下:(1) 私有成员数据int*x:指向存储一个 n×n矩阵值的内存区域(二维数组作为一维数组存储)intn:存储矩阵行数(2) 公有成员函数构造函数:用参数指定的值或缺省值3初始化n,并用n的值为矩阵动态申请内存空间;析构函数:释放对象存储矩阵时占用的内存空间;viodinput(int*a):将一个矩阵赋值给对象中的数组。voidprint():按行输出矩阵的值。voidchange():转置矩阵。编写一个程序测试该类。定义对象 A,将一个矩阵存入 A中,并输出矩阵的值,转置对象A中的矩阵并输出,使用以下测试数据:135127A=246A转置后的矩阵=34979115611#include<>#defineN3classArray{int*x;1n2xiwix1,x2,Lxnput(8,‘P’);yfxexp2,x2i1B.put(15,‘H’);B.put(40,‘F’);调用函数 display输出对象 A和B的全部数据。调用函数put和get为对象A和B做存储和取出操作:B.get(‘H’);B.put(40,‘F’);get(‘S’);get(‘R’);put(12,‘M’);调用函数display输出对象A和B的全部数据。#include<>classBoxes{int *box; put(8,'P');B.put(15,'H');B.put(40,'F');cout<<"A库:\n";();cout<<"B库:\n";();B.get('H');B.put(40,'F');A.get('S');get('R');put(12,'M');cout<<"A库:\n";();cout<<"B库:\n";();}Boxes::Boxes(intnum){box=newint[num];flag=newchar[num];xh=num;for(inti=0;i<num;i++)box[i]=flag[i]=0;}Boxes::~Boxes(){delete[]box;delete[]flag;}voidBoxes::put(intn,charm){inti=0;while(box[i]!=0&&i++<xh);if(i<xh&&box[i]==0){box[i]=n;flag[i]=m; sum+=n;}elsecout<<"无空箱存放客户 "<<m<<"的物品!\n\n";}voidBoxes::get(charm){inti=0;while(flag[i]!=m&&i<xh)i++;if(flag[i]!=m)cout<<"没有找到客户 "<<m<<"物品!\n\n";else{sum-=box[i];box[i]=0;}}voidBoxes::display(){intn=0;for(inti=0;i<xh;i++)if(box[i]>0)cout<<"客户"<<flag[i]<<":存放物品数量:"<<box[i]<<"件。\n";elsen++;cout<<"占用箱个数:"<<xh-n<<"个,空闲箱个数:"<<n<<"个。\n存入物品总数量有:"<<sum<<"\n\n";}第十二周上机题目一.编程题【程序功能】 找出给定范围内的和亲数。对于两个正整数,如果其中的一个整数是另一个整数的全部真因子之和,反之亦然,则称这两个数为“和亲数”。例如,220有真因子“1,2,4,5,10,11,20,22,44,55,110,其和为”284,而284有真因子“1,2,4,71,142,其和为”220,因此220和284就是一对和亲数。【编程要求】试建立一个类NNM私有数据成员int n1,n2;umber==0){PGoods[i].Add();PGoods[i].ShowME();return;}}cout<<"没有空货架上货了! \n";}voidSuppermacket::Delete(){charname[10];intn;cout<<"请输入需要销售商品名称和数量 :";cin>>name>>n;for(inti=0;i<num;i++){if(strcmp(PGoods[i].name,name)==0){PGoods[i].Sale(n);return;}}cout<<"查无此商品!\n";}voidSuppermacket::Query(){charname[10];cout<<"请输入需要查询的商品名称 ;";cin>>name;for(inti=0;i<num;i++){if(strcmp(PGoods[i].name,name)==0){PGoods[i].ShowME();return;}}cout<<"查无此商品!\n";}voidGoods::Sale(intn){if(n<number){number-=n;ShowME();}elsecout<<"商品数量不够,无法销售! \n";}voidGoods::Add(){cout<<"请输入上架的商品名称、价格及数量 :";cin>>name>>Price>>number;}第十三周上机题目1、 编程题/*编写一个程序,输入N个学生数据,包括学号、姓名、C++成绩,要求输出这些学生的数据、平均分与成绩等级。提示:设计一个学生类 Stud,除了包括 id(学号)、name(姓名)和C(成绩)数据成员外,还有两个静态成员数据sum和num,分别存放总分和人数,另有两个普通成员函数setdata()和print(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分,并输出平均分。同时设计一个友元函数,输出成绩对应的等级:大于等于90:优;80~90:良;70~79:中;60~69:及格;小于 60:不及格在main()函数中定义了一个对象数组用于存储输入的学生数据,设计一个完整的程序。*/#defineN3#include<>#include<>classStud{intid;charname[20];intdeg;staticintsum; :";cin>>id;cout<<"PleaseinputName:";cin>>name;cout<<"Pleaseinputscore:";cin>>deg;num++; etdata();}for(i=1;i<=N;i++){stu[i].display();cout<<"C++成绩等级:";grade(stu[i]);cout<<endl;}Stud::avg();}2、 编程题/*定义一个复数类,通过重载运算符: =、+=、-=、+、-、*、/、==、!=,直接实现两个复数之间的各种运算。编写一个完整的程序(包括测试各运算符的程序部分)。*/#include""classcomplex{floatReal,Image;public:complex(floatr=0,floati=0){Real=r;Image=i;}floatgetR(){returnReal;}floatgetI(){returnImage;}voidshow(){cout<<"Real="<<Real<<'\t'<<"Image="<<Image<<'\n';}complexoperator+(complex&);complexoperator-(complex&);complexoperator*(complex&);complexoperator/(complex&);voidoperator=(complex&);intoperator==(complex&);intoperator!=(complex&);voidoperator+=(complex&);voidoperator-=(complex&);};complexcomplex::operator+(complex&c){complext;=Real+;=Image+;returnt;}complexcomplex::operator-(complex&c){complext;=;=;returnt;}complexcomplex::operator*(complex&c){complext;=Real**;=Real*+Image*;returnt;}complexcomplex::operator/(complex&c){complext;=(Real*+Image*/*+*;=(Image**/*+*;returnt;}voidcomplex::operator=(complex&c){Real=;Image=;}intcomplex::operator==(complex&c){if(Real==&&Image==return1;elsereturn0;}intcomplex::operator!=(complex&c){if(Real==||Image==return0;elsereturn1;}voidcomplex::operator+=(complex&c){Real=Real+;Image=Image+;}voidcomplex::operator-=(complex&c){Real=;Image=;}voidmain(){complexc1(1,2),c2,c3(3,5);complexc,c4(5,6);();c2=c1;();c=c1+c3;();c+=c1;();c-=c1;();c=c1/c3;();c4+=c1*c2;();cout<<(c1==c2)<<'\n';cout<<(c1!=c2)<<'\n';}第十四周上机题目1、 编程题/*设计一个三角形类 Triangle,包含三角形三条边长的私有数据成员,另有重载运算符 “+”与“-”,以实现求两个三角形对象的面积之和与之差。提示:在 Triangle类中设计两个友元函数,重载运算符 "+"与"-"。*/#include<>#include<>classTriangle{intx,y,z;doublearea;public:Triangle(inti,intj,intk){doubles;x=i;y=j;z=k;s=(x+y+z)/;area=sqrt(s*(s-x)*(s-y)*(s-z));}voiddisparea(){cout<<"Area="<<area<<endl;}frienddoubleoperator+(Trianglet1,Trianglet2){return+;}frienddoubleoperator-(Trianglet1,Trianglet2){return}};voidmain(){Trianglet1(3,4,5),t2(4,5,6);doubles;cout<<"t1:";();cout<<"t2:";();s=t1+t2;cout<<"总面积="<<s<<endl;s=t1-t2;cout<<"总面积="<<s<<endl;}2、 编程题/*完善字符串类,增加以下运算符的重载: +=、-=、==、!=。在主函数中侧重检查运算符的正确性。*/#include<>#include<>classString{protected:intLength;char*Sp;public:String(constchar*s){Length=strlen(s);Sp=newchar[Length+1];strcpy(Sp,s);}~String(){if(Sp)delete[]Sp;}voidShow(){cout<<Sp<<endl;}voidoperator+=(String&);voidoperator-=(String&);intoperator==(String&);intoperator!=(String&);};voidString::operator+=(String&s){/r

温馨提示

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

最新文档

评论

0/150

提交评论