C++课程设计矩阵的旋转反射.doc

上传人:laozhun 文档编号:2384523 上传时间:2023-02-17 格式:DOC 页数:13 大小:334.50KB
返回 下载 相关 举报
C++课程设计矩阵的旋转反射.doc_第1页
第1页 / 共13页
C++课程设计矩阵的旋转反射.doc_第2页
第2页 / 共13页
C++课程设计矩阵的旋转反射.doc_第3页
第3页 / 共13页
C++课程设计矩阵的旋转反射.doc_第4页
第4页 / 共13页
C++课程设计矩阵的旋转反射.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《C++课程设计矩阵的旋转反射.doc》由会员分享,可在线阅读,更多相关《C++课程设计矩阵的旋转反射.doc(13页珍藏版)》请在三一办公上搜索。

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 #include using namespace std;class CMatrix /定义矩阵类 static int row,line; /定义静态变量,接收数组的行与列 int Mat 100100; /定义三个二维数组 int MatR 100100;public: void InputFromKeyboard() /从键盘中输入矩阵 cout请输入矩阵的行数:row; co

5、ut请输入矩阵的列数:line; int i,j; if(row100) cout数值超过计算范围,请重新输入100) cout数值超过计算范围,请重新输入endl; if(row=100&line=100) cout请输入数组各成员数据:n; for(i=0;irow;i+) for(j=0;jline;j+) cout第i+1j+1Mat ij; void Show1() /输出函数,输出原函数 int i,j; for(i=0;irow;i+)for (j=0;j0) cout ; coutMatij; coutendl; void Show2() /输出函数,输出原函数 int i,j

6、; for(i=0;irow;i+)for (j=0;j0) cout ; coutMatRij; coutendl;void ReflectX() /X轴反射 int i,j; for(i=0;irow;i+)for (j=0;jline;j+)MatRij=Mat row-i-1j;cout原矩阵为:endl;Show1();cout绕x轴反射后矩阵为:endl;Show2();system(pause);void ReflectY() /Y轴反射 int i,j; for(i=0;irow;i+)for (j=0;jline;j+)MatRij=Mat iline-j-1;cout原矩阵

7、为:endl;Show1();cout绕y轴反射后矩阵为:endl;Show2();system(pause);void ReflectO() /原点反射 int i,j; for(i=0;irow;i+)for (j=0;jline;j+)MatRij=Mat row-i-1line-j-1;cout原矩阵为:endl;Show1();cout作原点反射后矩阵为:endl;Show2();system(pause);int CMatrix:line=0; /在类外对静态成员进行初始化int CMatrix:row=0;void main()int choice; /让用户选择功能CMatri

8、x opp; /定义类指针,以便于引用成员函数cout *矩阵的旋转反射*endl;cout*制作者:黄荣泽明 学号:1103050135*endl;cout请对矩阵进行如下操作endl;cout1)进行X轴反射n 2)进行Y轴反射n 3)进行原点反射n 4)什么都不做,我要退出n;cout*请输入数字对矩阵进行操作*nchoice;switch(choice)case 1: opp.InputFromKeyboard(); opp.ReflectX(); break; case 2: opp.InputFromKeyboard(); opp.ReflectY(); break; case 3

9、: opp.InputFromKeyboard(); opp.ReflectO(); break; case 4: break;3 运行结果与分析 图4.1 操作选择界面 图4.2 绕x轴旋转 图4.3 绕y轴旋转 图4.4 绕原点旋转4 总结此题思路并不难摸清,关键在于将解决问题的方法菜单化,逻辑化。在解决此问题的过程中主要有以下几个困难:1.输入函数中数组行列大小的输入保存以至于之后的引用2. 数组的输入及输出方式3. 从数学角度对矩阵的修改其中,第一个问题是困扰我时间最长的,由于行变量row与列变量line需要由用户输入并在初始化后保持不变,于是想到了用静态变量来解决这个问题。第二个问题

10、的解决沿用了C语言中一贯的以for循环输入并输出数组中间那个每一个元素的方式,不难解决。第三个问题只需稍加思考,便能总结出规律。总体来说,解决本题还是很容易的,对于对矩阵的修改,旋转反射,查找修改等,都是建立在二位数组这个载体上的,本程序可以进行如下扩展:1. 可以从文件中输入数组2. 可以进行矩阵的求模运算3. 可以对矩阵中的任意一个元素进行查找,修改,删除最后,我要感谢我的C+语言授课老师李老师及实验老师刘老师,感谢他们的孜孜教诲,我将用成绩来回报老师对我的期望,请允许我在次对两位老师表达由衷的谢意。5 参考文献1李爱华,程磊著. 面向对象程序设计(C+语言) .北京:清华大学出版社,20102刘振安,刘燕君著. C+程序设计课程设计. 北京: 机械工业出版社,20043谭浩强著. C+程序设计实践指导. 北京:清华大学出版社,20054陈清华,朱红主编 Visual C+ 案例精选与编程指导. 南京:东南大学出版社,2003

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号