c++复习资料.docx
《c++复习资料.docx》由会员分享,可在线阅读,更多相关《c++复习资料.docx(20页珍藏版)》请在冰豆网上搜索。
c++复习资料
复数类
//类的声明2.h
#include
usingnamespacestd;
classCComplex
{public:
//成员函数
voidinit(doubler,doublei);//赋初值
doublerealcomplex();//求实部
doubleimagcomplex();//求虚部
doubleabscomplex();//求复数的绝对值
private:
//数据成员
doublem_real;
doublem_imag;
};
//类的成员函数的实现2.h
#include"2.h"
#include"math.h"
voidCComplex:
:
init(doubler,doublei)//赋初值
{m_real=r;m_imag=i;}
doubleCComplex:
:
realcomplex()//求实部
{returnm_real;}
doubleCComplex:
:
imagcomplex()//求虚部
{returnm_imag;}
doubleCComplex:
:
abscomplex()//求复数的绝对值
{doublet;
t=m_real*m_real+m_imag*m_imag;
returnsqrt(t);
}
//编写公共函数,调用复数类
#include"2.h"
voidmain()
{
CComplexA;
A.init(1.5,9.7);//初始化对象A
cout<<"realofcomplexA="<cout<<"imagofcomplexA="<cout<<"absofcomplexA="<}
点类
#include
usingnamespacestd;
classCPoint
{
public:
voidInit(intXX,intYY);
intGetX();
intGetY();
voidShowPoint();
private:
intm_iX,m_iY;
};
#include"2.h"
voidCPoint:
:
Init(intXX,intYY)
{
m_iX=XX;
m_iY=YY;
}
intCPoint:
:
GetX()
{
returnm_iX;
}
intCPoint:
:
GetY()
{
returnm_iY;
}
voidCPoint:
:
ShowPoint()
{
cout<}
#include"2.h"
voidmain()
{
CPointA;
A.Init(5,9);
A.ShowPoint();
}
时间类
//类的定义实例(clock.h):
#include
usingnamespacestd;
classCClock
{
public:
voidSetTime(intNewH,intNewM,
intNewS);
voidShowTime();
private:
intm_iHour,m_iMinute,m_iSecond;
};
//实例(clock.cpp):
钟表类的成员函数的实现
#include"2.h"
voidCClock:
:
SetTime(intNewH,intNewM,intNewS)
{
m_iHour=NewH;
m_iMinute=NewM;
m_iSecond=NewS;
}
voidCClock:
:
ShowTime()//显示时间
{
cout<"<"
<}
//类的应用
#include"2.h"
voidmain()
{
CClockA;
A.SetTime(1,2,3);
A.ShowTime();
}
Cbuilding类
#include
usingnamespacestd;
classCBuilding
{
private:
intceng,fang,mianji;
public:
voidinput()
{
cin>>ceng>>fang>>mianji;
}
voidoutput()
{
cout<<"层数:
"<"<<""<<"总平方数:
"<}
};
classCHouse:
publicCBuilding
{
private:
intwo,yu;
public:
voidinput()
{
CBuilding:
:
input();
cin>>wo>>yu;
}
voidoutput()
{
CBuilding:
:
output();
cout<<"卧室数:
"<"<}
};
classCOffice:
publicCBuilding
{
private:
inthuo,dianhua;
public:
voidinput()
{
CBuilding:
:
input();
cin>>huo>>dianhua;
}
voidoutput()
{
CBuilding:
:
output();
cout<<"灭火器:
"<"<}
};
#include"1.h"
intmain()
{
CHouseh1;
COfficeo1;
cout<<"请输入层数,房间数、总平方数、卧室与浴室的数量"<h1.input();
h1.output();
cout<<""<cout<<"请输入层数,房间数、总平方数、灭火器和电话数"<o1.input();
o1.output();
}
CVehicle类
#include
usingnamespacestd;
classCVehicle
{
public:
CVehicle(intx,floaty)
{
wheels=x;
weight=y;
}
voidShow()
{
cout<<"车轮数:
"<"<}
protected:
intwheels;
floatweight;
};
classCCar:
privateCVehicle
{
public:
CCar(intx,floaty,intload):
CVehicle(x,y)
{
passenger_load=load;
}
voidShow()
{
cout<<"载人数:
"<CVehicle:
:
Show();
}
private:
intpassenger_load;
};
classCTruck:
privateCVehicle
{
public:
CTruck(intx,floaty,intload,floatpload):
CVehicle(x,y)
{
passenger_load=load;
payload=pload;
}
voidShow()
{
cout<<"载人数:
"<"<CVehicle:
:
Show();
}
private:
intpassenger_load;
intpayload;
};
#include"1.h"
voidmain()
{
CCarc(4,2,5);
c.Show();
cout<<""<CTruckb(4,2,5,1);
b.Show();
}
虚函数例4.1
#include
usingnamespacestd;
classCperson
{
public:
Cperson(char*lpszName,char*lpszSex);
voidShow()const;
protected:
charm_lpszName[10];
charm_lpszSex[4];
};
//CStudent类的声明
classCstudent:
publicCperson
{
public:
Cstudent(intiNumber,char*lpszName,char*lpszSex);
voidShow()const;
protected:
intm_iNumber;
};
Cperson:
:
Cperson(char*lpszName,char*lpszSex)
{
strcpy(m_lpszName,lpszName);
strcpy(m_lpszSex,lpszSex);
}
voidCperson:
:
Show()const
{
cout<"<}
Cstudent:
:
Cstudent(intiNumber,char*lpszName,char*lpszSex):
Cperson(lpszName,lpszSex)
{
m_iNumber=iNumber;
}
voidCstudent:
:
Show()const
{
cout<"<"<}
voidmain()
{
CpersonoCperson("刘华","男");
CstudentoCstudent(20050101,"张新","男");
oCperson.Show();
oCstudent.Show();
cin.get();
}
运算符重载复数加、减
#include
usingnamespacestd;
classcomplex//复数类声明
{
public:
//外部接口
complex(doubler=0.0,doublei=0.0)
{real=r;imag=i;}//构造函数
complexoperator+(complexc2);//+重载为成员函数
complexoperator-(complexc2);//-重载为成员函数
voiddisplay();//输出复数
private:
//私有数据成员
doublereal;//复数实部
doubleimag;//复数虚部
};
#include"2.h"
//重载“+”的实现
complexcomplex:
:
operator+(complexc2)
{
complexc;
c.real=c2.real+real;
c.imag=c2.imag+imag;
returnc;
}
//重载运算符“-”的函数实现
complexcomplex:
:
operator-(complexc2)
{
complexc;
c.real=real-c2.real;
c.imag=imag-c2.imag;
returnc;
}
voidcomplex:
:
display()
{
cout<<"("<}
#include"2.h"
voidmain()//主函数
{complexc1(5,4),c2(2,10),c3,c4;//声明复数类的对象
cout<<"c1=";c1.display();
cout<<"c2=";c2.display();
c3=c1-c2;//使用重载运算符完成复数减法
cout<<"c3=c1-c2=";c3.display();
c4=c1+c2;//使用重载运算符完成复数加法
cout<<"c4=c1+c2=";c3.display();
}
交换模板
#include
usingnamespacestd;
template
voidexchange(T1&t1,T2&t2)
{
t1=t1+t2;
t2=t1-t2;
t1=t1-t2;
};
#include"1.h"
voidmain()
{
inta;
intb;
floatc;
floatd;
chare;
charf;
cin>>a>>b;
cin>>c>>d;
cin>>e>>f;
exchange(a,b);
exchange(c,d);
exchange(e,f);
cout<<"jiaohuanhou:
"<cout<<"jiaohuanhou:
"<cout<<"jiaohuanhou:
"<}
求平均值
#include
usingnamespacestd;
template
Tave(Tdata[],intn)
{
Tav=0,s=0;inti;
for(i=0;is+=data[i];
av=s/n;
returnav;
};
#include"1.h"
voidmain()
{
intdata1[]={1,2,3,4,5};
doubledata2[]={1.2,2.3,3.4,4.5,5.6,6.7};
intav1;
doubleav2;
av1=ave(data1,5);
av2=ave(data2,6);
cout<cout<}
任意常数的和
#include
usingnamespacestd;
template
Tsum(Tdata[],intn)
{
Ts=0;inti;
for(i=0;is+=data[i];
returns;
};
#include"1.h"
voidmain()
{
intdata1[]={1,2,3,4};
doubledata2[]={2.3,4.5,3.2,5.6};
ints1;
doubles2;
s1=sum(data1,4);
s2=sum(data2,4);
cout<cout<}
最大值
#include
usingnamespacestd;
template
Tmax(Tx,Ty)
{
returnx>y?
x:
y;
};
#include"1.h"
voidmain()
{
inta1=10,a2=20;
doubleb1=5.77,b2=7.44;
cout<<"themaxof(a1,a2)shi:
"<cout<<"themaxof(b1,b2)shi:
"<}
编程实现列表框的添加选项、删除选项操作
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
m_oListBox.AddString("数据结构");
m_oListBox.AddString("操作系统");
m_oListBox.AddString("数据库原理");
m_oListBox.AddString("计算机组成原理");
voidCMy1Dlg:
:
OnButton1()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(true);
if(!
m_strEditBox.IsEmpty())
{
m_oListBox.AddString(m_strEditBox);
}
}
voidCMy1Dlg:
:
OnButton2()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_oListBox.DeleteString(m_oListBox.GetCurSel());
}
键盘消息★
classCMy1Dlg:
publicCDialog
{
//Construction
public:
CMy1Dlg(CWnd*pParent=NULL);//standardconstructor
intm_xPosition;
intm_yPosition;
CMy1Dlg:
:
CMy1Dlg(CWnd*pParent/*=NULL*/)
:
CDialog(CMy1Dlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CMy1Dlg)
//NOTE:
theClassWizardwilladdmemberinitializationhere
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_xPosition=0;
m_yPosition=0;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CPaintDCoDC(this);
oDC.TextOut(m_xPosition,m_yPosition,"★");
CDialog:
:
OnPaint();
//TODO:
Addyourmessagehandlercodehereand/orcalldefault
if(nChar==VK_RIGHT)
{//右移
m_xPosition=m_xPosition+10;
}
elseif(nChar==VK_LEFT)
{//左移
m_xPosition=m_xPosition-10;
}
elseif(nChar==VK_UP)
{//上移
m_yPosition=m_yPosition-10;
}
elseif(nChar==VK_DOWN)
{//下移
m_yPosition=m_yPosition+10;
}
Invalidate();
画椭圆
voidCMyView:
:
OnPaint()
{
CPaintDCdc(this);//devicecontextforpainting
//TODO:
Addyourmessagehandlercodehere
CRectoRect;
GetClientRect(&oRect);
dc.Ellipse(oRect);
//DonotcallCView:
:
OnPaint()forpaintingmessages
}