计算机程序设计实践剖析.docx
- 文档编号:25050351
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:21
- 大小:101.64KB
计算机程序设计实践剖析.docx
《计算机程序设计实践剖析.docx》由会员分享,可在线阅读,更多相关《计算机程序设计实践剖析.docx(21页珍藏版)》请在冰豆网上搜索。
计算机程序设计实践剖析
江苏科技大学
课程实践报告
设计题目:
计算机程序设计实践(VC++)
设计时间:
2015.3.9至2015.3.16
学院:
数理学院
专业班级:
13级信息与计算科学1班
学生姓名:
陈明敏学号1340501101
指导老师:
华伟
2015年5月1日
一、实践任务
任务一:
试建立一个类SP,求
,另有辅助函数power()用于求
。
具体要求如下。
(1)私有数据成员。
Intn,k:
存放公式中n和k的值。
(2)公有成员函数。
SP(intn1,intk1):
构造函数,初始化成员数据n和k。
intpower(intm,intn):
求
。
intfun():
求公式的累加和。
voidshow():
输出求得的结果。
二、源程序清单
#include
classSP{
private:
intn,k;
public:
SP(intn1,intk1);
intpower(intm,intn);
intfun();
voidshow();
};
SP:
:
SP(intn1,intk1){
n=n1;
k=k1;
}
intSP:
:
power(intm,intn){
inta=m;
for(inti=1;i { a*=m; } returna; } intSP: : fun(){ inta=0; for(inti=1;i<=n;i++) { a+=power(i,k); } returna; } voidSP: : show() { cout< } voidmain() {inta;intb; cin>>a>>b; SPs(a,b); s.fun(); s.show(); } 三、实践小结 本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,本题还使用了递归的方法 4、运行结果 一、实践任务 任务二: 建立一个STRING类,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。 例如,将字符串“abcde”交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。 具体要求如下。 (1)私有数据成员。 charstr1[60]: 存放被插入的字符串。 charstr2[40]: 存放待插入的字符串。 charstr3[100]: 存放插入后的字符串。 (2)公有成员函数。 STRING(char*s1,char*s2): 构造函数,用s1和s2初始化str1和str2。 voidprocess(): 将str2中的字符串插入到str1中。 voidprint(): 输出插入后的字符串。 (3)在主程序中定义STRING类的对象test对该类进行测试。 2、源程序清单 #include #include classSTRING{ private: charstr1[80]; charstr2[40]; public: STRING(char*s1,char*s2); voidprocess(); voidprint(); }; STRING: : STRING(char*s1,char*s2){ strcpy(str1,s1); strcpy(str2,s2); } voidSTRING: : process(){ chars[80];char*p=str1;char*q=str2; intn=2*strlen(str1)-1; for(inti=0;i s[i]=*p++; i++; s[i]=*q++; } s[i]='\0'; strcpy(str1,s); } voidSTRING: : print(){ cout< } voidmain(){ chars1[80]={"ABCDE"},s2[40]={"abcde"}; STRINGtest(s1,s2); test.process(); test.print(); } 3、实践小结 本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,还让我更熟练掌握了有关字符串的排序的求解方式。 四、运行结果 一、实践任务 任务三: 建立一个类MOVE,对数组中元素进行循环换位,即每个元素后移三位,最后三个元素移到最前面。 具体要求如下。 (1)私有数据成员。 intarray[20]: 一维整型数组。 intn: 数组中元素的个数。 (2)公有成员函数。 MOVE(intb[],intm): 构造函数,初始化成员数据。 voidchange(): 进行循环换位。 voidprint()输出一维数组。 (3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。 二、源程序清单: #include classMOVE { private: intarray[20]; intn; public: MOVE(intb[],intm); voidchange(); voidprint(); }; MOVE: : MOVE(intb[],intm){ for(inti=0;i { array[i]=b[i]; } n=m; } voidMOVE: : change(){ inta=n; intb[3]; for(inti=0;i<3;i++){ b[i]=array[a-3]; a++; } for(intj=n-1;j>=3;j--){ array[j]=array[j-3]; } for(intk=0;k<3;k++){ array[k]=b[k]; } } voidMOVE: : print(){ for(inti=0;i cout< cout< } voidmain(){ inta[10]={21,65,43,87,12,84,44,97,32,55}; MOVEs(a,10); s.change(); s.print(); } 三、实践小结 本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,还让我更熟练掌握了有关数组中元素进行循环换位的求解方式。 四、运行结果 一、实践任务 任务四: 定义一个类SIN,求 。 具体要求如下。 (1)私有数据成员。 doublex: 输入公式中x的值,求sin(x)。 intn: 输入公式中n的值。 (2)公有成员函数。 SIN(doublex,intn): 构造函数,用于初始化x和n的值。 doublepower(intq): 求q! 的值。 doublemi(doublem,intn): 求 的值。 doublefun(): 用于求sin(x)的值。 voidshow(): 输出求得的结果。 (3)在程序中定义对象test,对该类进行测试。 2、源程序清单: #include classSIN{ private: doublex; intn; public: SIN(doublex,intn); doublepower(intq); doublemi(doublem,intn); doublefun(); voidshow(); }; SIN: : SIN(doublex,intn){ this->x=x; this->n=n; } doubleSIN: : power(intq){ doubles=1; intc=1; for(;c<=q;c++) { s*=c; } returns; } doubleSIN: : mi(doublem,intn){ doubles=m; intc=1; for(;c s*=m; } returns; } doubleSIN: : fun(){ doubles=0; doublek=-1; for(intm=1;m<=n;m++){ k*=(-1); s+=k*mi(x,2*m-1)/power(2*m-1); } returns; } voidSIN: : show() { cout< } voidmain() { inta,b; cout<<"输入两个数整数: "; cin>>a>>b; SINtest(a,b); test.fun(); test.show(); } 三、实践小结 本题用了类的方法求解,让我学会了用构造函数和析构函数写程序,还让我更熟练掌握了递归的方法。 四、运行结果 一、实践任务 任务五: 定义一个方阵类Array,实现对方阵进行逆时针 旋转。 如图5-4所示。 图5-4对方阵进行逆时针旋转 具体要求如下。 (1)私有数据成员。 Inta[4][4]: 用于存放方阵。 (2)公有成员函数。 Array(inta1[][4],intn): 构造函数,用给定的参数a1初始化数据成员a。 voidxuanzhuan(): 实现对方阵a进行逆时针 的旋转。 voidshow(): 在屏幕上显示组元素。 (3)在主程序中定义数组intb[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};作为原始数组。 定义一个Array类对象test,用b初始化test,完成对该类的测试。 二、源程序清单: #include classArray{ private: inta[4][4]; public: Array(inta1[][4],intn); voidxuanzhuan(); voidshow(); }; Array: : Array(inta1[][4],intn){ for(inti=0;i for(intj=0;j<4;j++) { a[i][j]=a1[i][j]; } } } voidArray: : xuanzhuan(){ intb[4][4]; for(inti=0;i<4;i++){ for(intj=0;j<4;j++) { b[j][i]=a[i][j]; } } for(i=0;i<4;i++){ for(intj=0;j<4;j++) { a[i][j]=b[3-i][j]; } } } voidArray: : show(){ for(inti=0;i<4;i++){ for(intj=0;j<4;j++) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 程序设计 实践 剖析