动态矩阵的产生与管理一_第1页
动态矩阵的产生与管理一_第2页
动态矩阵的产生与管理一_第3页
动态矩阵的产生与管理一_第4页
动态矩阵的产生与管理一_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈 阳 航 空 工 业 学 院 课程设计 学 号 _200604111013_ 班 级 _6411101_ 姓 名 _崔献威_指导教师 _王晓岩_2008年3 月12 日沈阳航空工业学院课程设计任务书材料科学与工程学院 金属材料工程专业 6411101班 学号200604111013课程设计题目:动态矩阵的产生与管理一二、课程设计工作自2008年3月3日起至2008年3月7日止三、课程设计内容:用C语言编写软件完成以下任务:利用链表的方法,产生任意行数和列数的矩阵,用于存储某个二维矩阵。行数和列数由用户从键盘输入,从而体现动态性。提示:先用链表动态管理1行的数据,有了基础之后再设计管理二维的数

2、据四、课程设计要求:程序质量:l 贯彻结构化的程序设计思想。l 用户界面友好,功能明确,操作方便。l 用户界面中的菜单至少应包括“输入矩阵的行数和列数”、“输入矩阵元素”、“打印矩阵”、“退出”4项。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。l 。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l 封面l 课程设计任务书l 目录l 需求分析(分析题目的要求)l 程序流程图(总体流程图和主要功能模块流程图)l 核心技术的实现说明及相应程序段l 个人总结l 参考资料l 源程序及适当的注释指导教师:_ 学生签名:_沈 阳 航 院 设 计 用 纸目录一、需

3、求分析1二、程序流程图1三、核心技术的实现说明及相应程序段4四、个人总结10五、参考文献10六、源程序1113一、需求分析动态矩阵的产生有几个步骤组成,1 输入动态矩阵的维数 2 用链表建立一个动态矩阵 3 输出动态矩阵 1 输入动态矩阵的维数 输入矩阵的行数和列数 2 产生动态矩阵 首先在内存开辟一个空间并且输入一个元素,判断行数和列数是否满足要求,当满足要求继续开辟内存空间,并且与前一个元素相连,直到行数和列数不满足要求 3 输出动态矩阵 输出矩阵的元素二、程序流程图1、程序总体结构图当 n = 1 输入值 n =1 真 假 n = 2? 真 假 真 n = 3? 假 输入行数 和列数 n

4、 = 4 ? 产生矩阵 真 假 输出矩阵 退出 表12、产生矩阵流程图输入矩阵行数row和列数lineCount=0 在内存中开辟一段内存单元附值给head q head-next=NULL p=head-next输入行数row和列数line当countnext=newMem newMem-next=p count+ q=q-next表23输出矩阵p=head i=0 j=0 当irow 当ja j+ i+表3三、核心技术的实现说明及相应程序段#include#include#include#define NULL 0#define LEN sizeof(struct number)定义结构体

5、,用来存储一个结点数据struct number int num; struct number *next;int row;int tier;struct number *head;struct number *creat()int i,n,m; struct number *p1,*p2,*p3;n=0;for(i=0;inum); while(nnext=p1; p2=p1; if(n!=tier) p1=(struct number*)malloc(sizeof(LEN); printf(n请输入数据 :); scanf(%d,&p1-num); p2-next = NULL; p3=h

6、ead; return head; void print(struct number *head)int n; struct number *p; p = head; if(head!=NULL) do printf(%d t,p-num); p = p-next; n+;if(n%tier=0)printf(n); while(p!=NULL); 输入函数void input_row_tier() printf(n 请输入行数 :);scanf(%d,&row); printf(n 请输入列数 :); scanf(%d,&tier);void main() int mm;while(1) p

7、rintf(n 1 输入行和列); printf(n 2 录入); printf(n 3 输出); printf(n 4 退出 nt);scanf(%d,&mm);switch(mm) case 1: input_row_tier();break; case 2: creat();break; case 3: print(head);break; case 4: exit(0);break;四、个人总结在C 语言中,数组的长度是固定的。但是在有时,不知道究竟使用多少元素的时候,就必须定义足够长的数组,这样不仅浪费内存资源,而且在程序编写过程中很容易出现一些不可意料的错误。C语言中提供的内存管理

8、程序可以帮助我们开辟固定长度的内存空间,这样我们根据内存空间、 利用链表的相关知识可以创建动态数组。 在编制程序的过程中,使我学会了链表的有关操作,掌握了动态内存管理的方法,虽然只是一个小的程序,但是我是通过自己的努力一步步完成的,使我受益很深。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include#include#include#define NULL 0#define LEN sizeof(struct number)struct number int num; struct numbe

9、r *next;int row;int tier;struct number *head;struct number *creat()int i,n,m; struct number *p1,*p2,*p3;n=0;for(i=0;inum); while(nnext=p1; p2=p1; if(n!=tier) p1=(struct number*)malloc(sizeof(LEN); printf(n请输入数据 :); scanf(%d,&p1-num); p2-next = NULL; p3=head; return head; void print(struct number *head)int n; struct number *p; p = head; if(head!=NULL) do printf(%d t,p-num);p = p-next; n+;if(n%tier=0)printf(n); while(p!=NULL); void input_row_tier() printf(n 请输入行数 :);scanf(%d,&row); printf(n 请输入列数 :); scanf(%d,&tier);void main() int mm;while(1) printf(n 1 输入行和列); printf(n 2 录入); printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论