第十五周任务(一)

来源:互联网 发布:百雀羚保湿精华霜 知乎 编辑:程序博客网 时间:2024/05/02 01:04
头文件:
class Triangle{public:Triangle(){a=1;b=1;c=1;}Triangle(double x, double y,double z){a = x; b = y; c = z;}double area(void);double zhouchang(void);private:double a,b,c;};
源文件:
#include "stdafx.h"#include "MyTriangle.h"#include <Cmath>double Triangle::area(void){double s=(a+b+c)/2;return sqrt(s*(s-a)*(s-b)*(s-c));}double Triangle::zhouchang(void){double l=(a+b+c);return l;}某个文件:
// triangleDlg.cpp : 实现文件//#include "stdafx.h"#include "triangle.h"#include "triangleDlg.h"#include "MyTriangle.h "#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialog{public:CAboutDlg();// 对话框数据enum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持// 实现protected:DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()// CtriangleDlg 对话框CtriangleDlg::CtriangleDlg(CWnd* pParent /*=NULL*/): CDialog(CtriangleDlg::IDD, pParent), m_a(0), m_b(0), m_c(0), m_area(0), m_l(0){m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CtriangleDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, m_a);DDX_Text(pDX, IDC_EDIT2, m_b);DDX_Text(pDX, IDC_EDIT3, m_c);DDX_Text(pDX, IDC_EDIT4, m_area);DDX_Text(pDX, IDC_EDIT5, m_l);}BEGIN_MESSAGE_MAP(CtriangleDlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()//}}AFX_MSG_MAPON_BN_CLICKED(IDC_BUTTON1, &CtriangleDlg::OnBnClickedButton1)ON_EN_CHANGE(IDC_EDIT1, &CtriangleDlg::OnEnChangeEdit1)ON_BN_CLICKED(IDC_BUTTON2, &CtriangleDlg::OnBnClickedButton2)END_MESSAGE_MAP()// CtriangleDlg 消息处理程序BOOL CtriangleDlg::OnInitDialog(){CDialog::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABOUTBOX 必须在系统命令范围内。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);// 设置大图标SetIcon(m_hIcon, FALSE);// 设置小图标// TODO: 在此添加额外的初始化代码return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE}void CtriangleDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// 如果向对话框添加最小化按钮,则需要下面的代码//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,//  这将由框架自动完成。void CtriangleDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}//当用户拖动最小化窗口时系统调用此函数取得光标//显示。HCURSOR CtriangleDlg::OnQueryDragIcon(){return static_cast<HCURSOR>(m_hIcon);}void CtriangleDlg::OnBnClickedButton1(){//TODO:UpdateData();Triangle t1(m_a,m_b,m_c);m_area=t1.area();UpdateData(FALSE);}void CtriangleDlg::OnEnChangeEdit1(){// TODO:  如果该控件是 RICHEDIT 控件,则它将不会// 发送该通知,除非重写 CDialog::OnInitDialog()// 函数并调用 CRichEditCtrl().SetEventMask(),// 同时将 ENM_CHANGE 标志“或”运算到掩码中。// TODO:  在此添加控件通知处理程序代码}void CtriangleDlg::OnBnClickedButton2(){//TODO:UpdateData();Triangle t1(m_a,m_b,m_c);m_l=t1.zhouchang();UpdateData(FALSE);}
   在此次任务中,我重新体验了窗口,让我们感受到不同的体验,同时对我刚刚学习的集成与派生,多态等等,对他们有了更深入的认识,同时也感受到各种属性不同,效果也是不同的。在做任务要做到细心认真。

	
				
		
原创粉丝点击