古树名木管理系统
武汉城区古树名木数字化管理系统的开发与研究

史 , 近代史上 扮 演重要 角 色的武汉 , 在 拥有 珍贵 的古 树名木 资源 。 武汉 市政府 高度重 视古 树名木 的管 理 、
保护 ,0 4年 1 20 月武 汉 市人大 常 委会 颁布 了 《 汉 武
前先进 的 图形 、 图像 、 算机 网络技 术 的高效 、 型 、 计 大 智能软 件平 台 , 集信息 输入 、 是 数据 库管理 及空 间数
支 持 分 析 和 决策 功 能。 该 系 统是 现 代 信 息 技 术在 园林 绿 化 管 理 中的 一项 重 要应 用 。 关 键词 : 古树 名木 ; 字化 ; 数 管理 系统
曾是 历史 上 四大名 镇 之首 ,具有 3 0 0 0年 建 城
合起来 , 具有 强大 的柔韧 性 和整合性 . 是一 个集 成 目
况 、 虫 危 害情 况 、 护 级 别 、 病 保 养护 责 任 人 、 认 时 确 间 、 纬度坐标 、 经 备注 等 1 9项 内容 。
维普资讯
园林科技
20 年第 4期总第 16期 07 0
3 古树名木数 字化管理系统的优势所在
建 立古树名 木数 字化 管理 系统 .是将 现代信 息 技 术应 用 于 园林 绿 化 管理 的重 要 体 现 . 园林 科研 是
的一个 新领 域 。 时代 和科 技 发 展 的新 趋势 武汉 是
ቤተ መጻሕፍቲ ባይዱ
集 人 员 历 时 一 年 ,进 行 了详 尽 的古 树 名 木 资 源 调
查 , 集大量 相 关数据 。利用 G S定 位仪 测定 每 株 采 P
维普资讯
园林科技
2 0 年第 4期总第 16期 07 0
・3 3・
謦
武 汉城 区 古 树 名木 数 字化 管 理 系 统 的开 发 与 研 究
古树名木系统新版PPT教案

3.系统功能
(2)信息变更—伤残
伤残
第24页/共61页
(2)信息变更—认养3.系统功能
认养信息录入:在信息库中,对已有的古树名木认养信息进 行登记。 暂时保存:古树名木认养信息录入后作为未审核通过的数据进 入相应系统数据库。 保存:古树名木认养信息录入后直接作为审核通过的数据进入 相应系统数据库。 维护:用户查看用户上报的所有古树名木认养信息,对上报的 数据审核不合格的信息可以修改及删除。
第25页/共61页
3.系统功能
(2)信息变更—认养
认养
第26页/共61页
(3)古树会诊 3.系统功能
会诊信息录入:在信息库中,对已有的古树名木会诊信息进 行登记。 暂时保存:古树名木会诊信息录入后作为未审核通过的数据进 入相应系统数据库。 保存:古树名木会诊信息录入后直接作为审核通过的数据进入 相应系统数据库。 维护:用户查看用户上报的所有古树名木会诊信息,对上报的 数据审核不合格的信息可以修改及删除。
ቤተ መጻሕፍቲ ባይዱ第52页/共61页
系统演示
第53页/共61页
谢谢!
第54页/共61页
第21页/共61页
3.系统功能
(2)信息变更—本县之间移植
移植
第22页/共61页
(2)信息变更—伤残3.系统功能
伤残信息录入:在信息库中,对已有的古树名木伤残信息进 行登记。 暂时保存:古树名木伤残信息录入后作为未审核通过的数据进 入相应系统数据库。 保存:古树名木伤残信息录入后直接作为审核通过的数据进入 相应系统数据库。 维护:查看该用户所有古树名木伤残信息,对上报的数据审核 不合格的信息可以修改及删除。
主要进行常用树种设置、综合查询、地 图浏览和统计分析。
附表二古树群调查表-古树名木信息管理系统

