74动态矩阵的生成与管理.doc
上传人:qw****27 上传时间:2024-09-10 格式:DOC 页数:13 大小:83KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

74动态矩阵的生成与管理.doc

74动态矩阵的生成与管理.doc

预览

免费试读已结束,剩余 3 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

沈阳航院设计用纸沈阳航空工业学院课程设计学号200704033074班级7403302姓名张根源指导教师王晓岩2009年3月5日沈阳航空工业学院课程设计任务书院系:航宇专业:飞行器设计与工程班级:7403302学号:200704033074题目:动态矩阵的生成与管理一、课程设计时间2009年2月23日至2009年2月28日二、课程设计内容用C语言编写软件完成以下任务:利用链表的方法,产生任意行数和列数的矩阵,用于存储某个二维矩阵。行数和列数由用户从键盘输入,从而体现动态性。提示:先用链表动态管理1行的数据,有了基础之后再设计管理二维的数据。三、课程设计要求1.程序质量:贯彻结构化的程序设计思想。用户界面友好,功能明确,操作方便。用户界面中的菜单至少应包括“输入矩阵的行数和列数”、“输入矩阵元素”、“打印矩阵”、“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:________学生签名:________五、说明书成绩六、教师评语沈阳航院设计用纸目录TOC\o"1-3"\h\zHYPERLINK\l"_Toc113676311"一、需求分析PAGEREF_Toc113676311\h1HYPERLINK\l"_Toc113676312"二、程序流程图PAGEREF_Toc113676312\h1HYPERLINK\l"_Toc113676313"三、核心技术的实现说明及相应程序段PAGEREF_Toc113676313\h4HYPERLINK\l"_Toc113676314"四、课设总结PAGEREF_Toc113676314\h7HYPERLINK\l"_Toc113676315"五、参考文献PAGEREF_Toc113676315\h8HYPERLINK\l"_Toc113676316"六、源程序PAGEREF_Toc113676316\h8一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,它们的功能分别是:确定行数和列数的函数,输入矩阵元素的函数,输出矩阵的函数。1、确定行数和列数的函数主要实现由用户自己输入矩阵行数和列数的功能,体现动态性。2、输入矩阵元素的函数实现的功能是由用户输入矩阵的各个元素。3、输出矩阵的函数按照题目的具体要求打印出矩阵。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。二、程序流程图1、程序总体结图1程序总体结构图2、具体功能框图下面是利用链表实现矩阵元素输入的打印矩阵的结构图输入数据nNewMen=(J*)mallo(sizeof(J))定义变量,结构体定义变量,结构体指针建立头结点head,head→next=NULL输出提示信息:请输入行row和列line变量付初值count=0;q=head;p=head→next;Count<line&&count<row是否数据读如新结点newMen→a=nCount++;q=q→nextp=head→nextP!=NULL否是ForI=0torowForj=0tolineM[i][j]=p→aP=p→next三、核心技术的实现说明及相应程序段本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,元素输入函数和打印矩阵函数是程序中较为核心的部分,下面分别进行说明。1、元素输入函数该函数是利用动态链表的方法一行一行输入矩阵元素的,而且当输入的元素个数大于矩阵元素个数的时候,链表自己断开。structZGY//定义结构体{inta;//用于记录数据位置floats;//具体数据structZGY*next;};voidyuanshu()//输入元素的函数{structZGY*q,*p;structZGY*head;intn;n=0;printf("\n请输入数据,按行输,每个元素以回车结束:\n");p=q=(structZGY*)malloc(sizeof(structZGY));//开辟一个新单元head=NULL;while(p->a!=0)//如果符合要求将数据插入