南昌大学C++大作业Word格式文档下载.docx

上传人:b****5 文档编号:20719114 上传时间:2023-01-25 格式:DOCX 页数:21 大小:110.38KB
下载 相关 举报
南昌大学C++大作业Word格式文档下载.docx_第1页
第1页 / 共21页
南昌大学C++大作业Word格式文档下载.docx_第2页
第2页 / 共21页
南昌大学C++大作业Word格式文档下载.docx_第3页
第3页 / 共21页
南昌大学C++大作业Word格式文档下载.docx_第4页
第4页 / 共21页
南昌大学C++大作业Word格式文档下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

南昌大学C++大作业Word格式文档下载.docx

《南昌大学C++大作业Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《南昌大学C++大作业Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。

南昌大学C++大作业Word格式文档下载.docx

《C++程序设计》编程试题

1. 

设计一个圆柱体类,定义构造函数初始化圆柱体,定义两个成员函数分别计算它的底面积和体积。

2. 

定义一个点类Point,有横坐标x和纵坐标y,定义构造函数初始化点,定义display()函数显示点的坐标。

再定义一个线段类Line,由两个点作为对象成员,定义不同的构造函数初始化线段,定义成员函数计算线段的距离。

3. 

编写一个复数类。

实现各种常用构造函数,实现整数,实数向复数的转换函数,实现整数、实数和复数以及复数和复数之间的加、减、乘法运算。

4. 

设计一个矩阵类,要求在矩阵类中重载加(+)、减(-)、乘(*)、复值(=)运算,在主函数中定义两个对象,并分别调用重载的运算符。

5. 

设计一个基类Shapes,包括成员函数display(),声明为纯虚函数。

由该类派生出两个类:

矩形类Rectangle和圆类Circle, 

再由长方形类派生出立方体类Box,由圆类派生出圆柱体类Cylinder。

分别定义display()函数显示图形的主要几何元素(如长宽高半径等),用GetS()计算图形的面积,用GetV计算图形的体积。

在主函数中定义相关的对象并显示相应的内容。

6. 

定义一个日期类Cdate.,该类有year,month,day三个私有数据成员。

实现一下功能:

1)定义成员函数display()显示日期;

2)定义成员函数setdate()设置日期;

3)定义默认构造函数设置系统默认日期;

4)重载++运算符。

7. 

用类实现一个单链表的操作。

(包括链表的建立,链表的输出,链表的插入和删除操作)

要求独立完成下面的每一道题目。

每一道题均要求写出完整的程序代码,并要求调试运行通过。

不允许有程序代码雷同和抄袭的情况,若代码雷同率超过30%以上的,双方成绩均按不及格处理。

要求递交电子文档和打印纸质文档,由班长统一收取。

递交时间:

#include<

iostream>

#definePI3.14

usingnamespacestd;

classCylinder

