D3数据结构说明
(第二讲)数据库(第二章:关系数据库的基本概念)
类型 char(10) char(10) char(2) Int char(4) 学号,主码 姓名:字符类型
说明
性别:只能为男或女 年龄:整形 所在专业编号,外码,参照专业表
4. 选课表(XK_Tab):记录学生的选课结果,对于任意一门课,每 个学生一年最多只能选一次,因此用课程编号、学号和年份联合作为 选课表的主码。选课表通过学号参照学生表,通过课程编号参照课程 表。
2. 课程表(KC_Tab):存放多门课程,主码为课程编号。
表2-4 课程表(KC_Tab)
列名 KC_Id KC_Name KC_KC_Id KC_Point
类型 char(4) char(50) char(4) Float
说明 课程编号,主码 课程名称 先修课课程编号 课程的学分
3. 学生表(XS_Tab):记录学生的基本信息,主码为学号,通过专业 编号参照专业表。
2.3 关系模型规范化
关系模型规范化的目的是为了消除存储异常,减少数据冗余, 保证数据的完整性和存储效率。 关系数据库中的关系是要满足一定的规范化要求的。对于不 同规范化程度,可以使用“范式”来衡量。满足最低要求的为I范 式。。在I范式的基础上,进一步满足一些要求的为II范式,以次 类推。一般情况下,在实践中关系模式满足3范式就基本可以。
元素的每一个值 di 叫作一个分量。关系模型中要求每一 个分量必须属于某种基本数据类型,如整形或字符串型。
关系:笛卡尔积的子集就是一个关系。
R( D1 , D2 ,, Dn )
这里R表示关系的名字,n是关系的目或度。
例: 我们给出如下三个域: D1 =导师集合。导师={王新,赵阳} D2=专业集合。专业={计算机,通信} D3=学生集合。学生={(张三,101),(李四,201)} 则笛卡尔积为: D1XD2XD3={(王新,计算机,张三,101), (王新,计算机,李四,201),
数据字典
数据字典:
一、数据元素:
1.1、教师信息:
①系名
②教师号
③教师名
④教师手机号码
⑤教师座机号码
⑥教师邮箱
⑦工作量
1.2、基本课程信息
①课程号
②课程名
③班号
④开课时间
⑥考试类型
⑦班主任
1.3、调课信息
①需调课时间
③调课后地点
1.4、考务信息
①考试时间
②考试地点
③考试班级
④试卷状态
二、数据结构
2.1、基本教师信息
2.3、基本工作量信息
2.4、基本调课信息
2.6、基本班级信息
三、数据流
3.3、工作量教师信息
3.4、工作量课程信息
3.7、课程基本信息
3.8、课程信息
3.10、调课基本信息
3.11、调课信息
3.12、调课信息
3.14、课程考试信息
3.15、基本考务信息
3.17、考务综合信息
3.18、教师考务信息
3.19、考试通知信息
3.21、试卷信息
3.22、班级信息
3.23、班级考务信息
3.24、班级考务信息
四、数据存储
4.3、考务信息表
4.4、教师工作量表
五、处理过程
5.1、教师个人档案建立
5.2、教师工作量统计
5.3、教师工作量查询
5.4、课程信息建立
5.5、调课管理
5.6、课程信息查询
5.8、考务通知管理
5.9、考务信息查询
5.10、试卷管理
六、外部实体
6.1、校教务处
6.2、本科教学办公室。
旅社信息网站数据流程图
一、旅社信息网站数据流程图:二、实体联系图:数据字典一、数据结构:1、数据结构编号:D1数据结构名称:登陆数据表简述:处理核对用户名和密码数据结构组成:用户名+密码2、数据结构编号:D2数据结构名称:登陆数据表简述:处理核对用户名和密码数据结构组成:用户名+密码3、数据结构编号:D3数据结构名称:预约登记数据表简述:用户所填的信息情况及预约基本要求数据结构组成:用户信息+预约基本要求+预约日期4、数据结构编号:D4数据结构名称:预约处理数据表简述:对用户预约情况进行的记录数据结构组成:用户信息+预约要求的处理情况(分类)+处理日期5、数据结构编号:D5数据结构名称:预约审批数据表简述:对用户预约要求的审批情况记录数据结构组成:用户信息+审批结果+审批日期二、数据流:1、数据流编号:F1数据流名称:登陆信息简述:用户登录必须填写的信息数据流来源:用户数据流去向:登陆处理模块数据流组成:用户名+密码数据流量:高峰流量:2、数据流编号:F2数据流名称:登陆数据流简述:经处理认证后的用户数据数据流来源:登陆处理模块数据流去向:登陆统计数据库数据流组成:用户名+密码+处理结果+日期数据流量:高峰流量:3、数据流编号:F3数据流名称:查询数据流简述:符合用户要求的查询数据数据流来源:服务查询模块数据流去向:查询统计数据库数据流组成:查询条件+关键字+查询结果+日期数据流量:高峰流量:4、数据流编号:F4数据流名称:查询统计数据流简述:经统计处理后的查询数据结果数据流来源:查询统计数据库数据流去向:预约登记模块数据流组成:关键字+查询条件+查询结果+统计结果+日期数据流量:高峰流量:5、数据流编号:F5数据流名称:预约统计数据流简述:对预约服务的基本统计数据流数据流来源:预约统计模块数据流去向:统计数据库数据流组成:预约服务项目+预约日期+预约统计数量+用户信息数据流量:高峰流量:6、数据流编号:F6数据流名称:预约统计数据流简述:对预约服务的基本统计数据流数据流来源:统计数据库数据流去向:管理员数据流组成:预约服务项目+预约日期+预约统计数量+用户信息数据流量:高峰流量:7、数据流编号:F7数据流名称:预约统计数据库简述:对预约服务的基本统计数据流数据流来源:统计数据库数据流去向:处理模块数据流组成:预约服务项目+预约日期+预约统计数量+用户信息数据流量:高峰流量:8、数据流编号:F8数据流名称:业务处理数据简述:对服务项目分类再统计数据流来源:业务处理模块数据流去向:财务科数据流组成:用户信息+服务项目+旅社供应情况+统计结果+预约日期数据流量:高峰流量:9、数据流编号:F9数据流名称:预约处理数据流简述:根据旅社情况初步处理用户预约数据数据流来源:预约处理模块数据流去向:统计数据表数据流组成:用户信息+服务项目+处理结果+预约日期数据流量:高峰流量:10、数据流编号:F13数据流名称:业务处理数据简述:对业务情况进行分类再统计数据流来源:业务处理模块数据流去向:旅社决策层数据流组成:用户信息+服务项目+旅社供应情况+统计结果+预约日期数据流量:高峰流量:11、数据流编号:F10数据流名称:统计数据表简述:根据旅社情况初步处理用户预约数据数据流来源:管理员数据流去向:预约处理模块数据流组成:预约服务项目+预约日期+预约统计数量+用户信息数据流量:高峰流量:12、数据流编号:F11数据流名称:业务处理数据简述:对服务项目分类再统计数据流来源:旅社数据流去向:预约处理模块数据流组成:用户信息+服务项目+旅社供应情况+统计结果+预约日期数据流量:高峰流量:13、数据流编号:F12数据流名称:实施情况统计数据流简述:对预约服务的实施进行统计数据流来源:实施情况统计数据库数据流去向:管理员数据流组成:用户信息+服务项目+用户意见+预约日期+服务员号+统计结果数据流量:高峰流量:14、数据流编号:F14数据流名称:实施情况数据流简述:服务项目的基本实施情况数据流来源:服务实施模块数据流去向:实施情况统计数据库数据流组成:服务项目+用户信息+服务员号+用户意见+日期数据流量:高峰流量:15、数据流编号:F15数据流名称:实施情况统计数据流简述:对预约服务的实施进行统计数据流来源:实施情况统计数据库数据流去向:旅社决策层数据流组成:用户信息+服务项目+用户意见+预约日期+服务员号+统计结果数据流量:高峰流量:三、处理逻辑定义:1、处理逻辑编号:P1处理逻辑名称:登陆处理模块简述:验证用户登录信息输入的数据流:用户信息,来源于用户处理:根据用户输入的用户名与密码,验证用户的身份输出的数据流:登陆数据,一是输入登陆记录数据库,二是去服务查询模块,三是去预约登记模块处理频率:2、处理逻辑编号:P2处理逻辑名称:服务查询模块简述:用户的基本服务查询和浏览输入的数据流:登陆数据表,来源于(P1)登陆处理模块处理:对用户的查询进行处理输出的数据流:查询数据,是去查询统计数据库的处理频率:3、处理逻辑编号:P3处理逻辑名称:预约登记简述:用户预约服务的登记输入的数据流:登陆数据表,来源于登陆处理模块;查询统计数据,来源于查询统计数据库处理:处理预约服务的记录输出的数据流:预约登记数据,是去预约统计的处理频率:4、处理逻辑编号:P4处理逻辑名称:预约服务统计简述:预约服务的数量分类统计输入的数据流:预约服务登记数据,来源于预约登记模块处理:对预约用户的服务进行统计输出的数据流:预约统计数据,是去预约统计数据库的处理频率:5、处理逻辑编号:P5处理逻辑名称:业务处理模块简述:预约服务的统计反映的情况输入的数据流:预约统计数据,来源于统计数据库处理:通过对用户预约服务统计数据的分析,判断旅社的业务情况输出的数据流:业务处理数据,一是去财务科,一是去旅社管理决策层处理频率:6、处理逻辑编号:P6处理逻辑名称:预约服务处理简述:预约服务的初步处理输入的数据流:统计数据,来源于管理员;业务处理数据,来源于旅社决策层处理:参考用户预约服务统计数据表,初步审定用户的预约需求输出的数据流:预约处理数据,一是去统计数据库,二是去预约审批的处理频率:7、处理逻辑编号:P7处理逻辑名称:预约服务审批简述:对预约服务的最终审批批准输入的数据流:预约处理数据,来源于预约处理模块处理:用户预约请求初步审理后,愉悦最终批准实施输出的数据流:愉悦审批数据,是去服务实施模块的处理频率:8、处理逻辑编号:P8处理逻辑名称:预约服务实施简述:实施预约服务项目输入的数据流:审批数据,来源于预约服务审批处理:实施服务项目,满足用户要求输出的数据流:实施数据,是去实施情况统计数据库的处理频率:四、数据存储的定义:1、数据存储编号:F-1数据存储名称:登陆记录数据库简述:记录用户登录的用户名和密码数据存储组成:用户名+用户密码+登陆日期关键字:用户名相关联的处理:登陆处理模块(P1)2、数据存储编号:F-2数据存储名称:查询统计数据库简述:记录用户查询的数据存储组成:用户名+查询内容+日期+查询结果关键字:用户名相关联的处理:服务查询模块(P2)3、数据存储编号:F-3数据存储名称:统计数据库简述:记录用户预约情况数据存储组成:用户名+预约项目+联系方式+预约日期+备注关键字:用户名相关联的处理:预约服务统计、业务处理模块(P4、P5)4、数据存储编号:F-4数据存储名称:实施情况统计数据库简述:对服务实施情况进行记录数据存储组成:用户名+服务项目+用户意见+日期关键字:用户名相关联的处理:预约服务实施(P8)五、外部实体:1、外部实体编号:S1外部实体名称:用户简述:登陆本网站的用户输入的数据流:输出的数据流:登陆信息(F1)2、外部实体编号:S2外部实体名称:财务科简述:记录旅社业务情况的部门输入的数据流:业务处理数据(F8)输出的数据流:3、外部实体编号:S3外部实体名称:管理员简述:处理后台事务的人员输入的数据流:预约统计数据流、业务处理数据(F6、F12)输出的数据流:统计数据表(F10)4、外部实体编号:S4外部实体名称:决策层简述:对业务进行最后决策的部门输入的数据流:业务处理数据、实施情况统计数据流(F13、F15)输出的数据流:业务处理数据(F11)。
D3.js数据驱动文档基础教程说明书
About the T utorialD3 stands for Data-Driven Documents. D3.js is a JavaScript library for manipulating documents based on data. D3.js is a dynamic, interactive, online data visualizations framework used in a large number of websites. D3.js is written by Mike Bostock, created as a successor to an earlier visualization toolkit called Protovis. This tutorial will give you a complete knowledge on D3.jsframework.This is an introductory tutorial, which covers the basics of Data-Driven Documents and explains how to deal with its various components and sub-components.AudienceThis tutorial is prepared for professionals who are aspiring to make a career in online data visualization. This tutorial is intended to make you comfortable in getting started with the Data-Driven Documents and its various functions.PrerequisitesBefore proceeding with the various types of concepts given in this tutorial, it is being assumed that the readers are already aware about what a Framework is. In addition to this, it will be very helpful, if the readers have a sound knowledge on HTML, CSS and JavaScript.Copyright and DisclaimerCopyright 2017 by Tutorials Point (I) Pvt. Ltd.All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher.We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at **************************T able of ContentsAbout the Tutorial (i)Audience (i)Prerequisites (i)Copyright and Disclaimer (i)Table of Contents (ii)1.D3.js – Introduction (1)What is D3.js? (1)Why Do We Need D3.js? (1)D3.js Features (1)D3.js Benefits (2)2.D3.js – Installation (3)D3.js Library (3)D3.js Editor (4)Web Browser (5)3.D3.js – Concepts (6)Web Standards (6)4.D3.js – Selections (10)The select() method (10)Adding DOM Elements (13)Modifying Elements (15)The selectAll() Method (19)5.D3.js – Data Join (20)What is a Data Join? (20)How Data Join Works? (20)Data Join Methods (23)Data Function (26)6.D3.js – Introduction to SVG (29)Features of SVG (29)A Minimal Example (29)SVG Using D3.js (31)Rectangle Element (33)Circle Element (35)Ellipse Element (36)7.D3.js – SVG Transformation (38)Introduction to SVG Transformation (38)A Minimal Example (40)Transform Library (46)8.D3.js – Transition (47)The transition() method (47)A Minimal Example (47)9.D3.js – Animation (49)The duration() Method (50)The delay() Method (51)Lifecycle of Transition (51)10.D3.js – Drawing Charts (53)Bar Chart (53)Circle Chart (57)Pie Chart (62)Donut Chart (69)11.D3.js – Graphs (73)SVG Coordinate Space (73)12.D3.js – Geographies (79)D3 Geo Path (79)Projections (80)13.D3.js – Array API (86)What is an Array? (86)Configuring API (86)Array Statistics API Methods (86)Array Search API Methods (90)Array Transformations API (92)14.D3.js – Collections API (95)Configuring API (95)Collections API Methods (95)15.D3.js – Selection API (103)Configuring the API (103)Selection API Methods (103)16.D3.js – Paths API (107)Configuring Paths (107)Paths API Methods (107)17.D3.js – Scales API (110)Configuring API (110)Scales API Methods (110)18.D3.js – Axis API (115)Configuring the Axis API (115)Axis API Methods (115)19.D3.js – Shapes API (119)Configuring API (119)Shapes Generators (119)Pies API (121)Lines API (122)20.D3.js – Colors API (124)Configuring API (124)Basic Operations (124)Color API Methods (125)21.D3.js – Transitions API (131)Configuring API (131)Transition API Methods (131)22.D3.js – Dragging API (134)Installation (134)Dragging API Methods (134)Dragging API - Drag Events (136)23.D3.js – Zooming API (137)Configuring API (137)Zooming API Methods (137)24.D3.js – Requests API (142)XMLHttpRequest (142)Configuring Requests (142)Requests API Methods (144)25.D3.js – Delimiter-Separated Values API (149)Configuring API (149)API methods (149)26.D3.js – Timer API (152)requestAnimationFrame (152)Configuring Timer (152)Timer API Methods (152)27.D3.js – Working Example (155)D3.js 5Data visualization is the presentation of data in a pictorial or graphical format. The primary goal of data visualization is to communicate information clearly and efficiently via statistical graphics, plots and information graphics.Data visualization helps us to communicate our insights quickly and effectively. Any type of data, which is represented by a visualization allows users to compare the data, generate analytic reports, understand patterns and thus helps them to take the decision. Data visualizations can be interactive, so that users analyze specific data in the chart. Well, Data visualizations can be developed and integrated in regular websites and even mobile applications using different JavaScript frameworks.What is D3.js?D3.js is a JavaScript library used to create interactive visualizations in the browser. The D3.js library allows us to manipulate elements of a webpage in the context of a data set. These elements can be HTML , SVG , or Canvas elements and can be introduced, removed, or edited according to the contents of the data set. It is a library for manipulating the DOM objects. D3.js can be a valuable aid in data exploration, it gives you control over your data's representation and lets you add interactivity.Why Do We Need D3.js?D3.js is one of the premier framework when compare to other libraries. This is because it works on the web and its data visualizations are par excellence. Another reason it has worked so well is owing to its flexibility. Since it works seamlessly with the existing web technologies and can manipulate any part of the document object model, it is as flexible as the Client Side Web Technology Stack (HTML, CSS, and SVG). It has a great community support and is easier to learn.D3.js FeaturesD3.js is one of the best data visualization framework and it can be used to generate simple as well as complex visualizations along with user interaction and transition effects. Some of its salient features are listed below:∙Extremely flexible. ∙Easy to use and fast. ∙ Supports large datasets.1.D3.js∙Declarative programming.∙Code reusability.∙Has wide variety of curve generating functions.∙Associates data to an element or group of elements in the html page.D3.js BenefitsD3.js is an open source project and works without any plugin. It requires very less code and comes up with the following benefits:∙Great data visualization.∙It is modular. You can download a small piece of D3.js, which you want to use. No need to load the whole library every time.∙Easy to build a charting component.∙DOM manipulation.In the next chapter, we will understand how to install D3.js on our system.6D3.js 7In this chapter, we will learn how to set up the D3.js development environment. Before we start, we need the following components:∙D3.js library ∙Editor ∙Web browser ∙ Web serverLet us go through the steps one by one in detail.D3.js LibraryWe need to include the D3.js library into your HTML webpage in order to use D3.js to create data visualization. We can do it in the following two ways:∙Include the D3.js library from your project's folder. ∙ Include D3.js library from CDN (Content Delivery Network).Download D3.js LibraryD3.js is an open-source library and the source code of the library is freely available on the web at https:/// website. Visit the D3.js website and download the latest version of D3.js (d3.zip). As of now, the latest version is 4.6.0.After the download is complete, unzip the file and look for d3.min.js . This is the minified version of the D3.js source code. Copy the d3.min.js file and paste it into your project's root folder or any other folder, where you want to keep all the library files. Include the d3.min.js file in your HTML page as shown below.Example: Let us consider the following example.2.D3.js is a JavaScript code, so we should write all our D3 code within “script” tag. We may need to manipulate the existing DOM elements, so it is advisable to write the D3 code just before the end of the “body” tag.Include D3 Library from CDNWe can use the D3.js library by linking it directly into our HTML page from the Content Delivery Network (CDN). CDN is a network of servers where files are hosted and are delivered to a user based on their geographic location. If we use the CDN, we do not need to download the source code.Include the D3.js library using the CDN URL https:///d3.v4.min.js into our page as shown below.Example: Let us consider the following example.8D3.js EditorWe will need an editor to start writing your code. There are some great IDEs (Integrated Development Environment) with support for JavaScript like –∙Visual Studio Code∙WebStorm∙Eclipse∙Sublime TextThese IDEs provide intelligent code completion as well as support some of the modern JavaScript frameworks. If you do not have fancy IDE, you can always use a basic editor like Notepad, VI, etc.Web BrowserD3.js works on all the browsers except IE8 and lower.Web ServerMost browsers serve local HTML files directly from the local file system. However, there are certain restrictions when it comes to loading external data files. In the latter chapters of this tutorial, we will be loading data from external files like CSV and JSON. Therefore, it will be easier for us, if we set up the web server right from the beginning.You can use any web server, which you are comfortable with – e.g. IIS, Apache, etc.Viewing Your PageIn most cases, we can just open your HTML file in a web browser to view it. However, when loading external data sources, it is more reliable to run a local web server and view your page from the server (http://localhost:8080).93.D3.jsD3.js is an open source JavaScript library for –∙Data-driven manipulation of the Document Object Model (DOM).∙Working with data and shapes.∙Laying out visual elements for linear, hierarchical, network and geographic data.∙Enabling smooth transitions between user interface (UI) states.∙Enabling effective user interaction.Web StandardsBefore we can start using D3.js to create visualizations, we need to get familiar with web standards. The following web standards are heavily used in D3.js.∙HyperText Markup Language (HTML)∙Document Object Model (DOM)∙Cascading Style Sheets (CSS)∙Scalable Vector Graphics (SVG)∙JavaScriptLet us go through each of these web standards one by one in detail.HyperText Markup Language (HTML)As we know, HTML is used to structure the content of the webpage. It is stored in a text file with the extension “.html”.Example: A typical bare-bones HTML example looks like thisDocument Object Model (DOM)When a HTML page is loaded by a browser, it is converted to a hierarchical structure. Every tag in HTML is converted to an element / object in the DOM with a parent-child hierarchy. It makes our HTML more logically structured. Once the DOM is formed, it becomes easier to manipulate (add/modify/remove) the elements on the page.Let us understand the DOM using the following HTML document:The document object model of the above HTML document is as follows,11Cascading Style Sheets (CSS)While HTML gives a structure to the webpage, CSS styles makes the webpage more pleasant to look at. CSS is a Style Sheet Language used to describe the presentation of a document written in HTML or XML (including XML dialects like SVG or XHTML). CSS describes how elements should be rendered on a webpage.Scalable Vector Graphics (SVG)SVG is a way to render images on the webpage. SVG is not a direct image, but is just a way to create images using text. As its name suggests, it is a Scalable Vector. It scales itself according to the size of the browser, so resizing your browser will not distort the image. All browsers support SVG except IE 8 and below. Data visualizations are visual representations and it is convenient to use SVG to render visualizations using the D3.js.Think of SVG as a canvas on which we can paint different shapes. So to start with, let us create an SVG tag:The default measurement for SVG is pixels, so we do not need to specify if our unit is pixel. Now, if we want to draw a rectangle, we can draw it using the code below:13We can draw other shapes in SVG such as – Line, Circle, Ellipse, Text and Path.Just like styling HTML elements, styling SVG elements is simple. Let us set the background color of the rectangle to yellow. For that, we need to add an attribute “fill” and specify the value as yellow as shown below:JavaScriptJavaScript is a loosely typed client side scripting language that executes in the user's browser. JavaScript interacts with HTML elements (DOM elements) inorder to make the web user interface interactive. JavaScript implements the ECMAScript Standards , which includes core features based on ECMA-262 specifications as well as other features, which are not based on the ECMAScript standards. JavaScript knowledge is a prerequisite for D3.js.D3.jsSelections is one of the core concepts in D3.js. It is based on CSS selectors. It allows us toselect one or more elements in a webpage. In addition, it allows us to modify, append, or remove elements in a relation to the pre-defined dataset. In this chapter, we will see how to use selections to create data visualizations.D3.js helps to select elements from the HTML page using the following two methods:∙select() – Selects only one DOM element by matching the given CSS selector. If there are more than one elements for the given CSS selector, it selects the first one only. ∙selectAll() – Selects all DOM elements by matching the given CSS selector. If you are familiar with selecting elements with jQuery, D3.js selectors are almost the same.Let us go through each of the methods in detail.The select() methodThe select() method selects the HTML element based on CSS Selectors. In CSS Selectors, you can define and access HTML-elements in the following three ways:∙ Tag of a HTML element (e.g. div, h1, p, span, etc.,) ∙ Class name of a HTML element ∙ID of a HTML elementLet us see it in action with examples.Selection by TagYou can select HTML elements using its TAG. The following syntax is used to select the “div” tag elements, Example: Create a page “select_by_tag.html” and add the following changes, 4.By requesting the webpage through the browser, you will see the following output on the screen:Selection by Class nameHTML elements styled using CSS classes can be selected by using the following syntax.Create a webpage “select_by_class.html” and add the following changes:By requesting the webpage through the browser, you will see the following output on the screen.Selection by IDEvery element in a HTML page should have a unique ID. We can use this unique ID of an element to access it using the select() method as specified below.Create a webpage “select_by_id.html” and add the following changes.By requesting the webpage through the browser, you will see the following output on the screen.Adding DOM ElementsThe D3.js selection provides the append() and the text() methods to append new elements into the existing HTML documents. This section explains about adding DOM elements in detail. The append() MethodThe append() method appends a new element as the last child of the element in the current selection. This method can also modify the style of the elements, their attributes, properties, HTML and text content.Create a webpage “select_and_append.html” and add the following changes:17Requesting the webpage through browser, you could see the following output on the screen,Here, the append() method adds a new tag span inside the div tag as shown below:The text() MethodThe text() method is used to set the content of the selected / appended elements. Let us change the above example and add the text() method as shown below.1819Now refresh the webpage and you will see the following response.Here,the above script performs a chaining operation. D3.js smartly employs a technique called the chain syntax , which you may recognize from jQuery . By chaining methods together with periods, you can perform several actions in a single line of code. It is fast and easy. The same script can also access without chain syntax as shown below.Modifying ElementsD3.js provides various methods, html(), attr() and style() to modify the content and style of the selected elements. Let us see how to use modify methods in this chapter.The html() MethodThe html() method is used to set the html content of the selected / appended elements. Create a webpage “select_and_add_html.html” and add the following code.20By requesting the webpage through the browser, you will see the following output on the screen.The attr() MethodThe attr() method is used to add or update the attribute of the selected elements. Create a webpage “select_and_modify.html” and add the following code.21End of ebook previewIf you liked what you saw…Buy it from our store @ https://22。
软件工程导论(第7章)
测试的正确定义:“为了发现程序中的错 误而执行程序的过程。”
7.2.2 软件测试准则
1)所有测试都应该能追溯到用户需求;
2)应该远在测试前就制定出测试计划;
3)把Pareto原理应用到软件测试中;Pareto原理 说明测试发现的错误中的80%很可能是由程序 中20%的模块造成的。
4)应该从“小规模”测试开始,并逐步进行“大 规模”测试;
USER32.DLL; GDI32.DLL; KERNEL32.DLL。
Windows消息机制:
1)基于消息的事件驱动 消息可以是由硬件发来的(存于系统队列),
也可以由Windows系统和应用程序发来(存于 程序队列中);
每一个Windows程序在不停的捕捉各种消息, 并进行处理;
每个窗口都必须有一个窗口函数,来负责消息 的判断与处理。
3)重要的执行路径 由于不可能进行穷尽测试,因此选择测试
路径是非常关键的。 4)出错处理通路 5)边界条件
7.3.2 代码审查
审查小组: 1)组长; 2)程序的设计者; 3)程序的编写者; 4)程序的测试者。
7.3.3 计算机测试
由于软件模块不是一个独立的系统,不能独 立运行,要依靠其他模块调用,或需要调用其 他模块。
1.模块测试 模块测试又称单元测试,它把每个模块作为
单独的实体来测试。 2.子系统测试
子系统测试是把经过单元测试的模块放在一 起形成一个子系统来测试。
3.系统测试 系统测试是把经过测试的子系统装配成一个完
整的系统来测试。 4.验收测试
验收测试把软件系统作为单一的实体进行测试 (利用用户的实际数据测试)。 5.平行运行
如PL/1、PASCAL、C、ADA等 3)专用语言 如APL、BLISS、FORTH、LISP、PROLOG等
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)数组的处理:数组时⼀种常⽤的数据结构,通常是由相同数据类型的项组成集合,拥有数组名,可以凭借数组名和下标来访问数组项。
虽然JavaScript允许⼀个数组中存在不同的数据类型,但实际很少这样使⽤。
需要被可视化的数据常以数组的形式存在,虽然JavaScript中提供了不少操作数组的⽅法,但JavaScript不是为了数据可视化⽽存在的。
因此,D3数据可视化的需求封装了不少数组处理函数。
⼀排序:排序的⽅法:d3.ascending(a,b);//递增函数。
如果a⼩于b,则返回-1;如果a⼤于b,返回1;如果a等于b,返回0;d3.descending(a,b);//递减函数。
如果a⼤于b,则返回-1;如果a⼩于b,返回1;如果a等于b,返回0;之前给⼤家说过对选择集使⽤sort()⽅法。
但是如果不指定⽐较函数的情况下,默认是d3.ascending。
这是D3提供的⼀个递增函数。
其实D3给我们提供了递增和递减两个⽐较函数。
⽐较函数的规则是:有函数function(a,b),如果要使a位于b之前,则返回值⼩于0;如果要使a位于b之后,则返回值⼤于0;如果a与b相等,则返回值为0;d3.ascending(a,b);//递增函数。
如果a⼩于b,则返回-1;如果a⼤于b,返回1;如果a等于b,返回0;举个例⼦:var numList = [22,44,33,11,66];numList.sort(d3.ascending); //注意:此处的sort()⽅法使JavaScript的数组⽅法对象(Array)的⽅法,不是D3的selection.sort()⽅法。
console.log(numList) //[11,22,33,44,66]d3.descending(a,b);//递减函数。
如果a⼤于b,则返回-1;如果a⼩于b,返回1;如果a等于b,返回0;再举个例⼦:var numList = [22,44,33,11,66];numList.sort(d3.descending); //注意:此处的sort()⽅法使JavaScript的数组⽅法对象(Array)的⽅法,不是D3的selection.sort()⽅法。
数据结构-排序
实现“一趟插入排序”可分三步进行: 实现“一趟插入排序”可分三步进行: 三步进行 1.在 有序区 中查找 R[i] 的插入位置, . 的插入位置, 2.记录后移一个位置; .记录后移一个位置; 3.将 R[i] 插入(复制)到 相应 的位置上。 . 插入(复制) 的位置上。
第8页
直接插入排序
R0 初始状态 i =2 i =3 i =4 i =5 76 38
49 } // InsertSort 7趟 i =6 13 13 38 49 65 76 97 27 49 排序 排序过程: 个记录看成是一个有序子序列, 排序过程:先将序列中第 1 个记录看成是一个有序子序列, i =7 27 13 27 38 49 65 76 97 49 个记录开始,逐个进行插入,直至整个序列有序。 然后从第 2 个记录开始,逐个进行插入,直至整个序列有序。 i =8 49 13 27 38 49 49 65 76 97
数据结构(C++语言版)
第1页
目 录
1 2 3 3 4 3 5 3 6 3
第2页
排序的基本概念 插入类排序 交换类排序 选择类排序 归并排序 小结
概念
排序:将数据元素的一个任意序列,重新排列成一个按关键 排序:将数据元素的一个任意序列,重新排列成一个按关键 字有序的序列 的序列。 字有序的序列。 R1, R2, R3, R4, R5, R6, R7, R8 例:将关键字序列:52, 49, 80, 36, 14, 58, 61, 23 将关键字序列: K1, K2, K3, K4, K5, K6, K7, K8 Kp1 ≤Kp2 ≤Kp3 ≤Kp4 ≤Kp5 ≤ Kp6 ≤Kp7 ≤Kp8 调整为:14, 23, 36, 49, 调整为: Rp1, Rp2, Rp3, Rp4, 52, 58, Rp5, Rp6, 61 , 80 Rp7, Rp8
数据结构讲义精品PPT课件
003 陈诚 02 男 19840910 638
… … … ……
…
数据元素
数据结构 具有结构的数据元素的集合。它包 括数据元素的逻辑结构、存储结构和相适应的 运算。
逻辑结构
数据元素之间的逻辑关系,与计算机无关。 可用一个二元组表示:Data_Structure = (D,R) D:数据元素的有穷集合,R:集合D上关系的有穷集合。
《The Art of Computer Programming》
Art Evans
数据结构在计算机科学中是一门综合性的专业基础课, 也是计算机专业的必修课,是其它许多课程的先修课程, 是设计编译程序、操作系统、数据库系统等系统程序和 大型应用程序的重要基础。
1.2 基本概念和术语
基本术语
数据 被计算机加工处理的对象。 数据元素(记录、表目) 数据的基本单位,
几种常用的运算有: (1)建立数据结构 (2)清除数据结构 (3)插入数据元素 (4)删除数据元素 (5)排序
(6)检索* (7)更新 (8)判空和判满* (9)求长*
*操作为引用型操作,即数据值不发生变化; 其它为加工型操作。
抽象数据类型
抽象数据类型 ADT( Abstract Data Type ): 数据类型概念的引伸。指一个数学模型以及在其上定义的操作集 合,与计算机无关。 数据类型:一组值的集合和定义在其上的一组操作的总称。
抽象数据类型的描述方法
ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉
} ADT 抽象数据类型名
其中基本操作的定义格式为:
基本操作名(参数表) 初始条件:〈初始条件描述〉 操作结果:〈操作结果描述〉
数据结构-C语言描述(第二版)(耿国华)章 (9)
第9章 内部排序
我们知道, 在进行直接插入排序时, 若待排序记录序 列已经有序时, 直接插入排序的时间复杂度可以提高到 O(n)。 可以设想, 若待排序记录序列基本有序时, 即序 列中具有特性 r[i].key<Max{ r[j].key},(1≤j<i) 的记录较少时, 直接插入排序的效率会大大提高。 希尔排 序正是从这一点出r[0];
/*将待插入记录插入到已排序的序列
}
第9章 内部排序
【算法9.1 直接插入排序】 该算法的要点是:① 使用监视哨r[0]临时保存待插入 的记录; ② 从后往前查找应插入的位置;③ 查找与移动在同一 循环中完成。 直接插入排序算法分析: 从空间角度来看,它只需要一个辅助空间r[0]。从时间 耗费角度来看, 主要时间耗费在关键字比较和移动元素上。 对于一趟插入排序,算法中的while循环的次数主要取决 于待插记录与前i-1个记录的关键字的关系上。
· 向量结构:将待排序的记录存放在一组地址连续的存 储单元中。 由于在这种存储方式中,记录之间的次序关系由其存 储位置来决定,所以排序过程中一定要移动记录才行。
第9章 内部排序
· 链表结构:采用链表结构时,记录之间逻辑上的相 邻性是靠指针来维持的,这样在排序时,就不用移动记录元素, 而只需要修改指针。 这种排序方式被称为链表排序。
第9章 内部排序 第9章 内部排序
9.1 9.2 插入类排序 9.3 交换类排序法 9.4 选择类排序法 9.5 9.6 分配类排序 9.7 各种排序方法的综合比较
第9章 内部排序 9.1 排序的基本概念
1. 排序
有n个记录的序列{R1,R2,…,Rn},其相应关键字的序列 是{K1,K2,…,Kn},相应的下标序列为1,2,…,n。通过排序, 要求找出当前下标序列1,2,…, n的一种排列p1,p2, …,pn, 使得相应关键字满足如下的非递减(或非递增)关系,即: Kp1≤Kp2≤…≤Kpn , 这 样 就 得 到 一 个 按 关 键 字 有 序 的 记 录 序 列 {Rp1,Rp2,…,Rpn}。
数据流程图及数据字典
发货单
发货单
仓库
订货单 用户
付款通知单
P 2.2
D1(订货单)
开发货单
P 2.1 判定订货
处理方式
D2(订货单)
D3(订货单)
数据存储(D换at,a S从to用re户) 的角度看就是表示 系统能够“做什么”(如开发 票)
数据流(Data Flow) 数据流表示数据在系统中的流动。
数据流 数据流可以是双向的。数据流上要有文字说明,
也可以加符号。说明数据的流动方向及其名称
处理过程 处理块的画法可以有标识、功能描述、实
行的部门或程序名。
据流量等。
(4)处理逻辑的定义
处理逻辑的定义仅对数据流程图中最
底层的处理逻辑加以说明。
发货单
发货单
仓库
订货单 用户
付款通知单
P 2.2
D1(订货单)
开发货单
P 2.1 判定订货
处理方式
D2(订货单)
D3(订货单)
P 2.3 开付款 通知单
库存帐
发货单 订货单
信用手册
订货单存档 财务科
等有货再发货订货单
(5)数据存储的定义
数据存储在数据字典中只描述数据的
逻辑存储结构,而不涉及它的物理组织。
发货单
发货单
仓库
订货单 用户
付款通知单
P 2.2
D1(订货单)
开发货单
P 2.1 判定订货
处理方式
D2(订货单)
D3(订货单)
@主站和集中器间数据通信规约1.2
主站和集中器间数据通信规约一、主站和集中器之间的数据帧结构如下:第1字节:帧头:表示主站和集中器间一帧信息的开始,定义为:0x11;第2~3字节:帧标识:数据帧唯一标识,由命令发起者指定,从0累加,到0xFFFF回到0,回应帧保持它不变;第4字节:集中器号:集中器号由主站统一编号设定,例如:1号、2号等,当集中器号取0时为广播信号,表示对当前主站下所有集中器发出命令。
第5字节:数据域长度:代表数据域的字节数,数据域长度为0时表示无数据域。
第6字节:控制码:主站对集中器的控制类型分为读数据、写数据、添加和删除设备,广播校时等,由1字节8位二进制码构成,前三位是帧标志项,后五位是功能码,具体格式如下:Z7=0:由主站发出的帧;Z7=1:由集中器发出的帧;Z6=0:命令帧;Z6=1:应答帧;Z5=0:无后续帧;Z5=1:有后续帧;Z4~Z0请求及功能应答码:00000:保留00001:写电表数据01001:读电表数据00100:读历史数据10000:校时命令10001:断电控制(保留)11001:添加设备数据(采集器地址/电表地址)11000:删除设备数据11010:获得设备清单--1.1新增00110:定时抄时间设置00111:定时抄时间获取00011:采集器控制--1.2新增01011:读采集器保存的历史数据01101:设置采集器电表应答超时01111:取采集器电表应答超时10011:取规约版本号第7字节~倒数第3字节:数据域:数据域包括采集器号、电表号、需采集的电表数据、采集时间(数据返回时带)数据,其长度根据需采集数据的多少不同而不同。
,D1表示电能方向,D2表示有功无功,D3是总、尖、峰、谷、平的标志:D2:00无功 01有功D3:0000总值 0001尖峰值 0010峰值 0011平值 0100谷值电量数据由4个字节8位BCD码表示,小数点前6位,小数点后两位,单位有功Kwh(千瓦时),无功Kvarh (千乏时)。
数据结构习题(1-5章)
第一章绪论一、填空题1、数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。
2、数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
3、数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
4、数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
5、线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
6、在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。
7、在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。
8、在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
9、数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。
10、数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
11、一个算法的效率可分为时间效率和空间效率。
二、单项选择题(B)1、非线性结构是数据元素之间存在一种:A)一对多关系B)多对多关系C)多对一关系D)一对一关系( C )2、数据结构中,与所使用的计算机无关的是数据的结构;A) 存储B) 物理C) 逻辑D) 物理和存储(C)3、算法分析的目的是:A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性(A)4、算法分析的两个主要方面是:A) 空间复杂性和时间复杂性B) 正确性和简明性C) 可读性和文档性D) 数据复杂性和程序复杂性( C )5、计算机算法指的是:A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法(B)6、计算机算法必须具备输入、输出和等5个特性。
解释名词程序数据数据结构和数据类型
解释名词程序数据数据结构和数据类型
程序数据结构是指程序中用来组织和存储数据的方式或形式。
它决定了数据元素之间的关系以及在计算机内存中的存储方式。
常见的程序数据结构包括数组、链表、栈、队列、树、图等。
数据类型是指在程序中用来定义数据的分类或种类的方式。
它决定了数据的取值范围、所占的内存空间大小以及可以对该类型数据进行的操作。
常见的数据类型有整数型、浮点型、字符型、布尔型等。
在不同的编程语言中,数据类型的定义和命名方式可能会有所不同。
需要注意的是,数据结构和数据类型是两个相关但不完全相同的概念。
数据类型主要关注数据的基本分类,而数据结构则关注如何组织和存储数据。
拓展:
除了程序数据结构和数据类型,还有一些相关的概念可以拓展。
比如:
1.算法:算法是指解决问题的一系列步骤或指令。
不同的数据结
构和数据类型适用于不同的算法。
选择合适的数据结构和数据类型可
以提高算法的效率和性能。
2.数据库:数据库是指存储和管理大量数据的系统。
在数据库中,数据通常以表格的形式进行组织和存储,其中包括多种数据类型和数
据结构。
3.数据挖掘:数据挖掘是从大量数据中发现隐藏模式、关系或知
识的过程。
数据挖掘使用各种数据结构和数据类型来存储和分析数据。
4.。
数据结构第十章 排序
10.2 插入排序 插入排序
直接插入排序 折半插入排序 2-路插入排序 表插入排序 希尔排序
10.2.1 直接插入排序
基本操作:将一个记录插入到已排好序的有序表中, 从而得到一个新的、记录数增1的有序表。
例:有一组待排序的记录的关键字初始序列如下:
(49,38,65,97,76,13,27,49`)
(4)归并排序 (5)基数排序
按内排过程中所需的工作量分类:
(1)简单的排序方法,其时间复杂度为O(n×n)
(2)先进的排序方法,其时间复杂度为O(nlogn);
(3)基数排序,其时间复杂度为O(d(n+rd))
排序算法的两种基本操作:
(1)比较两个关键字的大小; (2)将记录从一个位置移至另一个位置;
算法实现的关键设计:
将d看成是一个循环数组,并设两个指针first和final分别指示排序过 程中得到的有序序列中的第一个记录和最后一个记录在d中的位置.
例:有一组待排序的记录的关键字初始排列如下:
(49,38,65,97,76,13,27,49`) 16
[初始关键字] 49 38 65 97 76 13 27 49`
18
10.2.3 希尔排序 从直接插入排序
待排序序列基本有序可提高效率 回顾 待排序序列的记录数n很小时可提高效率
希尔排序的基本思想:
先将整个待排记录序列分割成为若干子序列分别进行
直接插入排序,待整个序列中的记录“基本有序”时,再对 全
体记例录:有进一行组一待次排直序接的插记入录排的序关. 键字初始排列如下: (49,38,65,97,76,13,27,49`)
} 12
直接插入排序的性能分析: 10. 3
(1)空间:只需一个记录的辅助空间r[0].
数据结构第一章习题答案
题1.7 实现输入和输出的三种方式:
(1) 直接和外部环境进行信息交换,复用性 较差,一般仅用在人机对话的用户界面中; (2) 和调用环境进行信息交换,安全性好, 使模块内部出现的错误不外传,进行模块测 试时,只要保证本模块从入口到出口的结果 正确即可。 (3) 交换方式同(2),但不安全,容易出现各 模块的错误滚动传递。
• 1.12 设有以下三个函数:
• f(n)=21n4+n2+1000,g(n)=15n4+500n3,h(n)=50 00n 3.5+nlogn
• 请判断以下断言正确与否: • (1) f(n)是O(g(n) ) 正确 • (2) h(n) 是O(f(n) ) 错误 • (3) g(n) 是O(h(n)) 错误 • (4) h(n) 是O(n 3.5) 正确 • (5) h(n) 是O(nlogn) 错误
• 数据:指能够被计算机识别、存储和加工处理的 信息载体。
• 数据元素:就是数据的基本单位,在某些情况下, 数据元素也称为元素、结点、顶点、记录。数据 元素有时可以由若干数据项组成。
• 数据类型:是一个值的集合以及在这些值上定义 的一组操作的总称。
• 数据结构:指的是数据之间的相互关系,即数据 的组织形式。一般包括三个方面的内容:数据的逻 辑结构、存储结构和数据的运算。
题1.8 学会系统分析的方法
(5) for( i=1; i<=n; i++)
for (j=1; j<=i; j++)
for (k=1; k<=j; k++)
语句频度
=
ni j
1
ni
j
d3 双向树原理
d3 双向树原理
D3是JavaScript中一种用于创建数据可视化的库。
在D3中,
双向树是一种用于表示具有父节点和子节点之间双向关系的树结构。
通过D3创建双向树的过程如下:
1. 创建树布局:使用D3提供的d3.tree()方法创建一个树布局
对象。
这个对象将负责计算每个节点的位置。
2. 创建层次数据:将输入的数据转换为层次结构的数据。
层次结构的数据包含了父节点和子节点之间的关系。
3. 计算节点位置:调用树布局对象的()方法,传入层次数据作
为参数。
这个方法将根据层次数据计算每个节点的位置,并返回一个包含位置信息的层次数据。
4. 绘制节点:通过遍历层次数据,使用D3提供的方法绘制每
个节点。
双向树的原理是基于树数据结构的原理。
双向树由一个根节点和多个子节点组成,每个节点可以有一个父节点和多个子节点。
节点之间是双向关系,可以通过父节点访问子节点,也可以通过子节点访问父节点。
双向树的层次结构使得可以通过节点之间的关系来表达复杂的数据关联。
D3库提供了对双向树的创建和操作的支持,能够帮助开发者
轻松地实现双向树的可视化效果。
通过使用D3的相关方法和组件,可以根据数据的层次结构,创建出直观、易用、美观的双向树图表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D3数据结构使用文档
展示图信息采用JSON字符串格式传送数据结构,第一级为管线。
第二级为管线的八大类包括供水、排水、燃气、热力、电力、通信、广播电视和工业。
第三级别为八大类的支类,例如:供水的支类包括工业供水、生活供水和消防供水。
第四级别为支类所用管线,例如:钢管、铸铁管、水泥压力管和PPR管。
第五级别为管线属性,例如:直径、外径、厚壁。
▲注:结构图如下图所示
Name:管线
Name:供水
children
Name:排水
children
Name:燃气
children
Name:广播电
视children
Name:通讯
children
Name:工业
children
Name:电力
children
Name:热力
children
Name:工业供
水children
Name:生活供
水children
Name:消防供
水children
Name:塑料管
children
Name:有色金
属管children
Name:铜管
children
Name:水泥压
力管children
Name:铸铁管
children
Name:PPR管
children
Name:外径
Name:直径
Name:壁厚
如下面的JSON字符串所示,”name”为图片圆形中的文字,”children”为子集,如供水的子集包括生活供水、消防供水、工业供水。
”size”为图片中圆形的大小,按照级别分别设置”size”大小(同一子集下请设置相同的”size”,以保证区分不同层级间的关系)。
如下面JSON字符串所示由一级到五级,”size”的数值由大到小。
▲注:①JSON字符串中”name”对应的是字符串;
②JSON字符串中”size”对应的是数字。
③因使用本地文件JSON需要跨域,所以运行html时请右键点击使用Visual Studio打开,然后右键点击在浏览器中查看,如下图所示。
{
"name": "管线","size": 20,
"children": [
{
"name": "供水","size": 16,
"children": [
{
"name": "工业供水","size": 12,
"children": [
{ "name": "PPR管","size": 10},
{ "name": "铸铁管","size": 10 },
{ "name": "有色金属管","size": 10 }, { "name": "水泥压力管" ,"size": 10}, { "name": "塑料管" ,"size": 10},
{
"name": "钢管",
"size": 10,
"children": [
{"name": "直径","size": 8},
{"name": "外径","size": 8},
{ "name": "壁厚","size": 8 }
]
}
]
},
{
"name": "生活供水","size": 12,
"children": [
{ "name": "PB管" ,"size": 10},
{ "name": "PE管","size": 10 },
{ "name": "PVC管" ,"size": 10},
{ "name": "非金属管","size": 10 }
]
},
{
"name": "消防供水","size": 12,
"children": [
{ "name": "PERT管" ,"size": 10},
{ "name": "钢管","size": 10 }
]
}
]
}
]
}。