




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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<stdio.h>#include<malloc.h>#include<stdlib.h>#define M 10
3、0typedef structint data;int wei4;node;typedef structnode 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;i<4;i+)/依次输入第一、二、三、四维的长度printf(&qu
4、ot;ttt请输入第%d维的长度:",i+1);scanf("%d",&G->max_meiweii);G->m*=G->max_meiweii; /维数长度积即为数据个数 n=0;for(i=0;i<G->max_meiwei0;i+)/坐标 for(j=0;j<G->max_meiwei1;j+)/初for(k=0;k<G->max_meiwei2;k+)/始for(l=0;l<G->max_meiwei3;l+)/化 G->datn.wei0=i; G->datn.wei1
5、=j; G->datn.wei2=k; G->datn.wei3=l;n+;for(n=0;n<G->m;n+)/依次输入各个结点的坐标值 printf("ttt请输入A"); for(b=0;b<4;b+) printf("%d,",G->datn.weib); printf("b的值n"); scanf("%d",&G->datn.data);system("pause");menu(G);/*/void output(shu *G)/ 输出
6、按列优先顺序 int i,j,b,k,l,h,n;for(i=0;i<G->max_meiwei3;i+) /先固定第四维 ,而后由里到外依次输出 for(j=0;j<G->max_meiwei2;j+)for(k=0;k<G->max_meiwei1;k+)for(l=0;l<G->max_meiwei0;l+)printf("tt");for(h=0;h<G->m;h+) if(G->dath.wei3=i && G->dath.wei2=j && G->dat
7、h.wei1=k && G->dath.wei0=l) printf("t%d",G->dath.data); printf("n");printf("n"); system("pause");menu(G);/*/*/void find(shu *G) / 给出任意元素值 输出对应的一维数组所在的位置int i,a,k=0,j;system("cls");printf("nnttt 请输入所查值: ");scanf("%d",
8、&a);for(i=0;i<G->m;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)printf("nttt(>_<) 对不起,您所查询的数不存在!(>_<) n");pri
9、ntf("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")
10、;printf("tt*n");printf("tt* WELCOME *n");printf("tt*n");printf("tt* *n");printf("tt* *n");printf("tt* 输入 (press 1) *n");printf("tt* 输出 (press 2) *n");printf("tt* 查找 (press 3) *n");printf("tt* 退出 (press 0) *n");
11、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"); printf("nn"); printf(&
12、quot;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
13、(G); break; /*/*/void introduce(shu *G)int i;system("cls"); printf("nnnntt 此系统的功能有 nn"); printf("tt按照行优先顺序将输入的数据建成4维数组nn"); printf("tt按照列优先顺序输出nn"); printf("tt给出任意处的元素值,查询相应的一维数组的序号nn"); printf("nnntt按1返回n"); printf("nntt按0退出n");
14、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("color 9e");printf("nnn");printf("ttn");printf("tt * * * * * * * * * * * * * * *
15、 * * * * 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(&quo
16、t;tt* * n");printf("tt* * n");printf("tt* * n");printf("tt* * n");printf("tt* * n");printf("tt* * n"); printf("tt* * * * * * * * * * * * * * * * * * * n");printf("ttn"); printf("nttt333333333 简介 1 3333333");printf(&
17、quot;nnnttt333333333 登录 2 3333333");printf("nnnttt333333333 退出 3 3333333");printf("nttt请选择:");scanf("%d",&i);switch(i) /case语句,控制输入情况case 1: j=0; introduce(G);break;case 2: j=0; menu(G);break;case 3:j=0; exit(0);default:printf("输入有误,请重新输入"); /增强程序健壮性j
18、=1;return 0; 四、算法设计思想及流程图4.1 算法设计思想 首先,在定义四维数组的数据类型时,我选择了整型以方便编程及利于数据的输入和输出。为了实现任务所要求的功能,我将程序划分为三类:功能函数,界面函数以及主函数。另外,其中的功能函数包括以下几种函数:四维数组元素输入函数、四维数组元素输出函数、元素查找函数、功能介绍函数以及主函数。 对于四维数组输入函数,我通过四个for循环语句先对数组的坐标进行初始化,并输入各个维的长度。然后,再利用一个for循环输入各个元素值。输入时,先固定第一维,然后依次输入各个结点的元素值。对于思维数组输出函数,我也是通过多重for循环进行元素值的输出。
19、先固定第四维,然后依次输出各个结点的元素值。对于元素查找函数,就比较简单了。就是依次对四维数组中的元素值进行比对,如果所查找的元素与数组中的元素值相同,则输出该元素所在的一维编号即可。界面函数包括欢迎界面以及选择菜单界面,包括在完成某些操作后循环出现的选择界面。出于对界面更加友好的考虑,我适当的装饰了一下界面,并采用了DOS系统的清屏命令以及暂停函数,这样就使得界面更加的清晰、简洁,便于使用。在主函数里,我先输入了欢迎界面,然后进入系统选择菜单,最后在退出该系统时,还设置了欢送界面,使得该系统更加的人性化。4.2 流程图4.2.1 主要功能模块流程图开始导入menu输入i条件=i值1值2值3导
20、入输入函数导入输出函数导入查找函数4.2.2 数组输入函数流程图开始G->m=1i=0i<4输出“请输入第%d维的长度”i+i=0,j=0,k=0,l=0i<G->max_meiwei0 j<G->max_meiwei1 k<G->max_meiwei2 l<G->max_meiwei3G->datn.wei0=i; G->datn.wei1=j; G->datn.wei2=k G->datn.wei3=l;n+i+;j+;k+;l+Menu()4.2.3 数组输出函数流程图开始i=0;j=0;k=0;l=0i
21、<G->max_meiwei3 j<G->max_meiwei2 k<G->max_meiwei1 l<G->max_meiwei0ttI+;j+;k+;l+h=0H<G->m>?>如果维数对应,则打印出元素h+Menu()4.2.4 查找函数流程图开始输出“请输入所查值”k=0i=0i<G->m循环查找元素,找到令k=1i+K=0返回menu()错误五、输入及相应运行结果第一组:一二三四维数分别为2,2,2,2,行优先输入16个数:1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16列优先输出相应结果:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四川绵阳北川羌族自治县乡村振兴专岗人员招募30人考试模拟试题及答案解析
- 2025年8月杭州市采荷中学编外教师招聘5人考试参考题库及答案解析
- 2025年合肥市古城小学招聘编外聘用教师备考考试题库附答案解析
- 2025年宝鸡陇县职业教育中心招聘(13人)考试参考题库及答案解析
- 2025年池州市贵池区部分机关事业单位公开招聘编外工作人员27名备考考试题库附答案解析
- 2025云南迪庆州香格里拉市公开招聘治安联防人员30人考试模拟试题及答案解析
- 2025中煤新疆公司面向中国中煤内部招聘管理人员2人备考考试题库附答案解析
- 2025青海西宁市城中区教育局面向社会招聘区聘教师39人考试模拟试题及答案解析
- 2025四川长虹空调有限公司招聘中央空调营销部南充中心总经理岗位1人备考模拟试题及答案解析
- 小学话题作文:我最喜欢的游戏6篇
- 《数据库系统概论》教案
- 旅行社劳动合同范文3篇
- 2025年污水处理及其再生利用行业研究报告及未来行业发展趋势预测
- 证券投资学课件吴晓求
- 摩托车整车采购合同范本
- 托管班合伙人合同协议书
- 9《犟龟》公开课一等奖创新教学设计
- 2025劳动合同补充协议
- 社区节水节电知识培训课件
- 防火墙行业知识培训课件
- 2025版全新升级二手房买卖合同模板下载
评论
0/150
提交评论