mfc登陆窗口,要求使用账号和密码登陆。有一文本文件存储有多个用户的个人信息,一个用户的信息占一行,包括姓名,账号,密码,身份证号,余额。文本中任意一个用户可以输入自己的账号和密码登陆。登陆成功后进入另一个窗口,该用户能在此窗口通过点击查询按钮,通过登录窗口已经输入过的账号和密码在文本文件中匹配到属于该用户的那一行用户信息,查看自己的相关个人信息并显示出来。具体代码
时间: 2024-02-29 20:55:11 浏览: 20
以下是一个简单的 MFC 登录窗口程序,其中使用了文本文件存储用户信息:
```cpp
// LoginDlg.h
#pragma once
class CLoginDlg : public CDialogEx
{
public:
CLoginDlg(CWnd* pParent = nullptr);
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_LOGIN_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
private:
CString m_strUsername;
CString m_strPassword;
public:
afx_msg void OnBnClickedOk(); // 点击“确定”按钮
};
// LoginDlg.cpp
#include "stdafx.h"
#include "LoginDlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CLoginDlg::CLoginDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_LOGIN_DIALOG, pParent)
, m_strUsername(_T(""))
, m_strPassword(_T(""))
{
}
void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_USERNAME_EDIT, m_strUsername);
DDX_Text(pDX, IDC_PASSWORD_EDIT, m_strPassword);
}
BEGIN_MESSAGE_MAP(CLoginDlg, CDialogEx)
ON_BN_CLICKED(IDOK, &CLoginDlg::OnBnClickedOk)
END_MESSAGE_MAP()
void CLoginDlg::OnBnClickedOk()
{
UpdateData(TRUE);
// 读取用户信息文件
CStdioFile file;
if (file.Open(_T("users.txt"), CFile::modeRead))
{
CString strLine;
while (file.ReadString(strLine))
{
CString strName, strUsername, strPassword, strIDCard, strBalance;
int nIndex = 0;
// 解析一行用户信息
while (nIndex < strLine.GetLength())
{
CString strField;
int nPos = strLine.Find(',', nIndex);
if (nPos == -1)
nPos = strLine.GetLength();
strField = strLine.Mid(nIndex, nPos - nIndex);
nIndex = nPos + 1;
switch (nIndex)
{
case 1:
strName = strField;
break;
case 2:
strUsername = strField;
break;
case 3:
strPassword = strField;
break;
case 4:
strIDCard = strField;
break;
case 5:
strBalance = strField;
break;
}
}
// 检查用户名和密码是否匹配
if (strUsername == m_strUsername && strPassword == m_strPassword)
{
// 打开个人信息窗口
MessageBox(_T("登录成功!"));
// TODO: 显示个人信息
return;
}
}
MessageBox(_T("用户名或密码不正确!"));
}
else
{
MessageBox(_T("用户信息文件不存在!"));
}
}
```
在这个示例中,我们在登录窗口中读取文本文件 `users.txt`,并逐行解析用户信息,然后检查输入的用户名和密码是否与文件中的某个用户信息匹配。如果匹配,则弹出消息框提示登录成功,并打开个人信息窗口,否则弹出错误消息框。在个人信息窗口中,您可以通过点击“查询”按钮来查看自己的个人信息。