C++大作业报告文档格式.docx

上传人:b****3 文档编号:16845963 上传时间:2022-11-26 格式:DOCX 页数:58 大小:308.38KB
下载 相关 举报
C++大作业报告文档格式.docx_第1页
第1页 / 共58页
C++大作业报告文档格式.docx_第2页
第2页 / 共58页
C++大作业报告文档格式.docx_第3页
第3页 / 共58页
C++大作业报告文档格式.docx_第4页
第4页 / 共58页
C++大作业报告文档格式.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

C++大作业报告文档格式.docx

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

C++大作业报告文档格式.docx

}

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()

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

当前位置:首页 > 表格模板 > 书信模板

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

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