0508190114车向前 矩阵旋转反射资料

上传人:f****u 文档编号:128284888 上传时间:2020-04-20 格式:DOC 页数:15 大小:93.50KB
返回 下载 相关 举报
0508190114车向前 矩阵旋转反射资料_第1页
第1页 / 共15页
0508190114车向前 矩阵旋转反射资料_第2页
第2页 / 共15页
0508190114车向前 矩阵旋转反射资料_第3页
第3页 / 共15页
0508190114车向前 矩阵旋转反射资料_第4页
第4页 / 共15页
0508190114车向前 矩阵旋转反射资料_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《0508190114车向前 矩阵旋转反射资料》由会员分享,可在线阅读,更多相关《0508190114车向前 矩阵旋转反射资料(15页珍藏版)》请在金锄头文库上搜索。

1、C+ 课程设计矩阵的旋转反射指导老师: 张微设计者: 车向前学号 0508190114程序功能介绍实现矩阵的旋转反射程序程序设计要求1)设计一个矩阵类,将相应的函数和数据封装到类中,简化程序。2)修改程序结构,使程序可以反复执行,直至按键退出为止。3)本程序用数组表示5*5矩阵,将其改为根据输入矩阵的大小动态分配空间nn来放置数据,其中n为用户可输入的任意整数。4)增加类的构造函数和成员函数,使得矩阵数据既可以用在对象初始化的赋值,也可以通过键盘赋值,还可以通过读数据文件输入。5)用模板的形式改写矩阵数据类型,使得矩阵中的数据既可以是整型数据,也可以是浮点型数据,执行程序时,分别定义一个整型矩

2、阵和一个浮点型矩阵进行验证。6)增加程序功能,除实现n*n矩阵的旋转反射外,还增加a求矩阵的摸;b可以通过键入的行号与列号,任意修改矩阵中的元素值;c可以给定矩阵中的某一元素值,查询其所在的行号和列号,关键函数说明void Show(int k=1); /输出矩阵 void R90(); /旋转90度 void R180(); /旋转180度 void R270(); /旋转270度 void ReflectX(int k=1); /X轴反射 void ReflectY(int k=1); /Y轴反射 void ReflectO(int k=1); /对角线反射 int LookForData

3、(); /查找 int ModifyData(); /修改 int ModefyData(int row,int column); /修改 double Range(); /求模 void InputFromFile(char *filename); /从文件中输入矩阵 void InputFromKeyboard(); /从键盘中输入矩阵主要思路定义出类来,紧接着把主函数弄出来,再按调用顺序把每个函数依次列出来,对教材原程序增加的很多。个人设计心得:坦白的说,上学期我的C+成绩其实不怎么样,有很多的地方虽然能够做出来,但深究其中的缘由,我却是一知半解的,刚开始的时候,源代码需要我来阅读,虽然

4、花了很长的时间,但体会不是特别深。后来我把基础教材对照着源代码阅读,效果感觉好多了。但真正上机操作时,就在很多方面上出现了问题,虽然自己的能力最后还是解决了,但接下来的增加功能上却又感到了力不从心。在这次编程的过程中,我不断的在运行中发现自己的错误,有的检查出来的错误我一时看不出来时怎么回事,就又回归课本,深深地研究其中的关系,并问了舍友,说实话,与其他同学相比,我选的这个程序难度其实不大,但由于我上学期基础不是太好,所以大部分时间都耗在改错误上了,所以我刚开始尝试做过的四则运算课程中途无奈的放弃了。程序的思路其实很简单明确,但问题就在于难以看明白编译查错的那一堆错误怎样改动,有时就那么几个错

5、误,但绞尽脑汁花好长时间挨个试,不停 的翻书才能找出来,一次是减少到出现14个错误,最后实在是怎么也看不懂哪里错了,索性把标注的部分删掉重新写了一遍,居然只剩了1个错误,真是惊喜, 还有临近结束时本来已经零个错误了,但发现求模的要求根本没达到,所以只好再重新改下去。在课程设计创新方面,由于程序的确复杂度不高,以及时间并不是很充足,所以只是尽善尽美的完成了课程设计的基本要求。在以后的时间里还需要继续完善,毕竟一个完美的程序完成需要很长的调试时间,要付出很多精力。在此,向大四的贾磊表示谢意,他借给我他的宏基笔记本,使不用再去机房抢座位了,而且我还能在晚上下了晚自习在宿舍再次修改程序,这大大增加了我

6、的可支配时间, 看着自己费尽辛劳所编的程序最后终于开花结果能够流畅的运行并满足了所有的要求,我心中的自豪感油然而生,紧接着又把界面添加了一点,使之更完美,以喜悦的心情写下了这份报告书,这么多天的辛勤和脑力折磨终于有了成果,黄天不负有心人,可以说,这次编程使我上学期很多不太明白的地方有了新的理解,比如析构函数,数组等方面,为了能取得好成绩,我花了恒多时间来做他。最后,对我的任课指导老师张微表示由衷的敬意,谢谢, 程序各部分主要程序的详解如下所示:#include #include #include #include templateclass CMatrixint nNum;T*Mat;T*Ma

7、tR;T*MatRefl;T*Matr;T*Matre;public:CMatrix();CMatrix(int n);CMatrix();void Show(int k=1);/输出矩阵void R90();/旋转90度void R180();/旋转180度void R270();/旋转270度void ReflectX(int k=1);/X轴反射void ReflectY(int k=1);/Y轴反射void ReflectO(int k=1); /对角线反射int LookForData();/查找int ModifyData();/修改int ModefyData(int row,i

8、nt column); /修改double Range();/求模void InputFromFile(char *filename); /从文件中输入矩阵void InputFromKeyboard(); /从键盘中输入矩阵;/*/按照要求设计的那个矩阵类,将相应的函数和数据封装到类中,简化程序/void main()/这就是主函数啦/int r,c,k,n;int choice,choice1,choice2,choice3,choice4,choice5;CMatrix M;docoutnnnttt矩阵旋转反射主菜单;coutntt1)从文件中输入矩阵ntt2)从键盘中输入矩阵ntt3)

9、使用默认的矩阵形式ntt4)退出choice;switch(choice)case 1: char Filename20;coutFilename;M.InputFromFile(Filename);break;case 2: M.InputFromKeyboard();break;case 3: cout默认的矩阵为:endl;M.Show(1);break;case 4: break;default: choice=4; break;if(choice!=4)coutnttt子菜单;coutntt1)旋转ntt2)反射ntt3)其他操作choice1;switch(choice1)case

10、 1: coutntt旋转度:nt1)90度nt2)180度nt3)270度nt4)退出;coutchoice2;switch(choice2)case 1:M.R90();break;case 2:M.R180();break;case 3:M.R270();break;case 4:break;default:choice2=4;break;break;case 2: coutnt1)X轴反射nt2)Y轴反射nt3)对角线反射choice3;switch(choice3)case 1:coutk;if(k=1) M.ReflectX(1);else M.ReflectX(2);break;case 2:coutk;if(k=1) M.ReflectY(1);else M.ReflectY(2);break;case 3: coutk;if(k=1) M.ReflectO(1);else M.ReflectO(2);break;case 4:break;default: choice3=4;break;break;case 3: coutnt1)查找nt2)替换nt3)求模choice4;switch(choice4)case 1: M.LookForData();b

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号