C课程设计矩阵的旋转反射_第1页
C课程设计矩阵的旋转反射_第2页
C课程设计矩阵的旋转反射_第3页
C课程设计矩阵的旋转反射_第4页
C课程设计矩阵的旋转反射_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成 绩 评 定 表学生姓名黄荣泽明班级学号1103050135专 业计算机科学与技术课程设计题目矩阵的旋转反射评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院信息科学与工程学院专 业计算机科学与技术学生姓名黄荣泽明班级学号 1103050135课程设计题目矩阵的旋转反射实践教学要求与任务: 输入矩阵的行列,选择旋转方式,输出旋转后的矩阵。 (1)绕x轴旋转; (2)绕y轴旋转; (3)绕原点旋转。工作计划与进度安排:第17周星期一:设计任务分析和总体设计星期二:软件算法和流程设计星期三、四、五:软件编码实现第18周周一:软件总体调试周二:软件运行分析周三:答辩、验收程序周四:答辩、

2、验收程序周五:书写课程设计报告,提交指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日目 录1 题目内容及设计要求12 总体设计12.1 总体功能框图12.2 类的设计说明12.3 主要算法流程图13程序清单及注释14运行结果与分析15总结26参考文献21 题目内容及设计要求输入矩阵的行列,选择旋转方式,输出旋转后的矩阵。(1)绕x轴旋转;(2)绕y轴旋转;(3)绕原点旋转。2 总体设计2.1 总体功能框图题目的简洁给编程者提供了很大的发挥空间,实际上,从接手此题的刚开始,编程者就将目光放在了二维数组上,因为用二维数组作为矩阵的载体再好不过了,通过修

3、改数组的元素的下标就可以实现对元素的操作即旋转反射。实现矩阵的旋转反射框图:绕原点旋转绕y轴旋转绕x轴旋转 cmatrix-row:static int-line:line-mat100100-matr100100+inputfromkeyboard():void2.2 类的设计说明 开始2.3 主要算法流程图输入选项switch(choice)case 2(输入函数)inputfromkeyboard()case 3(输入函数)inputfromkeyboard()case 1(输入函数)inputfromkeyboard() reflecto() 原点旋转 reflecty() y轴旋转

4、reflectx() x轴旋转show1 输出原矩阵show1 输出原矩阵show1 输出原矩阵show2 输出旋转后矩阵show2 输出旋转后矩阵show2 输出旋转后矩阵结束3、程序清单及注释#include <iostream> #include <stdio.h>using namespace std;class cmatrix /定义矩阵类 static int row,line; /定义静态变量,接收数组的行与列 int mat 100100; /定义三个二维数组 int matr 100100;public: void inputfromkeyboard(

5、) /从键盘中输入矩阵 cout<<"请输入矩阵的行数:"<<endl; cin>>row; cout<<"请输入矩阵的列数:"<<endl; cin>>line; int i,j; if(row>100) cout<<"数值超过计算范围,请重新输入"<<endl; if(line>100) cout<<"数值超过计算范围,请重新输入"<<endl; if(row<=100&am

6、p;&line<=100) cout<<"请输入数组各成员数据:n" for(i=0;i<row;i+) for(j=0;j<line;j+) cout<<"第"<<i+1<<""<<j+1<<"个数据:" cin>>mat ij; void show1() /输出函数,输出原函数 int i,j; for(i=0;i<row;i+)for (j=0;j<line;j+) if(j>0)

7、cout<<" " cout<<matij; cout<<endl; void show2() /输出函数,输出原函数 int i,j; for(i=0;i<row;i+)for (j=0;j<line;j+) if(j>0) cout<<" " cout<<matrij; cout<<endl;void reflectx() /x轴反射 int i,j; for(i=0;i<row;i+)for (j=0;j<line;j+)matrij=mat ro

8、w-i-1j;cout<<"原矩阵为:"<<endl;show1();cout<<"绕x轴反射后矩阵为:"<<endl;show2();system("pause");void reflecty() /y轴反射 int i,j; for(i=0;i<row;i+)for (j=0;j<line;j+)matrij=mat iline-j-1;cout<<"原矩阵为:"<<endl;show1();cout<<"

9、绕y轴反射后矩阵为:"<<endl;show2();system("pause");void reflecto() /原点反射 int i,j; for(i=0;i<row;i+)for (j=0;j<line;j+)matrij=mat row-i-1line-j-1;cout<<"原矩阵为:"<<endl;show1();cout<<"作原点反射后矩阵为:"<<endl;show2();system("pause");int cm

10、atrix:line=0; /在类外对静态成员进行初始化int cmatrix:row=0;void main()int choice; /让用户选择功能cmatrix opp; /定义类指针,以便于引用成员函数cout<<" *矩阵的旋转反射*"<<endl;cout<<"*制作者:黄荣泽明 学号:1103050135*"<<endl;cout<<"请对矩阵进行如下操作"<<endl;cout<<"1)进行x轴反射n" <&

11、lt;"2)进行y轴反射n" <<"3)进行原点反射n" <<"4)什么都不做,我要退出n"cout<<"*请输入数字对矩阵进行操作*n"<<endl;cin>>choice;switch(choice)case 1: opp.inputfromkeyboard(); opp.reflectx(); break; case 2: opp.inputfromkeyboard(); opp.reflecty(); break; case 3: opp.inpu

12、tfromkeyboard(); opp.reflecto(); break; case 4: break;3 运行结果与分析 图4.1 操作选择界面 图4.2 绕x轴旋转 图4.3 绕y轴旋转 图4.4 绕原点旋转4 总结此题思路并不难摸清,关键在于将解决问题的方法菜单化,逻辑化。在解决此问题的过程中主要有以下几个困难:1.输入函数中数组行列大小的输入保存以至于之后的引用2. 数组的输入及输出方式3. 从数学角度对矩阵的修改其中,第一个问题是困扰我时间最长的,由于行变量row与列变量line需要由用户输入并在初始化后保持不变,于是想到了用静态变量来解决这个问题。第二个问题的解决沿用了c语言中一贯的以for循环输入并输出数组中间那个每一个元素的方式,不难解决。第三个问题只需稍加思考,便能总结出规律。总体来说,解决本题还是很容易的,对于对矩阵的修改,旋转反射,查找修改等,都是建立在二位数组这个载体上的,本程序可以进行如下扩展:1. 可以从文件中输入数组2. 可以进行矩阵的求模运算3. 可以对矩阵中的任意一个元素进行查找,修改,删除最后,我要感谢我的c+语言授课老师李老师及实验老师刘老师,感谢他们的孜孜教诲,我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论