{

private:

intradius;

intheight;

public:

Cylinder(intr,inth)

{

radius=r;

height=h;

};

doublearea(){return(PI*radius*radius);

}

doublevolume(){returnPI*radius*radius*height;

voidshow(){cout<

<

"

theareais:

area()<

\n"

thevolumeis:

volume()<

endl;

};

voidmain()

intr,h;

cout<

姓名:

康涛"

学好:

8001613018"

输入r和h"

cin>

>

r>

h;

CylinderCyli1(r,h);

Cyli1.show();

#include<

cmath>

classPoint

{

private:

intx;

inty;

Point(inta,intb){x=a;

y=b;

voiddisplay();

voidPoint:

:

display()

("

x<

"

y<

)"

classLine

Line(inta,intb,intc,intd):

x1(a),y1(b),x2(c),y2(d){}

floatgetdist(){returnsqrt(pow((x1-x2),2)+pow((y1-y2),2));

}

intx1,y1;

intx2,y2;

intmain()

{cout<

Linel(3,4,6,2);

Pointp1(3,4);

Pointp2(6,2);

p1.display();

p2.display();

thedistanceoftowpointsis:

l.getdist()<

return0;

实现各种常用构造函数,实现整数,实数向复数的转换函数,实现整数、实数和复数以及复数和复数之间的加、减、乘法运算

iostream.h>

classComplex

{public:

Complex(){real=0;

imag=0;

}

Complex(doubler){real=r;

}//实数转换为复数的转换构造函数

Complex(doubler,doublei){real=r;

imag=i;

Complexoperator+(Complex&

c2);

//重载+号

Complexoperator+(int&

i);

//复数与实数相加

friendComplexoperator+(int&

Complex&

);

//实数与复数相加

Complexoperator-(Complex&

//重载—号

Complexoperator*(Complex&

//重载*号

voiddisplay_1();

private:

doublereal;

doubleimag;

ComplexComplex:

operator+(Complex&

c)

{returnComplex(real+c.real,imag+c.imag);

operator+(int&

i)

{returnComplex(real+i,imag);

voidComplex:

{cout<

real<

imag<

i)"

i,Complex&

{returnComplex(i+c.real,c.imag);

operator-(Complex&

C2)

ComplexC;

C.real=real-C2.real;

C.imag=imag-C2.imag;

returnC;

}

ComplexComplex:

operator*(Complex&

C.real=real*C2.real-imag*C2.imag;

C.imag=imag*C2.real+real*C2.imag;

voidmain()

{

Complexc1(2,3),c2(8,-6),c3;

inti=5;

c3=c1+c2;

c1="

;

c1.display();

c2="

c2.display();

c1+c2="

c3.display();

c3=i+c1;

i+c1="

c3=c1+i;

c1+i="

c3=c1-c2;

c1-c2="

c3=c1*c2;

c1*c2="

将一个实数转换为复数:

c3=Complex(3.8);

classMatrix

friendostream&

operator<

(ostream&

out,Matrix&

M);

//重载<

运算符

friendistream&

operator>

(istream&

in,Matrix&

//重载>

Matrix(intr,intc);

Matrixoperator+(Matrix&

M);

Matrixoperator-(Matrix&

Matrixoperator*(Matrix&

intGetCounts()

returnrows*cols;

}

introws,cols;

//定义矩阵的行数rows,列数cols

double*m;

//矩阵中实际(物理)按行存放的元素

Matrix:

Matrix(intr,intc)

rows=r,cols=c;

m=newdouble[rows*cols];

istream&

M)//输入流重载

inti;

for(i=0;

i<

M.rows*M.cols;

i++)

in>

*(M.m+i);

returnin;

ostream&

M)//输出流重载

inti,j=0;

i<

i++)

if(j==M.cols)j=0,out<

out<

"

j++;

returnout;

MatrixMatrix:

operator+(Matrix&

M)

MatrixtempM(rows,cols);

rows*cols;

*(tempM.m+i)=*(m+i)+*(M.m+i);

returntempM;

operator-(Matrix&

*(tempM.m+i)=*(m+i)-*(M.m+i);

operator*(Matrix&

inti,j,t,k=0;

i+=cols)

for(j=0;

j<

cols;

j++)

for(t=0,*(tempM.m+k)=0;

t<

t++)

*(tempM.m+k)=*(tempM.m+k)+*(m+i+t)**(M.m+j+t*rows);

k++;

voidmain()

MatrixA(3,3);

MatrixB(3,3);

MatrixC(3,3);

输入第一个矩阵的"

A.GetCounts()<

个数:

A;

输入第二个矩阵的"

B.GetCounts()<

B;

C=A+B;

endl<

矩阵之和:

C<

矩阵之差:

C=A-B;

C=A*B;

矩阵之积:

classShapes

{

virtualvoiddisplay()=0;

classRectangle:

virtualpublicShapes//长方形类

protected:

intx,y;

Rectangle(inta,intb){x=a;

floatGetS_Rectangle(){return(x*y);

virtualvoiddisplay()

cout<

宽:

长:

长方形的面积是:

GetS_Rectangle()<

classCircle:

virtualpublicShapes//圆形类

intr;

Circle(intradius){r=radius;

floatGetS_Circle(){return(PI*r*r);

圆形半径是:

r<

圆形的面积是:

GetS_Circle()<

classBox:

publicRectangle//长方体类

intg;

Box(inta,intb,intgao):

Rectangle(a,b),g(gao){}

floatGetV_Box(){returnRectangle:

GetS_Rectangle()*g;

长方体的高是:

g<

长方体的体积是:

Rectangle:

GetS_Rectangle()*g<

classCylinder:

publicCircle//圆柱体类

inth;

Cylinder(intradious,intheight):

Circle(radious),h(height){}

floatGetV_Cylinder(){returnCircle:

GetS_Circle()*h;

圆柱体的高是:

h<

圆柱体的体积是:

Circle:

GetS_Circle()*h<

RectangleR1(2,3);

R1.display();

CircleC1

(2);

C1.display();

BoxB1(2,3,2);

B1.display();

CylinderCy1(2,3);

Cy1.display();

ctime>

classCdate

Cdate(){year=0;

month=0;

day=0;

Cdate(inty,intm,intd):

year(y),month(m),day(d){}

setdate(int,int,int);

//设置一个时间

Cdateoperator++();

voiddisplay(){cout<

year<

年"

month<

月"

day<

日"

intyear;

intmonth;

intday;

Cdate:

setdate(inty,intm,intd)

year=y;

month=m;

day=d;

CdateCdate:

operator++()

++day;

++month;

++year;

return*this;

Cdatesetdate(2013,9,15);

setdate()设置的时间是:

setdate.display();

//输出设置时间

重载setdate()设置的timeis:

CdateCdat1(2013,9,15);

for(inti=0;

1;

i++)

{

++Cdat1;

Cdat1.display();

}

tm*year;

//设置当前的系统时间

tm*month;

tm*day;

time_tt;

t=time(0);

year=localtime(&

t);

month=localtime(&

day=localtime(&

当前您的电脑系统时间是:

(year->

tm_year+1900)<

<

(month->

tm_mon+1)<

day->

tm_mday<

//输出当前系统时间

typedefintelemtype;

//数据类型模版

classLnode//结点

elemtypedata;

Lnode*next;

/////////////建表

voidcreat_Link(Lnode*&

head)

Lnode*p,*q;

intn;

p=newLnode;

head=p;

输入链表长度:

n;

输入数据:

p->

data;

q=p;

for(inti=1;

=n-1;

p=newLnode;

q->

next=p;

next=NULL;

/////////表的输出

voidoutput_Link(Lnode*&

head)

if(head==NULL)

空链表!

return;

Lno

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1