(2)鉴定人员鉴定小组应由3名以上相关专业人员组成,其中至少1人具有高级职称。
(6)CT扫描测定法:通过树干被检查部位的断面立体图像,根据年轮数目鉴定树木的年龄。一种不需锯树就能准确地测定出树龄的树龄测定仪器。该仪器类似医用CT扫描机,体积不大,使用时只要把树干圈在里面进行扫描,树龄即会迅速显示出来,不会对树木造成损坏。这种仪器能测定直径1m以内的树干,它可测知千年以内的古树。
第十条
名木不受树龄限制,不分级。具有以下特征的树木属于名木的范畴:
(1)国家领袖人物亲植树木;
(2)外国元首或著名政治人物所植树木;
(3)国内外著名历史文化名人、知名科学家所植或咏题的树木;
(4)分布在历代皇家园林、庙宇、道观等场所,与著名历史文化名人或重大历史事件有关,并具有历史记载的树木;
(5)分布在风景名胜区,并列入世界自然遗产或世界文化遗产保护内涵的标志性树木;
第二条
1、《古树名木普查技术规范》(试行)(全国绿化委员会办公室,2015年7月);
2、《古树名木鉴定标准》(试行)(全国绿化委员会办公室,2015年7月);
3、《古树名木代码与条码》(LY/T 1664—2006)
4、《森林资源代码 树种》(LY/T 1439—1999)
5、《中华人民共和国行政区域代码》(GB/T2260)
8.栽植人:限于名木调查。填写实际栽植人,要求写栽植人全名。
9.类别:限于名木调查。名木分纪念树、友谊树和珍贵稀有树等。
基于GIS的广东省古树名木信息管理系统的设计与应用

基于GIS的广东省古树名木信息管理系统的设计与应用黄宁辉【摘要】将先进的GPS、GIS、数据库和计算机网络技术引入到古树名木的管理是一种创新.本文介绍了广东省古树名木信息管理系统的设计路线、关键技术、功能及应用情况.【期刊名称】《林业勘查设计》【年(卷),期】2012(000)003【总页数】3页(P110-112)【关键词】古树名木;管理信息系统【作者】黄宁辉【作者单位】广东省林业调查规划院【正文语种】中文古树名木,是指有百年以上树龄、稀有珍贵的树木,且具有历史价值或者重要纪念意义。
古树名木是林业资源的重要组成部分,是一项重要的自然资产。
随着城市规模的逐渐扩大,环境污染、病虫害等因素的影响,古树名木的生长环境受到了不同程度的破坏。
传统的古树名木管理与保护模式越来越满足不了社会发展与规划的需要,对古树名木进行数字化的管理与保护显得尤为重要。
近年来,广东省林业部门十分重视城市古树名木的管理和保护,采取科学化和信息化的手段,利用全球定位系统 (GPS)、地理信息系统 (GIS)等先进技术,开发了基于GIS的广东省古树名木信息管理系统,对全省的古树名木信息实现了数字化管理。
1 系统设计1.1 技术路线系统采用GPS-PDA进行数据采集,Sql server 2000数据库进行数据的存储管理,服务器端通过ArcSDE为应用程序提供空间数据存取及访问接口,客户端通过或ArcGIS Engine进行属性数据的存取。
局域网上系统维护及系统应用通过C/S模式实现。
图1 系统的技术路线图1.2 关键技术及特点1.2.1 采用GPS-PDA进行数据采集,可以帮助技术人员高效、快速准确地进行古树名木的导航定位,在实地调查中直接进行属性数据的录入,直接生成古树名木点状地理信息要素。
1.2.2 应用ArcGIS Engine开发古树名木管理信息系统。
ArcGIS Engine是一个地理信息系统开发工具包,开发人员可以从工具包中取出所需的组件,将其快速的组装在一起,构成所需要的应用程序。
基于WebGIS的古树名木网络化管理系统的设计与实现

