江苏科技大学
课程实践报告
设计题目:计算机程序设计实践(c++)
设计时间:2015-12-14至2015-12-16
学院:计算机科学与技术学院
专业班级:
学生姓名:学号
指导老师:
2015年12月
实践任务一(基本题第二题)
1.实践任务
试建立一个类SP,求f(n,k)=1^k +2^k+3^k+……+n^k ,另有辅助函数power(m,n)用于求m^n。
2.系统设计
1)概要设计
通过类SP的成员函数power()求出m的n次方的值,再通过成员函数fun( )调用power( )函数求出f(n,k)的值。
2)详细设计
①类的描述与定义
class SP{
int n,k;//私有成员,n对应底数,k对应指数
public:
SP(int n1,int k1)//构造函数
{
n=n1;
k=k1;
}
int power(int c,int d);//求c^d
int fun();//求f(n,k)
void show();//输出结果
};
②主要成员函数
int power(int c,int d){
int add=1;
for(int i=1;i return add; } int fun(){ int r=0; for(int i=1;i r+=power(i,k);//循环加调用power()求f(n,k) return r; } void show(){//调用fun()输出结果 cout<<"f("< for(int i=1;i { cout< if(i!=n) cout<<'+'; } cout<<'='< } 3.系统测试 用以测试的数据为: f1(1,1),f2(3,4),f3(9,9) 预期的输出结果为: 1 98 574304985 4.实践小结 简单的类和循环的运用 5.原程序清单 #include class SP{ int n,k; public: SP(int n1,int k1){ n=n1; k=k1; } int power(int c,int d){ int add=1; for(int i=1;i return add; } int fun(){ int r=0; for(int i=1;i return r; } void show(){ cout<<"f("< for(int i=1;i { cout< if(i!=n) cout<<'+'; } cout<<'='< } }; void main() { SP f1(1,1),f2(3,4),f3(9,9); f1.show(); f2.show(); f3.show(); } 实践任务二(基本题二十题) 1.实践任务 定义一个方阵类Array ,实现对方阵进行逆时针90゜旋转,如图 2.系统设计 1)概要设计 通过类Array 的成员函数xuanzhuan ()求出方阵的旋转结果,并通过函数show ()输出结果 2)详细设计 ①类的描述与定义 class Array{ int a[4][4];//私有成员,矩阵爸爸 public: Array(int a1[][4],int n)//构造函数,简单的双重循环赋值私有成员 { for(int i=0;i<4;i++) for(int j=0;j<4;j++) a[i][j]=a1[i][j]; } void xuanzhuan();//实现旋转 void show();//实现输出 }; ②主要成员函数 void xuanzhuan(){//旋转过程 int b[4][4]; for(int j=0;j<4;j++)// 通过独立的二维数组保存改变的数组 for(int i=0;i<4;i++) b[3-j][i]=a[i][j]; for(int m=0;m<4;m++)// 重新改变原数组 for(int n=0;n<4;n++) a[m][n]=b[m][n]; } void show(){//循环输出结果 for(int i=0;i<4;i++) { for(int j=0;j<4;j++)