计算机程序设计实践答案江苏科技大学.docx
《计算机程序设计实践答案江苏科技大学.docx》由会员分享,可在线阅读,更多相关《计算机程序设计实践答案江苏科技大学.docx(32页珍藏版)》请在冰点文库上搜索。
计算机程序设计实践答案江苏科技大学
1,#include
classPP
{
intn;
doublex;
double*p;
public:
PP(intnum,doublex1);
~PP();
doublefun(intn1,doublex);
voidprocess();
voidshow();
};
PP:
:
PP(intnum,doublex1)
{
n=num;
x=x1;
p=newdouble[n+1];
}
PP:
:
~PP()
{
if(p)delete[]p;
}
doublePP:
:
fun(intn,doublex)
{
if(n==0)return1;
elseif(n==1)returnx;
elsereturn((2*n-1)*x*fun(n-1,x)-(n-1)*fun(n-2,x))/n;
}
voidPP:
:
process()
{
inti;
for(i=0;i<=n;i++)
p[i]=fun(i,x);
}
voidPP:
:
show()
{
intcount=0;
cout<<"n="<for(inti=0;i{
cout<
count+=1;
if(count%4==0)cout<<'\n';
}
}
voidmain()
{
intnum;
doublex1;
cout<<"num=";
cin>>num;
cout<<"x1=";
cin>>x1;
PPitems(num,x1);
items.process();
items.show();
}
2.#include
classsp
{
private:
intn,k;
public:
sp(intn1,intk1);
intpowers(intm,intn);
intfun(intm,intn);
voidshow();
};
sp:
:
sp(intn1,intk1)
{
n=n1;
k=k1;
}
intsp:
:
powers(intm,intn){
inti,p=1;
for(i=1;i<=n;i++)
p*=m;
returnp;
}
intsp:
:
fun(intn,intk)
{
ints=0;
for(inti=1;i<=n;i++)
s+=powers(i,k);
returns;
}
voidsp:
:
show()
{
cout<}
voidmain()
{
intx,y;
cin>>x>>y;
sps(x,y);
s.show();
}
3.#include
classmove
{
private
floatarray[20];
intn;
public:
move(floatb[],intm)
{
for(inti=0;iarray[i]=b[i];
n=m;
}
voidaverage()
{
floatsum=0,ave;
for(inti=0;isum+=array[i];
ave=sum/20;
floatArray[20],*p1=Array,*p2=Array;
for(i=1;ifor(i=0;i{
if(array[i]<=ave)*(p1++)=array[i];
else*(p2--)=array[i];
}
for(i=0;iarray[i]=Array[i];
}
voidprint()
{
cout<<"执行后的数据为:
"<for(inti=0;icout<<'\t'<cout<}
};
voidmain()
{
floatb[9]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};
cout<<"原数据为:
"<for(inti=0;i<9;i++)
cout<<'\t'<
cout<moves(b,9);
s.average();
s.print();
}
4.#include
classMOVE
{
int*array;
intn;
public:
MOVE(intb[],intm)
{
n=m;
array=newint[n];
for(inti=0;i{
array[i]=b[i];
}
}
voidexchange()
{
floatx=0;
intmax=0,m=0,min=0;
for(inti=0;i{
x+=array[i];
if(array[i]>array[max])
{
max=i;
}
if(array[i]{
min=i;
}
}
x/=n;
cout<<"平均数为:
"<x=array[min];
array[min]=array[max];
array[max]=x;
}
voidprint()
{
for(inti=0;i{
cout<}
}
~MOVE()
{
deletearray;
}
};
voidmain()
{
ints[10]={21,65,43,87,12,84,44,97,32,55};
MOVEa(s,10);
a.exchange();
a.print();
}
5.#include
#include
classpalindrome
{
intn;
inty;
public:
palindrome(intx);
voidhuiwen();
voidshow();
};
palindrome:
:
palindrome(intx)
{
n=x;
y=0;
}
voidpalindrome:
:
huiwen()
{
inta[20],b[50],k=n,s=n,i=0,count=0;
while(k)
{
a[i]=k%10;
k=k/10;
i++;
count++;
}
for(i=0;iif(a[i]==a[count])y=1;
else{y=0;break;}
if(y==1)
{
inti=0,j=0;
while(s)
{
b[i]=s%2;
s=s/2;
i++;
j++;
}
for(i=0;iif(b[i]==b[j]){y=1;j--;}
else{y=0;break;}
}
if(y==1)
cout<<"是绝对回文字符串"<if(y==0)
cout<<"不是绝对回文字符串"<}
voidpalindrome:
:
show()
{
cout<}
voidmain(void)
{
inta;
cout<<"请输入a=";
cin>>a;
palindromep(a);
p.show();
p.huiwen();
}
6.#include
#include
classString
{
char*str;
inty;
public:
String(char*s)
{
if(s)
{
str=(char*)newchar[strlen(s)+1];
strcpy(str,s);
}
elsestr=0;
y=0;
}
voidhuiwen();
voidshow();
};
voidString:
:
huiwen()
{
char*t1,*t2;
t1=t2=str;
while(*t2)t2++;
t2--;
while(t1{
if(*t1++!
=*t2--)y=1;
}
}
voidString:
:
show()
{
cout<if(y)cout<<"不是回文字符串"<elsecout<<"是回文字符串"<}
voidmain()
{
chars[]="ababcedbaba";
Stringtext(s);
text.huiwen();
text.show();
}
7.#include
classphalanx
{
int(*p)[20];
intstartnum;
intn;
public:
phalanx(ints[20][20],intm)
{
startnum=1;
p=s;
n=m;
}
voidprocess()
{
p[0][0]=startnum;
for(inti=0;ifor(intj=0;j{if(i>j){p[i][j]=1+i*i+i+i-j;}
else{p[i][j]=1+j*j+i;}}
}
voidprint()
{
for(inti=0;i{
for(intj=0;jcout<<'\n';
}
}
~phalanx(){}
};
voidmain()
{
intm;
ints[20][20];
cout<<"请输入折叠层数:
";
cin>>m;
cout<<'\n';
phalanxpp(s,m);
pp.process();
pp.print();
}
9.#include
#include
classCString
{
char*str;
intsize;
intmaxsize;
public:
CString(){str=NULL;size=0;maxsize=0;}
voidCount(CString&s);
friendostream&operator<<(ostream&ostr,constCString&s);
friendistream&operator>>(istream&istr,CString&s);
};
voidCString:
:
Count(CString&s)
{
inti,k;
for(i=0;i{
intm=1;
for(k=i+1;k{
if(s.str[i]==s.str[k])
{
for(intn=k;n{
s.str[n]=s.str[n+1];
}
s.size--;
s.maxsize--;
m++;
}
}
cout<"<}
}
ostream&operator<<(ostream&ostr,constCString&s)
{
cout<<"s.size="<cout<<"s.str="<returnostr;
}
istream&operator>>(istream&istr,CString&s)
{
delete[]s.str;
cout<<"输入字符串的元素个数:
";
cin>>s.size;
s.maxsize=s.size+1;
s.str=newchar[s.maxsize];
cout<<"输入字符串:
";
for(inti=0;icin>>s.str[i];
s.str[s.size]=NULL;
returnistr;
}
voidmain()
{
CStrings;
cin>>s;
cout<
s.Count(s);
}
11
13#include
classMOVE
{
intarray[20];
intn;
public:
MOVE(intb[],intm)
{
n=m;
for(inti=0;i{
array[i]=b[i];
}
}
voidchange()
{
for(intj=0;j<3;j++)
{
inta=array[n-1];
for(inti=n-1;i>0;i--)
{
array[i]=array[i-1];
}
array[0]=a;
}
}
voidprint()
{
for(inti=0;icout<}
};
voidmain()
{
ints[10]={21,65,43,87,12,84,44,97,32,55};
MOVEtest(s,10);
test.change();
test.print();
}
14.#include
#include
classmove
{
char*array;
intn;
public:
move(charb[],intm)
{
n=m;
array=newchar[strlen(b)+1];
strcpy(array,b);
}
voidchange();
voidprint();
~move(){delete[]array;}
};
voidmove:
:
change()
{
charAa[20];intj=0,k=n;
for(inti=0;iif(array[i]>='A'&&array[i]<='Z')
{
Aa[j]=array[i];
j++;
}
else
{
Aa[k-1]=array[i];
k--;
}
for(i=0;iarray[i]=Aa[i];
array[n]=0;
}
voidmove:
:
print()
{
for(inti=0;icout<cout<}
voidmain()
{
charb[]={"fdsUFfsTjfsKFEkWC"};
movetest(b,17);
test.change();
test.print();
}
15.#include
#include
classCarray
{
int*a;
intn;
intb;
public:
Carray(intm[],intn1,intx)
{a=m;
for(inti=0;in=n1;
b=x;
}
voidTransform()
{
inti;
intx;
intT[10];
for(i=0;i{x=*a++;
T[i]=(b*x+i);}
a=T;
}
voidshow()
{
for(inti=0;i<10;i++)
cout<<*a<<'\t';
cout<}
~Carray()
{
deletea;
}
};
voidmain()
{
intarr[]={1,2,3,4,5,6,7,8,9,10};
intb;
inti=10;
//i=strlen(arr);
cout<<"请输入b=";
cin>>b;
Carraytest(arr,i,b);
test.Transform();
test.show();
}
17.#include
#include
classSIN
{
private:
intx;
intn;
public:
SIN(inta,intb){x=a;n=b;}
intpower(intq)
{
intc;
if(q==1||q==0)c=1;
elsec=q*power(q-1);
returnc;
}
intmi(intm,intn)
{
intp=1;
for(inti=0;ip=p*m;
returnp;
}
doublefun()
{
doublesum,s;
s=1;sum=0;
for(intj=1;j<=n;j++)
{
s=s*mi(x,2*j-1)/power(2*j-1);
sum+=s;
s=-1;
}
cout<returnsum;
}
voidshow()
{
cout<<"结果为"<}
};
voidmain()
{
SINtest(1,2);
test.fun();
test.show();
}
18.#include
classVAR
{private:
doublea[100];
intn;
public:
VAR(doublex[],intn1)
{n=n1;
for(inti=0;ia[i]=x[i];
}
doubleaverage(doublex[],intn)
{doublexp,s=0;
for(inti=0;i{s=s+a[i];}
xp=s/n;
returnxp;
}
doublevariance(doublex[],intn)
{doubleb=0.00,d;
for(inti=0;i{b=b+(x[i]-average(a,n))*(x[i]-average(a,n));}
d=b/n;
returnd;
}
voidshow(doublex[],intn)
{cout<<"标准差是:
"<};
voidmain()
{doublee[100]={1,2,3,4,5};
VARc(e,5);
c.show(e,5);
}
19.#include
classArray
{
inta[4][4];
public:
Array(inta1[][4],intn)
{
for(inti=0;ifor(intj=0;j<4;j++)
a[i][j]=a1[i][j];
}
voidxuanzhuan();
voidshow();
};
voidArray:
:
xuanzhuan()
{
inta2[4][4];
for(inti=0;i<4;i++)
for(intj=0;j<4;j++)
a2[j][3-i]=a[i][j];
for(intk=0;k<4;k++)
for(inth=0;h<4;h++)
a[k][h]=a2[k][h];
}
voidArray:
:
show()
{
for(inti=0;i<4;i++)
{
for(intj=0;j<4;j++)
{
if(a[i][j]<10)
cout<<""<else
cout<}
cout<}
}
voidmain()
{
intb[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
Arraytest(b,4);
cout<<"原二维数组为:
"<test.show();
test.xuanzhuan();
cout<<"旋转后的二维数组为:
"<test.show();
}
20.#include
classArray
{
private:
inta[4][4];
public:
Array(inta1[][4],intn)
{
for(inti=0;ifor(intj=0;j<4;j++)
a[i][j]=a1[i][j];
}
voidxuanzhuan()
{
intb[4][4];
for(inti=0;i<4;i+