手机版

全国邮政编码查询 要源码的直接Hi我

发布时间:2024-11-04   来源:未知    
字号:

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

全国邮政编码查询

一 目的

利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用

C/C++语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深

对树、、查找、等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括

问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解

决综合性实际问题的基本能力。

二 需求分析

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内

读取各个省市的数据,构造一颗树。

2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出

详细地址。

三 概要设计

1、本程序包括4个模块:

(1)主程序模块:

Main(){

树的初始化;

调用函数读取文档数据和构造树;

用户选择查询;

}

(2)读取数据模块:

通过函数读取文本文档数据。

(3)构造树模块:

构造一颗二叉树存储数据。

(4)查询模块:

通过输入邮编查询详细地址或者通过地址查询邮编。

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

2、函数的声明和数据类型的定义:

typedef struct Node2

{

}BTNode;

树结构体的定义。

void ReadromFile(char b[1000][10])

将二维数组传入,把本文文档的内容读到二维数组中。

createbitree (BTNode *&b, BTNode *&root,char ah[1000][10],int &i)

先序遍历造树,把树的节点和二维数组以及变量i传入,i代表的是数组中元素的位

置。

BTNode *SearchNode(BTNode *b,char *x )

通过遍历查询,查询所需要的信息,char *x是传入要查询的信息,然后通过字符指针

返回信息。

四 详细设计

1、定义结构体BTNode

typedef struct Node2

{

char date[10];

char tag[10];

struct Node2 *lchild,*rchild,*parent;

}BTNode;

2、定义二维数组

char c[1000][10];

3、定义结构体指针

BTNode *root;

BTNode *rt;

4、读文件中的内容

void ReadromFile(char b[1000][10]);

5、把文件中读数来的数据遍历存储到树中

createbitree (BTNode *&b, BTNode *&root,char ah[1000][10],int &i);

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

6、查询信息

BTNode *SearchNode(BTNode *b,char *x );

程序流程图:

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

五 调试分析

1、本程序的关键是构造一颗有规律关系的树,首先得出树的结构,和构造

方法。

2、选择一定的格式去读取文件的数据,文件的数据存放一定要按规律排

布,不然将会导致构造树时节点间的数据关系混乱。

3、最关键部分就是以先序递归的方式去构造树,不仅要清楚的了解递归的

过程,而且要清楚的指导如何去判断节点以及如果终止递归。不然将会出

现递归死循环。

4、再递归中要用指针进行操作或者通过地址操作,否则将会出现在递归回

到上一层或者前几层时出现数据重复读入,和数据漏读。

六 测试结果

1、通过写本程序,充分了解了树的结构,以及构造遍历查询等操作,提

高利用计算机分析解决综合性实际问题的基本能力。

2、在函数传递参数时要注意传指针和传值。

3、通过调试分析可以清晰的查看程序的逻辑错误,以及对递归算法有了 更深的了解。

4、递归的方法构造树虽然很方便,但是很容易出错,树是无形的而且不

容易看出哪里出错。

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

5、读取文件时,选择正确的方式打开文件,然后通过需要的格式去读取

文件的内容。

七 用户使用说明

1、本程序在VC下运行。

2、运行后程序自动读取文件内容,用户根据提示选择查询方式,输入查询

内容后,程序将会显示出你所查询的信息。

3、查询后可以选择继续查询和选择退出。

八 课程设计总结

1、课程设计终于结束了,在这次课程设计中不仅巩固了原来学习的知识,更重

要的是加深了对知识点的理解。懂得如何去做一件事情,该先做什么后做什么。在遇

到一些棘手的问题时,不要乱一定要静下心了去分析原因。做课程设计时肯定会遇到

需要问题,然后百度上去找解决问题的方法是非常好的一种方式。

2、做课程设计罪重要的思想,而不是代码的实现。有一个好的想法和思路是一

个程序是否成功的关键。理论知识在实践中我们才可以更好的去理解它,实践是对学

习有着非常大的帮助。

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

九 附录

源程序清单:

mail2.txt /* 邮政编码文件 */

sus1.cpp /* 程序代码 */

#include<malloc.h>

#include<stdio.h>

#include<windows.h>

#include<string.h>

#include<iostream.h>

#include<stdlib.h>

typedef struct Node2

{

char date[10];

char tag[10];

struct Node2 *lchild,*rchild,*parent;

}BTNode;

//BTNode *root;

BTNode *SearchNode(BTNode *b,char *x )

