矿大徐海软件开发基础实践报告--

上传人:jiups****uk12 文档编号:91015134 上传时间:2019-06-20 格式:DOC 页数:19 大小:137.51KB
返回 下载 相关 举报
矿大徐海软件开发基础实践报告--_第1页
第1页 / 共19页
矿大徐海软件开发基础实践报告--_第2页
第2页 / 共19页
矿大徐海软件开发基础实践报告--_第3页
第3页 / 共19页
矿大徐海软件开发基础实践报告--_第4页
第4页 / 共19页
矿大徐海软件开发基础实践报告--_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《矿大徐海软件开发基础实践报告--》由会员分享,可在线阅读,更多相关《矿大徐海软件开发基础实践报告--(19页珍藏版)》请在金锄头文库上搜索。

1、中国矿业大学徐海学院软件开发基础实践报告姓 名: 学 号: 专 业: 计算机科学与技术 指导教师: 职 称: 2012 年 6 月 30 徐州姓名/学号:班级:一、程序来源:网络二、程序项目名称:矩阵运算3、 程序原理:此程序为矩阵运算的相关程序,用来计算包括两矩阵的加、减、乘运算,求矩阵的转置矩阵、最大值元素、最小值元素及对角线元素之和等运算。此程序涉及了老师讲授的多个知识点,包括:for、if、printf及scanf 等语句,顺序、选择、循环等结构。四、程序功能:利用for、if、printf及scanf 等语句来实现所需功能。输入矩阵a和b的元素之后,依次计算:程序一:计算a+b矩阵;

2、程序二:计算a-b矩阵;程序三:计算a*b矩阵;程序四:计算a的转置矩阵;程序五:计算a矩阵的最小值元素;程序六:计算a矩阵的最大值元素;程序七:计算a矩阵的主对角线元素之和;程序八:计算a矩阵的副对角线元素之和;程序九:计算a矩阵的上三角元素之和;程序九:计算a矩阵的下三角元素之和;五、程序内容(输入输出): 运行结果如图所示:6、 数据流分析(定义的变量,类型,数组,类型,结构体):七、程序代码分析(每个函数和代码模块的功能作用分析):#includestdio.hvoid main() int a33,b33,c33, int i,j,k,s,max,min,sum1=0,sum2=0,

3、sum3=0,sum4=0; printf(矩阵运算n); printf(n); printf(请输入a矩阵元素:n); for(i=0;i3;i+) /*通过二重循环给a矩阵的元素赋值*/ for(j=0;j3;j+) scanf(%4d,&aij); printf(a矩阵:n); for(i=0;i3;i+) for(j=0;j3;j+) printf(%6d,aij); printf(n); printf(n); printf(请输入b矩阵元素:n); for(i=0;i3;i+) /*通过二重循环给b矩阵的元素赋值*/ for(j=0;j3;j+)scanf(%4d,&bij); pr

4、intf(b矩阵:n); for(i=0;i3;i+) for(j=0;j3;j+) printf(%6d,bij); printf(n); printf(n); printf(程序一:计算a+b矩阵n); /*计算a+b矩阵并输出*/ for(i=0;i3;i+) for(j=0;j3;j+) cij=aij+bij; printf(%6d,cij); printf(n); printf(n); printf(程序二:计算a-b矩阵n); /*计算a-b矩阵并输出*/ for(i=0;i3;i+) for(j=0;j3;j+) cij=aij-bij; printf(%6d,cij); pr

5、intf(n); printf(n); printf(程序三:计算a*b矩阵n); /*计算a*b矩阵(c矩阵)并输出*/ for(i=0;i3;i+) /*最外层循环控制c矩阵的行数*/ for(j=0;j3;j+) /*次外层循环控制c矩阵的列数*/ for(k=s=0;k3;k+) /*计算c矩阵的每个元素的值*/ s+=aik*bkj; cij=s; for(i=0;i3;i+) for(j=0;j3;j+) printf(%6d,cij); printf(n); printf(n); printf(程序四:计算a的转置矩阵n); /*计算a的转置矩阵并输出*/ for(i=0;i3;

6、i+) for(j=0;j3;j+) cji=aij; for(i=0;i3;i+) for(j=0;j3;j+) printf(%6d,cij); printf(n); printf(n); printf(程序五:计算a矩阵的最小值元素n); /*计算a矩阵的最小值元素min并输出*/ min=a00; for(i=0;i3;i+) for(j=0;j3;j+) if(aijmin) min=aij; printf(min=%dn,min); printf(n); printf(程序六:计算a矩阵的最大值元素n); /*计算a矩阵的最大值元素max并输出*/ max=a00; for(i=0

7、;i3;i+) for(j=0;jmax) max=aij; printf(max=%dn,max); printf(n); printf(程序七:计算a矩阵的主对角线元素之和n); /*计算a矩阵的主对角线元素之和sum1并输出*/ for(i=0;i3;i+) for(j=0;j3;j+) if(i=j) sum1+=aij; printf(sum1=%dn,sum1); printf(n); printf(程序八:计算a矩阵的副对角线元素之和n); /*计算a矩阵的副对角线元素之和sum2并输出*/ for(i=0;i3;i+) for(j=0;j3;j+) if(i+j=2) sum2

