ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:171.45KB ,
资源ID:7505857      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7505857.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计报告四维数组应用.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计报告四维数组应用.docx

1、数据结构课程设计报告四维数组应用数据结构课程设计报告(原创)设计题目: 数 组 应 用专 业 班 级 学 生 学 号 指导教师 时 间 一、设计任务3二、软件环境4三、程序源代码4四、算法设计思想及流程图114.1 算法设计思想114.2 流程图134.2.1 主要功能模块流程图13 4.2.2 输入函数流程图134.2.3 输出函数流程图144.2.4 查找函数流程图15五、输入及相应运行结果16六、收获及体会19七、参考文献20八、附录(部分截图) 21一、设计任务题目: 数组应用功能: 按照行优先顺序将输入的数据建成4维数组,再按照列优先顺序输出结果,给出任意处的元素值,并给出对应的一维

2、数组中的序号。分步实施:1初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2 完成最低要求:完成第一个功能;3 进一步要求:进一步完成后续功能。有兴趣的同学可以自己扩充系统功能。要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。二、软件环境V C +6.0三、程序源代码#include#include#include#define M 100typedef struct int data; int wei4;node;typedef stru

3、ct node datM; int max_meiwei4;/每维的长度 int m;shu;void menu(shu *G);void input(shu *G);void output(shu *G);void find(shu *G);void introduce(shu *G); /函数声明/*/void input(shu *G)/ 输入 按行 int i,j,k,l,h,b,n; G-m=1; for(i=0;imax_meiweii); G-m*=G-max_meiweii; /维数长度积即为数据个数 n=0;for(i=0;imax_meiwei0;i+)/坐标 for(j=

4、0;jmax_meiwei1;j+)/初 for(k=0;kmax_meiwei2;k+)/始 for(l=0;lmax_meiwei3;l+)/化 G-datn.wei0=i; G-datn.wei1=j; G-datn.wei2=k; G-datn.wei3=l; n+; for(n=0;nm;n+)/依次输入各个结点的坐标值 printf(ttt请输入A); for(b=0;bdatn.weib); printf(b的值n); scanf(%d,&G-datn.data); system(pause); menu(G);/*/void output(shu *G)/ 输出按列优先顺序 i

5、nt i,j,b,k,l,h,n; for(i=0;imax_meiwei3;i+) /先固定第四维 ,而后由里到外依次输出 for(j=0;jmax_meiwei2;j+) for(k=0;kmax_meiwei1;k+) for(l=0;lmax_meiwei0;l+) printf(tt); for(h=0;hm;h+) if(G-dath.wei3=i & G-dath.wei2=j & G-dath.wei1=k & G-dath.wei0=l) printf(t%d,G-dath.data); printf(n); printf(n); system(pause); menu(G)

6、;/*/*/void find(shu *G) / 给出任意元素值 输出对应的一维数组所在的位置 int i,a,k=0,j; system(cls); printf(nnttt 请输入所查值: ); scanf(%d,&a); for(i=0;im;i+) if(a=G-dati.data) /逐个比较,找出数组中和所给值相等的数 printf(ntt4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4); printf(nttt对应第一维位置为:%dn,i); printf(tt5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5n); k=1; if(k=0) pri

