⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clsinput.cpp

📁 利用MFC,实现投票系统
💻 CPP
字号:
// clsInput.cpp : implementation file
//

#include "stdafx.h"
#include "ballot.h"
#include "clsInput.h"
#include "string.h"
#include "clsBallot.h"
#include "clsBallot.h"
#include "ctype.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// clsInput dialog

clsInput::clsInput(CWnd* pParent /*=NULL*/)
	: CDialog(clsInput::IDD, pParent)
{
	//{{AFX_DATA_INIT(clsInput)
	m_name = _T("");
	m_enounce = _T("");
	m_sysnopsis = _T("");
	m_num = _T("");
	//}}AFX_DATA_INIT
}


void clsInput::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(clsInput)
	DDX_Control(pDX, IDC_NUM, m_EditNum);
	DDX_Text(pDX, IDC_NAME, m_name);
	DDX_Text(pDX, IDC_ENOUNCE, m_enounce);
	DDX_Text(pDX, IDC_SYNOPSIS, m_sysnopsis);
	DDX_Text(pDX, IDC_NUM, m_num);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(clsInput, CDialog)
	//{{AFX_MSG_MAP(clsInput)
	ON_BN_CLICKED(IDOK, OnAdd)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// clsInput message handlers

int clsInput::intValidate(CString strParams,CString vParams)
{
	CStdioFile readFile;
	CStringArray aryInput;
	CStringArray aryTemp;
	clsBallot ballot;
	int re=0;
    if(readFile.Open("candidate.dat",CStdioFile::modeRead | CStdioFile::typeText)!=TRUE)//如果文件不存在则
	{
		return 0;
	}
	else//进行输入认证
	{
	  aryInput.RemoveAll();
      CString strRead;
	  while(readFile.ReadString(strRead))
	  {
		  if(strlen(strRead)!=0)
		  {
			  aryInput.Add(strRead);
		  }
	  }

	  if(strParams=="num")
	  {
		  re= 0;
		  for(int a=0;a<aryInput.GetSize();a++)
		  {
			  aryTemp.RemoveAll();
			  ballot.decodeCString((CString)aryInput[a],aryTemp);
			  
			  if(aryTemp[0]==vParams)
			  {
				  re= -1;
				  readFile.Close();
				  break;
			  }
		  }
	  }
	  else if(strParams=="name")
	  {
		  re= 0;
		  for(int a=0;a<aryInput.GetSize();a++)
		  {
			  aryTemp.RemoveAll();
			  ballot.decodeCString((CString)aryInput[a],aryTemp);
			  
			  if(aryTemp[1]==vParams)
			  {
				  re=-1;
				  readFile.Close();
				  break;
			}
		  }
	  }
	}
	return re;
}

void clsInput::OnAdd() 
{
    CFile file; 
	CString addString;
	UpdateData(true);
	if(strlen(m_name)==0)
	{
		MessageBox("候选人的姓名不能为空","电子投票系统",MB_OK); 
	}
    else if(strlen(m_num)==0)
	{
		MessageBox("候选人的编号不能为空","电子投票系统",MB_OK); 
	}
	else
	{
		if(intValidate("num",m_num)==-1)
		{
	        m_num=_T("");
			UpdateData(false);
		    MessageBox("候选人的编号输入重复","电子投票系统",MB_OK);
			m_EditNum.SetFocus();
		}
		else if(intValidate("name",m_name)==-1)
		{
			m_name=_T("");
			UpdateData(false);
			MessageBox("候选人的姓名输入重复","电子投票系统",MB_OK);
			m_EditNum.SetFocus();
		}
		else
		{
			//number.Format("%d", m_num); 
			file.Open("candidate.dat",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);
			file.SeekToEnd();
			addString=m_num+","+m_name+","+m_sysnopsis+","+m_enounce+"\r\n";
			file.Write(addString,strlen(addString));
			file.Close();
			m_num=_T("");
			m_name=_T("");
			m_sysnopsis=_T("");
			m_enounce=_T("");
			UpdateData(false);
			MessageBox("候选人信息已经增加完成","电子投票系统",MB_OK);
		    m_EditNum.SetFocus();
		}
	}	
}

void clsInput::OnCancel() 
{
	clsBallot show ;
	CDialog::OnCancel();
	show.DoModal();
}



BOOL clsInput::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_EditNum.SetFocus();
	return FALSE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -