⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diagram.cpp

📁 1.通过鼠标拖拽和弹出对话框完成实体、属性、联系的绘制以及各参数设定 2.对绘制的实体、属性、联系提供合法性检查 3.对绘制的图形进行拖动、重设大小、删除 4.通过属性对话框对实体、属性、联系的
💻 CPP
字号:
#include "StdAfx.h"
#include "Diagram.h"
Diagram::Diagram()
{
	count=0;
	this->firstElement=NULL;
	this->selected=NULL;
}
void Diagram::removeElement(Element *a)
{
	count--;
	Element* first=this->firstElement;
	if(first==a)
	{
		firstElement=first->nextelement;
		return;
	}
	while(first->nextelement!=NULL)
	{
		if(first->nextelement==a)
		{
			first->nextelement=a->nextelement;
			return;
		}
		first=first->nextelement;
	}
}
void Diagram::addElement(Element* a)
{
	count++;
	Element* first=this->firstElement;
	if(first==NULL)
	{
		firstElement=a;
		return;
	}
	while(first->nextelement!=NULL)
	{
		first=first->nextelement;
	}
    first->nextelement=a;
}
void Diagram::paint(CDC& g)
{
	Element *first=this->firstElement;
	while(first!=NULL)
	{
		first->paint(g);
		first=first->nextelement;
	}
}
int Diagram::have(CString name)
{
   int x=0;
   Element *first=this->firstElement;
   while(first!=NULL)
   {
	   if(first->name==name)
	   {
		   x=1;
		   break;
	   }
	   first=first->nextelement;
   }
   return x;
}
Element* Diagram::father(CString name,int x)
{
    Element* father=NULL;
	Element *first=this->firstElement;
	while(first!=NULL)
	{
		if(x==1)
		{
			if(first->name==name&&(first->type==1||first->type==2))
			{
		    	father=first;
		    	break;
			}
		}
		else if(x==2)
		{
	    	if(first->name==name&&(first->type==1))
			{
		    	father=first;
		    	break;
			}
		}
        first=first->nextelement;
	}
	return father;	
}
void Diagram::Delete()
{
	Element *first=this->firstElement;
	if(first==NULL)
	{
		return;
	}
	while(first->nextelement!=NULL)
	{
		 Element* e=first->nextelement;
         this->removeElement(e);
		 delete(e);
	}
	firstElement=NULL;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -