C++课程实践作业.docx
- 文档编号:17751891
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:12
- 大小:28.85KB
C++课程实践作业.docx
《C++课程实践作业.docx》由会员分享,可在线阅读,更多相关《C++课程实践作业.docx(12页珍藏版)》请在冰点文库上搜索。
C++课程实践作业
江苏科技大学
课程实践报告
设计题目:
计算机程序设计实践(C++)
设计时间:
学院:
专业班级:
学生姓名:
学号:
指导老师:
第一题:
一、实践任务:
1、试建立一个类PP,求出下列多项式的前n项的值。
1n=0
Pn(x)=xn=1
((2n-1)xPn-1(x)-(n-1)Pn-2(x))/nn>1
具体要求如下:
私有数据成员。
intn:
前若干项的项数。
doublex:
存放x的值。
double*p:
根据n的大小动态申请存放Pn(x)前n项的数组空间。
共有成员函数:
PP(intnum,doublex1):
构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。
~PP:
析构函数,释放p指向的动态内存空间。
doublefun(intn1,doublex1):
递归函数,用于求多项式Pn(x)的第n1项。
注意:
将递归公式中的n用作函数参数。
本函数供process()函数调用。
voidprocess():
完成求前n项的工作,并将它们存放到p指向的动态数组中。
voidshow():
输出n和x,并将前n项以每行4个数的形式输出到屏幕上。
在主函数中完成对该类的测试。
先输入num和x1,并定义一个PP类的对象items,用nun和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前nun项的值。
二、系统设计:
类的描述与定义:
classPP{
intn;
doublex;
double*p;
public:
PP(intnum,doublex1){
n=num;x=x1;p=newdouble[n];
}
~PP(){delete[]p;}
doublefun(intn1,doublex);
voidprocess();
voidshow();
};
fun函数定义:
doublefun(intn1,doublex)
{
if(n1==0)return1;
elseif(n1==1)returnx;
elsereturn((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;
}
process函数定义:
voidprocess(){
for(inti=0;i show函数定义: voidshow() { intcount=0; cout<<"输出n和x的值为: "< for(inti=0;i cout< count++; if(count%4==0) cout<<'\n'; } cout<<'\n'; } main函数定义: voidmain() { intnum;doublex1; cout<<"请输入num和x1的值为: "; cin>>num>>x1; PPa(num,x1); a.fun(num,x1); a.process(); a.show(); } 三、系统测试: 四、实践小结: 掌握递归函数调用方法、条件语句的选择 五、源程序清单: 第二题: 一、实践任务: 2、试建立一个类SP,求f(n,k)=1k+2k+3k+…+nk,另有辅助函数power()用于求mn。 具体要求如下。 私有成员数据。 intn,k: 存放公式中n和k的值。 公有成员函数。 SP(intn1,intk1): 构造函数,初始化成员数据n和k。 intpower(intm,intn): 求mn。 intfun(): 求公式的累加和。 voidshow(): 输出求得的结果。 在主程序中定义对象s,对该类进行测试。 二、系统设计: 类的描述与定义: classSP{ intn,k; public: SP(intn1,intk1){n=n1,k=k1;} intpower(intm,intn); intfun(); voidshow(); }; power函数定义: intpower(intm,intn){ intp=1; for(inti=1;i p=p*m; returnp; } fun函数定义: intfun(intn,intk){ ints=0; for(intj=1;j<=n;j++) s+=power(j,k); returns; } show函数定义: voidshow(){ cout<<"和为"< } main函数定义: voidmain(){ intn,k; cin>>n>>k; SPs(n,k); s.power(n,k); s.fun(n,k); s.show(); } 三、系统测试: 四、实践小结: 掌握函数嵌套调用方法 五、源程序清单: 第二十五题: 一、实践任务: 25.建立一个类NUM,并统计特定序列中相同字符出现的次数。 具体要求如下。 私有数据成员。 chardate[25]: 随机生成25个字符。 intnum[128]: 储存每个字符出现的次数。 公有数据成员。 NUM(intdata): 构造函数,同时初始化数组data。 voidprocess(): 统计数组data中每个字符出现的次数,并保存到数组num中。 voidprint(): 输出每个出现的字符及其出现的次数,每行输出5个,没有出现过的字符不显示。 在主程序中定义一个对象,对该类进行测试。 二、系统设计: ⑴类的描述与定义: NUM(intdata1[]){ for(inti=0;i<=25;i++){ data[i]=data1[i];num[i]=0; } voidprocess(); voidprint(); }; process函数定义: voidprocess(){ for(inti=0;i<25: i++) if(data[i]>=0&&data[i]<=9){ intj=data[i];num[j]++; } } print函数定义: voidprint(){ for(inti=0;i<10: i++){ cout< ”< if((i+1)%5==0)cout< } main函数定义 voidmain(){ intdata[25]={5,6,8,7,1,2,3,6,9,7,1,0,9,7,4,1,8,6,4,6,5,7,1,2,8}; NUMa(data); a.process(); a.print(); } 三、系统测试: 四、实践小结: 掌握数据出现次数记录的方法,数据判断方法。 五、源程序清单: 第二十六题: 一、实践任务: 26.建立一个类NUM,随机生成25个字符序列,并为特定序列进行排序。 具体要求如下。 私有数据成员。 intdata[25]: 随机生成25个字符。 公有数据成员。 NUM(intdata): 构造函数,初始化数组data。 voidprocess(): 为数组data进行排序,要求按照ASC 编码进行升序排序。 voidprint(): 输出数组data,每行输出5个字符。 在主函数中定义一个对象,对该类进行测试。 二、系统设计: ⑴类的描述与定义: NUM(chardata1[]){ for(inti=0;i<25;i++) data[i]=data1[i]; voidprocess(); voidprint(); }; ⑵process函数定义: voidprocess(){ for(inti=0;i<24;i++) for(intj=i+1;i<25;i++) if(data[i]>data[j]){ chark=data[i];data[i]=data[j];data[j]=k; } }; ⑶print函数定义: voidprint(){ for(inti=0;i<25;i++){ if(i%5==0)cout< cout< } } ⑷main函数定义: voidmain(){ chardata[25]=”qwertyuiopasdfghjklz”; NUMa(data); a.process(); a.print(); } 三、系统测试: 四、实践小结: 掌握随机生成数组的方法,升序降序排列方法。 五、源程序清单:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程 实践 作业