




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。VC+作业江苏科技大学课程实践报告设计题目:计算机程序设计实践(VC+)设计时间:2012.9.24至2012.9.30学院:电子信息学院专业班级:电气工程及其自动化学生姓名:金成学号1140304316指导老师:张晓如2012年9月实践任务116定义一个方阵类CMatrix,并根据给定算法实现方阵的线性变换。方阵的变换形式为:F=W*fTf为原始矩阵,fT为原始矩阵的转置,w为变换矩阵,这里设定为1001011001101001二、详细设计1、类的描述与定义(1)私有数据成员int(*a)4:a指向方
2、阵数组。intw44:w为变换矩阵。intm:m表示方阵的行和列数。(2)公有成员函数CMatrix(inta4,intm):用给定的参数a和m初始化数据成员a和m;对变换矩阵w进行初始化,要求必须用循环实现。voidTransform():根据上述变换算法,求出变换后的数组形式,存放在原始数组内。voidshow():在屏幕上显示数组元素。CMatrix():释放动态分配的空间。2、主要函数设计在主程序中定义数组intarr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作为原始数组。定义一个CMatrix类对象test,用arr初始化test,完成对该类的测
3、试。三、源程序清单#includeclassCMatrixprivate:int(*a)4;intw44;intm;public:CMatrix(inta4,intm)inti,j;this-a=newintm4;this-m=m;for(i=0;i4;i+)for(j=0;j4;j+)if(i=j|i+j=4-1)wij=1;elsewij=0;for(i=0;im;i+)for(j=0;jaij=aij;voidTransform();voidshow();CMatrix()if(a)deletea;voidCMatrix:Transform()inti,j,k;for(i=0;im;i+
4、)for(j=i;j4;j+)k=aij,aij=aji,aji=k;intsum;intturn44;for(i=0;i4;i+)for(j=0;j4;j+)sum=0;for(k=0;k4;k+)sum+=wik*akj;turnij=sum;for(i=0;i4;i+)for(j=0;j4;j+)aij=turnij;voidCMatrix:show()for(inti=0;im;i+)for(intj=0;j4;j+)coutaijt;coutendl;voidmain()intarr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;CMatrixtes
5、t(arr,4);cout原矩阵为:endl;test.show();test.Transform();cout经线性变换后的矩阵为:endl;test.show();四、实践小结应熟练掌握矩阵的乘法方式。五、运行结果实践任务213建立一个类MOVE,对数组中元素进行循环换位,即每个元素后移三位,最后三个元素移到最前面。二、详细设计1、类的描述与定义(1)私有数据成员intarray20:一维整型数组。intn:数组中元素的个数。(2)公有成员函数MOVE(intb,intm):构造函数,初始化成员数据。voidchange():进行循环换位。voidprint():输出一维数组。2、主要函数
6、设计在主程序中用数据21,65,43,87,12,84,44,97,32,55对该类进行测试。三、源程序清单#includeclassMOVEprivate:intarray20;intn;public:MOVE(intb,intm)for(inti=0;im;i+)arrayi=bi;n=m;voidchange();voidprint();voidMOVE:change()inttem3;inti=0;while(i3)tem2-i=arrayn-1-i;i+;for(i=0;in-3;i+)arrayn-1-i=arrayn-1-3-i;for(i=0;i3;i+)arrayi=temi
7、;voidMOVE:print()for(inti=0;in;i+)coutarrayit;coutendl;voidmain()ints=21,65,43,87,12,84,44,97,32,55;intn=sizeof(s)/sizeof(int);MOVEtest(s,n);test.print();test.change();test.print();四、实践小结利用临时数组先保存后3位,再依次把数放入对应位。五、运行结果实践任务310定义一个字符串类CString,并设计一个算法实现,给定关键字str1在字符串str中出现时用关键字str2进行替换的功能。二、详细设计1、类的描述与定
8、义(1)私有数据成员char*str;原始字符串。char*str1;目标关键字。char*str2;替换关键字。intflag;标记替换是否完成替换。(2)公有成员函数CString(char*s,chars1,char*s2):用给定的参数s、s1和s2相对应的初始化数据成员str、str1和str2。flag设置缺省0。voidReplace():判断str字符串中是否出现str1,若出现就用str2替换,否则什么都不做。若替换成功了标记flag为1,若替换不成功则标记flag为0。voidShow():若替换成功,则在屏幕上显示目标关键字、替换关键字和替换后的原始字符串;若不成功则显示
9、原始字符串。CString():释放动态分配的空间。2、主要函数设计在主程序中定义字符串chars=”Iamstudent,youarestudenttoo,weareallstudent.”作为原始字符串,定义chars1=”student”作为目标关键字,定义chars2=”teacher”作为替换关键字。定义一个CString类对象test,用s,s1和s2初始化test,完成对该类的测试。三、源程序清单#include#includeclassCStringprivate:char*str;char*str1;char*str2;intflag;public:CString(char*
10、s,chars1,char*s2)str=newcharstrlen(s)+strlen(s2)+strlen(s1)+1;str1=newcharstrlen(s1)+1;str2=newcharstrlen(s2)+1;strcpy(str,s);strcpy(str1,s1);strcpy(str2,s2);flag=0;voidReplace();voidShow();CString()if(str)deletestr;if(str1)deletestr1;if(str2)deletestr2;voidCString:Replace()inti=0;intk=0,count=0;whi
11、le(stri)while(stri!=str10&stri)i+;if(istrlen(str)if(strncmp(str+i,str1,strlen(str1)=0)k=1;if(k)char*turn=newcharstrlen(str)+strlen(str1)+strlen(str2)+1;strncpy(turn,str,i);turni=0;strcat(turn,str2);strcat(turn,str+i+strlen(str1);strcpy(str,turn);deleteturn;i=i+strlen(str2);k=0;count+;if(count)flag=1
12、;voidCString:Show()if(flag)cout目标关键字:str1n替换关键字:str2n替换后的原始字符串:strendl;elsecout原始字符串:strendl;voidmain()chars=Iamstudent,youarestudenttoo,weareallstudent.;chars1=student;chars2=teacher;CStringtest(s,s1,s2);test.Replace();test.Show();四、实践小结利用临时字符数组,进行字符替代。五、运行结果实践任务48建立一个MATRIX,生成并显示一个螺旋方阵。螺旋方阵如下图所示,起
13、始数置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。12345171819624252072322218131211109二、详细设计1、类的描述与定义(1)私有数据成员inta2020:二维整型数组存放螺旋方阵。intstartnum:螺旋方阵的起始数。intn:存放方针的层数。(2)公有成员函数MATRIX(ints,intm):构造函数,初始化成员数据startnum和n。voidprocess():生成起始数为startnum的n行螺旋方阵。voidprint():输出螺旋方阵。2、主要函数设计在主程序中定义MATRIX类的对象t对该类进行测试。三、源程序
14、清单#includeclassMATRIXprivate:inta2020;intstartnum;intn;public:MATRIX(ints,intm)startnum=s;n=m;voidprocess();voidprint();voidMATRIX:process()/生成起始数为startnum的n行螺旋方阵;inti,j;intk;intturn=startnum;for(k=1;k=n/2;k+)for(i=k-1,j=k-1;jn-(k-1);j+)aij=turn+;j-;turn-;for(;i=k-1;j-)aij=turn+;j+;turn-;for(;i=k;i-
15、)aij=turn+;an/2(n-1)/2=n*n-1+startnum;voidMATRIX:print()inti,j;for(i=0;in;i+)for(j=0;jn;j+)coutaijt;coutendlendl;voidmain()ints,m;coutsm;MATRIXt(s,m);cess();t.print();四、实践小结发现本质的逻辑关系,利用循环语句实现。五、运行结果实践任务46定义一个字符串类String,实现判断该字符串是否为回文字符串。所谓回文字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。二、详细设计1、类的描述与定义(1)私有数据成员c
16、har*str;inty:标记是否为回文字符串。(2)公有成员函数String(char*s):构造函数,用给定的参数s初始化数据成员str。y初始化为0。voidhuiwen():判断str所指向的字符串是否为回文字符串。voidshow():在屏幕上显示字符串。2、主要函数设计在主程序中定义字符串chars=”ababcedbaba”作为原始字符串。定义一个String类对象test,用s初始化test,完成对该类的测试。三、源程序清单#include#includeclassStringprivate:char*str;inty;public:String(char*s)intn=str
17、len(s);str=newcharn+1;strcpy(str,s);y=0;voidhuiwen();voidshow();String()if(str)deletestr;voidString:huiwen()intn,judge=0;n=strlen(str);for(inti=0;i(n/2);i+)if(stri=strn-1-i)judge+;if(judge=i)y=1;voidString:show()if(y=1)couty=1,该字符串是回文数strendl;elsecouty=0,该字符串不是回文数strendl;voidmain()/测试;chars=ababcedb
18、aba;Stringtest(s);test.huiwen();test.show();四、实践小结掌握判断回文字符串的一般形式。五、运行结果实践任务54建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。二、详细设计1、类的描述与定义(1)私有数据成员int*array:一维整型数组。intn:数组中元素的个数。(2)公有成员函数MOVE(intb,intm):构造函数,初始化成员数据。voidexchange():输出平均值,并将数组中的元素按要求重新放置。voidprint():输出一维数组。MOVE():析构函数。2、主要函数设计在主程序中用数据21,65,43,87,12,8
19、4,44,97,32,55对该类进行测试。三、源程序清单#includeclassMOVEprivate:int*array;intn;public:MOVE(intb,intm)array=newintm;n=m;for(inti=0;im;i+)arrayi=bi;voidexchange();voidprint();MOVE()if(array)deletearray;voidMOVE:exchange()floatave=0;for(inti=0;in;i+)ave+=arrayi;ave/=n;cout平均值为aveendl;intmax,min;max=min=array0;int
20、m;for(i=0,m=0;i=max)m=i,max=arrayi;intl;for(i=0,l=0;in;i+)if(arrayimax)l=i,max=arrayi;i=arraym,arraym=arrayl,arrayl=i;voidMOVE:print()for(inti=0;in;i+)coutarrayi;voidmain()inttext=21,65,43,87,12,84,44,97,32,55;intnum;num=sizeof(text)/sizeof(int);MOVEs(text,num);s.print();coutendl;s.exchange();s.prin
21、t();四、实践小结学会求数组中最大元素与最小元素方法,并实现交换。五、运行结果实践任务63建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。二、详细设计1、类的描述与定义(1)私有数据成员floatarray20:一维整型数组。intn:数组中元素的个数。(2)公有成员函数MOVE(floatb,intm):构造函数,初始化成员数据。voidaverage():输出平均值,并将数组中的元素按要求重新放置。voidprint():输出一维数组。2、主要函数设计在主程序中用数据1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3对该类进行测试。三、源程序清单#includeclassMOVEprivate:floatarray20;intn;public:MOVE(floatb,intm)for(inti=0;im;i+)arrayi=bi;n=m;voidaverage();voidprint();MOVE();voidMOVE:average()floatave=0;inti,j;for(i=0;in;i+)ave+=arrayi;ave/=n;coutaveendl;floatturn20;j=0;for(i=0;in;i+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 面肌痉挛的护理诊断和措施
- 隧道工程工作总结
- 4.7 第1课时 相似三角形中特殊对应线段的性质课件-北师大版数学九年级上册
- 甘肃省张掖市高台第一中学2025年高三语文试题二模试题含解析
- 2025年广西名校高三教学质量监测(一)物理试题含解析
- 辽宁轨道交通职业学院《SoftwareEngneerng(软件工程)》2023-2024学年第二学期期末试卷
- 天津市宁河区芦台第一中学2025年高三下学期模拟检测试题英语试题含解析
- 衡水学院《跨境电商物流实务》2023-2024学年第一学期期末试卷
- 长春工业大学人文信息学院《园艺植物生理学》2023-2024学年第二学期期末试卷
- 中国人民公安大学《魅力化学》2023-2024学年第二学期期末试卷
- TCUWA50054-2023钢结构装配式污水处理设施技术规程
- 24秋国家开放大学《经济法学》形考任务(记分作业)1-4参考答案
- 诺如病毒课件教学课件
- 2024年国家公务员考试《行测》真题卷(副省级)答案及解析
- 2024年重庆市中考数学真题卷(A)及答案解析
- 小学道德与法治诚信教育
- 天津市部分区2022-2023学年七下期中考试数学试卷(解析版)
- 阴道镜在阴道萎缩性疾病的诊断
- 北京市《配电室安全管理规范》(DB11T 527-2021)地方标准
- 2025年电工(技师)考试100题及答案
- 《遥感原理与应用》全册配套完整课件
评论
0/150
提交评论