欢迎来到天天文库
浏览记录
ID:46499595
大小:49.00 KB
页数:14页
时间:2019-11-24
《动态矩阵的产生与管理一》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、沈阳航空工业学院课程设计学号200604111013班级_6411101_姓名—崔献威—指导教师—王晓岩_2008年3月12日沈阳航空工业学院课程设计任务书材料科学与工程学院金属材料工程专业6411101班学号200604111013课程设计题目:动态矩阵的产生与管理一二、课程设计工作自2008年3月3日起至2008年3月7日止三、课程设计内容:用C语言编写软件完成以下任务:利用链表的方法,产生任意行数和列数的矩阵,用于存储某个二维矩阵。行数和列数由用户从键盘输入,从而体现动态性。提示:先用链表动态管理1行的数据,有了基础之后再设计管理二维
2、的数据四、课程设计要求:程序质量:•贯彻结构化的程序设计思想。•用户界面友好,功能明确,操作方便。•用户界面中的菜单至少应包扌舌“输入矩阵的行数和列数”、“输入矩阵元素”、“打印矩阵”、“退岀”4项。•代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:•封面•课程设计任务书•目录•需求分析(分析题目的要求)•程序流程图(总体流程图和主要功能模块流程图)•核心技术的实现说明及相应程序段•个人总结•参考资料•源程序及适当的注释指导教师:学生签名:目录一、需求分析1
3、二、程序流程图1三、核心技术的实现说明及相应程序段..4四、个人总结9五、参考文献10六、源程序10一、需求分析动态矩阵的产生有儿个步骤组成,1输入动态矩阵的维数2用链表建立一个动态矩阵3输出动态矩阵1输入动态矩阵的维数输入矩阵的行数和列数2产生动态矩阵首先在内存开辟一个空间并启输入一个元素,判断行数和列数是否满足要求,当满足要求继续开辟内存空间,并且与前一个元素相连,直到行数和列数不满足要求3输出动态矩阵输出矩阵的元素二、程序流程图1、程序总体结构图2、产生矩阵流程图3输出矩阵表3三、核心技术的实现说明及相应程序段#include4、lib.h>#include#include#defineNULL0#defineLENsizeof(structnumber)定义结构体,用来存储一个结点数据structnumberintnum;structnumber*next;};introw;inttier;structnumber*head;structnumber*creat(){inti,n,m;structnumber*pl,*p2,*p3;n=0;for(i=0;i5、f(i==0)在内存中开辟一段空间pl=p2=(structnumber*)malloc(sizeof(LEN));elsepl=(structnumber*)malloc(sizeof(LEN));printf(n请输入数据:”);scanf(n%dn,&p1->num);while(nnext=pl;p2=pl;if(n!=tier)p1^(structnumber*)malloc(sizeof(LEN));printf(n6、n请输入数据:”);scanf(H%dn,&pl->num);}p2->next=NULL;p3=head;returnhead;}voidprint(structnumber*head){intn;structnumber*p;p=head;if(head!=NULL){do{printf(n%dtH,p->num);p二p->next;n++;if(n%tier==O)printf(nH);}while(p!=NULL);}}输入函数voidinput_row_tier(){printf(n请输入行数:”);scanf(n%d7、n,&row);printf(n请输入列数:”);scanf(n%dn,&tier);}voidmain(){intmm;while(l)printfCAn1输入行和列”);printf(H2录入”);printf(H3输出”);printf(n4退出tH);scanf(”%d”,&mm);switch(mm){case1:input_row_tier();break;case2:creat();break;case3:print(head);break;case4:exit(O);break;}}个人总结在C语言中,8、数组的长度是固定的。但是在有时,不知道究竟使用多少元素的时候,就必须定义足够长的数组,这样不仅浪费内存资源,而且在程序编写过程中很容易出现一些不可意料的错误。C语言中提供的内存管
4、lib.h>#include#include#defineNULL0#defineLENsizeof(structnumber)定义结构体,用来存储一个结点数据structnumberintnum;structnumber*next;};introw;inttier;structnumber*head;structnumber*creat(){inti,n,m;structnumber*pl,*p2,*p3;n=0;for(i=0;i5、f(i==0)在内存中开辟一段空间pl=p2=(structnumber*)malloc(sizeof(LEN));elsepl=(structnumber*)malloc(sizeof(LEN));printf(n请输入数据:”);scanf(n%dn,&p1->num);while(nnext=pl;p2=pl;if(n!=tier)p1^(structnumber*)malloc(sizeof(LEN));printf(n6、n请输入数据:”);scanf(H%dn,&pl->num);}p2->next=NULL;p3=head;returnhead;}voidprint(structnumber*head){intn;structnumber*p;p=head;if(head!=NULL){do{printf(n%dtH,p->num);p二p->next;n++;if(n%tier==O)printf(nH);}while(p!=NULL);}}输入函数voidinput_row_tier(){printf(n请输入行数:”);scanf(n%d7、n,&row);printf(n请输入列数:”);scanf(n%dn,&tier);}voidmain(){intmm;while(l)printfCAn1输入行和列”);printf(H2录入”);printf(H3输出”);printf(n4退出tH);scanf(”%d”,&mm);switch(mm){case1:input_row_tier();break;case2:creat();break;case3:print(head);break;case4:exit(O);break;}}个人总结在C语言中,8、数组的长度是固定的。但是在有时,不知道究竟使用多少元素的时候,就必须定义足够长的数组,这样不仅浪费内存资源,而且在程序编写过程中很容易出现一些不可意料的错误。C语言中提供的内存管
5、f(i==0)在内存中开辟一段空间pl=p2=(structnumber*)malloc(sizeof(LEN));elsepl=(structnumber*)malloc(sizeof(LEN));printf(n请输入数据:”);scanf(n%dn,&p1->num);while(nnext=pl;p2=pl;if(n!=tier)p1^(structnumber*)malloc(sizeof(LEN));printf(n
6、n请输入数据:”);scanf(H%dn,&pl->num);}p2->next=NULL;p3=head;returnhead;}voidprint(structnumber*head){intn;structnumber*p;p=head;if(head!=NULL){do{printf(n%dtH,p->num);p二p->next;n++;if(n%tier==O)printf(nH);}while(p!=NULL);}}输入函数voidinput_row_tier(){printf(n请输入行数:”);scanf(n%d
7、n,&row);printf(n请输入列数:”);scanf(n%dn,&tier);}voidmain(){intmm;while(l)printfCAn1输入行和列”);printf(H2录入”);printf(H3输出”);printf(n4退出tH);scanf(”%d”,&mm);switch(mm){case1:input_row_tier();break;case2:creat();break;case3:print(head);break;case4:exit(O);break;}}个人总结在C语言中,
8、数组的长度是固定的。但是在有时,不知道究竟使用多少元素的时候,就必须定义足够长的数组,这样不仅浪费内存资源,而且在程序编写过程中很容易出现一些不可意料的错误。C语言中提供的内存管
此文档下载收益归作者所有