VC课程实践正确答案1.docx
- 文档编号:11882795
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:93
- 大小:621.76KB
VC课程实践正确答案1.docx
《VC课程实践正确答案1.docx》由会员分享,可在线阅读,更多相关《VC课程实践正确答案1.docx(93页珍藏版)》请在冰豆网上搜索。
VC课程实践正确答案1
江苏科技大学
课程实践报告
设计题目:
程序设计(VC++)实践
设计时间:
至
学院:
专业班级:
学生:
学号
指导老师:
1.试建立一个类PP,求出以下多项式的前n项的值。
具体要求如下:
〔1〕私有数据成员
lintn:
前假设干项的项数。
ldoublex:
存放x的值。
ldouble*p:
根据n的大小动态申请存放Pn(x)前n项的数组空间。
〔2〕公有成员函数
lPP(intnum,doublex1):
构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。
l~PP〔〕:
析构函数,释放p指向的动态内存空间。
ldoublefun(intn1,doublex):
递归函数,用于求多项式的第n1项。
注意:
将递归公式中的n用作函数参数。
本函数供process函数调用。
lvoidprocess():
完成求前n项的工作,并将它们存放到p指向的动态数组中。
lvoidshow():
输出n和x,并将前n项以每行4个数的形式输出到屏幕上。
〔3〕在主函数中完成对该类的测试。
先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num项的值。
程序源代码
#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[num+1];
}
pp:
:
~pp()
{
delete[]p;
}
doublepp:
:
fun(intn1,doublex)
{
if(n1==0)return1;
if(n1==1)returnx;
if(n1>1)return((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;
}
voidpp:
:
process()
{
inti;
for(i=0;i<=n;i++)
{
*(p+i)=fun(i,x);
}
}
voidpp:
:
show()
{
cout<<"n="< for(inti=0,m=1;i { cout<<*(p+i)<<'\t'; if(m%4==0)cout<<'\n'; } } voidmain() { intnum; doublex1; cout<<"putinnumandx1"< cin>>num>>x1; ppitems(num,x1); items.process(); items.show(); } 运行结果 2.试建立一个类SP,求,另有辅助函数power(m,n)用于求。 具体要求如下: 〔1〕私有成员数据。 lintn,k: 存放公式中n和k的值; 〔2〕公有成员函数。 lSP(intn1,intk1): 构造函数,初始化成员数据n和k。 lintpower(intm,intn): 求mn。 lintfun(): 求公式的累加和。 lvoidshow(): 输出求得的结果。 〔3〕在主程序中定义对象s,对该类进行测试。 程序源代码 #include classSP{ intn,k; public: SP(intn1,intk1); intpower(intm,intn); intfun(); voidshow(); }; SP: : SP(intn1,intk1) { n=n1; k=k1; } intSP: : power(intm,intn) { inti; if(n==0)return1; else for(i=1;i m*=m; returnm; } intSP: : fun() { inty=0,x; for(x=1;x<=n;x++) y+=power(x,k); returny; } voidSP: : show() { cout<<"前n项的和为: "< } voidmain() { intn1,k1; cout<<"输入n1和k1的值"< cin>>n1>>k1; SPs(n1,k1); s.fun(); s.show(); } 运行结果: 3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。 具体要求如下: 〔1〕私有数据成员 lfloatarray[20]: 一维整型数组。 lintn: 数组中元素的个数。 〔2〕公有成员函数 lMOVE(floatb[],intm): 构造函数,初始化成员数据。 lvoidaverage(): 输出平均值,并将数组中的元素按要求重新放置。 lvoidprint(): 输出一维数组。 〔3〕在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。 程序源代码 #include classMOVE{ floatarray[20]; intn; public: MOVE(floatb[],intm); voidaverage(); voidprint(); }; MOVE: : MOVE(floatb[],intm) { inti; n=m; for(i=0;i array[i]=b[i]; } voidMOVE: : average() { inti,x; floata=0; for(i=0;i a+=array[i]; a/=n; cout<<"平均值为"< floatff[20];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 课程 实践 正确答案