C++大作业报告文档格式.docx
- 文档编号:16845963
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:58
- 大小:308.38KB
C++大作业报告文档格式.docx
《C++大作业报告文档格式.docx》由会员分享,可在线阅读,更多相关《C++大作业报告文档格式.docx(58页珍藏版)》请在冰豆网上搜索。
}
Dowhile循环
voidmain()
do
do
while(j<
if(m)
cout<
i++
while(i<
101);
For循环
inti,j,n,m;
for(i=2;
101;
i++)
for(j=2;
j<
=n;
j++)
if(i%j==0)
if(m)
运行结果:
结论:
不管for还是while还是dowhile,他们的循环体都是一样的,所以只要编出来一个就等于全编出来了,而且程序要设计尽量简单。
2—2
输入一个有符号的十进制数,转换成机内二进制数输出(要求用位操作运算)。
利用位运算将二进制的每一位取出存入数组,然后按要求输出。
#include<
chara;
intt[8];
inti;
cout<
"
请输入一个数y:
\n"
;
cin>
>
a;
for(i=0;
8;
t[i]=a&
0x01;
a=a>
1;
for(i=7;
i>
=0;
i--)
cout<
t[i];
system("
pause"
);
结果:
只有掌握位运算规则,才能编出来程序
二
书上P144,4-10
设计一个用于人事管理的“人员”类.由于考虑到通用性,这里只抽象出所有人员都具有的属性:
编号,性别,出生日期,身份证号.(“出生日期”声明为一个“日期”类内嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:
构造函数、复制构造函数、内联成员函数、带默认形参值的成员函数、类的组合。
)
通过构造函数,实现人员的录入和输出。
classdate
private:
intyear;
intmonth;
intday;
public:
date(inta=0,intb=0,intc=0){year=a;
month=b;
day=c;
}
inlinevoidsetyear(inty)
year=y;
}
voidsetmonth(intm)
month=m;
voidsetday(intd)
day=d;
voidshowdate()
year<
"
month<
day<
};
classpeople
charnumber[100];
charid[100];
charsex[2];
datebirthday;
people();
people(people&
p);
~people(){};
voidsetnumber(char*a)
strcpy(number,a);
voidsetid(char*);
voidsetsex(char*c)
strcpy(sex,c);
voidsetbirthday(dated)
birthday=d;
char*getnumber()
returnnumber;
char*getsex()
returnsex;
char*getid()
returnid;
dategetbirthday()
returnbirthday;
dated;
charm;
people:
:
people():
birthday(d)
voidpeople:
setid(char*ids)
strcpy(id,ids);
录入信息"
peoplep1;
//people*p[4]={&
p1,&
p2,&
p3,&
p4};
输入员工的出生日期"
年"
inta;
birthday.setyear(a);
月"
intb;
b;
birthday.setmonth(b);
日"
intc;
c;
birthday.setday(c);
输入编号"
charnumberstr[20];
numberstr;
p1.setnumber(numberstr);
输入身份证号"
charidstr[20];
idstr;
p1.setid(idstr);
输入性别"
charsexstr[30];
sexstr;
p1.setsex(sexstr);
输出信息"
员工的出生日期"
birthday.showdate();
编号为"
p1.getnumber()<
身份证号为"
p1.getid()<
性别为"
p1.getsex();
要充分理解函数的概念,只有在理解的情况下才能编出程序。
但是不能实现多个成员的录入和输出。
书上P144,4-11
定义并实现一个矩形类,有长、宽两个属性,由成员函数计算矩形的面积。
通过设计类,实现矩形的计算函数
classRectangle
Rectangle();
floatarea();
voidshow();
floata;
floatb;
Rectangle:
Rectangle()
{
do{
pleaseinputtwonumbers:
a>
}while(a<
=0||b<
=0);
floatRectangle:
area()
returna*b;
voidRectangle:
show()
a="
a<
b="
b<
area="
area()<
Rectanglec;
c.show();
return0;
要理解类的含义,理解每个定义的作用!
三
书上P1865-7
定义一个Cat类,拥有静态数据成员numOfCats,记录cat的个体数目,静态成员函数getNumOfCats(),读取numOfCats。
设计程序测试这个类,体会静态数据成员和静态成员函数的用法!
定义一个cat类,通过构造函数,并且声明静态数据成员。
代码:
string>
classCat
Cat(){++numOfCats;
Cat(constCat&
cat){++numOfCats;
virtual~Cat(){--numOfCats;
staticintgetNumOfCats(){returnnumOfCats;
staticintnumOfCats;
intCat:
numOfCats=0;
Cata;
Catb;
numOfCats:
Cat:
getNumOfCats()<
Catc(a);
Cat*p=newCat();
deletep;
这部分与类密切联系,所以要掌握类,并且理解静态数据成员的使用.
书上P1865-14
定义Boat类和Car两个类,二者都有weight属性,定义二者的友元函数getTotalWeight(),计算二者重量之和!
定义两个类,使其为友元函数,在其基础上进行所需的运算。
classCar;
classBoat
intBoatweight;
Boat()
Boatweight=450;
friendinttotalWeight(Boat&
Car&
classCar
intCarweight;
Car()
Carweight=450;
inttotalWeight(Boat&
x,Car&
y)
returnx.Boatweight+y.Carweight;
Boata;
Carb;
这两者的总重量为"
totalWeight(a,b)<
运行结果:
结论:
在理解类的情况下,可以用友元函数。
在编写程序时,可以有效的减少程序的冗长。
四
书上P248
已知有一个数组名叫oneArray,用一条语句求出其元素的个数。
利用sizeof函数
intarray[]={8,4,3,4,5,7,9,10};
inti=sizeof(array)/sizeof(int);
cout<
i<
endl;
结果:
掌握基本函数的含义和用法
书上P2496-20
实现一个名为SimpleCircle的简单圆类。
其数据成员int*itsRadius为一个指向其半径的指针,存放其半径值。
设计数据成员的各种操作,给出这个类的完整实现并测试这个类。
利用类与友元函数
usingnamespacestd;
classSimpleCircle
SimpleCircle();
SimpleCircle(int);
SimpleCircle(constSimpleCircle&
~SimpleCircle(){}
voidSetRadius(int);
intGetRadius()const;
int*itsRadius;
SimpleCircle:
SimpleCircle()
itsRadius=newint(5);
SimpleCircle(intradius)
itsRadius=newint(radius);
rhs)
intval=rhs.GetRadius();
itsRadius=newint(val);
intSimpleCircle:
GetRadius()const
return*itsRadius;
SimpleCircleCircleOne,CircleTwo(9);
cout<
CircleOne:
<
CircleOne.GetRadius()<
CircleTwo:
CircleTwo.GetRadius()<
要充分理解类的含义与用法,理解友元的用法
五
书上P2506-22
编写函数voidreverse(string&
s),用递归算法是字符串倒置。
算法设计:
利用递归算法设计倒叙
voidreverse(char*s)
chart;
staticinti=0;
t=*(s+strlen(s)-i-1);
*(s+strlen(s)-i-1)=*(s+i);
*(s+i)=t;
i++;
if(strlen(s)/2==i);
elsereverse(s);
chars[100];
请输入字符串:
s;
reverse(s);
倒序后的字符串:
s<
要熟练掌握递归方法
内容:
书上P2506-27
定义一个Employee类,其中包括姓名、地址、城市和邮编等属性,包括setname(),display(),等函数。
Display()使用cout语句显示姓名、地址、城市和邮编等属性,函数setname()改变对象的姓名属性,实现并测试这个类。
利用类来设计这个程序
classEmployee{
char*name,*address,*city,*postCode;
Employee(char*_name,char*_address,char*_city,char*_postCode)
name=_name;
address=_address;
city=_city;
postCode=_postCode;
voidsetName(char*_name){
voiddisplay()
name:
name<
address:
address<
city:
city<
postcode:
postCode<
intmain(intargc,char*argv[])
Employee*e=newEmployee("
张三"
"
天堂"
宇宙"
000000"
e->
display();
setName("
李四"
熟练掌握类的方法,用类来表示需要表示的东西。
六
定义一个基类sharp,在此基础上派生出rectangle和circle,两者都有getarea()函数计算面积。
程序代码:
cmath>
#definepi3.14
classshape
public:
virtualfloatarea()=0;
classcircle:
publicshape
circle(floatr1)
r=r1;
private:
floatr;
floatarea()
return(float)pi*r*r;
classrectangle:
rectangle(floatw1,floath1)
width=w1;
height=h1;
floatwidth,height;
returnwidth*height;
classsquare:
publicrectangle
square(floatlen):
rectangle(len,len){};
~square(){};
floatarea(floatlen)
returnlen*len;
};
shape*s[2];
intm,a,b;
输入圆半径:
m;
s[0]=newcircle(m);
s[0]->
输入长和宽:
s[1]=newrectangle(a,b);
s[1]->
s[2]=newsquare(a);
s[2]->
area()<
}:
在派生类的基础上在派生,相当于把派生看作是基类!
定义一个Document类,有数据成员name,从document派生出book类,增加数据pagecount。
classDocument
Document(stringName)
name=Name;
voiddisplay()/
name="
stringname;
classBook:
publicDocument
Book(stringnam,intpage):
Document(nam)
pageCount=page;
voidshow()//显示Book类数据的函数
pageCount="
pageCount<
intpageCount;
//该类有数据成员pageCount
{
Booka("
50);
a.display();
//显示数据name
a.show();
//显示数据pageCount
掌握类的含义,在类的基础上派生,直接输出的!
可以转换为输入输出!
七
7-10
一、内容:
定义一个object类,有数据成员weight及相应的操作函数,由此派生出box类,增加数据成员height和width及相应的操作函数,声明一个box类对象,观察构造函数和析构函数的调用顺序。
二、设计思路:
利用类的派生思想
三、程序代码:
classObject
Object()
calltheObject'
sconstructor"
voidset_weight(intneww=0,intnewn=0)
weight=neww;
num=newn;
voidtotal_weight()
thetotalweightis"
weight*num<
intgetw()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 作业 报告