C语言课设计算矩阵乘积
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FILE *fp1,*fp2,*fp3; int a[5][5],b[5][5],c[5][5]={0}; int i,j,k; if((fp1=fopen("c:\\a.txt","r"))==NULL) {
printf("cannot open a.txt\n"); exit(0); } if((fp2=fopen("c:\\b.txt","r"))==NULL) { printf("cannot open b.txt\n"); exit(0); } printf("a juzhen\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) {
题目:计算两个 5*5 矩阵的乘积。
3
要求:两个 5*5 矩阵的数据由数据文件输入,计算乘积存入另一个文件后 再显示出。
四.具体内容:
(一) 题目内容描述: 通过文件读入的方式向程序输入两个 5*5 矩阵的数据,计算这两个矩阵的 乘积,将乘积写入到磁盘文件,并且显示在屏幕上。 (1)读入信息:从 a.txt 和 b.txt 中得到两个矩阵的数据,同时输出到屏幕 上。 (2)计算乘积:通过程序求出矩阵 a 和 b 的乘积,得到矩阵 c。 (3)存盘:将乘积(即矩阵 c)写入到已建立的文件 c.txt 中。 (4)显示:将乘积(即矩阵 c)输出到屏幕上。
序的运行。此程序为顺序结构,从上到下依次完成每一个功能。
4
3.fopen 函数 文件的打开 fopen( )用来打开文件。fp1=fopen("c:\\a.txt","r")的意义是打开 c 磁盘 目录中的文件”a.txt”,使用文件方式为“r(读入)”,并使 fp1 指向 该文件。其中"r"代表只读,若将"r"换成"w", "w"代表只写。
for(j=0;j<5;j++) { fprintf(fp3,"%6d",c[i][j]); printf("%6d",c[i][j]); }
fprintf(fp3,"\n"); printf("\n"); } fclose(fp3); }
9
4.fclose 函数 文件的关闭 fclose()用来关闭文件,在向文件写数据时,是先将数据输出到缓 冲区,待缓冲区充满后才正式输出给文件。为了防止当数据未充满 缓冲区而程序结束运行时,将缓冲区的数据丢失。用 fclose 函数关 闭文件,它先把缓冲区中的数据输出至磁盘文件,然后才释放文件 指针变量,因此,文件用完后必须关闭。 if((fp1=fopen("c:\\a.txt","r"))==NULL)
8
printf("cannot open c.txt\n"); exit(0); } for(i=0;i<5;i++) { for(j=0;j<5;j++)
{ for(k=0;k<5;k++) c[i][j]+=a[i][k]*b[k][j];
} } printf("a b juzhen ji\n"); for(i=0;i<5;i++) {
和 b 矩阵。 2.从 a.txt 和 b.txt 文件读入两个矩阵的数据,同时用 printf 函数输出。 3.运用 for 循环计算 ab 两个矩阵的乘积 c.
for(i=0;i<5;i++) {for(j=0;j<5;j++) {for(k=0;k<5;k++) c[i][j]+=a[i][k]*b[k][j]; } }
(二)程序功能说明应用数据类型:
程序设计一般由两部分组成:算法和数据结构,合理地选择和实
现一个数据结构和处理这些数据结构具有同样的重要性。
主要包括如下:
1.#include<stdio.h> // 标准输入输出函数 //
#include<stdlib.h> // 标准库函数 //
void main()
1)正文宋体小四号字 2)每个自然段开始空两格. 3)文中英文用新罗马(time new roman),四号 4)源程序清单用英文新罗马五号 5)提交报告封面使用《沈阳理工大学课程设计(论文)》专用封面 注:对于程序中未能实现的部分需要加以说明。对于程序中所参考
的部分代码需要加以声明,并说明出处。 三.训练题目:
2
一.训练目的: 计算机程序设计训练是学习完《计算机程序设计》课程后进行的一次
全面的综合性上机实验。其目的在于为学生提供了一个既动手又动脑,独 立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的 分析解决实际问题的能力。提高学生适应实际,实践编程的能力。 二.设计要求: 1. 按照给定题目独立设计程序,上机调试通过 。 2. 写出设计报告
提交报告的内容如下: 1)题目内容的描述 2)应用程序功能的详细说明 3)输入数据类型、格式和内容限制; 4)主要模块的算法描述
–以程序流程图的方式给出 –简要的语言描述 5)结束语 6)程序的源代码清单 7)报告的字数,不算源代码清单不少于 4 页
按规定的模板封面输出,不准自定义封面格式 提交报告的格式如下:
{ printf("cannot open a.txt\n"); exit(0); }
这段程序的意义是,用只读的方式打开 c 盘目录下的文件,如果 返回的指针为空,则给出提示信息”cannot open a.txt”,然后执行 exit(0) 退出程序。 5.exit()函数 该函数的作用是关闭所有文件,终止正在执行的程序,待用户检查错误 修改后再运行。 6.fscanf ( )函数 其调用的一般形式为:fscanf (文件指针变量,格式控制字符,变量地址 列表 )。该函数的功能是以格式控制字符串中所指定格式将数据从文件 指针所指向的文件中读取出来,然后分别送给所指定的变量。此函数用 来完成从数据文件中读入矩阵的数据。 fscanf(fp1,"%d",&a[i][j]);表示将文件 fp1 中 a 矩阵中的值按%d 的格式 读出。 7.fprintf ( )函数
沈阳理工大学 材料工程 学院 计算机程序训练任务书
学生姓名:xx 班级:xxxxxxxxx 学号:xxxxxxxxxx 设计题目:计算两个 5*5 矩阵的乘积。
1
计算机程序训练题目及要求
机械学院 自动化教研室 目录
一.训练目的…………………………………………………2 二.设计要求…………………………………………………2 三.训练题目…………………………………………………2 四.具体内容…………………………………………………2
4.用 fprintf 函数将乘积写入 c.txt 中,同时用 printf 函数将乘积输出。 (四)参考文献
c 程序设计(第三版) 谭浩强著 c 程序设计 中国铁道出版社 c 语言实用程序设计 100 例 (五)结束语 通过查书和自己的思考,我发现 c 语言真的很有用途,学到了初浅的函数及 文件处理,对 c 语言知识产生了极大地兴趣,很感谢同学的帮忙和老师的教导, 完成了这个程序也极大地鼓舞了我的自学兴趣! (六)数据流程图
fscanf(fp1,"%d",&a[i][j]); printf("%4d",a[i][j]); } printf("\n"); } printf("b juzhen\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { fscanf(fp2,"%d",&b[i][j]); printf("%4d",b[i][j]); } printf("\n"); } fclose(fp1); fclose(fp2); if((fp3=fopen("c:\\c.txt","w"))==NULL) {
6
输出 cannot open a.txt
结束
开始 用只读的方式打开 c 盘目录下的 a.txt 文件Βιβλιοθήκη Baidu
返回的指针为空 用只读的方式打开 c 盘目录下的 b.txt 文件
输出 cannot open b.txt
结束
返回的指针为空
用 fscanf 函数读入 a.b 矩阵的数据,并输出到屏 幕上
关闭文件指针指向的文件 a.txt 和 b.txt
// 主函数 //
{
FILE *fp1,*fp2,*fp3; // 定义三个文件指针变量 //
int a[5][5],b[5][5],c[5][5]={0};
// 定义三个二维数组,用来存放矩阵 //
int i,j,k;
}
2.main()主函数
C 程序的执行是从 main 函数开始的,也是在 main 函数中结束整个程
计算矩阵 a 和 b 的乘积
输 出 cannot open c.txt
用只写的方式打开 c 盘目录下的 c.txt 文件 返回的指针为空
结束
用 fprintf 函数将乘积写入文件,并输出到屏幕上 关闭文件指针指向的文件 c.txt
结束
7
(七)程序源代码
#include<stdio.h> #include<stdlib.h> void main() {
5
其调用的一般形式为:fprintf (文件指针变量,格式控制字符,变量地 址列表 )。该函数的功能是将各输出项以格式控制字符串中所指定的格 式输出到文件指针所指向的文件中。此函数用来完成将矩阵相乘的结果 写入磁盘文件。
fprintf(fp3,"%6d",c[i][j]); 表示将 c 矩阵中的值按%6d 的格式输出到 fp3 指向的文件上。 8.printf()函数 向显示器输出数据。此函数用来显示矩阵数据和一些提示语句(原样输 出字符)转义字符(例如换行字符)。 (三)主要模块的算法描述: 1.先在 c 盘创立三个文本文件 a.txt, b.txt ,c.txt .其中 a.txt 和 b.txt 中放 a
printf("cannot open a.txt\n"); exit(0); } if((fp2=fopen("c:\\b.txt","r"))==NULL) { printf("cannot open b.txt\n"); exit(0); } printf("a juzhen\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) {
题目:计算两个 5*5 矩阵的乘积。
3
要求:两个 5*5 矩阵的数据由数据文件输入,计算乘积存入另一个文件后 再显示出。
四.具体内容:
(一) 题目内容描述: 通过文件读入的方式向程序输入两个 5*5 矩阵的数据,计算这两个矩阵的 乘积,将乘积写入到磁盘文件,并且显示在屏幕上。 (1)读入信息:从 a.txt 和 b.txt 中得到两个矩阵的数据,同时输出到屏幕 上。 (2)计算乘积:通过程序求出矩阵 a 和 b 的乘积,得到矩阵 c。 (3)存盘:将乘积(即矩阵 c)写入到已建立的文件 c.txt 中。 (4)显示:将乘积(即矩阵 c)输出到屏幕上。
序的运行。此程序为顺序结构,从上到下依次完成每一个功能。
4
3.fopen 函数 文件的打开 fopen( )用来打开文件。fp1=fopen("c:\\a.txt","r")的意义是打开 c 磁盘 目录中的文件”a.txt”,使用文件方式为“r(读入)”,并使 fp1 指向 该文件。其中"r"代表只读,若将"r"换成"w", "w"代表只写。
for(j=0;j<5;j++) { fprintf(fp3,"%6d",c[i][j]); printf("%6d",c[i][j]); }
fprintf(fp3,"\n"); printf("\n"); } fclose(fp3); }
9
4.fclose 函数 文件的关闭 fclose()用来关闭文件,在向文件写数据时,是先将数据输出到缓 冲区,待缓冲区充满后才正式输出给文件。为了防止当数据未充满 缓冲区而程序结束运行时,将缓冲区的数据丢失。用 fclose 函数关 闭文件,它先把缓冲区中的数据输出至磁盘文件,然后才释放文件 指针变量,因此,文件用完后必须关闭。 if((fp1=fopen("c:\\a.txt","r"))==NULL)
8
printf("cannot open c.txt\n"); exit(0); } for(i=0;i<5;i++) { for(j=0;j<5;j++)
{ for(k=0;k<5;k++) c[i][j]+=a[i][k]*b[k][j];
} } printf("a b juzhen ji\n"); for(i=0;i<5;i++) {
和 b 矩阵。 2.从 a.txt 和 b.txt 文件读入两个矩阵的数据,同时用 printf 函数输出。 3.运用 for 循环计算 ab 两个矩阵的乘积 c.
for(i=0;i<5;i++) {for(j=0;j<5;j++) {for(k=0;k<5;k++) c[i][j]+=a[i][k]*b[k][j]; } }
(二)程序功能说明应用数据类型:
程序设计一般由两部分组成:算法和数据结构,合理地选择和实
现一个数据结构和处理这些数据结构具有同样的重要性。
主要包括如下:
1.#include<stdio.h> // 标准输入输出函数 //
#include<stdlib.h> // 标准库函数 //
void main()
1)正文宋体小四号字 2)每个自然段开始空两格. 3)文中英文用新罗马(time new roman),四号 4)源程序清单用英文新罗马五号 5)提交报告封面使用《沈阳理工大学课程设计(论文)》专用封面 注:对于程序中未能实现的部分需要加以说明。对于程序中所参考
的部分代码需要加以声明,并说明出处。 三.训练题目:
2
一.训练目的: 计算机程序设计训练是学习完《计算机程序设计》课程后进行的一次
全面的综合性上机实验。其目的在于为学生提供了一个既动手又动脑,独 立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的 分析解决实际问题的能力。提高学生适应实际,实践编程的能力。 二.设计要求: 1. 按照给定题目独立设计程序,上机调试通过 。 2. 写出设计报告
提交报告的内容如下: 1)题目内容的描述 2)应用程序功能的详细说明 3)输入数据类型、格式和内容限制; 4)主要模块的算法描述
–以程序流程图的方式给出 –简要的语言描述 5)结束语 6)程序的源代码清单 7)报告的字数,不算源代码清单不少于 4 页
按规定的模板封面输出,不准自定义封面格式 提交报告的格式如下:
{ printf("cannot open a.txt\n"); exit(0); }
这段程序的意义是,用只读的方式打开 c 盘目录下的文件,如果 返回的指针为空,则给出提示信息”cannot open a.txt”,然后执行 exit(0) 退出程序。 5.exit()函数 该函数的作用是关闭所有文件,终止正在执行的程序,待用户检查错误 修改后再运行。 6.fscanf ( )函数 其调用的一般形式为:fscanf (文件指针变量,格式控制字符,变量地址 列表 )。该函数的功能是以格式控制字符串中所指定格式将数据从文件 指针所指向的文件中读取出来,然后分别送给所指定的变量。此函数用 来完成从数据文件中读入矩阵的数据。 fscanf(fp1,"%d",&a[i][j]);表示将文件 fp1 中 a 矩阵中的值按%d 的格式 读出。 7.fprintf ( )函数
沈阳理工大学 材料工程 学院 计算机程序训练任务书
学生姓名:xx 班级:xxxxxxxxx 学号:xxxxxxxxxx 设计题目:计算两个 5*5 矩阵的乘积。
1
计算机程序训练题目及要求
机械学院 自动化教研室 目录
一.训练目的…………………………………………………2 二.设计要求…………………………………………………2 三.训练题目…………………………………………………2 四.具体内容…………………………………………………2
4.用 fprintf 函数将乘积写入 c.txt 中,同时用 printf 函数将乘积输出。 (四)参考文献
c 程序设计(第三版) 谭浩强著 c 程序设计 中国铁道出版社 c 语言实用程序设计 100 例 (五)结束语 通过查书和自己的思考,我发现 c 语言真的很有用途,学到了初浅的函数及 文件处理,对 c 语言知识产生了极大地兴趣,很感谢同学的帮忙和老师的教导, 完成了这个程序也极大地鼓舞了我的自学兴趣! (六)数据流程图
fscanf(fp1,"%d",&a[i][j]); printf("%4d",a[i][j]); } printf("\n"); } printf("b juzhen\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { fscanf(fp2,"%d",&b[i][j]); printf("%4d",b[i][j]); } printf("\n"); } fclose(fp1); fclose(fp2); if((fp3=fopen("c:\\c.txt","w"))==NULL) {
6
输出 cannot open a.txt
结束
开始 用只读的方式打开 c 盘目录下的 a.txt 文件Βιβλιοθήκη Baidu
返回的指针为空 用只读的方式打开 c 盘目录下的 b.txt 文件
输出 cannot open b.txt
结束
返回的指针为空
用 fscanf 函数读入 a.b 矩阵的数据,并输出到屏 幕上
关闭文件指针指向的文件 a.txt 和 b.txt
// 主函数 //
{
FILE *fp1,*fp2,*fp3; // 定义三个文件指针变量 //
int a[5][5],b[5][5],c[5][5]={0};
// 定义三个二维数组,用来存放矩阵 //
int i,j,k;
}
2.main()主函数
C 程序的执行是从 main 函数开始的,也是在 main 函数中结束整个程
计算矩阵 a 和 b 的乘积
输 出 cannot open c.txt
用只写的方式打开 c 盘目录下的 c.txt 文件 返回的指针为空
结束
用 fprintf 函数将乘积写入文件,并输出到屏幕上 关闭文件指针指向的文件 c.txt
结束
7
(七)程序源代码
#include<stdio.h> #include<stdlib.h> void main() {
5
其调用的一般形式为:fprintf (文件指针变量,格式控制字符,变量地 址列表 )。该函数的功能是将各输出项以格式控制字符串中所指定的格 式输出到文件指针所指向的文件中。此函数用来完成将矩阵相乘的结果 写入磁盘文件。
fprintf(fp3,"%6d",c[i][j]); 表示将 c 矩阵中的值按%6d 的格式输出到 fp3 指向的文件上。 8.printf()函数 向显示器输出数据。此函数用来显示矩阵数据和一些提示语句(原样输 出字符)转义字符(例如换行字符)。 (三)主要模块的算法描述: 1.先在 c 盘创立三个文本文件 a.txt, b.txt ,c.txt .其中 a.txt 和 b.txt 中放 a