南昌大学C大作业讲解.docx
- 文档编号:17973677
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:24
- 大小:110.43KB
南昌大学C大作业讲解.docx
《南昌大学C大作业讲解.docx》由会员分享,可在线阅读,更多相关《南昌大学C大作业讲解.docx(24页珍藏版)》请在冰点文库上搜索。
南昌大学C大作业讲解
软件学院大作业任务书
课程名称:
C++程序设计
题目:
C++综合编程(面向对象)
专业:
计算机网络技术
班级:
131
学号:
8001613
学生姓名:
完成人数:
起讫日期:
2014.6.3
任课教师:
李荣鑫职称:
教师
部分管主任:
完成时间:
2014.6.9
说明
1.本任务书由任课教师填写后,下达到学生。
2.任务完成后,任课教师需填写小结表。
3.任务书、学生成绩与学生完成后的大作业(纸质和电子两种)一并报送各教学研究部审核后转教务办。
4.另附一份全班大作业总结
大作业的要求和内容:
(包括题目选择范围、技术要求、递交时间、考核方法等)
1.要求独立完成下面的每一道题目。
(题目附后面)
2.每一道题均要求写出完整的程序代码,并要求调试运行通过。
程序要有输入和输出。
并将程序运行结果的窗口截屏(用Alt+Prt键),粘贴(用Ctrl+V键)到程序代码的后面。
3.不允许有程序代码雷同和抄袭的情况,若代码雷同率超过30%以上的,双方成绩均按不及格处理。
4.要求递交电子文档和打印纸质文档,由班长统一收取。
5.递交时间:
2014年6月12日之前。
教师小结:
成绩:
教师签名:
教研部负责人:
学生姓名:
康涛
《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. 用类实现一个单链表的操作。
(包括链表的建立,链表的输出,链表的插入和删除操作)
大作业的要求和内容:
(包括题目选择范围、技术要求、递交时间、考核方法等)
1. 要求独立完成下面的每一道题目。
(题目附后面)
2. 每一道题均要求写出完整的程序代码,并要求调试运行通过。
程序要有输入和输出。
并将程序运行结果的窗口截屏(用Alt+Prt键),粘贴(用Ctrl+V键)到程序代码的后面。
3. 不允许有程序代码雷同和抄袭的情况,若代码雷同率超过30%以上的,双方成绩均按不及格处理。
4. 要求递交电子文档和打印纸质文档,由班长统一收取。
递交时间:
2014年6月12日之前。
1. 设计一个圆柱体类,定义构造函数初始化圆柱体,定义两个成员函数分别计算它的底面积和体积。
#include
#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:
"<
"< }; voidmain() { intr,h; cout<<"姓名: 康涛"< cout<<"学好: 8001613018"< cout<<"输入r和h"< cin>>r>>h; CylinderCyli1(r,h); Cyli1.show(); } 2. 定义一个点类Point,有横坐标x和纵坐标y,定义构造函数初始化点,定义display()函数显示点的坐标。 再定义一个线段类Line,由两个点作为对象成员,定义不同的构造函数初始化线段,定义成员函数计算线段的距离。 #include #include usingnamespacestd; classPoint { private: intx; inty; public: Point(inta,intb){x=a;y=b;}; voiddisplay(); }; voidPoint: : display() { cout<<"("< } classLine { public: Line(inta,intb,intc,intd): x1(a),y1(b),x2(c),y2(d){} floatgetdist(){returnsqrt(pow((x1-x2),2)+pow((y1-y2),2));} private: intx1,y1; intx2,y2; }; intmain() {cout<<"姓名: 康涛"< cout<<"学好: 8001613018"< Linel(3,4,6,2); Pointp1(3,4); Pointp2(6,2); p1.display(); p2.display(); cout<<"thedistanceoftowpointsis: "< cout< return0; } 3. 编写一个复数类。 实现各种常用构造函数,实现整数,实数向复数的转换函数,实现整数、实数和复数以及复数和复数之间的加、减、乘法运算 #include classComplex {public: Complex(){real=0;imag=0;} Complex(doubler){real=r;imag=0;}//实数转换为复数的转换构造函数 Complex(doubler,doublei){real=r;imag=i;} Complexoperator+(Complex&c2);//重载+号 Complexoperator+(int&i);//复数与实数相加 friendComplexoperator+(int&,Complex&);//实数与复数相加 Complexoperator-(Complex&c2);//重载—号 Complexoperator*(Complex&c2);//重载*号 voiddisplay(); voiddisplay_1(); private: doublereal; doubleimag; }; ComplexComplex: : operator+(Complex&c) {returnComplex(real+c.real,imag+c.imag);} ComplexComplex: : operator+(int&i) {returnComplex(real+i,imag);} voidComplex: : display() {cout<<"("< Complexoperator+(int&i,Complex&c) {returnComplex(i+c.real,c.imag);} ComplexComplex: : operator-(Complex&C2) { ComplexC; C.real=real-C2.real; C.imag=imag-C2.imag; returnC; } ComplexComplex: : operator*(Complex&C2) { ComplexC; C.real=real*C2.real-imag*C2.imag; C.imag=imag*C2.real+real*C2.imag; returnC; } voidmain() { cout<<"姓名: 康涛"< cout<<"学好: 8001613018"< Complexc1(2,3),c2(8,-6),c3; inti=5; c3=c1+c2; cout<<"c1=";c1.display(); cout<<"c2=";c2.display(); cout<<"c1+c2=";c3.display(); c3=i+c1; cout<<"i+c1=";c3.display(); c3=c1+i; cout<<"c1+i=";c3.display(); c3=c1-c2; cout<<"c1-c2=";c3.display(); c3=c1*c2; cout<<"c1*c2=";c3.display(); cout<<"将一个实数转换为复数: "< c3=Complex(3.8); c3.display(); } 4. 设计一个矩阵类,要求在矩阵类中重载加(+)、减(-)、乘(*)、复值(=)运算,在主函数中定义两个对象,并分别调用重载的运算符。 #include classMatrix { friendostream&operator<<(ostream&out,Matrix&M);//重载<<运算符 friendistream&operator>>(istream&in,Matrix&M);//重载>>运算符 public: Matrix(intr,intc); Matrixoperator+(Matrix&M); Matrixoperator-(Matrix&M); Matrixoperator*(Matrix&M); intGetCounts() { returnrows*cols; } private: introws,cols;//定义矩阵的行数rows,列数cols double*m;//矩阵中实际(物理)按行存放的元素 }; Matrix: : Matrix(intr,intc) { rows=r,cols=c; m=newdouble[rows*cols]; } istream&operator>>(istream&in,Matrix&M)//输入流重载 { inti; for(i=0;i { in>>*(M.m+i); } returnin; } ostream&operator<<(ostream&out,Matrix&M)//输出流重载 { inti,j=0; for(i=0;i { if(j==M.cols)j=0,out< out<<""<<*(M.m+i); j++; } returnout; } MatrixMatrix: : operator+(Matrix&M) { inti; MatrixtempM(rows,cols); for(i=0;i *(tempM.m+i)=*(m+i)+*(M.m+i); returntempM; } MatrixMatrix: : operator-(Matrix&M) { inti; MatrixtempM(rows,cols); for(i=0;i *(tempM.m+i)=*(m+i)-*(M.m+i); returntempM; } MatrixMatrix: : operator*(Matrix&M) { inti,j,t,k=0; MatrixtempM(rows,cols); for(i=0;i for(j=0;j { for(t=0,*(tempM.m+k)=0;t *(tempM.m+k)=*(tempM.m+k)+*(m+i+t)**(M.m+j+t*rows); k++; } returntempM; } voidmain() { cout<<"姓名: 康涛"< cout<<"学好: 8001613018"< MatrixA(3,3); MatrixB(3,3); MatrixC(3,3); cout<<"输入第一个矩阵的"< "< cin>>A; cout<<"输入第二个矩阵的"< "< cin>>B; C=A+B; cout< "< cout< cout< "< C=A-B; cout< C=A*B; cout< "< cout< } 5. 设计一个基类Shapes,包括成员函数display(),声明为纯虚函数。 由该类派生出两个类: 矩形类Rectangle和圆类Circle, 再由长方形类派生出立方体类Box,由圆类派生出圆柱体类Cylinder。 分别定义display()函数显示图形的主要几何元素(如长宽高半径等),用GetS()计算图形的面积,用GetV计算图形的体积。 在主函数中定义相关的对象并显示相应的内容。 #include #definePI3.14 usingnamespacestd; classShapes { public: virtualvoiddisplay()=0; }; classRectangle: virtualpublicShapes//长方形类 { protected: intx,y; public: Rectangle(inta,intb){x=a;y=b;}; floatGetS_Rectangle(){return(x*y);} virtualvoiddisplay() { cout<<"宽: "< "< cout<<"长方形的面积是: "< } }; classCircle: virtualpublicShapes//圆形类 { protected: intr; public: Circle(intradius){r=radius;}; floatGetS_Circle(){return(PI*r*r);} virtualvoiddisplay() { cout<<"圆形半径是: "< cout<<"圆形的面积是: "< } }; classBox: publicRectangle//长方体类 { protected: intg; public: Box(inta,intb,intgao): Rectangle(a,b),g(gao){} floatGetV_Box(){returnRectangle: : GetS_Rectangle()*g;} virtualvoiddisplay() { cout<<"长方体的高是: "< cout<<"长方体的体积是: "< : GetS_Rectangle()*g< } }; classCylinder: publicCircle//圆柱体类 { protected: inth; public: Cylinder(intradious,intheight): Circle(radious),h(height){} floatGetV_Cylinder(){returnCircle: : GetS_Circle()*h;} virtualvoiddisplay() { cout<<"圆柱体的高是: "< cout<<"圆柱体的体积是: "< : GetS_Circle()*h< } }; voidmain() { cout<<"姓名: 康涛"< cout<<"学好: 8001613018"< RectangleR1(2,3); R1.display(); CircleC1 (2); C1.display(); BoxB1(2,3,2); B1.display(); CylinderCy1(2,3); Cy1.display(); } 6. 定义一个日期类Cdate.,该类有year,month,day三个私有数据成员。 实现一下功能: 1)定义成员函数display()显示日期;2)定义成员函数setdate()设置日期;3)定义默认构造函数设置系统默认日期;4)重载++运算符。 #include #include usingnamespacestd; classCdate { public: Cdate(){year=0;month=0;day=0;} Cdate(inty,intm,intd): year(y),month(m),day(d){} setdate(int,int,int);//设置一个时间 Cdateoperator++(); voiddisplay(){cout< private: intyear; intmonth; intday; }; Cdate: : setdate(inty,intm,intd) { year=y; month=m; day=d; } CdateCdate: : operator++() { ++day; ++month; ++year; return*this; } voidmain() {cout<<"姓名: 康涛"< cout<<"学好: 8001613018"< Cdatesetdate(2013,9,15); cout<<"setdate()设置的时间是: "; setdate.display();//输出设置时间 cout<<"重载setdate()设置的timeis: "; CdateCdat1(2013,9,15); { for(inti=0;i<1;i++) { ++Cdat1; Cdat1.display(); } } tm*year;//设置当前的系统时间 tm*month; tm*day; time_tt; t=time(0); year=localtime(&t); month=localtime(&t); day=localtime(&t); cout<<"当前您的电脑系统时间是: "; cout<<(year->tm_year+1900)<<"年"<<(month->tm_mon+1)<<"月"< } 7. 用类实现一个单链表的操作。 (包括链表的建立,链表的输出,链表的插入和删除操作) #include usingnamespacestd; typedefintelemtype;//数据类型模版 classLnode//结点 { public: elemtypedata; Lnode*next; }; /////////////建表 voidcreat_Link(Lnode*&head) { Lnode*p,*q; intn; p=newLnode; head=p; cout<<"输入链表长度: "< cin>>n; cout<<"输入数据: "< cin>>p->data; q=p; for(inti=1;i<=n-1;i++) { p=newLnode; cin>>p->data; q->next=p; q=p; } q->next=NULL; } /////////表的输出 voidoutput_Link(Lnode*&head) { if(head==NULL) {cout<<"空链表! "< re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学C 大作业讲解 南昌大学 作业 讲解