7、ntf(nttt(_) n); printf(nttt继续 1nttt返回 2nttt请选择:); scanf(%d,&j); if(j=1) find(G); else if(j=2) menu(G); system(pause); menu(G);/*/void menu(shu *G)/菜单int i;system(cls);system(color 9a);printf(ttnnnnnn);printf(ttn);printf(ttn);printf(tt*n);printf(tt* WELCOME *n);printf(tt*n);printf(tt* *n);printf(tt*

8、*n);printf(tt* 输入 (press 1) *n);printf(tt* 输出 (press 2) *n);printf(tt* 查找 (press 3) *n);printf(tt* 退出 (press 0) *n);printf(tt* *n);printf(tt*n);printf(ttn);printf(ttt请选择);printf(nttt);scanf(%d,&i);switch(i) case 1: input(G); break; case 2: output(G); break; case 3: find(G); break; case 0: system(cls

9、); printf(nn); printf(tt n); printf(tt n); printf(tt (.) n); printf(tt+-oOOo-(_)-oOOo-+n); printf(tt| |n); printf(tt| 再见! 谢谢使用! |n); printf(tt| |n); printf(tt+-oooO-Oooo-+n); printf(nn); exit(0); break; default: menu(G); break; /*/*/void introduce(shu *G) int i; system(cls); printf(nnnntt 此系统的功能有 nn

10、); printf(tt按照行优先顺序将输入的数据建成4维数组nn); printf(tt按照列优先顺序输出nn); printf(tt给出任意处的元素值,查询相应的一维数组的序号nn); printf(nnntt按1返回n); printf(nntt按0退出n); scanf(%d,&i); if(i=1) menu(G); else if(i=0) exit(0); /*/main() int i,j=1; shu *G; G=(shu *)malloc(sizeof(shu); /开辟一段空间 while(j) /利用j来实现while循环 system(cls); system(col

11、or 9e); printf(nnn);printf(ttn);printf(tt * * * * * * * * * * * * * * * * * * * n);printf(tt* 欢迎使用数组应用系统 * n);printf(tt * * * * * * * * * * * * * * * * * * * n);printf(tt* * n);printf(tt* * n);printf(tt* * n); printf(tt* * n);printf(tt* * n);printf(tt* * n);printf(tt* * n);printf(tt* * n);printf(tt*

12、 * n);printf(tt* * n);printf(tt* * n);printf(tt* * n); printf(tt* * * * * * * * * * * * * * * * * * * n);printf(ttn); printf(nttt333333333 简介 1 3333333); printf(nnnttt333333333 登录 2 3333333); printf(nnnttt333333333 退出 3 3333333);printf(nttt请选择:);scanf(%d,&i);switch(i) /case语句,控制输入情况case 1: j=0; intr

13、oduce(G);break;case 2: j=0; menu(G);break;case 3: j=0; exit(0);default: printf(输入有误,请重新输入); /增强程序健壮性 j=1; return 0; 四、算法设计思想及流程图4.1 算法设计思想 首先,在定义四维数组的数据类型时,我选择了整型以方便编程及利于数据的输入和输出。为了实现任务所要求的功能,我将程序划分为三类:功能函数,界面函数以及主函数。另外,其中的功能函数包括以下几种函数:四维数组元素输入函数、四维数组元素输出函数、元素查找函数、功能介绍函数以及主函数。 对于四维数组输入函数,我通过四个for循环语

14、句先对数组的坐标进行初始化,并输入各个维的长度。然后,再利用一个for循环输入各个元素值。输入时,先固定第一维,然后依次输入各个结点的元素值。对于思维数组输出函数,我也是通过多重for循环进行元素值的输出。先固定第四维,然后依次输出各个结点的元素值。对于元素查找函数,就比较简单了。就是依次对四维数组中的元素值进行比对,如果所查找的元素与数组中的元素值相同,则输出该元素所在的一维编号即可。界面函数包括欢迎界面以及选择菜单界面,包括在完成某些操作后循环出现的选择界面。出于对界面更加友好的考虑,我适当的装饰了一下界面,并采用了DOS系统的清屏命令以及暂停函数,这样就使得界面更加的清晰、简洁,便于使用

15、。在主函数里,我先输入了欢迎界面,然后进入系统选择菜单,最后在退出该系统时,还设置了欢送界面,使得该系统更加的人性化。4.2 流程图4.2.1主要功能模块流程图4.2.2数组输入函数流程图4.2.3数组输出函数流程图4.2.4查找函数流程图五、输入及相应运行结果第一组:一二三四维数分别为2,2,2,2,行优先输入16个数:1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16列优先输出相应结果: 1 9 5 13 3 11 7 15 2 10 6 14 4 12 8 16查找元素16:对应的一维位置为15第二组:一二三四维数分别为2,2,2,2:行优先输入16个数:5,3

16、,4,7,11,3,9,10,8,5,5,7,40,21,31,22列优先输出相应结果:5 811 404 59 313 53 217 710 22查找元素7:对应的一维位置为3,11六、收获及体会通过数据结构的课程设计,我学到了许多,并将这些知识应用于实践中,进一步锻炼了自己的动手能力。当然,也会出现一些问题。总结如下:1、对于出现的调试错误要仔细分析错误的原因,根据错误提示,按照自顶向下的程序设计原则,逐个进行排错。只要够细心,就一定能够找到错误的所在。2、程序的易操作性很重要,也就是要有一个足够友好的界面。基于这一点,我设计了自己程序的人机对话界面,通过一个个选项来完成各种操作,大大增强

17、了程序的易用性。3、编程过程中加入必要的注释是很重要的,这不仅时为了别人能更容易的看懂你的源程序,更重要的是方便自己未来的修改。因为程序源代码一多,自己未必能够十分清楚变量及函数的作用。此时,加必要的注释,就能帮助自己变量及函数的含义,而不是从头理解,提高了工作的效率。4、要善于利用各种资源,以此提高自己编程的效率。否则,就会花费许多无谓的时间在不必要的事情上面。5、编写的程序要通俗易懂,比如变量与函数的定义要尽量做到见名知义。七、参考文献 1、谭浩强编著 C程序设计(第四版)清华大学出版社 2010.01 2、严蔚敏编著 数据结构(C语言版) 清华大学出版社 1997.04 3、网络资源八部分截图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1