1、动态矩阵的产生与管理一综述沈 阳 航 空 工 业 学 院 课程设计 学 号 _200604111013_ 班 级 _6411101_ 姓 名 _崔献威_指导教师 _王晓岩_2008年3 月12 日沈阳航空工业学院课程设计任务书材料科学与工程学院 金属材料工程专业 6411101班 学号200604111013课程设计题目:动态矩阵的产生与管理一二、课程设计工作自2008年3月3日起至2008年3月7日止三、课程设计内容:用C语言编写软件完成以下任务:利用链表的方法,产生任意行数和列数的矩阵,用于存储某个二维矩阵。行数和列数由用户从键盘输入,从而体现动态性。提示:先用链表动态管理1行的数据,有了
2、基础之后再设计管理二维的数据四、课程设计要求:程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“输入矩阵的行数和列数”、“输入矩阵元素”、“打印矩阵”、“退出”4项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下: 封面 课程设计任务书 目录 需求分析(分析题目的要求) 程序流程图(总体流程图和主要功能模块流程图) 核心技术的实现说明及相应程序段 个人总结 参考资料 源程序及适当的注释指导教师:_ 学生签名:_目录一、需求分析 1二、程序流程图 1三、
3、核心技术的实现说明及相应程序段 4四、个人总结 10五、参考文献 10六、源程序 11一、需求分析动态矩阵的产生有几个步骤组成,1 输入动态矩阵的维数 2 用链表建立一个动态矩阵 3 输出动态矩阵 1 输入动态矩阵的维数 输入矩阵的行数和列数 2 产生动态矩阵 首先在内存开辟一个空间并且输入一个元素,判断行数和列数是否满足要求,当满足要求继续开辟内存空间,并且与前一个元素相连,直到行数和列数不满足要求 3 输出动态矩阵 输出矩阵的元素二、程序流程图1、程序总体结构图表12、产生矩阵流程图表23输出矩阵表3三、核心技术的实现说明及相应程序段#include#include#include#def
4、ine NULL 0#define LEN sizeof(struct number)定义结构体,用来存储一个结点数据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
5、(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
6、请输入列数 :); scanf(%d,&tier);void main() int mm; while(1) printf(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 语言中,数组的长度是固定的。但是在有时,不知道究竟使用多少元素的时候,
7、就必须定义足够长的数组,这样不仅浪费内存资源,而且在程序编写过程中很容易出现一些不可意料的错误。C语言中提供的内存管理程序可以帮助我们开辟固定长度的内存空间,这样我们根据内存空间、 利用链表的相关知识可以创建动态数组。 在编制程序的过程中,使我学会了链表的有关操作,掌握了动态内存管理的方法,虽然只是一个小的程序,但是我是通过自己的努力一步步完成的,使我受益很深。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include#include#include#define NULL 0#define L
8、EN sizeof(struct number)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-n
9、ext = 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(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;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1