数据结构课程设计报告(四维数组应用).docx
数据结构课程设计报告原创设计题目:数组应用专业班级学生学号指导教师时间目录一、设计任务3二、软件环境4三、程序源代码4四、算法设计思想及流程图114.1 算法设计思想114.2 流程图134.2.1主要功能模块流程图134.2.2输入函数流程图134.2.3输出函数流程图144.2.4查找函数流程图15五、输入及相应运行结果16六、收获及体会19七、参考文献20八、附录(局部截图)21一、设计任务题目:数组应用功能:按照行优先顺序将输入的数据建成4维数组,再按照列优先顺序输出结果,给出任意处的元素值,并给出对应的一维数组中的序号。分步实施:1 .初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2 .完成最低要求:完成第一个功能;3 .进一步要求:进一步完成后续功能。有兴趣的同学可以自己扩充系统功能。要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。二、软件环境VC+6.0三、程序源代码#include<stdio.h>#include<malloc.h>#include<stdlib.h>#defineM100typedefstructintdata;intwei4;node;typedefstruct(nodedatM;intmax_meiwei4;每维的长度intm;shu;voidmenu(shu*G);voidinput(shu*G);voidoutput(shu*G);voidfind(shu*G);voidintroduce(shu*G);函数声明/*/voidinput(shu*G)/输入按行intij,k,hh,b,n;G->m=l;for(i=0;i<4;i+)依次输入第一、二、三、四维的长度printf(ttt请输入第d维的长度:",i+l);scanf(,%d,G->max-meiweii);G->m*=G->nax.meiweii;维数长度积即为数据个数)n=0;for(i=0;ivG>max_meiwei0;i+)坐标(for(j=Oy<G->max-meiwei1Jjj+)¾J(for(k=0;k<G->max_meiwei2;k+)/$&(for(l=0;lG>max_meiwei3;l+)化(G->datn.weiO=i;G->datn.weil=j;G->datn.wei2=k;G->datn.wei3=l;n+;)for(n=0;nvG->m;n+)依次输入各个结点的坐标值printf(ttt请输入At');for(b=0;b<4;b+)printf(,%d,n,G->datn.weib);)PrilItfrb的值n”);scanf(%dM,&G->datnJ.data);)system(,'pause'1);menu(G);/*/voidoutput(shu*G)/输出按列优先顺序intiJb,k,l,h,n;for(i=0;i<G->max_meiwei3;i+)先固定第四维,而后由里到外依次输出(for(j=0y<G->max_meiwei2;j+)(for(k=0;k<G->max_meiweil;k+)(for(!=0;l<G->max_meiwei0;l+)printf(,tf,);for(h=0;h<G->m;h+)(if(G->dath.wei3=i&&G->dath.wei2=j&&G->dath.weil=k&&G->dath.weiO=l)(printf(,t%d',G->dathJ.data);)prmtf(,n,);)printf(',n,);SyStem("pause");menu(G);/*/*/voidfind(shu*G)/给出任意元素值输出对应的一维数组所在的位置inti,a,k=j;system(,dsn);printf(,nnttt请输入所查值:”);scanf(,%d,a);for(i=0;i<G->m;i+)(if(a=G->datli.data)逐个比拟,找出数组中和所给值相等的数(printf(ntt4444444444444444);prntf(',nttt对应第一维位置为:%dn,i);printf(,tt5555555555555555nn);k=l;)if(k=O)printf(',nttt-(>_<)-对不起,您所查询的数不存在(>_<)-n,);Printfnttt继续lnttt返回2nttt请选择:”);scanf(',%d',j);if(j=l)(find(G);elseif(j=2)(menu(G);)SyStem("pause");menu(G);/*/voidmenu(shu*G)/藻单inti;system(',clsn);system(ncolor9an);Printf("ttnnnnnn");Printfrttn");Printf"NIIiiiiiiiiiiiiiiiiiiiw);printf(,ttI*I11");printf(,tt+*WELCOME*+n,);printf(*,ttI*I11");printf(,tt+*+n,);printf(uttI*I11,);printf(,tt+*输入(press1)*+n't);printf(,'ttI*输出(press2)*In,);printf(,ttI*查找(press3)*In,t);printf(*,tt+*退出(press0)55÷nt);printf(,ttI*In,);printf(,ttI*I11");printfC,tt+HIlllHdllIl+111t);printf(uttt请选择”);printf(,ntttu);scanf(%d,'i);switch(i)case 1: input(G);break;case 2: output(G);break;case 3: find(G);break;case0:(system(,cls);printf("nnM);printf(*ttnn);printf(,ttnn);printf(,tt(.)n't);printf('*tt+oo(_)oo+n',);printf(',ttn);printf(,tt再见!谢谢使用!!|暧);printf(',ttnn);printf(',tt+oooOooo+no);Printfrnr);exit(O);break;default:menu(G);break;/*/*/voidintroduce(shu*G)inti;system(,'clsn);printf(,nnnntt此系统的功能有nn");Prilltfrtt按照行优先顺序将输入的数据建成4维数组nn”);Prilltf"tt按照列优先顺序输出nn”);Prilltfrtt给出任意处的元素值,查询相应的一维数组的序号nn");printf(',nnntt按1返回n");printf(,nntt按O退出暧);scanf(,%d,i);if(i=l)menu(G);)elseif(i=O)exit(O);)/*/main()intij=l;shu*G;G=(shu*)malloc(sizeof(shu);开辟一段空间while(j)利用j来实现while循环system(,clsn);system(,color9e");printf(,nttt333333333 printf(,nnnttt333333333 printf(,nnnttt333333333 printf(,nttt 请选择:”);printf(',nnn,');-111n);printf(,ttI*Intt);printf(,ttI*X欢送使用数组应用系统X*I11,);printf(,ttI*Int);printf(,ttI*I11);printf(,ttI*Inn);printf(,ttI*Inn);printf(,t