{

BTNode *p;

if(b==NULL) return NULL; //查找失败,空树

else if(!(strcmp(b->date,x)))

{

printf("查找成功\n");

printf("邮编:%s--",b->date);

b=b->parent;

printf("%s--",b->date);

//printf("%s++",b->tag);

while(strcmp(b->tag,"111111"))

{

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

}

printf("%s--",b->date);

while(strcmp(b->tag,"000000"))

{

b=b->parent;

}

printf("%s--",b->date);

return b;

}

else

{

p=SearchNode(b->lchild,x); //查找左树

if(p!=NULL) return p;

else return SearchNode(b->rchild,x);//查找右树

}

}

BTNode *SearchNodem(BTNode *b,char *x )

{

BTNode *p;

if(b==NULL) return NULL; //查找失败,空树

else if(!(strcmp(b->date,x)))

{

printf("查找成功--\n");

b=b->lchild;

printf("邮编:%s--",b->date);

b=b->parent;

printf("%s--",b->date);

while(strcmp(b->tag,"111111"))

{

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

}

printf("%s--",b->date);

while(strcmp(b->tag,"000000"))

{

b=b->parent;

}

printf("%s--",b->date);

return b;

}

else

{

p=SearchNodem(b->lchild,x); //查找左树

if(p!=NULL) return p;

else return SearchNodem(b->rchild,x);//查找右树

}

}

//输出树种所有的叶子节点

/*void DispLeaf(BTNode *b)

{

if(b!=NULL)

{

if(b->lchild==NULL && b->rchild==NULL)

printf("%s\n",b->date);

else

{

DispLeaf(b->lchild);

DispLeaf(b->rchild);

}

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

}

}*/

void ReadromFile(char b[1000][10])

{

FILE *fp;

int i,j;

//char a[10];

if((fp=fopen("mail2.txt","r"))==NULL)

{

printf("failure to open file!\n");

exit(0);

}

for(i=0;!feof(fp);i++)

{

fscanf(fp,"%s",b[i]);

//printf("%s\n",b[i]);

}

}

//先序递归方法造树

createbitree (BTNode *&b, BTNode *&root,char ah[1000][10],int &i)

{

i++;

if(!(strcmp("节点",ah[i])))

{

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

} else { b=(BTNode *)malloc(sizeof(BTNode)); strcpy(b->date,ah[i]);

i++;

strcpy(b->tag,ah[i]);

// root->lchild=b;

b->parent=root;

root=b;

createbitree (b->lchild,root,ah,i);

createbitree (b->rchild,root,ah,i);

}

}

void main()

{ int hp;

int op;

int i;

int j;

char *h;

char d[10];

char c[1000][10];

BTNode *root;

BTNode *rt;

BTNode *r;

ReadromFile(c);

MessageBox(0,TEXT("刘威制作!欢迎使用"),TEXT("欢迎使用"),MB_OK);

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

j=-1;

root=(BTNode *)malloc(sizeof(BTNode));

strcpy(root->date,"中国");

createbitree (rt,root, c,j);

printf(" \n\n\n 请输入您需要查询的城市或者邮编 \n ");

do{

printf(" \n 邮编查询请选择(1) |--不会使用,请 --| ");

"); printf(" \n |--查看帮助文档! --|

printf(" \n 地址查询请选择(2) \n");

scanf("%d",&op);

system("color 6"); //printf("%d",op); switch(op) { case 1: system("color a"); MessageBox(0,TEXT("请输入邮编!"),TEXT("欢迎使用"),MB_OK); printf("邮编:(例如:430000)---->"); scanf("%s",d); h=d; r=SearchNode(rt,h); break;

case 2:

system("color a");

printf("地区:(例如:洪山区)---->");

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

h=d; r=SearchNodem(rt,h); break; default: printf("输入错误!请输入1或者2"); }

printf("\n\n退出(0)

scanf("%d",&hp);

}while(hp==8);

printf("\n谢谢使用!");

}

继续查询(8)");

1、本程序主要对树的构造,以及如何存储数据和遍历访问结点数据。通过从文本内读取各个省市的数据,构造一颗树。 2、通过输入任意地名,遍历树形结构显示其邮政编码;输入任意邮政编码,要给出详细地址。利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

《数据结构》课程设计

中南民族大学计算机科学学院

专业 软件工程 学号: 11065015

姓名 :刘威

全国邮政编码查询 要源码的直接Hi我.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)