欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-15 09:34:05
...

课设题目

人民币大小写转换器

课设要求

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

程序运行界面

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

核心代码

// 人民币大小写转换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";
  
}

完整项目源码

需要的小伙伴请在海轰的微信公众号:海轰Pro
回复:海轰
O(∩_∩)O哈哈~