精华内容
下载资源
问答
  • UML 包图

    2014-06-04 17:16:38
    包图的定义: 包图的作用: 包图的构成

    包图的定义:

      包可直接理解为命名空间,文件夹,是用来组织图形的封装,包图可以用来表述功能组命名空间的组织层次。


    包图的作用:

    1)对语义上相关的元素进行分组; 
    2)定义模型中的“语义边界”; 
    3)提供配置管理单元; 
    4)在设计时,提供并行工作的单元; 
    5)提供封装的命名空间,其中所有名称必须惟一


    包图的构成:

    包的可见性:

    用“+”来表示“public”,

    用“#”来表示“protected”,

    用“-”来表示“private”


    包的常见结构:

    包之间的关系:

    •《use》使用关系:是一种默认的依赖关系,说明客户包(发出者)中的元素以某种方式使用提供者包(箭头指向的包)的公共元素,也就是说客户包依赖于提供者

    •《import》引用关系:最普遍的包依赖类型,说明提供者包(箭头指向的包)的命名空间(包本身代表命名空间)将被添加到客户包(发出者)的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素

    •《access》访问关系:只想使用提供者包中的元素,而不想将其命名空间合并则应使用该关系

    •《trace》追溯关系:想表示一个包到另一个包的历史发展,则需要使用《trace》关系来表示



    包图的例图:

    展开全文
  • //头文件 //Edge.h #ifndef EDGE_H #define EDGE_H #include using namespace std;... //边起始与终点 int start, end; //权重 T weight; Edge(); Edge(int st, int en, T wei); bool operat
    //头文件
    //Edge.h
    #ifndef EDGE_H
    #define EDGE_H
    #include<iostream>
    using namespace std;
    template<typename T>
    class Edge{
    public:
    	//边的起始与终点
    	int start, end;
    	//权重
    	T weight;
    	Edge();
    	Edge(int st, int en, T wei);
    	bool operator >(const Edge& str);
    	bool operator <(const Edge& str);
    };
    template<typename T>
    Edge<T>::Edge()
    {
    
    }
    template<typename T>
    Edge<T>::Edge(int st, int en, T wei)
    {
    	this->start = st;
    	this->end = en;
    	this->weight = wei;
    }
    template<typename T>
    bool Edge<T>::operator<(const Edge& str)
    {
    	return this->weight < str.weight;
    }
    template<typename T>
    bool Edge<T>::operator>(const Edge& str)
    {
    	return this->weight > str.weight;
    }
    #endif // !EDGE_H
    //Graph.h
    #ifndef GRAPH_H
    #define GRAPH_H
    /*
        该图是无向图且是无权图
    */
    #include<iostream>
    #include"Edge.h"
    using namespace std;
    template<typename T>
    class Graph{
    private:
    	int vertexNum;//节点数目
    	int edgeNum;//边的数目
    	Edge<T> edge;
    	int *Mark;//记录顶点是否被访问过(0表示未被访问过,1表示已被访问过)
    	int **matrix;//用于实现图的邻接矩阵(全部初始化为0,0表示节点之间没有边,1表示节点之间有边)
    	int **WeightMartrix;//该矩阵为带权矩阵
    	int GType;//图的类型(0:无向图,1:有向图)
    public:
    	Graph();
    	Graph(int ver);
    	//对Mark和matrix进行初始化
    	void Init();
    	~Graph();
    	//返回顶点vertex的第一条边
    	bool firstEdge(int vertex);
    	//返回与oneEdge有相同始点的下一条边
    	bool nextEdge(Edge<T>& oneEdge);
    	//设置边(该矩阵为带权矩阵)
    	void setEdge(int start, int end, T weight);
    	//设置边(该矩阵为不带权矩阵)
    	void setEdge(int start, int end);
    	void print(int n);
    	void Print();
    };
    template<typename T>
    Graph<T>::Graph()
    {
    	this->vertexNum = 0;
    	this->edgeNum = 0;
    	this->Mark = NULL;
    	this->matrix = NULL;
    	//默认为无向图
    	this->GType = 0;
    }
    template<typename T>
    Graph<T>::Graph(int ver)
    {
    	this->vertexNum = ver;
    	this->Mark = new int[this->vertexNum];
    	this->matrix = new int*[this->vertexNum];
    	this->WeightMartrix = new int*[this->vertexNum];
    	for (int i = 0; i < this->vertexNum; i++)
    	{
    		this->matrix[i] = new int[this->vertexNum];
    		this->WeightMartrix[i] = new int[this->vertexNum];
    	}
    	if (this->matrix == NULL || this->Mark == NULL||this->WeightMartrix==NULL)
    	{
    		cout << "空间未成功开辟" << endl;
    		exit(true);
    	}
    	this->Init();
    }
    template<typename T>
    void Graph<T>::Init()
    {
    	for (int i = 0; i < this->vertexNum; i++)
    	{
    		this->Mark[i] = 0;
    		for (int j = 0; j < this->vertexNum; j++)
    		{
    			this->matrix[i][j] = 0;
    			this->WeightMartrix[i][j] = 0;
    		}
    	}
    }
    template<typename T>
    Graph<T>::~Graph()
    {
    	for (int i = 0; i < this->vertexNum; i++)
    	{
    		delete this->matrix[i];
    	}
    	delete this->Mark;
    	this->matrix = NULL;
    	this->Mark = NULL;
    }
    template<typename T>
    bool Graph<T>::firstEdge(int vertex)
    {
    	//返回以vertex为起点的第一条边
    	edge.start = vertex;
    	int i = 0;
    	for (; i < this->vertexNum; i++)
    	{
    		if (this->matrix[vertex-1][i] == 1)
    			break;
    	}
    	if (i >= this->vertexNum)
    	{
    		cout << "该顶点没有与边链接" << endl;
    		return false;
    	}
    	else
    	{
    		edge.end = i + 1;
    		return true;
    	}
    }
    template<typename T>
    bool Graph<T>::nextEdge(Edge<T>& oneEdge)
    {
    	//返回与oneEdge有相同始点的下一条边
    	int i = oneEdge.end;
    	for (; i < this->vertexNum; i++)
    	{
    		if (this->matrix[oneEdge.start-1][i] != 0)
    		{
    			break;
    		}
    	}
    	if (i >= this->vertexNum)
    	{
    		cout << "没有找到与该边有相同始点的下一条边" << endl;
    		return false;
    	}
    	edge.start = oneEdge.start;
    	edge.end = i + 1;
    	return true;
    }
    template<typename T>
    void Graph<T>::setEdge(int start, int end, T weight)
    {
    	
    	if (start >= this->vertexNum || end >= this->vertexNum)
    	{
    		cout << "start/end超出范围" << endl;
    	}
    	else if (this->WeightMartrix[start-1][end-1] != 0)
    	{
    		cout << "该边已存在" << endl;
    		cout << "是否需要重新设置(Y/N)" << endl;
    		char ch;
    		cin >> ch;
    		if (ch == 'Y')
    		{
    			this->WeightMartrix[start-1][end-1] = weight;
    		}
    	}
    	else
    	{
    		this->WeightMartrix[start - 1][end - 1] = weight;
    	}
    }
    template<typename T>
    void Graph<T>::setEdge(int start, int end)
    {
    	if (start > this->vertexNum || end > this->vertexNum)
    	{
    		cout << "start/end已经超出范围" << endl;
    	}
    	else if (this->matrix[start-1][end-1] != 0)
    	{
    		cout << "该边已存在" << endl;
    	}
    	else
    	{
    		this->matrix[start-1][end-1] = 1;
    	}
    }
    template<typename T>
    void Graph<T>::print(int n)
    {
    	if (firstEdge(n))
    	{
    		cout << edge.start << " " << edge.end << endl;
    	}
    }
    template<typename T>
    void Graph<T>::Print()
    {
    	for (int i = 0; i < this->vertexNum; i++)
    	{
    		for (int j = 0; j < this->vertexNum; j++)
    		{
    			if (this->WeightMartrix[i][j] != 0)
    			{
    				cout << "(" << i + 1 << "," << j + 1 << ") :"<< this->WeightMartrix[i][j];
    			}
    		}
    		cout << endl;
    	}
    	cout << endl;
    }
    #endif // !GRAPH_H
    //主函数
    #include"Graph.h"
    int main(int argc, char argv[])
    {
    	Graph<int>graph(5);
    	graph.setEdge(4, 5);
    	graph.setEdge(3, 2);
    	graph.setEdge(1, 1, 5);
    	graph.print(1);
    	graph.print(3);
    	graph.print(4);
    	graph.Print();
    	return 0;
    }
    

    展开全文
  • 详解Arduino Uno开发板引脚分配定义

    万次阅读 多人点赞 2018-06-10 17:03:36
    在本篇文章中,我们将详细介绍Arduino开发板硬件电路部分,具体来说,就是介绍Arduino Uno开发板引脚分配定义。Arduino Uno微控制器采用是AtmelATmega328。 Arduino Uno开发板引脚分配包含14个数字...

    在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开发板的引脚分配图及定义。Arduino Uno微控制器采用的是Atmel的ATmega328。 Arduino Uno开发板的引脚分配图包含14个数字引脚、6个模拟输入、电源插孔、USB连接和ICSP插头。引脚的复用功能提供了更多的不同选项,例如驱动电机、LED、读取传感器等。在这篇文章中,我们将介绍Arduino Uno引脚的功能。

    Arduino Uno开发板可以使用三种方式供电:

    ● 直流电源插孔 -可以使用电源插孔为Arduino开发板供电。电源插孔通常连接到一个适配器。开发板的供电范围可以是5-20V,但制造商建议将其保持在7-12V之间。高于12V时,稳压芯片可能会过热,低于7V可能会供电不足。

    ● VIN引脚 - 该引脚用于使用外部电源为Arduino Uno开发板供电。电压应控制在上述提到的范围内。

    这里写图片描述

    更多内容请参考原文链接:https://www.yiboard.com/thread-831-1-1.html


    欢迎扫码关注微信公众号:yi-board

    在这里插入图片描述

    展开全文
  • 定义图书类,包含:书号、书名、价格、作者、出版社等信息 初始10本书,完成以下功能 1、 显示所有图书信息 2、 根据书名查找图书 3、 根据价格区间查找图书 4、 根据作者查找图书 5、 根据出版社查找图书 6...
  • UML-----包图

    千次阅读 热门讨论 2019-06-09 23:19:15
    包图的定义: -用类似于文件夹的符号表示包含模型元素的组合。 包的作用: -1、逻辑上把一个复杂的图模块化 -2、组织源代码 包的图符: 包中的元素: -类、接口、构件、用例、其他包等 -若包被撤销,则...

    包图是这几个图中比较简单的一种图,接下来简单介绍一下包图。

     

    包图的定义:

    -用类似于文件夹的符号表示包含模型元素的组合。

    包的作用:

    -1、逻辑上把一个复杂的图模块化

    -2、组织源代码

    包的图符:

    包中的元素:

    -类、接口、构件、用例、其他包等

    -若包被撤销,则其中的元素也被撤销了

    包与包之间的关系:

    -泛化

    -细化

    -依赖(常用)-------------如果两个包中的任意两个类之间有依赖关系,那么这两个包之间有依赖关系。

    包的常见问题:

    -1、一定要避免循环依赖产生

    -2、测试时可以以包为测试单位

    -3、应该尽量把概念和语义上相接近的元素包含在同一个包中。

    -4、对于一个包,找出哪些包内的元素是可以在包外访问的,把这些元素标记为公共的,其他的所有元素都标记成受保护的或者私有的。

    机房收费系统包图

     

    展开全文
  • 引路蜂地图API:Gis包定义

    千次阅读 2012-05-23 08:15:57
    Gis包中定义了一些通用地图对象类: MapDirection 定义路径查询结果,路径查询结果可以由多条路径组成。 MapObject 所有地图对象基类. MapPoint 地理几何图形点对象. MapRoute 定义...
  • 引路蜂地图API:Gis.Raster 包定义

    千次阅读 2012-05-27 14:00:08
    包定义了在线和离线地图对象相关一些类. Map Type 定义各种地图类型,如Google地图,Google卫星,Bing 中国地图等。 MapConfiguration 定义地图一些配置信息,如是否使用缓存,同时启动最大...
  • 图的定义以及表示

    2016-12-05 16:44:51
    什么是 表示“多对多”关系 包含 一组顶点:通常用V(Vertex)表示...抽象数据类型定义 类型名称:(Graph) 数据对象集:G(V,E)由一个非空有限顶点集合V和一个有限边集合E组成。 操作集:对于任意图G∈Gra
  • 引路蜂地图API:开发中核心类定义

    千次阅读 2012-05-22 08:39:57
    为引路蜂地图开发中关键几个类定义及其关系: 上中显示为绿色三个类分别用于对不同平台UI,不同地图服务,不同地图图片支持,引路蜂地图开发设计时对地图图片和地图服务两部分进行了抽象,其中...
  • 引路蜂地图API:Drawing包定义

    千次阅读 2012-06-02 11:11:32
    提供Drawing包的的主要原因是部分移动平台自带二维图形库功能比较弱。比如Java ME 平台上不支持线宽大于1画笔等等。 Brush 画刷类。 Color 颜色类。 Graphics2D Graphics2D
  • 引路蜂地图API:Gis.Geometry包定义

    千次阅读 2012-05-24 08:42:45
    包定义了地图对象中各种地理几何图形. GeoBounds 定义地图对象边界矩形。 GeoLatLng 点义一个经纬度坐标.以 latitude,longitude 表示。 GeoLatLngBounds 点义一个经纬度为单位地图对象...
  • 引路蜂地图API:Gis.Vector包定义

    千次阅读 2012-05-29 13:09:24
    包定义了矢量地图所用一些类. SutherlandHodgman 实现 Sutherland-Hodgman剪裁算法. VectorMap 矢量地图类,它是RasterMap一个子类。矢量地图可以由多个图层组成。 GeoSet 多个地图图层...
  • 引路蜂地图API:Gis.Drawing包定义

    千次阅读 2012-05-25 08:12:59
    如前文所述,该对不同平台UI部分进行了抽象,定了图形系统接口,在不同平台上使用地图名,只要实现这些接口,就可以在该平台上使用地图API,在发布地图名包含了对这些接口缺省实现,不同平台,这些接口...
  • 引路蜂地图API:Gis.Service包定义

    千次阅读 2012-05-28 11:17:03
    这个包中定义了地址查询,地理反编码,路径查询,本地查询等地图服务接口。 DigitalMapServce 各种地图服务(地址查询,路径)实现。开发人员可以选择使用地图服务类型,如使用Google 地图或是...
  • 包图介绍以及包图在rational中常见操作 包图介绍 1.定义:对模型元素进行分组,并且给分好组元素提供一个命名空间 2.作用:便于理解复杂系统,控制系统结构各个部分间连接;在逻辑上把你一个复杂图...
  • 包图介绍 1.定义:对模型元素进行分组,并且给分好组元素提供一个命名空间 2.作用:便于理解复杂系统,控制系统结构各个部分间连接;在逻辑上把你一个复杂图模块化。描述你需求和设计概述。 3....
  • 引路蜂地图API:Gis.Location包定义

    千次阅读 2012-05-30 08:24:29
    包定义了GPS接收器一个通用接口,并提供对NMEA 2.0数据解码方法。在Java ME平台上对JSR179 进行了封装. Coordinates 定义地址经纬度坐标。 Location 定义地址信息,如名称等。 Location...
  • 在图像处理工具ImagXpress中如何定义图像显示属性,如色彩管理、设置工具栏和工具、设置上下文&工具栏菜单、配置滚动条、鼠标和键等······ 在显示图像时色彩管理 在ImagXpress中管理颜色,将会用到以下...
  • 引路蜂地图API:Drawing.Geometry 包定义

    千次阅读 2012-06-04 19:32:53
    基本上是参照Java SE 中相应类来定义实现。 PathIterator 路径元素枚举类。 IShape Shape接口定义了二维图形一些基本方法。 AffineTransform 仿射变换类。 Arc 圆弧类。 Area ...
  • socket发送和接受tcp信息格式的定义 (2011-07-29 15:05:17) 转载▼ 标签: 杂谈 分类: Delphi编程 下面为信息的格式和内容 数据包格式如下所示,所包含的内容从左到右...
  • 一些定义

    2018-03-04 14:48:09
    实例:无向图G=(V, E),V为图的所有顶点集合(非空),E为图的所有边的集合。  【子图(subgraph)和生成子图(spanning subgraph)】  G’=(V’, E’),V’被包含于V,E’被包含于E,G’为G的子图。 另外...
  • UML九种图+包图

    万次阅读 热门讨论 2013-01-23 15:05:26
    外加包图。   (一)、用例图   1、定义:由参与者(Actor)、用例(Use Case)以及它们之间关系构成用于描述系统功能动态视图称为用例图.   2、简要介绍:用例图主要用于为系统功能需求建模,它...
  • 引路蜂地图API:Gis.Navigation包定义

    千次阅读 2012-05-31 09:02:36
    提供了路口到路口实时导航API,从地图服务器返回路径信息含有文字和路径地理坐标信息,类NavigationEngine根据路径和当前坐标实现实时导航。它内部含用三个工作线程: Location Monitor 实时监视当前位置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,736
精华内容 5,494
关键字:

包图的定义