ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:22KB ,
资源ID:2970098      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2970098.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子元器件系统.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子元器件系统.docx

1、电子元器件系统电子元器件系统代码分析一、 类的定义与实现1、 器件类 器件类定义class CComponent : public CObjectpublic: static COLORREF m_fillColor;/由类的所有对象共享 BOOL IsNum(CString str); BOOL IsInList(int i,CObList *pNumList); DECLARE_SERIAL(CComponent) void Serialize(CArchive& ar); void SetName(const CString &Name); CString GetName(); virt

2、ual void Draw(CDC *pDC); virtual CString CalculateName(CObList *pList); float GetRotateAngle(); void SetRotateAngle(float angle); BOOL GetIsSelected(); void SetIsSelected(BOOL IsSel); int GetLineWidth(); void SetLineWidth(int LWidth); void SetColor(COLORREF color); COLORREF GetColor(); CComponent();

3、 virtual CComponent();private: float m_RotateAngle; BOOL m_IsSelected; int m_iLineWidth; COLORREF m_Color; CString m_strName; 器件类实现COLORREF CComponent:m_fillColor = RGB(176,176,176);/在文件范围内初始化CComponent:CComponent() m_RotateAngle = 0; m_IsSelected = FALSE; /m_iLineWidth = 4; m_iLineWidth = 40; m_Col

4、or = RGB(0,0,255);CComponent:CComponent()COLORREF CComponent:GetColor() return m_Color;void CComponent:SetColor(COLORREF color) m_Color = color;void CComponent:SetLineWidth(int LWidth) m_iLineWidth = LWidth;int CComponent:GetLineWidth() return m_iLineWidth;void CComponent:SetIsSelected(BOOL IsSel) m

5、_IsSelected = IsSel;BOOL CComponent:GetIsSelected() return m_IsSelected;void CComponent:SetRotateAngle(float angle) m_RotateAngle = angle;float CComponent:GetRotateAngle() return m_RotateAngle;CString CComponent:CalculateName(CObList *pObList) return 器件;void CComponent:Draw(CDC *pDC)CString CCompone

6、nt:GetName() return m_strName; void CComponent:SetName(const CString &Name) m_strName = Name;void CComponent:Serialize(CArchive &ar) if (ar.IsStoring() arm_Colorm_iLineWidthm_strNamem_Colorm_iLineWidthm_strNamem_RotateAngle; BOOL CComponent:IsInList(int i, CObList *pNumList)/判断数字i是否在链表pNumList中 POSI

7、TION pos = pNumList-GetHeadPosition(); CObject *pObject; int *p; while(pos != NULL) pObject = pNumList-GetAt(pos); p = (int *)pObject; if (i = (*p) return TRUE; pNumList-GetNext(pos); return FALSE;BOOL CComponent:IsNum(CString str)/判断一个字符串是否是数字,在各个派生类的CalculateName函数中/使用,系统提供的函数atoi()将类似于12ert之类的串转换

8、为12,/这显然是不正确的,因此自己开发了这个小函数 int len = str.GetLength(); char ch; for (int i = 1; i= len; i+) ch = str.GetAt(i-1); if (!(ch=0) return FALSE; return TRUE;2、 电阻类的定义与实现 电阻类的定义#include Component.h/包含基类的头文件typedef struct struc_Resistor char m_strClassType20; /COLORREF m_color; /int m_iLineWidth; BOOL m_IsSe

9、lected; /float m_RotateAngle; char m_strName100; /char m_ReType100;/电阻的类型 /char m_ReValue100;/电阻的阻值RESISTOR;class CResistor : public CComponent public: void CopyReToStruRe(RESISTOR &Resistor); /将电阻对象拷贝到电阻结构中 CResistor(RESISTOR Resistor); void GetNumInNameSer(CObList *pObList,CObList *pNumSer,int *pM

10、ax); /取得已绘制的电阻名称中的数字序列 CResistor(CPoint *pt); DECLARE_SERIAL(CResistor) void Serialize(CArchive& ar); void PrepareDrawChipDC(CDC *pDC); void Draw(CDC *pDC); CString CalculateName(CObList *pObList); void SetReValue(CString &ReValue); void SetReType(CString &ReType); CString GetReValue(); CString GetR

11、eType(); CRect m_Rect; CRect m_RectLP; CRectTracker m_RectTracker; CResistor(); virtual CResistor();private: CString m_ReType; CString m_ReValue; 电阻类的实现CResistor:CResistor() /m_Rect = CRect(0,0,100,60); m_Rect = CRect(0,0,2000,-1000); m_RectLP = m_Rect; m_RectTracker.m_rect = m_Rect; m_RectTracker.m

12、_nStyle = CRectTracker:resizeOutside; SetName(R);CResistor:CResistor()CString CResistor:GetReType() return m_ReType;CString CResistor:GetReValue() return m_ReValue;void CResistor:SetReType(CString &ReType) m_ReType = ReType;void CResistor:SetReValue(CString &ReValue) m_ReValue = ReValue;CString CRes

13、istor:CalculateName(CObList *pObList)/在绘制时系统给出的默认名称,这个名称是根据当前链表中/对象情况而定的,具体功能同VB等开发工具中拖拉控件时产生/名称的情况 CObList *pNumSer = new CObList; int max; char buf10; GetNumInNameSer(pObList,pNumSer,&max); /分析数字序列 for (int i=1;iCount() = %dn, pNumSer-GetCount(); while (pNumSer-GetHeadPosition() delete (int *)pNumSer-RemoveHead(); delete pNumSer; return R+ CString(buf);void CResistor:Draw(CDC *pDC) /*根据元器件对象的颜色和线宽属性值绘制*/ CString name = this-GetName(); int width = m_Rect.Width(); int height = m_Rect.Height();/返回的是负值; CPen

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1