C++课程设计--人民币大小写转换器(MFC)

课设题目

人民币大小写转换器

课设要求

①利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件;
②用户输入人民币小写,则转换为大写输出;用户输入大写则转为小写输出;
如输入123,则转换为壹佰贰拾叁元,输入伍佰叁拾元,则转为530.

程序运行界面

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

核心代码

// 人民币大小写转换Dlg.cpp : implementation file
//

#include "stdafx.h"
#include "人民币大小写转换.h"
#include "人民币大小写转换Dlg.h"
#include"afx.h"
#include"math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyDlg dialog

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMyDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMyDlg)
	m_a1 = 0;
	m_A1 = _T("");
	m_A2 = _T("");
	m_a2 = 0;
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyDlg)
	DDX_Text(pDX, IDC_EDIT1, m_a1);
	DDX_Text(pDX, IDC_EDIT2, m_A1);
	DDX_Text(pDX, IDC_EDIT3, m_A2);
	DDX_Text(pDX, IDC_EDIT4, m_a2);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
	//{{AFX_MSG_MAP(CMyDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyDlg message handlers

BOOL CMyDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	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);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CMyDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		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;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CMyDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CMyDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	int a = GetDlgItemInt(IDC_EDIT1);
	int b=a;
	int count=0;
CStringArray A1;
	A1.Add("壹");//加数据
	A1.Add("贰");
	A1.Add("叁");
	A1.Add("肆");
	A1.Add("伍");
	A1.Add("陆");
	A1.Add("柒");
	A1.Add("捌");
	A1.Add("玖");
CStringArray A2;
    A2.Add(" ");
	A2.Add("拾");
	A2.Add("佰");
	A2.Add("仟");
	A2.Add("万");
	int m=0;
	int n=0;
	CString str="";
	while(a!=0)
	{
		m=a/10;
		n=a%10;
		count++;
	    a=m;
	}
	for(int i=count-1;i>0;i--)
	{
		int x=pow(10,i);
		m=b/x;
		n=b%x;
	str=str+A1.GetAt(m-1)+A2.GetAt(i);
	    b=n;
	}
	str+=A1.GetAt(b-1)+"元";
	
//TCHAR tt;
//tt=shuzu[0]=_T('厦');
//str.Format("%d", count);
//m_A1=A1.GetAt(0);
m_A1=str;
UpdateData(false);
}

void CMyDlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
	   CString c_user;
   GetDlgItemText(IDC_EDIT3, c_user);



CStringArray B1;

   int length=c_user.GetLength();
   for(int i=1;i<=length;i++)
   {
  //   CString y= c_user.Mid(i,i+1);
//	 B1.Add(y);
   B1.Add(c_user.Mid(i-1,2));
   i++;
   }
   int B1_length=B1.GetSize();
   CString bstr="";
   for(i=0;i<B1_length;i++)
   {
      if(B1.GetAt(i)==_T("壹"))
		  bstr+="1";
  
}

发布了155 篇原创文章 · 获赞 110 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_44225182/article/details/103690869
今日推荐