




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计说明书
学生姓名:学号:班级:学院:软件学院专业:软件工程
题目:特殊矩阵的压缩存储算法的实现起迄日期:指导教师
a)需求分析:<1>先定义各个子函数的内容(主要是三个特殊矩阵的函数),该子函数对应的功能包括:一输入矩阵的维数二分别输入特殊矩阵的元素三利用输入的元素初始化特殊矩阵,即用数组来存储特殊矩阵的元素四显示特殊矩阵中的元素及其地址,还有压缩后的特殊矩阵的元素及其地址五输入所要查找的元素在特殊矩阵中的地址六输出该元素的值.<2>利用主函数是想各个子函数的功能b)概要设计c)详细设计#include<stdio.h>#defineZUIDA1000//矩阵的压缩存储与查找intTA[ZUIDA];intn;intA[ZUIDA][ZUIDA];voidduichen(){inti,j,k;int*p;intm,w;printf("请输入对称矩阵的阶数:");scanf("%d",&n);printf("输入对称矩阵:");for(i=1;i<=n;i++)for(j=i;j<=n;j++)scanf("%d",&A[i][j]); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(i>j)A[i][j]=A[j][i]; elseA[i][j]=A[i][j]; } } printf("输出对称矩阵:\n"); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) printf("%d(%d,%d)",A[i][j],i,j),p=&(A[i][j]); printf("\n"); } printf("(括号中非别表示行和列)\n"); k=0; for(i=1;i<=n;i++) for(j=1;j<=n;j++) TA[k++]=A[i][j]; printf("压缩后的对称矩阵:\n"); for(k=0;k<=n*n-1;k++) printf("%-4d(地址为%d)",TA[k],k); printf("\n"); printf("请输入地址(行和列):\n");while(1) { scanf("%d%d",&i,&j);if(i<0||i>n||j<0||j>n) { printf("输入数据有误,请重新输入:\n"); continue; } elsebreak; } for(m=1;m<=i;m++) { for(w=1;w<=j;w++) p=&(A[i][j]); printf("\n"); }printf("根据您提供的地址,您所需要的元素为%d\n",*p);}voidshangsanjiao(){inti,j,k;int*p;intm,w;printf("请输入上三角矩阵的阶数:");scanf("%d",&n);printf("输入上三角矩阵:");for(i=1;i<=n;i++){ for(j=1;j<=n;j++) { if(i>j)A[i][j]=0; elsescanf("%d",&A[i][j]); }}printf("输出上三角矩阵:\n");for(i=1;i<=n;i++){ for(j=1;j<=n;j++) printf("%d(%d,%d)",A[i][j],i,j),p=&(A[i][j]); printf("\n");} printf("(括号中非别表示行和列)\n");k=0;for(i=1;i<=n;i++) for(j=1;j<=n;j++) TA[k++]=A[i][j]; printf("压缩后的上三角矩阵:\n"); for(k=0;k<=n*n-1;k++) printf("%-4d(地址为%d)",TA[k],k); printf("\n"); printf("请输入地址(行和列):\n");while(1) { scanf("%d%d",&i,&j);if(i<0||i>n||j<0||j>n) { printf("输入数据有误,请重新输入:\n"); continue; } elsebreak; } for(m=1;m<=i;m++) { for(w=1;w<=j;w++) p=&(A[i][j]); printf("\n"); }printf("根据您提供的地址,您所需要的元素为%d\n",*p);}voidxiasanjiao(){inti,j,k;int*p;intm,w;printf("请输入下三角矩阵的阶数:");scanf("%d",&n);printf("输入下三角矩阵:");for(i=1;i<=n;i++){ for(j=1;j<=n;j++) { if(i>=j)scanf("%d",&A[i][j]); elseA[i][j]=0; }}printf("输出下三角矩阵:\n");for(i=1;i<=n;i++){ for(j=1;j<=n;j++) printf("%d(%d,%d)",A[i][j],i,j),p=&(A[i][j]); printf("\n");} printf("(括号中非别表示行和列)\n");k=0;for(i=1;i<=n;i++) for(j=1;j<=n;j++) TA[k++]=A[i][j]; printf("压缩后的下三角矩阵:\n"); for(k=0;k<=n*n-1;k++) printf("%-4d(地址为%d)",TA[k],k); printf("\n"); printf("请输入地址(行和列):\n");while(1) { scanf("%d%d",&i,&j);if(i<0||i>n||j<0||j>n) { printf("输入数据有误,请重新输入:\n"); continue; } elsebreak; } for(m=1;m<=i;m++) { for(w=1;w<=j;w++) p=&(A[i][j]); printf("\n"); }printf("根据您提供的地址,您所需要的元素为%d\n",*p);}//主菜单intmenu_list(){ intc; printf("\n\n**************************特殊矩阵的压缩存储**************************\n\n"); printf("1.对称矩阵的压缩存储\n"); printf("2.上三角矩阵的压缩存储\n"); printf("3.下三角矩阵的压缩存储\n"); printf("4.退出系统\n"); printf("请输入(1-4)[]\b\b"); while(1) { scanf("%d",&c); if(c<1||c>4) printf("输入错误,请重新输入:");else break; } returnc;}//主函数voidmain(){ while(1) { switch(menu_list()) { case1: duichen(); break; case2: shangsanjiao(); break; case3: xiasanjiao();break; case4: printf("程序结束,谢谢您的使用!\n\n"); exit(0); } }}d)调试分析(主菜单界面)e)课设总结:我的课程设计中的代码完全是自己写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省安全隐患排查
- 安全生产与职业健康培训
- 河北省安全事故
- 资料员安全教育培训内容
- 深基坑安全管理措施方案
- 2025届甘肃省定西市通渭县第二中学高一物理第二学期期末达标检测模拟试题含解析
- 安全生产月进度表
- 交通安全研究报告
- 2025届浙江省宁波市六校联考物理高二下期末学业水平测试试题含解析
- 安全事故指的是什么
- 电镀产品检验记录
- 2023-2024学年辽宁省大连市小学语文五年级期末评估试卷附参考答案和详细解析
- 2023年小学数学必背定义和公式
- 2023年四川省宜宾市全科医学专业实践技能测试卷(含答案)
- 电梯井道脚手架施工方案
- 兴平市生活垃圾焚烧发电项目环评报告
- 主令电器(课用)课件
- 湘少版英语六年级下册全册教案
- 测绘生产困难类别细则及工日定额
- 湖南省长郡中学“澄池”杯数学竞赛初赛试题(扫描版含答案)
- 消防系统施工总进度计划
评论
0/150
提交评论