江苏科技大学
课程实践报告
设计题目: 程序设计(VC++)实践
设计时间 至
学院(系):
专业班级:
学生姓名: 学号
指导老师:
2013年12月
任务
一、实践任务
,另有辅助函数2 .试建立一个类 SP,求
,另有辅助函数
power(m,n)用于求
、详细设计
1、类的描述与定义
(1)私有数据成员
intn , k:存放公式中n和k的值;
(2)公有成员函数
n和k
n和k。
int power(int m, int n) :求 m。
int fun() :求公式的累加和。
void show():输出求得的结果。
2、主要函数设计
在主程序中定义对象 s,对该类进行测试。
三、源程序清单
#in elude <>
class SP
{
int n ,k;
public:
SP(i nt n 1,i nt k1)
{
n=n 1;k=k1;
}
int power(i nt m,i nt n)
{
int p=1;
for (i nt i=1;i <n +1;i++)
p*=m;
return p;
}
int fun ()
int s=0;
for (int i=1;i<n+1;i++)
s+=power(i,k);
return s;
}
void A()
{
cout<<"n="<<n<<",k="<<k<<",f(n,k)="<<fun()<<endl;
}
};
void main()
{
SP a(3,3);
(3,3);
();
();
}四、实践小结
掌握用循环语句求m",和m!,熟练掌握函数的调用
五、运行结果
'C:\U5ers\thinkpad ■.Desktop\Debug\Cpp2 [1).exe"
11=3, lc=3,f Cni ,k>=36
Press aimy key to contin uie
任务二
一、 实践任务
3 ?建立一个类 MOVE不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均 值的元素放到数组的右边。
二、 详细设计
1类的描述与定义
私有数据成员
float array[20] :—维整型数组。
intn :数组中元素的个数。
公有成员函数
MOVE(float b[],i nt m) :构造函数,初始化成员数据。
void average。:输出平均值,并将数组中的元素按要求重新放置。
void prin t() :输出一维数组。
2、主要函数设计
在主程序中用数据 {,,3,,,,,,} 对该类进行测试。
三、源程序清单
#include<> class MOVE{
float array[20];
int n;
public:
MOVE(float b[],int m)
{
n=m;
for(int i=0;i<m;i++) array[i]=b[i];
}
void average()
{
float t=0;
for(int i=0;i<n;i++) t+=array[i];
float D=(t/n);
cout<<" 平均值为: "<<D<<endl; int j=n-1;
for(i=0;i<j;i++,j--)
{
while(array[i]<=D)i++;
while(array[j]>D)j--;
t=array[i];
array[i]=array[j]; array[j]=t;
}
}
void print()
{
for(int i=0;i<n;i++)
cout<<array[i]<<'\t'; cout<<endl;
}
};
void main()
{
float b1[]={,,3,,,,,,};
int num;
num=sizeof(b1)/sizeof(float);
MOVE s(b1,num);
();
();
}
四、实践小结
应熟练掌握数组与指针的应用
五、运行结果
任务三
一、 实践任务
4?建立一个类MOVE将数组中最大元素的值与最小元素的值互换。
二、 详细设计
1类的描述与定义
私有数据成员
int *array :—维整型数组。
intn :数组中元素的个数。
公有成员函数
MOVE(i nt b[],i nt m) :构造函数,初始化成员数据。
void excha nge():输出平均值,并将数组中的元素按要求重新放置。
void prin t() :输出一维数组。
~MOVE():析构函数。
2、主要函数设计
}
}
对该类进行测试。在主程序中用数据 {21,65,43,87,12,84,44,97,32,55}
对该类进行测试。
三、源程序清单
#include <> class MOVE
{
int *array;
int n;
public:
MOVE(int b[],int m)
{
n=m; array=new int[n];
for(int i=0;i<n;i++) array[i]=b[i];
}
void exchange()
{
int s=0,max,min,x,y; float ave;
max=min=array[0];
for(int i=0;i<n;i++)
{
s+=array[i]; if(array[i]>max){max=array[i];x=i;} if(array[i]<min){min=array[i];y=i;}
ave=s/n;
cout<<" 平均值为 :"<<ave<<endl; array[y]=max;array[x]=min;
}
void print()
{
for(int i=0;i<n;i++)
cout<<array[i]<<" ";
}
~MOVE()
{
delete []array;
}
};
void main()
{
int B[]={21,65,43,87,12,84,44,97,32,55};
MOVE test(B,10);
();
();
}
四、实践小结
学会求数组中最大元素与最小元素方法,并实现交换
五、运行结果
任务四
一、 实践任务
6 ?定义一个字符串类 String,实现判断该字符串是否为回文字符串。所谓回文字符串,是
指该字符串左右对称。例如字符串“ 123321”是回文字符串。
二、 详细设计
1、类的描述与定义
私有数据成员
char *str;
int y :标记是否为回文字符串。
公有成员函数
String (char *s) :构造函数,用给定的参数 s初始化数据成员 str 。y
初始化为0。
void huiwen () :判断str所指向的字符串是否为回文字符串。
void show()
void show() :在屏幕上显示字符串。
2、主要函数设计
在主程序中定义字符串 char s[]= ” ababcedbaba"作为原始字符串。定义一个
String类对象test,用s初始化test ,完成对该类的测试。
三、源程序清单
#in clude<> #in clude<> class String
{
char *str;
int y;
public:
Strin g(char *s)
{
str=new char[strle n( s)+1];
strcpy(str,s);
y=0;
}
void huiwe n()
{
char *p1=str,*p2=str;
while(*p2)p2++;p2--;
for(;p1<p2;p1++,p2--) if(*p1!=*p2)
{
y=1;
break;
}
void show()
{
if(y)
cout<<str<<" 不是回文字符串 "<<'\n';
else cout<<str<<" 是回文字符串 "<<'\n';
}
};
void main()
{
String A("1253321");
();
();
}
四、实践小结
掌握判断回文字符串的一般形式。
五、运行结果
任务五
一、 实践任务
11.建立一个 STRING将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。
例如将字符串“abcde” 交叉插入字符串“ABCD”的结果为“aAbBcCdDe'E或
“AaBbCcDdEe。
二、 详细设计
1、类的描述与定义
(1) 私有数据成员
char str1[80] :存放被插入的字符串。
char str2[40] :存放待插入的字符串。
(2) 公有成员函数
STRING(char *s1, char *s2 ):构造函数,用 s1 和 s2 初始化 str1 和 str2。
void process。
:将str2 中的字符串插入到 str1中。
:输出插入后的字符串。void prin t()
:输出插入后的字符串。
2、主要函数设计
在主程序中定义STRING类的对象test对该类进行测试。
三、源程序清单
#include<>
#include <>
class STRING{
char str1[80],str2[40];
public:
STRING(char *s1,char *s2) {
strcpy(str1,s1);
strcpy(str2,s2);
}
void process()
{
int i=0,j=0;
char t[80]; strcpy(t,str1);
while(str2[j])
{
str1[i++]=t[j];
str1[i++]=str2[j]; j++;
}
str1[i]='\0';
}
void print()
cout<<str1<<endl;
}
};
void main()
{
char s1[80],s2[40];
cout<<" 请输入被插入字符串 "<<endl;
(s1,79);
cout<<" 请输入待插入字符串 "<<endl;
(s2,39);
STRING test(s1,s2);
();
();
}四、实践小结
发现字符插入的规律,再依次放入相应字符位置
五、运行结果
青输入被插入字符串
ABCDE
青输入待插入字符串
a be de
AaBbCcDdEe
Press an9 key to continue
半二
任务六
一、 实践任务
14?建立一个类MOVE实现将数组中大字字母元素放在小写字母元素的左边。
二、 详细设计
1、类的描述与定义
私有数据成员
char *array :—维字符数组。
intn :数组中元素的个数。
公有成员函数
MOVE(char b[],i nt m):构造函数,初始化成员数据。
void chan ge():进行排序换位。
void prin t() :输出一维数组。
~MOVE():析构函数。
2、主要函数设计
在主程序中用数据 "fdsUFfsTjfsKFEkWC" 对该类进行测试。
三、源程序清单
#include<>
class MOVE
{
char*array;
int n;
public:
MOVE(char b[],int m)
{
n=m;
array=new char[n];
for(int i=0;i<n;i++)
array[i]=b[i];
}
void change()
{
char a;
for(int i=1;i<n/2;i++)
{
if(array[i-1]>='a'&&array[i-1]<='z')
{
a=array[i-1];
for(int j=i-1;j<n;j++)
array[j]=array[j+1];
}
}
array[n-1]=a;
i--;
}
}
}
void print()
{
for(int i=0;i<n;i++)
cout<<array[i];
cout<<endl;
}
~MOVE()
{
if(array)delete[]array;
}
};
void main()
{
char*arr="fdsUFfsTjfsKFEkWC";
MOVE test(arr,17);
();
();
}四、实践小结
利用临时数组,分别保存大写与小写字母,再实现功能
五、运行结果
推荐访问:实践报告 江苏 科技大学 实践 实践报告答案江苏科技大学c++