动态矩阵的生成与管理课程设计

上传人:新** 文档编号:488117641 上传时间:2022-11-05 格式:DOC 页数:11 大小:42KB
返回 下载 相关 举报
动态矩阵的生成与管理课程设计_第1页
第1页 / 共11页
动态矩阵的生成与管理课程设计_第2页
第2页 / 共11页
动态矩阵的生成与管理课程设计_第3页
第3页 / 共11页
动态矩阵的生成与管理课程设计_第4页
第4页 / 共11页
动态矩阵的生成与管理课程设计_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《动态矩阵的生成与管理课程设计》由会员分享,可在线阅读,更多相关《动态矩阵的生成与管理课程设计(11页珍藏版)》请在金锄头文库上搜索。

1、沈 阳 航 空 工 业 学 院 课程设计学 号 200704033074班 级 7403302姓 名 张根源指导教师 王 晓 岩 2009年 3 月5日沈阳航空工业学院课程设计任务书院系:航宇专业:飞行器设计与工程班级:7403302学号:200704033074题目:动态矩阵的生成与管理一、课程设计时间2009年2月23日至2009年2月28日二、课程设计内容用C语言编写软件完成以下任务:利用链表的方法,产生任意行数和列数的矩阵,用于存储某个二维矩阵。行数和列数由用户从键盘输入,从而体现动态性。提示:先用链表动态管理1行的数据,有了基础之后再设计管理二维的数据。三、课程设计要求1. 程序质量

2、: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“输入矩阵的行数和列数”、“输入矩阵元素”、“打印矩阵”、“退出”4项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、说明书成绩六、教师评语目录一、需求分析1二、程序流程图1三、核心技术的实现说明及相应程序段4四、课设总结7五、参考文献8六、源程序8一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模

3、块对应一个函数,它们的功能分别是:确定行数和列数的函数,输入矩阵元素的函数,输出矩阵的函数。1、确定行数和列数的函数 主要实现由用户自己输入矩阵行数和列数的功能,体现动态性。2、输入矩阵元素的函数 实现的功能是由用户输入矩阵的各个元素。3、输出矩阵的函数 按照题目的具体要求打印出矩阵。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。二、程序流程图1、程序总体结图1程序总体结构图2、具体功能框图下面是利用链表实现矩阵元素输入的打印矩阵的结构图输入数据 nNewMen=(J*)mallo(sizeof(J)定义变量,结构体定义变量,结

4、构体指针建立头结点 head,headnext=NULL输出提示信息:请输入行row和列line变量付初值count=0;q=head;p=headnext; Countline&counta!=0) /如果符合要求将数据插入链表 n=n+1;if(n=1)head=p;else q-next=p;q=p;p=(struct ZGY*)malloc(sizeof(struct ZGY);if(nrow*line) p-a=0,p-s=0; /当数据的个数大于矩阵元素的个数时,链表断开elsescanf(%f,&p-s); q-next=NULL;pt=head; /把头指针附给全局变量pt=p

5、t-next;2、打印矩阵函数该函数的核心内容是显示出用户输入的矩阵,利用内外两次循环实现换行。/*按用户要求的行列输出*/void print(struct ZGY *pt)struct ZGY *newMem;printf(结果n);newMem=pt;int count=0; /定义记数的变量do printf(%6.3f ,newMem-s); /输出元素 count+; if(count%line=0) /实现换行 printf(n); newMem=newMem-next; /指向下一个地址while(newMem!=NULL);四、课设总结通过这次的C语言课设,具体上我学会了自主

6、遍程的过成,更了解了自学的方法,这使我对C语言的认识又加深了一步,也多学了很多,也感到了我C语言的薄弱,要努力学习。我这次的题目是新旧结合的,通过与学习好的同学交流学习,不但巩固了旧的又学到了很多新的东西,但我认为这还是很简单的,只是很短的编程,要是再难的就更难完成,所以以后我更需要努力的去了解认识C程序设计。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include #include #include int row,line; / 定义全局变量struct ZGY *pt; /定义结构体类型

7、的指针void menu() /菜单函数printf(*动态矩阵*n); puts( 1. 输入矩阵的行数和列数,用空格分开);puts( 2. 输入矩阵元素); puts( 3. 打印矩阵);puts( 4. 退出程序);void shuru1() /输入行列的函数printf(行列输入,用空格分开:);scanf(%d,&line);scanf(%d,&row);struct ZGY/定义结构体int a; /用于记录数据位置 float s; /具体数据 struct ZGY *next;void yuanshu() /输入元素的函数struct ZGY *q,*p;struct ZGY

8、 *head;int n;n=0;printf(n请输入数据,按行输,每个元素以回车结束:n);p=q=(struct ZGY*)malloc(sizeof(struct ZGY);/开辟一个新单元head=NULL;while(p-a!=0) /如果符合要求将数据插入链表 n=n+1;if(n=1)head=p;else q-next=p;q=p;p=(struct ZGY*)malloc(sizeof(struct ZGY);if(nrow*line) p-a=0,p-s=0; /当数据的个数大于矩阵元素的个数时,链表断开elsescanf(%f,&p-s);q-next=NULL;pt=

9、head; /把头指针附给全局变量pt=pt-next;/*按用户要求的行列输出*/void print(struct ZGY *pt)struct ZGY *newMem;printf(结果n);newMem=pt;int count=0; /定义记数的变量do printf(%6.3f ,newMem-s); /输出元素 count+; if(count%line=0) /实现换行 printf(n); newMem=newMem-next; /指向下一个地址while(newMem!=NULL);void main()/主函数int i;while(1)menu();scanf(%d,&i);switch(i)case 1:shuru1();break;case 2:yuanshu();break;case 3:print(pt);break;case 4:exit(0);break;default:printf(输入错误,请输入菜单中的数);

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

当前位置:首页 > 办公文档 > 工作计划

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