欢迎来到天天文库
浏览记录
ID:1353791
大小:130.50 KB
页数:15页
时间:2017-11-10
《c++程序设计大作业2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《程序设计基础》大作业姓名:学号:班级:成绩:信息科学与工程学院2009年7月5日14程序设计基础大作业1.矩阵的综合运算1.1.需求陈述此程序为设计一套C函数库用于矩阵的计算,实现矩阵的各种计算功能,同时把矩阵的行列和矩阵的元素封装在一起,使关于矩阵的各种信息更加方便被用户运用。1.2.需求分析函数功能需求:项目功能子功能备注Matrix初始化矩阵的初始化initMatrix()矩阵的具体定义为:typedefstruct{size_tline;size_trow;intel[MAX_MATRIX][MAX_MATRIX];}Matrix;初始化为
2、单位矩阵Identity()从文件输入readMatrix()和向文件输出writeMatrix()矩阵运算判断矩阵是否为空:isEmptyMatrix()矩阵加法addMatrix矩阵乘法multiMatrix()求逆矩阵inverseMatrix()求矩阵的转置transMatrix()求矩阵行列式的值数据需求:为提高计算准确性和节约时间,故提前在文件中录入数据,矩阵计算时大多直接调用。1.3.程序设计思想1.3.1数据类型矩阵采用静态的二维整型数组来表示,将矩阵的行数、列数和二维数组封装在一个结构体中。矩阵的上限可用符号常量“MAX_MATRI
3、X”来表示,实际的行和列的项数由结构体中表示行和列的数据项控制。矩阵的具体定义为:#defineMAX_MATRIX100typedef{size_tline;//矩阵的行数size_trow;//矩阵的行数intel[MAX_MATRIX][MAX_MATRIX];//矩阵元素}Matrix;1.3.2功能分析a)矩阵的初始化MatrixinitMatrix(int*a,size_tm,size_tn)功能:用一个m行n列的二维数组a来初始化一个矩阵,把行列和元素封装在一起,该矩阵的值作为返回值,返回值的类型为一个结构体类型。实现思路:矩阵的行数初
4、始化为二维数组的行数,矩阵的列数初始化为二维数组的列数,矩阵的元素初始化为二维数组的元素。返回初始化后的矩阵。b)初始化为单位矩阵MatrixIdentity(size_tm);功能:创建一个m行m列的单位矩阵,矩阵的值作为返回值14,返回值的类型为一个结构体类型。实现思路:矩阵的行和列初始化为相同值,矩阵的对角线元素初始化为1,其余元素初始化为0。返回初始化后的矩阵。c)判断矩阵是否为空:size_tisEmptyMatrix(Matrixa);功能:判断一个矩阵a是否为空,是指某个matrix型变量内是否有数据,即是否已经存储了矩阵;返回值用来表
5、示矩阵的元素个数:矩阵为空则返回0,否则返回矩阵元素个数。实现思路:若矩阵为空,则行列数为0,否则为非0,故可直接返回矩阵的行和列的乘积a->line*a->row。d)从文件输入intreadMatrix(Matrix*a,size_tm,size_tn,FILE*fp);和向文件输出intwriteMatrix(Matrix*a,FILE*fp);功能:从文件fp中读取一个m行n列的矩阵,存入指针a所指示的存储空间内;向文件fp写入指针a所指示的存储空间内的矩阵;返回值均为实际读出(写入)的矩阵元素数目、若不能读或写则返回0。实现思路:从文件读出
6、矩阵时,打开文件,不能读时返回0,否则读出m*n个元素,矩阵的行为m,矩阵的列为n。向文件写入矩阵时,不能写返回0,否则向文件写入m*n个元素,每n个为一行,共m行。e)矩阵加法Matrix*addMatrix(Matrix*a,Matrix*b)矩阵乘法Matrix*multiMatrix(Matrix*a,Matrix*b)功能:把指针a所指示的存储空间内的矩阵与指针b所指示的存储空间内的矩阵向加(相乘),结果放入a所指示的存储空间内,返回值为存储结果的地址。实现思路:实现矩阵的加法时,若两矩阵为空矩阵或对应行列不相等,则不能相加,返回空指针NU
7、LL,否则,对应元素相加,结果放入a中,返回a;实现矩阵的乘法时,若两矩阵为空矩阵或a的列数和b的行数不相等,则不能相乘,返回空指针NULL,否则,a的行数为乘积矩阵的行数,b的列数为乘积矩阵的列数,a的第i行和b的第j列的对应元素的乘积的和为乘积矩阵的i行j列的元素。乘积放入a中,返回乘积矩阵的地址a。关键代码:/*a的第i行和b的第j列的对应元素的乘积的和为乘积矩阵的i行j列的元素*/for(inti=0;irow;k
8、++)c.el[i][j]+=a->el[i][k]*b->el[k][j];}f)求矩阵的转置Matrix
此文档下载收益归作者所有