C++代码.docx
《C++代码.docx》由会员分享,可在线阅读,更多相关《C++代码.docx(25页珍藏版)》请在冰豆网上搜索。
![C++代码.docx](https://file1.bdocx.com/fileroot1/2023-1/22/8b3342c5-8974-40f1-a483-9b5049ade5ed/8b3342c5-8974-40f1-a483-9b5049ade5ed1.gif)
C++代码
//计算器
#include
usingnamespacestd;
intmain()
{
floata,b,sum,r=1;
charc;
cout<<"pleaseenternum1,num2andthechar"<cin>>a>>b>>c;
if(c=='+')
sum=a+b;
if(c=='-')
sum=a-b;
if(c=='*')
sum=a*b;
if(c=='/')
{
if(b==0)
{
cout<<"不符合运算规则"<r=0;
}
}
if(r)
cout<<"sum="<return0;
}
//动态分布内存
#include
usingnamespacestd;
intmain()
{
voidall(int&,int&,float&,intp[],intx);
intm,n,min=0,max=0;
floatave=0;
cout<<"pleaseentertwonums:
";
cin>>m>>n;
int*p=newint[m*n];
cout<<"pleaseenter"<for(inti=0;icin>>*(p+i);
all(min,max,ave,p,m*n);
cout<<"min="<delete[]p;
return0;
}
voidall(int&min,int&max,float&ave,intp[],intx)
{
inti,sum=0;
min=p[0];
for(i=1;iif(p[i]min=p[i];
max=p[0];
for(i=1;iif(p[i]>max)
max=p[i];
for(i=0;isum=sum+p[i];
ave=(float)sum/x;
}
//百钱问题
#include
usingnamespacestd;//我算出共553种
intmain()
{
inti,j,k,num=0;
for(i=0;i<=100;i+=5)
{
if(i==100)
num++;
for(j=0;j<=100;j+=2)
{
if(i+j==100)
num++;
for(k=0;k<=100;k++)
{
if(i+j+k==100)
num++;
}
}
}
cout<
return0;
}
//生日不相重的概率
#include
#include
#include
usingnamespacestd;
intmain()
{
intn,i,month[365],day[365],j,m,d,k,same=0,num=0;
floatp1=1,p2;
cout<<"pleaseenterthenumofthepeople:
"<cin>>n;
for(i=0;ip1=p1*(365-i)/365;//
cout<<"p1="<for(j=0;j{
srand(time(0));
month[j]=(rand()%12)+1;
if(month[j]==1||3||5||7||8||10||12)//随机赋值n个人的生日
{
srand(time(0));
day[j]=rand()%31+1;//没做完不会做
}
if(month[j]==4||6||9||11)
{
srand(time(0));
day[j]=rand()%30+1;
}
if(month[j]==2)
{
srand(time(0));
day[j]=rand()%28+1;
}
}
return0;
}
#include//要用重载函数
#include
#include
#include
usingnamespacestd;
#defineN10
voidsort(intnum[],int);
voidsort(chars[],int);
voidsort(char**s,int);
intmain()
{
intnum[N],i;
srand(time(0));
for(i=0;inum[i]=rand()%100+1;
sort(num,N);
for(i=0;icout<cout<
chars[N];
srand(time(0));
for(i=0;is[i]=rand()%26+65;
sort(s,N);
for(i=0;icout<
cout<
char*name[]={"Zates","Kongzi","Obama","Micky"};
sort(name,4);
for(i=0;i<4;i++)
{
cout<}
cout<return0;
}
//冒泡法对数字排序
voidsort(intnum[],intn)
{
inti,j,t;
for(i=0;i{
for(j=0;jif(num[j]>num[j+1])
{
t=num[j];num[j]=num[j+1];num[j+1]=t;
}
}
}
//冒泡法对字母排序//
voidsort(chars[],intn)
{
inti,j;
chart;
for(i=0;i{
for(j=0;jif(s[j]>s[j+1])
{
t=s[j];s[j]=s[j+1];s[j+1]=t;
}
}
}
//冒泡法对字符串排序//
voidsort(char**s,intn)
{
inti,j;
char*t;
for(i=0;i{
for(j=0;jif(strcmp(s[j],s[j+1])>0)
{
t=s[j];s[j]=s[j+1];s[j+1]=t;
}
}
}
、、、、、、、、、、、、、、、、、、、
//盒子问题
#include
usingnamespacestd;
classBox
{
private:
floatlength,width,height;
public:
voidset();
voidpri()
{
cout<<"length="<}
floatmianji();
floattiji()
{
floatv;
v=length*width*height;
returnv;
}
};
intmain()
{
Boxa;
floats,v;
a.set();
a.pri();
s=a.mianji();
cout<<"mianji="<
v=a.tiji();
cout<<"tiji="<
return0;
}
inlinevoidBox:
:
set()
{
cout<<"Pleaseenterthelength,width,heightofthebox:
"<cin>>length>>width>>height;
}
floatBox:
:
mianji()
{
floats;
s=2*(length*width+length*height+width*height);
return(s);
}
//创建日期的类
#include
usingnamespacestd;//还没有写判断某天是星期几的函数
//
classDate
{
private:
intyear,month,day;
public:
voidset();
voidpri()
{
cout<}
intwhichday();
};
//输入年月日并判断是否合理
voidDate:
:
set()
{
intt=1;
cout<<"pleaseentertheyear,monthandday:
"<for(;;)
{
cin>>year>>month>>day;
if(month<1||month>12||day<1||year<1||day>31)
t=0;
if((year%4==0&&year%100!
=0)||year%400==0)
{
if(month==2&&day>29)
t=0;
}
else
{
if(month==2&&day>28)
t=0;
}
if((month==4||6||9||11)&&day>30)
t=0;
if(t)
break;
if(t==0)
{
cout<<"thedateisimpossiblepleaseenteragain"<t=1;//要将t还原为1
}
}
}
intDate:
:
whichday()
{
intnum;
num=(month-1)*31+day;//先把所有的月都当做31天
if(month<=7)
{
if(month%2==0)
num=num-month/2+1;
else
num=num-(month-month%2)/2;//把所有的小月都当做30天
}
else
{
if(month%2==0)
num=num-(month-8)/2-3;
else
num=(month-7)/2+num-3;
}
if((year%4==0&&year%100!
=0)||year%400==0)
{
if(month>2)
num=num-1;
}
else
{
if(month>2)
num=num-2;
}
returnnum;
}
intmain()
{
Datea;
a.set();
a.pri();
intnum=a.whichday();
cout<<"num="<return0;
}
//定义一个学生的类
#include
usingnamespacestd;
//
classStudent
{
private:
charname[30];
charsex;
intage;
longnum;
public:
voidset();
voidpri();
};
intmain()
{
Studenta;
a.set();
a.pri();
return0;
}
voidStudent:
:
set()
{
cout<<"pleaseenterthestudent'snamesexageandnum:
"<cin>>name>>sex>>age>>num;
}
inlinevoidStudent:
:
pri()
{
cout<}
C++作业:
实验3(改写复数类、集合类、链表类)
//改写复数类
#include
usingnamespacestd;
classcomplex//定义类complex
{
public:
complex()//不带参数的构造函数
{
real=0;imag=0;
}
complex(doublex,doubley)//带有参数的构造函数
{
real=x;imag=y;
}
complex(complex&good1);//拷贝构造函数
~complex(){}
friendcomplexcalculate(complex&a,complex&b,charc);//将此函数设为类complex的友元函数
friendvoidshow(complexd)//将此函数设为类complex的友元函数
{
if(d.real>0)cout<elseif(d.real<0)cout<if(d.imag==1)cout<<"+"<<"i"<elseif(d.imag==-1)cout<<"-i"<elseif(d.imag>0)cout<<"+"<elseif(d.imag<0)cout<if(d.real==0&&d.imag==0)cout<<"0"<}
private:
doublereal;
doubleimag;
};
complex:
:
complex(complex&good1)
{
real=good1.real;
imag=good1.imag;
}
complexcalculate(complex&a,complex&b,charc)
{
complexd;
if(c=='+')
{
d.real=a.real+b.real;
d.imag=a.imag+b.imag;
returnd;
}
elseif(c=='-')
{
d.real=a.real-b.real;
d.imag=a.imag-b.imag;
returnd;
}
elseif(c=='*')
{
d.real=a.real*b.real-a.imag*b.imag;
d.imag=a.imag*b.real+a.real*b.imag;
returnd;
}
elseif(c=='/'&&b.real!
=0&&b.imag!
=0)
{
d.real=(a.real*b.real+a.imag*b.imag)/(b.real*b.real+b.imag*b.imag);
d.imag=(a.imag*b.real-a.real*b.imag)/(b.real*b.real+b.imag*b.imag);
returnd;
}
elsecout<<"error"<}
voidmain()//主函数
{
complexgood1(1,-1),good2(-3,-2);
show(calculate(good1,good2,'+'));
show(calculate(good1,good2,'-'));
show(calculate(good1,good2,'*'));
show(calculate(good1,good2,'/'));
}
//整型数集合类和实型数集合数类
#include
classfloatset
{
private:
floatset[10];
intnum;//集合中元素个数
public:
floatset(inti=0)//集合初始化,,输入i个元素值
{
intt;
num=0;
for(t=0;t
{
cout<<"请输入元素:
";
cin>>set[t];
cout<if(t>=9)break;
}
}
voidprint();//打印集合中数据
floatget(inti);//返回第i个元素值
voidSet(inti,floatdata);//设置第i个元素值为data
friendclassIntset;
};
classIntset
{
private:
intset[10];
intnum;//集合中元素个数
public:
Intset(inti=0)//集合初始化,输入i个元素值
{
intt;
num=0;
for(t=0;t
{
cout<<"请输入元素:
";
cin>>set[t];
cout<if(t>=9)break;
}
}
voidprint();//打印集合中数据
intget(inti);//返回第i个元素值
voidSet(inti,intdata);//设置第i个元素值为data
voidsettofloat(floatset&set2);//形参为拷贝的目标对象
};
voidIntset:
:
print()
{
intt;
for(t=0;t{
cout<}
cout<}
intIntset:
:
get(inti)
{
returnset[i-1];
}
voidIntset:
:
Set(inti,intdata)
{
set[i-1]=data;
}
voidIntset:
:
settofloat(floatset&set)
{
intt;
for(t=0;t{
set.set[t]=this->set[t];
}
set.num=num;
}
voidfloatset:
:
print()
{
intt;
for(t=0;t{
cout<}
cout<}
floatfloatset:
:
get(inti)
{
returnset[i-1];
}
voidfloatset:
:
Set(inti,floatdata)
{
set[i-1]=data;
}
voidmain()
{
Intseta(3);
a.print();
a.Set(1,11);
cout<<"插入的元素为:
"<(1)<cout<<"修改后的集合为:
";
a.print();
floatsetb(4);
b.print();
b.Set(1,11);
cout<<"插入的元素为:
"<(1)<cout<<"修改后的集合为:
";
b.print();
a.settofloat(b);
cout<<"将整型集合的元素拷贝到实型集合:
";
b.print();
}
//链表类
#include
#include
#include
#include
#defineLENsizeof(structnum)
structnum//定义num结构体
{
intnumber;
structnum*next;
};
classlianbiao//定义链表类
{
public:
lianbiao()//构造函数
{}
~lianbiao()//析构函数
{}
voidcreat();//产生随机数并赋给链表
voidsearch(intb);//查询结点
voidinsert(intc);//插入结点
voidout();//删除结点
voidshow();//输出链表
friendintsum(lianbiao&bb);//将求和函数设为友元
private:
staticintn;
structnum*pt;
};
intlianbiao:
:
n=0;
voidlianbiao:
:
creat()
{
structnum*head;
structnum*p1,*p2;
inti