mfc有一文本文件存储了用户的个人信息(姓名,账号,密码,身份证号,余额)用户输入想要存入或取出的金额,点击存款或取款按键,余额发生改变,并将改变后的余额替换掉原来文本中的余额数。C++具体代码
时间: 2023-12-08 18:03:56 浏览: 23
以下是一个简单的 MFC 程序,可以实现您所描述的功能:
首先,我们需要一个文本框控件用于用户输入金额,以及两个按钮控件用于触发存款和取款操作。假设文本框的 ID 是 IDC_AMOUNT,存款按钮的 ID 是 IDC_DEPOSIT,取款按钮的 ID 是 IDC_WITHDRAW。
接下来,我们需要读取文本文件中的用户信息,这可以通过以下代码实现:
```c++
// 打开文本文件
CStdioFile file(_T("userdata.txt"), CFile::modeRead);
CString name, account, password, id, balance;
while (file.ReadString(name) && file.ReadString(account) && file.ReadString(password) && file.ReadString(id) && file.ReadString(balance))
{
// TODO: 这里可以将用户信息存储到一个数据结构中,方便后续操作
}
file.Close();
```
接着,我们可以在存款按钮的 Click 事件处理函数中实现存款操作,代码如下:
```c++
void CMyDialog::OnDeposit()
{
// 获取用户输入的金额
CString amountStr;
GetDlgItemText(IDC_AMOUNT, amountStr);
// 将金额转换为 double 类型
double amount = _ttof(amountStr);
// TODO: 根据当前用户的账号查找用户信息,并更新余额
// 更新文本文件中的用户信息
CStdioFile file(_T("userdata.txt"), CFile::modeCreate | CFile::modeWrite);
// TODO: 这里需要将更新后的用户信息写入文件
file.Close();
}
```
取款操作的代码类似,只需要将存款改为取款即可。需要注意的是,如果用户的余额不足,需要给出相应的提示信息。
完整的代码可以参考下面的示例:
```c++
// MyDialog.h
#pragma once
class CMyDialog : public CDialogEx
{
public:
CMyDialog(CWnd* pParent = nullptr);
enum { IDD = IDD_MY_DIALOG };
protected:
virtual BOOL OnInitDialog();
virtual void DoDataExchange(CDataExchange* pDX);
afx_msg void OnDeposit();
afx_msg void OnWithdraw();
DECLARE_MESSAGE_MAP()
private:
// TODO: 这里可以定义一个数据结构来存储用户信息
};
// MyDialog.cpp
#include "stdafx.h"
#include "MyDialog.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CMyDialog::CMyDialog(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_MY_DIALOG, pParent)
{
}
void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx)
ON_BN_CLICKED(IDC_DEPOSIT, &CMyDialog::OnDeposit)
ON_BN_CLICKED(IDC_WITHDRAW, &CMyDialog::OnWithdraw)
END_MESSAGE_MAP()
BOOL CMyDialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 读取用户信息并显示在界面上
return TRUE;
}
void CMyDialog::OnDeposit()
{
// 获取用户输入的金额
CString amountStr;
GetDlgItemText(IDC_AMOUNT, amountStr);
// 将金额转换为 double 类型
double amount = _ttof(amountStr);
// TODO: 根据当前用户的账号查找用户信息,并更新余额
// 更新文本文件中的用户信息
CStdioFile file(_T("userdata.txt"), CFile::modeCreate | CFile::modeWrite);
// TODO: 这里需要将更新后的用户信息写入文件
file.Close();
}
void CMyDialog::OnWithdraw()
{
// 获取用户输入的金额
CString amountStr;
GetDlgItemText(IDC_AMOUNT, amountStr);
// 将金额转换为 double 类型
double amount = _ttof(amountStr);
// TODO: 根据当前用户的账号查找用户信息,并更新余额
// 更新文本文件中的用户信息
CStdioFile file(_T("userdata.txt"), CFile::modeCreate | CFile::modeWrite);
// TODO: 这里需要将更新后的用户信息写入文件
file.Close();
}
```