湖南 农 业 科 学
2 0 , 2 : 3 4 0 8 ( ) 1 ~15 4
H nn A r ut a Si c s u a g cl WeG S的古 树 名 木 网络化 管理 bI 系统 的 设 计 与 实 现
古 树成 为 了当务之急 。 WeGS 网 络 地 理 信 息 系 统 ) 指 基 于 It t b I( 是 ne me
共 享 。
1 系统 结 构 分 析 与 设 计
本 系统 在 国内外 众 多 WeGS开发 平 台 中选 用 bI
n t r n g me t I d iin,e p r y tm s nrdu e o ma a e a ce ta d fmo ste s sse t al ewok ma a e n .n a dto x e ts se Wa ito c d t n g n in n a u r e ytmail y,s ini c l c ce t a y. i fl
Ke r s: nin n a u es y wo d a c tadfmo st e ;We GI;Ma X rmeF r aa jx x r ss m e r b S p t o v ;Aa ;e pt yt e J e e
古树 是指 树龄 在 百 年 以上 的 树 木 , 名木 是 指 珍 贵、 稀有 的树木 和 具 有历 史 价 值 、 念 意义 的树 木 。 纪 由于古 树名木 的特殊 价值 , 一直 以来 , 国家 和各地 方 园林 局都 很重 视对 古 树 名木 的保 护 , 是对 于古 树 但 名木信 息的管 理还 仅 仅 停 留 在手 工 操作 , 能进 行 不 快 速查 询和统 计分析 。在 计算 机技术快 速 发展 的今 天, 如何 用最先 进 的管 理 方法 和创 新 的 思维 来 保 护
福建省古树名木管理信息系统设计和实现

滤和 数据 割接 方案 。
1系统设计
1 . 1 系统设 计 目标 着力构 建 一个标 准化 、规 范化 、信 息化 、
数据 共享 的动态 信 息管理 系统 ,能够 更好 的适 应 古树 名木 信 息管理 的未 来需求 。按 照 “ 加 快
系 统 中采 用 的接 口协 议 、 编解 码 协 议 、 传 输 协议 等 符 合 国家标 准 、行 业标 准 和 国家 林 业 局颁 布 的技 术 规范 ,系 统 具有 良好 的兼 容 性 和 互联 互 通 性 。在 系 统 设 计 的 同 时 ,也 为 将 来 的业 务 流 程 制定 了较 为 完 善 的规 范 , 具 有较 强 的实 际操 作性 。
福建福州 3 5 0 0 0 3 ) ( 1 福建省绿化委 员会 办公 室 福建福州 1 3 5 0 0 0 3 ; 2 福 建省林 业调查规划院
摘要 :论 述 了建 立基 于省 、市、县 、乡 四级 网络 的福建 省 古树名 木 管理信 息 系统 的技 术 方 法和实 现过 程 , 通 过对 系统 的 目标和 需求 分析 ,探讨 了福 建省 古树 名木 管 理信 息系 统 的 系统 架构 与功 能模块设 计 、数据 库建 立 以及 系统运 行 等过程 的关 键技 术 点。系 统应用
1 . 2系统设计原则
( 1 ) 易用性 原 则
系 统提供 清 晰 、友 好 、简洁 的人机 交 互界
面 ,灵 活 、易学 易用 ,便 于 日常管 理和维 护 。
在 快 速 操 作和 处理 突 发 事 件 上 有 较 高 的 时 效 性 ,最大 限度 地减 轻操 作人 员 的负担 ,做 到部 分业 务 的 自动 化处 理 。
古树名木管理系统功能及使用范围

古树名木管理系统功能及使用范围古树名木是人类文化遗产的重要组成部分,具有重要的生态、历史和文化价值。
为了保护和管理好这些珍贵的自然资源,古树名木管理系统应运而生。
本文将介绍古树名木管理系统的功能以及使用范围。
一、功能1. 古树名木信息登记:古树名木管理系统可以对各地的古树名木进行信息登记,包括树种、树龄、树高、树冠形态等基本信息,以及所在地的地理位置、保护单位等相关信息。
通过系统的信息登记功能,可以实现对古树名木的全面了解和统一管理。
2. 信息查询与浏览:用户可以通过古树名木管理系统进行古树名木的信息查询与浏览。
系统提供了多种查询方式,如按照地理位置、树种类型、保护单位等进行查询,方便用户快速找到所需信息。
3. 信息统计与分析:古树名木管理系统可以根据用户的需求,进行古树名木信息的统计与分析。
系统可以生成各类统计报表,如古树名木数量统计、树种分布情况分析等,帮助用户更好地了解古树名木的分布情况和特点。
4. 古树名木保护管理:古树名木管理系统提供了古树名木保护管理的功能。
用户可以在系统中录入古树名木的保护措施、修剪计划等信息,也可以记录古树名木的生长状况和变化情况,及时采取相应的保护措施。
5. 古树名木活动发布:古树名木管理系统可以发布古树名木保护活动的信息,包括古树名木保护讲座、参观活动等。
用户可以通过系统了解并参与相关活动,增加对古树名木保护的认识和参与度。
二、使用范围古树名木管理系统可以应用于各个层级的管理单位和个人,具有广泛的使用范围。
1. 国家级管理单位:古树名木是国家重要的自然遗产,国家级管理单位可以利用古树名木管理系统,全面了解和管理国内范围的古树名木资源。
2. 地方政府:地方政府可以利用古树名木管理系统,对本地区的古树名木进行信息登记和管理,制定相应的保护政策和措施。
3. 保护单位:古树名木保护单位可以利用古树名木管理系统,对所辖范围内的古树名木进行信息登记和管理,及时采取相应的保护措施。
杭州市古树名木信息系统的设计与开发

E - ma i l : s i n g d r e a m@ 1 6 3 . c o r模式或 B / S模式 的古树名木信息 系统 。这些信 息 系统对城 市古树 名木信 息进 行 了系统
设计和功能开发方面进行 了详细 的探 讨和 实践。在 数据库 构建上 , 重点分析 了古树 名木信 息的
划分 , 根 据 业务 需 求 实 际 形成 不 同类 别 的数 据 集 ; 在 系统 功 能 实现 上 , 探 讨 了古 树 名 木 信 息 的 统
计分析 和 网络地 图查询 的关键 技 术。该 系统的建 立可 满足城 市古树 名木 管理信 息化发展 的要
U U Ya n - q u n, L UO We i , L I Yu - p i n g , H ANG We b h o n g , S ONG Qi - d a o , YE L u
( I n s t i t u t e o f S c i e n t i f i c a n d T e c h n i c a l I n f o r ma t i o n , C h i n a Ac a d e my o f T r o p i c a l Ag r i c u l t u r a l ci S e n c e s , Da n z h o u , Ha i n a n 5 7 1 7 3 7 )
整理 , 可用 于古 树名 木 的查 询和 动态监 测 , 为古 树名 木
基金 项 目 : 杭 州西 湖风 景名 胜 区管委会 ( 市 园文局 ) 科技 发 展 计 划
资 助项 目( 2 0 0 9 - 0 0 1 ) 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工程学院国脉信息学院《C语言程序设计》课程设计实验报告题目:城区古树名木信息管理系统专业:电子信息工程班级:(1)班学号:姓名:成绩:指导教师:完成日期:2011年 4 月 20 日四、系统结构图五、功能模块说明古树名木信息的录入、查询、修改、删除模块如下:1)、列表模块2)、录入模块3)查询模块4).*城区信息模块与古树名木养护信息的录入、查询、删除模块雷同。
六、运行情况1)、主菜单N开始读文件数据列出数据输入stree[i].number==s ?删除数据 Y 返回主函数 返回主函数输出数据 开始读文件数据输入numTree[i].numbe ==rnum ? 输出数据 返回主函数YN显示数据 修改数据 返回主函数一、课程设计目的1)对C各部分知识的综合应用能力2)提高程序设计的能力3)提升对于较大程序的抽象分析设计能力4)学习调试和测试的技巧二、课程设计内容1)熟悉C实验环境,按给定的上机步骤练习完成;2)熟悉C程序的编辑,编译,链接和运行的过程。
3)编译一个应用系统程序,形成一个软件系统。
三、数据结构设计及用法说明1、本程序使用到了三个struct,分别是(1)struct tree/*古树名木养护信息*/{ char number[5];/*编号*/char area[10];/*区号*/char name[100];/*树名*/char xueming[100];/*学名*/char branch[100];/*科属*/int age;/*树龄*/char day[11];/*确认时间*/int rank;/*保护级别*/char place[100];/*栽植地点*/}tree[MAX];(2)struct city/*城区信息*/{ char cityarea[7];/*区号*/char areaname[20];/*区名*/char management[30];/*主管部门*/char address[30];/*地址*/char tel[13];/*电话*/char worker[20];/*负责人*/}city[MAX];(3)struct protection/*古树名木养护信息*/{ char cityareas[7];/*区号*/char treenumber[5];/*古树名木编号*/char protecter[30];/*养护人*/char data[11];/*养护日期*/char measure[30];/*养护措施*/char state[20];/*生长状况*/}pro[MAX];2、本段程序在main函数中嵌套了所有子函数,包括“void Input();/* 古树基本信息录入*/”、“void Display();/*古树信息浏览*/、“void Find();/*古树信息查询*/”、“void Modify();/*删除*/”、“void Change();/*修改*/”、“void Inputcity();/* 城区信息录入*/”、“void Displaycity();/* 城区信息浏览*/”、“void Changecity();/* 城区信息修改*/”、“void Inputprotection();/* 养护信息录入*/”、“void Displayprotection();/* 养护信息浏览*/”、“void Changeprotection()/*修改*/”。
2)录入古树名木信息3)浏览古树名木信息4)查询古树名木信息(按古树名查找)(按编号查找)5)删除古树信息(删除后的信息浏览)6)录入城区信息6)城区信息浏览7)从城区信息中查询某城区的古树名木8)从城区信息中删除某古树名木9)录入古树名木养护信息10)浏览古树名木养护信息11)修改古树名木养护信息(修改后的古树名木养护信息浏览)12)退出系统七、设计体会和反思#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define MAX 1000struct tree{char number[5];/*编号*/char area[10];/*区号*/char name[100];/*树名*/char xueming[100];/*学名*/char branch[100];/*科属*/int age;/*树龄*/char day[11];/*确认时间*/int rank;/*保护级别*/char place[100];/*栽植地点*/}tree[MAX];struct city{char cityarea[7];/*区号*/char areaname[20];/*区名*/char management[30];/*主管部门*/char address[30];/*地址*/char tel[13];/*电话*/char worker[20];/*负责人*/}city[MAX];struct protection{char cityareas[7];/*区号*/char treenumber[5];/*古树名木编号*/char protecter[30];/*养护人*/char data[11];/*养护日期*/char measure[30];/*养护措施*/char state[20];/*生长状况*/}pro[MAX];main()/*主函数*/{void Input();/* 古树名木基本信息录入*/void Display();/*浏览*/void Find();/*查询*/void Modify();/*删除*/void Change();/*修改*/void Inputcity();/* 城区基本信息录入*/void Displaycity();/* 城区基本信息浏览*/void Changecity();/* 城区基本信息修改*/void Inputprotection();/* 古树名木养护基本信息录入*/void Displayprotection();/* 古树名木养护基本信息浏览*/void Changeprotection();/*古树名木养护基本信息修改*/int m,n;printf("\n");printf(" 欢迎进入'城区古树名木信息管理系统' \n");printf("\n");printf("进入请按'1':");scanf("%d",&m);if(m==1){for(;;){printf("\n");printf(" 主菜单\n");printf("\n");printf(" 【1.古树信息录入】\n");printf(" 【2.古树信息浏览】\n");printf(" 【3.古树信息查询】\n");printf(" 【4.古树信息删除】\n");printf(" 【5.古树信息修改】\n");printf(" 【6.城区基本信息录入】\n");printf(" 【7.城区基本信息浏览】\n");printf(" 【8.城区基本信息修改】\n");printf(" 【9.古树名木养护基本信息录入】\n");printf(" 【10.古树名木养护基本信息浏览】\n");printf(" 【11.古树名木养护基本信息修改】\n");printf(" 【12.退出系统】\n");printf("请输入选择项(1-12):");scanf("%d",&n);printf("\n\n");if(n>0&&n<13){switch(n){case 1:Input();break;case 2:Display();break;case 3:Find();break;case 4:Modify();break;case 5:Change();break;case 6:Inputcity();break;case 7:Displaycity();break;case 8:Changecity();break;case 9:Inputprotection();break;case 10:Displayprotection();break;case 11:Changeprotection();break;case 12:printf(" 谢谢使用! \n");printf("\n");printf(" 再见! \n");printf(" \n");exit(0);}}else{printf(" \n");printf(" 输入错误! \n");printf("\n");printf(" 请退出! \n");printf(" \n");break;}}}else{ printf("\n\n\n\n");printf(" 输入错误! \n");printf("\n");printf(" 再见! \n");}}void Find()/*查询*/{FILE *fp;int i;int choose,t;char ans[100];do{printf("1.按古树名查找\n");printf("\n");printf("2.按编号查找\n");printf("\n");printf("返回主菜单(其他数字)\n");printf("\n");scanf("%d",&choose);if(choose==1){printf("输入所查古树名:\n");scanf("%s",ans);t=-1;if(choose==1){for(i=0;i<MAX;i++) if(strcmp(ans,tree[i].name)==0){t=i;fp=fopen("tree","rb");for(i=0;fread(&tree[i],sizeof(struct tree),1,fp)==1;i++)printf("%5s %5s %8s %8s %8s %2d %8s %8d %8s\n",tree[t].number,tree[t].area,tree[t].name ,tree[t].xueming,tree[t].branch,tree[t].age,tree[t].day,tree[t].rank,tree[t].place);}}if(t==-1) printf("不存在该信息\n");}else if(choose==2){printf("输入所查编号:\n");scanf("%s",ans);t=-1;if(choose==2){for(i=0;i<MAX;i++)if(strcmp(ans,tree[i].number)==0){ t=i;fp=fopen("tree","rb");for(i=0;fread(&tree[i],sizeof(struct tree),1,fp)==1;i++)printf("%5s %5s %8s %8s %8s %2d %8s %8d %8s\n",tree[t].number,tree[t].area,tree[t].name ,tree[t].xueming,tree[t].branch,tree[t].age,tree[t].day,tree[t].rank,tree[t].place);}}if(t==-1) printf("不存在该信息\n");}else return ;}while(1);}void Display()/*浏览*/{FILE *fp;int i;fp=fopen("tree","rb");printf("\n\n\n\n");printf(" 古树信息\n");printf("--------------------------------------------------------------------------------\n");printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n");printf("--------------------------------------------------------------------------------\n");for(i=0;fread(&tree[i],sizeof(struct tree),1,fp)==1;i++){printf("%5s %5s %8s %8s %8s %2d %8s %8d %8s\n",tree[i].number,tree[i].area,tree[i].name ,tree[i].xueming,tree[i].branch,&tree[i].age,tree[i].day,&tree[i].rank,tree[i].place);}fclose(fp);}void Input()/*输入*/{FILE *fp;int n;fp=fopen("tree","wb");for(n=0;n<MAX;n++){printf("n=%d 输入序号n(当输入n=-1时,返回),n=",n++);scanf("%d",&n);printf("\n");if(n==-1){fclose(fp);return;}else{printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n");scanf("%s %s %s %s %s %d %s %d %s",&tree[n].number,tree[n].area,tree[n].name,tree[n].x ueming,tree[n].branch,&tree[n].age,&tree[n].day,&tree[n].rank,tree[n].place);printf("\n");fwrite(&tree[n],sizeof(struct tree),1,fp);}fclose(fp);}void Modify()/*删除*/{FILE *fp;int i,flag,n,j;char s[5];fp=fopen("tree","rb+");rewind(fp);printf("\n\n");printf(" 古树信息\n");printf("--------------------------------------------------------------------------------\n");printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n");printf("--------------------------------------------------------------------------------\n");for(i=0;fread(&tree[i],sizeof(struct tree),1,fp)==1;i++){printf("%5s %5s %8s %8s %8s %2d %8s %8d %8s\n",tree[i].number,tree[i].area,tree[i].name ,tree[i].xueming,tree[i].branch,tree[i].age,tree[i].day,tree[i].rank,tree[i].place);}n=i;printf("输入待删除古树编号:\n");scanf("%s",&s);for(i=0,flag=1;flag&&i<n;i++){if(strcmp(s,tree[i].number)==0){for(j=i;j<n-1;j++){strcpy(tree[j].area,tree[j+1].area);strcpy(tree[j].number,tree[j+1].number);strcpy(tree[j].name,tree[j+1].name);strcpy(tree[j].xueming,tree[j+1].xueming);strcpy(tree[j].branch,tree[j+1].branch);tree[j].age=tree[j+1].age;strcpy(tree[j].day,tree[j+1].day);tree[j].rank=tree[j+1].rank;strcpy(tree[j].place,tree[j+1].place);}flag=0;}if(!flag)n=n-1;elseprintf("没有此号\n");fp=fopen("tree","wb");for(i=0;i<n;i++)fwrite(&tree[i],sizeof(struct tree),1,fp);fclose(fp);fp=fopen("tree","r");printf("\n\n");printf(" 古树信息\n");printf("--------------------------------------------------------------------------------\n");printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n");printf("--------------------------------------------------------------------------------\n");for(i=0;i<n;i++){fread(&tree[i],sizeof(struct tree),1,fp);printf("%5s %5s %8s %8s %8s %2d %8s %8d %8s\n",tree[i].number,tree[i].area,tree[i].name ,tree[i].xueming,tree[i].branch,tree[i].age,tree[i].day,tree[i].rank,tree[i].place);printf("\n");}fclose(fp);}void Change()/*修改*/{FILE *fp;int i,n;char number[5];int flag=0;printf("请输入要修改的古树编号:");scanf("%d",&number);for(i=0;i<=MAX;i++)if(strcmp(number,tree[i].number)==0){printf("\n\n");printf(" 古树信息\n" );printf("--------------------------------------------------------------------------------\n");printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n");printf("--------------------------------------------------------------------------------\n");printf("%5s %5s %8s %8s %8s %2d %8s %8d %8s\n",tree[i].number,tree[i].area,tree[i].name ,tree[i].xueming,tree[i].branch,tree[i].age,tree[i].day,tree[i].rank,tree[i].place);printf("--------------------------------------------------------------------------------------------------\n\n");n=i;flag=1;break;}if(flag==0){printf("\n\n");printf(" 输入错误!\n");printf("\n");printf(" 请返回!\n");printf("\n");return;}printf("\n\n");fp=fopen("tree","rb+");fseek(fp,n*sizeof(struct tree),0);printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n");scanf("%s %s %s %s %s %d %s %d %s",&tree[n].number,tree[n].area,tree[n].name,tree[n].x ueming,tree[n].branch,&tree[n].age,&tree[n].day,&tree[n].rank,tree[n].place);fwrite(&tree[i],sizeof(struct tree),1,fp);fclose(fp);fp=fopen("tree","rb");printf("\n\n");printf(" 古树信息\n");printf("--------------------------------------------------------------------------------\n");printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n");printf("--------------------------------------------------------------------------------\n");for(i=0;fread(&tree[i],sizeof(struct tree),1,fp)==1;i++){printf("%5s %5s %8s %8s %8s %2d %8s %8d %8s\n",tree[i].number,tree[i].area,tree[i].name ,tree[i].xueming,tree[i].branch,tree[i].age,tree[i].day,tree[i].rank,tree[i].place);}printf("----------------------------------------------------------------------------------\n\n");fclose(fp);}void Inputcity()/* 城区基本信息录入*/{FILE *fp;int n;fp=fopen("city","wb");for(n=0;n<MAX;n++){printf("n=%d 输入序号n(当输入n=-1时,返回),n=",n++);scanf("%d",&n);printf("\n");if(n==-1){fclose(fp);return;}else{printf(" 区号区名主管部门地址电话负责人\n");scanf("%s %s %s %s %s %s",city[n].cityarea,city[n].areaname,city[n].management,city[n].ad dress,city[n].tel,city[n].worker);printf("\n");fwrite(&city[n],sizeof(struct city),1,fp);}}fclose(fp);}void Displaycity()/* 城区基本信息浏览*/{void Modify();/*删除*/FILE *fp;int i,j,m,t,choose,cho;char ans[7];fp=fopen("city","rb");printf("\n");printf(" 城区基本信息\n");printf("-------------------------------------------------------\n");printf(" 区号区名主管部门地址电话负责人\n");printf("-------------------------------------------------------\n");for(i=0;fread(&city[i],sizeof(struct city),1,fp)==1;i++){printf("%s %s %s %s %s %s\n",city[i].cityarea,city[i].areaname,city[i].management,city[i].address,city[i].tel,city[i].worker);}printf("\n");printf("要查询某城区的古树名木目录请按1(返回主菜单请按其他数字):\n");scanf("%d",&choose);if(choose==1){printf("输入区号:\n");scanf("%s",ans);t=-1;if(choose==1){for(j=0;j<MAX;j++)if(strcmp(ans,city[j].cityarea)==0){for(m=0;m<MAX;m++)if(strcmp(city[j].cityarea,tree[m].area)==0){t=m;fp=fopen("tree","rb");printf("\n");printf(" 古树信息\n");printf("--------------------------------------------------------------------------------\n");printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n");printf("--------------------------------------------------------------------------------\n");for(m=0;fread(&tree[m],sizeof(struct tree),1,fp)==1;m++){printf("%5s %5s %8s %8s %8s %2d %8s %8d %8s\n",tree[t].number,tree[t].area,tree[t].name ,tree[t].xueming,tree[t].branch,tree[t].age,tree[t].day,tree[t].rank,tree[t].place);}}}printf("\n若要删除有关古树信息请按1(按其他数字返回):");scanf("%d",&cho);if(cho==1)Modify();else if(t==-1) printf("不存在该信息\n");}else return;}fclose(fp);}void Inputprotection()/* 古树名木养护基本信息录入*/{FILE *fp;int n;fp=fopen("protection","wb");for(n=0;n<MAX;n++){printf("n=%d 输入序号n(当输入n=-1时,返回),n=",n++);scanf("%d",&n);printf("\n");if(n==-1){fclose(fp);return;}else{printf("编号区号养护人养护日期养护措施生长状况\n");printf("------------------------------------------------------------\n");scanf("%s %s %s %s %s %s",pro[n].treenumber,pro[n].cityareas,pro[n].protecter,pro[n].data,pro[n ].measure,pro[n].state);printf("------------------------------------------------------------\n");fwrite(&pro[n],sizeof(struct protection),1,fp);}}fclose(fp);}void Changecity()/* 城区基本信息修改*/{FILE *fp;int i,n;char areanum[7];int flag=0;printf("请输入要修改信息的城区区号:");scanf("%s",&areanum);for(i=0;i<=MAX;i++)if(strcmp(areanum,city[i].cityarea)==0){printf("\n");printf(" 城区基本信息\n" );printf("------------------------------------------------------\n");printf(" 区号区名主管部门地址电话负责人");printf("-------------------------------------------------------\n");printf("%7s %s %s %s %s %s\n",city[i].cityarea,city[i].areaname,city[i].management,city[i].a ddress,city[i].tel,city[i].worker);printf("-----------------------------------------------------\n");n=i;flag=1;break;}if(flag==0){printf("\n");printf(" 输入错误!\n");printf("\n");printf(" 请返回!\n");printf("\n");return;}else{printf("\n");fp=fopen("city","rb+");fseek(fp,n*sizeof(struct city),0);printf(" 区号区名主管部门地址电话负责人\n");scanf("%s %s %s %s %s %s",city[n].cityarea,city[n].areaname,city[n].management,city[n].ad dress,city[n].tel,city[n].worker);fwrite(&city[i],sizeof(struct city),1,fp);fclose(fp);fp=fopen("city","rb");printf("\n\n\n\n");printf(" 城区基本信息\n ");printf("-------------------------------------------------------\n");printf(" 区号区名主管部门地址电话负责人\n");printf("-------------------------------------------------------\n");for(i=0;fread(&city[i],sizeof(struct city),1,fp)==1;i++){printf("%7s %s %s %s %s %s",city[i].cityarea,city[i].areaname,city[i].management,city[i].ad dress,city[i].tel,city[i].worker);}printf("-----------------------------------------------------\n");fclose(fp);}}void Displayprotection()/* 古树名木养护基本信息浏览*/{FILE *fp;int i;fp=fopen("protection","rb");printf("\n");printf(" 古树名木养护基本信息\n" );printf("-----------------------------------------------------------\n");for(i=0;fread(&pro[i],sizeof(struct protection),1,fp)==1;i++){printf("古树名木编号:%s\n",pro[i].treenumber);printf("区号: %s\n",pro[i].cityareas);printf("养护人: %s\n",pro[i].protecter);printf("养护日期:%s\n",pro[i].data);printf("养护措施:%s\n",pro[i].measure);printf("生长状况:%s\n",pro[i].state);printf("----------------------------------------------------------\n");}fclose(fp);}void Changeprotection()/* 古树名木养护基本信息修改*/{FILE *fp;int i,n;char number[5];int flag=0;printf("请输入要修改养护信息的古树名木编号:");scanf("%s",&number);for(i=0;i<=MAX;i++)if(strcmp(number,pro[i].treenumber)==0){printf("\n");printf(" 古树名木养护基本信息\n" );printf("-------------------------------------------------------------------------\n");printf("古树名木编号:%s\n",pro[i].treenumber);printf("区号:%s\n",pro[i].cityareas);printf("养护人:%s\n",pro[i].protecter);printf("养护日期:%s\n",pro[i].data);printf("养护措施:%s\n",pro[i].measure);printf("生长状况:%s\n",pro[i].state);printf("-------------------------------------------------------------------------\n");n=i;flag=1;break;}if(flag==0){printf("\n");printf(" 输入错误!\n");printf("\n");printf(" 请返回!\n");printf("\n");return;}printf("\n");fp=fopen("protection","rb+");fseek(fp,n*sizeof(struct protection),0);printf("编号: ");scanf("%s",pro[n].treenumber);printf("区号: ");scanf("%s",pro[n].cityareas);printf("养护人: ");scanf("%s",pro[n].protecter);printf("养护日期:");scanf("%s",pro[n].data);printf("养护措施:");scanf("%s",pro[n].measure);printf("生长状况:");scanf("%s",pro[n].state);fwrite(&pro[i],sizeof(struct protection),1,fp);fclose(fp);fp=fopen("protection","rb");printf("\n");printf(" 古树名木养护基本信息\n");printf("---------------------------------------------------------------\n");for(i=0;fread(&pro[i],sizeof(struct protection),1,fp)==1;i++){printf("编号:");printf("%s\n",pro[i].treenumber);printf("区号:");printf("%s\n",pro[i].cityareas);printf("养护人:");printf("%s\n",pro[i].protecter);printf("养护日期:");printf("%s\n",pro[i].data);printf("养护措施:");printf("%s\n",pro[i].measure);printf("生长状况:");printf("%s\n",pro[i].state);}printf("---------------------------------------------------------------\n");fclose(fp);}。