已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除沈 阳 航 空 工 业 学 院 课程设计学 号 200704033074班 级 7403302 姓 名 张 根 源 指导教师 王 晓 岩 2009年 3 月5日此文档仅供学习与交流沈阳航空工业学院课程设计任务书院系:航宇 专业:飞行器设计与工程 班级:7403302学号:200704033074 题目:动态矩阵的生成与管理一、课程设计时间 2009年2月23日至2009年2月28日 二、课程设计内容用C语言编写软件完成以下任务:利用链表的方法,产生任意行数和列数的矩阵,用于存储某个二维矩阵。行数和列数由用户从键盘输入,从而体现动态性。提示:先用链表动态管理1行的数据,有了基础之后再设计管理二维的数据。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“输入矩阵的行数和列数”、“输入矩阵元素”、“打印矩阵”、“退出”4项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、说明书成绩六、教师评语目录一、需求分析1二、程序流程图1三、核心技术的实现说明及相应程序段4四、课设总结7五、参考文献8六、源程序8一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,它们的功能分别是:确定行数和列数的函数,输入矩阵元素的函数,输出矩阵的函数。1、确定行数和列数的函数 主要实现由用户自己输入矩阵行数和列数的功能,体现动态性。2、输入矩阵元素的函数 实现的功能是由用户输入矩阵的各个元素。3、输出矩阵的函数 按照题目的具体要求打印出矩阵。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。二、程序流程图1、程序总体结图1程序总体结构图2、具体功能框图 下面是利用链表实现矩阵元素输入的打印矩阵的结构图输入数据 nNewMen=(J*)mallo(sizeof(J)定义变量,结构体定义变量,结构体指针建立头结点 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=pt-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语言课设,具体上我学会了自主遍程的过成,更了解了自学的方法,这使我对C语言的认识又加深了一步,也多学了很多,也感到了我C语言的薄弱,要努力学习。我这次的题目是新旧结合的,通过与学习好的同学交流学习,不但巩固了旧的又学到了很多新的东西,但我认为这还是很简单的,只是很短的编程,要是再难的就更难完成,所以以后我更需要努力的去了解认识C程序设计。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include #include #include int row,line; / 定义全局变量struct ZGY *pt; /定义结构体类型的指针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 *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=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(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国内产品交易合同
- 2025年城市房屋拆迁补偿合同
- 2025合同终止协议模板示例
- 2025年北京市苹果购买合同
- 小学语文教师岗前培训大纲
- 全科医学科高血压患者管理细则指南
- 2025建筑工程施工升降机安装拆卸合同文档模板
- 移动业务服务管理岗位竞聘
- 幼儿教师语言培训
- 药剂科抗生素合理用药指南
- 对外汉语拼音教学
- NY 623-2002内蒙古白绒山羊
- 12YJ4-1 常用门窗标准图集
- 甲状腺微创消融治疗手术知情同意书
- 自然保护区规划研究课件
- 初中道德与法治人教九年级上册 文明与家园九年级道法导学案《构筑中国价值》
- 箱式变电站技术规格书
- 土方开挖 技术交底
- RBL立式单级离心泵样本
- 日志装饰装修监理日记
- O型圈建议开槽尺寸参数静态
评论
0/150
提交评论