C语言课设计算矩阵乘积 .docx
精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习沈阳理工高校材料工程 学院运算机程序训练任务书同学姓名: xx 班级: xxxxxxxxx学号: xxxxxxxxxx可编辑资料 - - - 欢迎下载精品名师归纳总结设计题目: 运算两个 5*5 矩阵的乘积 .运算机程序训练题目及要求机械学院 自动化教研室目录一训练目的2二设计要求2三训练题目2四详细内容2一训练目的:运算机程序设计训练是学习完运算机程序设计课程后进行的一 次全面的综合性上机试验.其目的在于为同学供应了一个既动手又动脑, 独立实践的机会,将课本上的理论学问和实际有机的结合起来,锤炼学 生的分析解决实际问题的才能 .提高同学适应实际,实践编程的才能 .二设计要求:1. 依据给定题目独立设计程序,上机调试通过.2. 写出设计报告提交报告的内容如下:1) 题目内容的描述2) 应用程序功能的详细说明3) 输入数据类型、格式和内容限制。4) 主要模块的算法描述以程序流程图的方式给出简要的语言描述5) 终止语6) 程序的源代码清单可编辑资料 - - - 欢迎下载精品名师归纳总结7) 报告的字数 , 不算源代码清单不少于 4 页按规定的模板封面输出 , 不准自定义封面格式提交报告的格式如下:1) 正文宋体小四号字2) 每个自然段开头空两格 . 3)文中英文用新罗马 time new roman,四号4)源程序清单用英文新罗马五号5)提交报告封面使用沈阳理工高校课程设计(论文)专用封面注:对于程序中未能实现的部分需要加以说明. 对于程序中所参考的部分代码需要加以声明,并说明出处 .三训练题目:题目:运算两个 5*5 矩阵的乘积 .要求:两个 5*5 矩阵的数据由数据文件输入,运算乘积存入另一个文件后再显示出 .四详细内容 :一 题目内容描述:通过文件读入的方式向程序输入两个5*5 矩阵的数据,运算这两个矩阵的乘积,将乘积写入到磁盘文件,并且显示在屏幕上.(1)读入信息:从 a.txt 和 b.txt 中得到两个矩阵的数据,同时输出到屏幕上.(2) 运算乘积:通过程序求出矩阵a和 b 的乘积,得到矩阵 c.(3) 存盘:将乘积(即矩阵 c)写入到已建立的文件 c.txt 中.(4) 显示:将乘积(即矩阵 c)输出到屏幕上 .(二)程序功能说明应用数据类型:程序设计一般由两部分组成:算法和数据结构,合理的选择和实现一个数据结构和处理这些数据结构具有同样的重要性.主要包括如下:1. #include<stdio.h>/ 标准输入输出函数 /可编辑资料 - - - 欢迎下载精品名师归纳总结#include<stdlib.h>/ 标准库函数 / void main/ 主函数 /FILE *fp1,*fp2,*fp3 。/ 定义三个文件指针变量 / int a55,b55,c55=0。/ 定义三个二维数组,用来存放矩阵/int i,j,k 。2. main主函数C 程序的执行是从 main 函数开头的,也是在 main 函数中终止整个程序的运行.此程序为次序结构,从上到下依次完成每一个功能 .3. fopen函数 文件的打开fopen 用来打开文件 .fp1=fopen"c:a.txt","r" 的意义是打开 c 磁盘目录中的文件 ”a.txt,”使用文件方式为“ r(读入)”,并使 fp1指向该文件 .其中"r" 代表只读,如将 "r" 换成"w" , "w" 代表只写 .4. fclose 函数 文件的关闭fclose()用来关闭文件,在向文件写数据时,是先将数据输出到 缓冲区,待缓冲区布满后才正式输出给文件.为了防止当数据未布满缓冲区而程序终止运行时,将缓冲区的数据丢失.用 fclose 函数关闭文件,它先把缓冲区中的数据输出至磁盘文件,然后才释放文件指针变量,因此,文件用完后必需关闭.iffp1=fopen"c:a.txt","r"=NULLprintf"cannot open a.txtn"。exit0 。这段程序的意义是,用只读的方式打开c 盘目录下的文件,假如返回的指针为空,就给出提示信息 ”cannot open a.tt”x,然后执行 exit0 退出程序 .5. exit 函数可编辑资料 - - - 欢迎下载精品名师归纳总结该函数的作用是关闭全部文件,终止正在执行的程序,待用户检查错误修改后再运行.6. fscanf 函数其调用的一般形式为: fscanf 文件指针变量,格式把握字符,变量的址列表.该函数的功能是以格式把握字符串中所指定格式将数据从文件指针所指向的文件中读取出来,然后分别送给所指定的变量.此函数用来完成从数据文件中读入矩阵的数据 .fscanffp1,"%d",&aij。表示将文件 fp1 中 a 矩阵中的值按 %d 的格式读出 .7. fprintf 函数其调用的一般形式为: fprintf 文件指针变量,格式把握字符,变量的址列表.该函数的功能是将各输出项以格式把握字符串中所指定的格式输出到 文件指针所指向的文件中 .此函数用来完成将矩阵相乘的结果写入磁盘文件.fprintffp3,"%6d",cij。 表示将 c 矩阵中的值按 %6d 的格式输出到 fp3 指向的文件上 .8. printf 函数向显示器输出数据 .此函数用来显示矩阵数据和一些提示语句(原样输出字符) 转义字符(例如换行字符) .(三)主要模块的算法描述:1. 先在 c 盘创立三个文本文件 a.txt, b.txt ,c.txt . 其中 a.txt 和 b.txt 中放a 和 b 矩阵.2. 从 a.txt 和 b.txt 文件读入两个矩阵的数据,同时用printf 函数输出 .3. 运用 for 循环运算 ab 两个矩阵的乘积 c. fori=0 。i<5 。i+forj=0 。j<5。j+fork=0 。k<5。k+cij+=aik*bkj。 4. 用 fprintf 函数将乘积写入c.txt 中,同时用 printf 函数将乘积输可编辑资料 - - - 欢迎下载精品名师归纳总结出.(四)参考文献c 程序设计(第三版) 谭浩强著c 程序设计 中国铁道出版社c 语言有用程序设计 100 例(五)终止语通过查书和自己的摸索,我发觉c 语言真的很有用途,学到了初浅的函数及文件处理,对 c 语言学问产生了极大的爱好,很感谢同学的帮忙和老师的教导,完成了这个程序也极大的鼓励了我的自学爱好!(六)数据流程图可编辑资料 - - - 欢迎下载精品名师归纳总结开头用只读的方式打开c 盘目录下的 a.txt 文件输出 cannotopen a.txt返回的指针为空终止用只读的方式打开c 盘目录下的 b.txt 文件输出 cannotopen b.txt返回的指针为空终止用 fscanf 函数读入 a.b 矩阵的数据,并输出到屏幕上关闭文件指针指向的文件a.txt 和 b.txt运算矩阵 a 和 b 的乘积用只写的方式打开c 盘目录下的 c.txt 文件输出 cannot openc.txt返回的指针为空终止用 fprintf 函数将乘积写入文件,并输出到屏幕上关闭文件指针指向的文件c.txt终止可编辑资料 - - - 欢迎下载精品名师归纳总结(七)程序源代码#include<stdio.h> #include<stdlib.h>void mainFILE *fp1,*fp2,*fp3 。int a55,b55,c55=0。int i,j,k 。iffp1=fopen"c:a.txt","r"=NULLprintf"cannot open a.txtn"。exit0 。iffp2=fopen"c:b.txt","r"=NULLprintf"cannot open b.txtn" 。exit0 。printf"a juzhenn" 。fori=0 。i<5 。i+forj=0 。j<5 。j+fscanffp1,"%d",&aij 。printf"%4d",aij 。printf"n" 。printf"b juzhenn" 。fori=0 。i<5 。i+forj=0 。j<5 。j+fscanffp2,"%d",&bij。printf"%4d",bij。printf"n" 。fclosefp1。fclosefp2。iffp3=fopen"c:c.txt","w"=NULLprintf"cannot open c.txtn"。可编辑资料 - - - 欢迎下载精品名师归纳总结exit0 。fori=0 。i<5 。i+forj=0 。j<5 。j+fork=0。k<5 。k+ cij+=aik*bkj。printf"a b juzhen jin" 。fori=0 。i<5 。i+forj=0 。j<5。j+fprintffp3,"%6d",cij。printf"%6d",cij。fprintffp3,"n" 。printf"n" 。fclosefp3。版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部This article includes some parts, including text,pictures, and design. Copyright is Pan Hongliang's personalownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权可编辑资料 - - - 欢迎下载精品名师归纳总结利人的书面许可,并支付酬劳。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任。Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载