8、+=aij; printf(sum2=%dn,sum2); printf(n); printf(程序九:计算a矩阵的上三角元素之和n); /*计算a矩阵的上三角元素之和sum3并输出*/ for(i=0;i3;i+) for(j=0;j3;j+) if(ij|i=j) sum3+=aij; printf(sum3=%dn,sum3); printf(n); printf(程序十:计算a矩阵的下三角元素之和n); /*计算a矩阵的下三角元素之和sum4并输出*/ for(i=0;i3;i+) for(j=0;jj|i=j) sum4+=aij; printf(sum4=%dn,sum4); pr

9、intf(n); printf(运算完毕!n); /*运算完毕*/ printf(n);八、控制流分析(源程序整体流程图): printf(计算a+b矩阵:n); for(i=0;i3;i+) for(j=0;j3;j+) cij=aij+bij; printf(%6d); printf(n);九、源代码优点,好处:本程序是通过二叉树的链表方式存储数据,计算二叉树每个结点的频数,利用二叉树的层次遍历,输出二叉树的每个结点的频数,对于较大规模的作业都能很快地得到运行结果。而且整个程序是基于链表和二叉树这种数据结构来实现的,编程风格一致,容易理解。十、总结及心得体会: 通过此次课程设计,使我更加扎

10、实的掌握了有关用层次遍历访问二叉树序列频数的问题。我知道,其实有很多比如像素、图像等等都用到层次遍历来计算它们的频数,由此也为自己第一次踏入这门知识的领域而感到骄傲。虽然在本次课程设计中,我曾遇到过种种问题。抱着对新领域的探索与求知,我一遍一遍的检查,终于找到了问题的所在,也暴露出了前期我在这方面上的知识欠缺与经验不足。实践出真知,通过自己亲自动手制作,使我掌握的知识不再是纸上谈兵。作为一名计算机专业的学生,从最开始学习的高等代数一直到已经即将结束的离散数学。我从终于将所学习的数学知识,在计算机上得到了应用,我觉得有必要对这门课程设计中自己的所感进行一次总结,希望对初学者有一定的帮助与启迪。为

11、什么用面向对象的思想来设计数据结构用面向过程的程序设计方法,来进行数据结构的设计,学习时比较容易理解与掌握。但它的数据一般是事先具体给定的,是为其功能函数服务的,函数起着主导作用。以函数为中心,对于函数的运用并不方便。以排序问题为例,用于排序的函数不少,但对于一个实际问题,究竟应该选择哪一种排序函数,还必须根据实际问题的数据结构来定。对于链表,你总不能选择冒泡函数来进行排序吧。既然以函数为中心对于解决实际问题并不方便,那么,就只能选择以数据为中心,将为数据服务的函数与它绑定在一起,使这些服务于数据的函数成为数据的一部分。这就是面向对象程序设计中类的概念。首先要感谢我的老师给我们提供了这次课程设计的机会,让我将平时所学习的知识更加的系统化。老师给予的指导,提供的支持与帮助,是我能够完成本次课程设计的最主要的原因。我还要感谢给予我帮助的网络论坛上的朋友们,你们提供的宝贵意见,使我的程序能够进一步的优化。最后还要感谢在参考文献中列出的各位编者,你们所写的书在我课程设计完成的道路上给过我无数的指导。这份课程设计,是我对新领域的一次探索,我已经上路了。十一、对源程序过程及方法、手段的改进建议: 基本算法:按照题目要求,是按前进前出来遍历二叉树的,所以必然要用到队列来存储其结点,此题是按层次遍历二叉树,若按先序、中序、后序来遍历二叉树,采用堆栈即可简单实现,在此不在论述

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

当前位置:首页 > 中学教育 > 其它中学文档

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