您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 数据结构课程设计报告(四维数组应用)
数据结构课程设计报告(原创)设计题目:数组应用专业班级学生学号指导教师时间2目录一、设计任务……………………………………3二、软件环境……………………………………4三、程序源代码…………………………………4四、算法设计思想及流程图……………………114.1算法设计思想……………………………114.2流程图……………………………………134.2.1主要功能模块流程图………………134.2.2输入函数流程图……………………134.2.3输出函数流程图……………………144.2.4查找函数流程图……………………15五、输入及相应运行结果………………………16六、收获及体会…………………………………19七、参考文献……………………………………20八、附录(部分截图)…………………………213一、设计任务题目:数组应用功能:按照行优先顺序将输入的数据建成4维数组,再按照列优先顺序输出结果,给出任意处的元素值,并给出对应的一维数组中的序号。分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:完成第一个功能;3.进一步要求:进一步完成后续功能。有兴趣的同学可以自己扩充系统功能。要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案45)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。二、软件环境VC++6.0三、程序源代码#includestdio.h#includemalloc.h#includestdlib.h#defineM100typedefstruct{intdata;intwei[4];}node;typedefstruct{nodedat[M];intmax_meiwei[4];//每维的长度intm;}shu;voidmenu(shu*G);voidinput(shu*G);voidoutput(shu*G);voidfind(shu*G);voidintroduce(shu*G);//函数声明/***********************************************************/voidinput(shu*G)//输入按行{inti,j,k,l,h,b,n;5G-m=1;for(i=0;i4;i++)//依次输入第一、二、三、四维的长度{printf(\t\t\t请输入第%d维的长度:,i+1);scanf(%d,&G-max_meiwei[i]);G-m*=G-max_meiwei[i];//维数长度积即为数据个数}n=0;for(i=0;iG-max_meiwei[0];i++)//坐标{for(j=0;jG-max_meiwei[1];j++)//初{for(k=0;kG-max_meiwei[2];k++)//始{for(l=0;lG-max_meiwei[3];l++)//化{G-dat[n].wei[0]=i;G-dat[n].wei[1]=j;G-dat[n].wei[2]=k;G-dat[n].wei[3]=l;n++;}}}}for(n=0;nG-m;n++)//依次输入各个结点的坐标值{printf(\t\t\t请输入A[);for(b=0;b4;b++){printf(%d,,G-dat[n].wei[b]);}printf(\b]的值\n);scanf(%d,&G-dat[n].data);}6system(pause);menu(G);}/*******************************************************/voidoutput(shu*G)//输出按列优先顺序{inti,j,b,k,l,h,n;for(i=0;iG-max_meiwei[3];i++)//先固定第四维,而后由里到外依次输出{for(j=0;jG-max_meiwei[2];j++){for(k=0;kG-max_meiwei[1];k++){for(l=0;lG-max_meiwei[0];l++){printf(\t\t);for(h=0;hG-m;h++){if(G-dat[h].wei[3]==i&&G-dat[h].wei[2]==j&&G-dat[h].wei[1]==k&&G-dat[h].wei[0]==l){printf(\t%d,G-dat[h].data);}}}printf(\n);}}}printf(\n);system(pause);menu(G);7}/*******************************************************//*******************************************************/voidfind(shu*G)//给出任意元素值输出对应的一维数组所在的位置{inti,a,k=0,j;system(cls);printf(\n\n\t\t\t请输入所查值:);scanf(%d,&a);for(i=0;iG-m;i++){if(a==G-dat[i].data)//逐个比较,找出数组中和所给值相等的数{printf(\n\t\t\4\4\4\4\4\4\4\4\4\4\4\4\4\4\\4\4);printf(\n\t\t\t对应第一维位置为:%d\n,i);printf(\t\t\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\n);k=1;}}if(k==0){printf(\n\t\t\t~~~~(_)~~~~对不起,您所查询的数不存在!~~~~(_)~~~~\n);printf(\n\t\t\t继续1\n\t\t\t返回2\n\t\t\t请选择:);scanf(%d,&j);if(j==1){find(G);}elseif(j==2){menu(G);}}8system(pause);menu(G);}/*******************************************************/voidmenu(shu*G)//菜单{inti;system(cls);system(color9a);printf(\t\t\n\n\n\n\n\n);printf(\t\t\n);printf(\t\t╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬\n);printf(\t\t║**************************************║\n);printf(\t\t╬*WELCOME*╬\n);printf(\t\t║**************************************║\n);printf(\t\t╬**╬\n);printf(\t\t║**║\n);printf(\t\t╬*☆输入(press1)*╬\n);printf(\t\t║*★输出(press2)*║\n);printf(\t\t║*☆查找(press3)*║\n);printf(\t\t╬*★退出(press0)*╬\n);printf(\t\t║**║\n);printf(\t\t║**************************************║\n);printf(\t\t╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬\n);printf(\t\t\t请选择);printf(\n\t\t\t);scanf(%d,&i);switch(i){case1:input(G);break;case2:output(G);break;case3:find(G);break;9case0:{system(cls);printf(\n\n);printf(\t\t\n);printf(\t\t\n);printf(\t\t(.@.@)\n);printf(\t\t+-------oOOo-----(_)-----oOOo---------+\n);printf(\t\t||\n);printf(\t\t|再见!谢谢使用!!|\n);printf(\t\t||\n);printf(\t\t+----------oooO-------Oooo--------------+\n);printf(\n\n);exit(0);break;}default:menu(G);break;}}/*******************************************************//*******************************************************/voidintroduce(shu*G){inti;system(cls);printf(\n\n\n\n\t\t☆此系统的功能有☆\n\n);printf(\t\t★按照行优先顺序将输入的数据建成4维数组\n\n);printf(\t\t★按照列优先顺序输出\n\n);printf(\t\t★给出任意处的元素值,查询相应的一维数组的序号10\n\n);printf(\n\n\n\t\t按1返回\n);printf(\n\n\t\t按0退出\n);scanf(%d,&i);if(i==1){menu(G);}elseif(i==0){exit(0);}}/*******************************************************/main(){inti,j=1;shu*G;G=(shu*)malloc(sizeof(shu));//开辟一段空间while(j)//利用j来实现while循环{system(cls);system(color9e);printf(\n\n\n);printf(\t\t┏━━━━━━━━━━━━━━━━━━━┓\n);printf(\t\t┃*******************┃\n);printf(\t\t┃*※欢迎使用数组应用系统※*┃\n);printf(\t\t┃********************┃\n);printf(\t\t┃**┃\n);printf(\t\t┃**┃\n);printf(\t\t┃*☆☆☆☆☆☆☆☆*┃\n);printf(\t\t┃*★★★★★*┃\n);11printf(\t\t┃*☆☆☆☆*┃\n);printf(\t\t┃*★★★★*┃\n);printf(\t\t┃*☆☆☆☆*┃\n);printf(\t\t┃*★★★★*┃\n);printf(\t\t┃*☆☆☆☆*┃\n);printf(\t\t┃*★★★★*┃\n);printf(\t\t┃*☆☆*┃\n);printf(\t\t┃**┃\n);printf(\t\t┃*******************┃\n);printf(\t\t┗━━━━━━━━━━━━━━━━━━━┛\n);printf(\n\t\t\t\3\3\3\3\3\3\3\3\3简介1\3\3\3\3\3\3\3);printf(\n\n\n\t\t\t\3\3\3\3\3\3\3\3\3登录2\3\3\3\3\3\3\3);printf(\n\n\n\t\t\t\3\3\3\3\3\3\3\3\3退出3\3\3\3\3\3\3\3);printf(\n\t\t\t请选择:);scanf(%d,&i);switch(i){//case语句,控制输入情况case1:j=0;introduce(G);break;case2:j=0;menu(G);break;case3:j=0;exit(0);default:printf(输入有误,请重新输入);//增强程序健壮性j=1;}}return0;}12四、算法设计思想及流程图
本文标题:数据结构课程设计报告(四维数组应用)
链接地址:https://www.777doc.com/doc-6208039 .html