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

📄 computer.cpp

📁 在本实例中,实现了单体模式,工厂模式,门面模式以及STL编程
💻 CPP
字号:
// Computer.cpp : 实现文件
//

#include "stdafx.h"
#include "choucha.h"
#include "Computer.h"
#include "afxwin.h"
#include <algorithm>
#include"string"
#include"iostream"
using namespace std;
// CComputer 对话框

IMPLEMENT_DYNAMIC(CComputer, CPropertyPage)
CComputer::CComputer()
	: CPropertyPage(CComputer::IDD)
{   
	del_enable=false;
	add_times=0;
}

CComputer::~CComputer()
{
}

void CComputer::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_BUTTON2, del);
	DDX_Control(pDX, IDC_BUTTON1, add);
	DDX_Control(pDX, IDC_BUTTON3, test);
	DDX_Control(pDX, IDC_BUTTON4, present[0]);
	DDX_Control(pDX, IDC_BUTTON5, present[1]);
	DDX_Control(pDX, IDC_BUTTON6, present[2]);
	DDX_Control(pDX, IDC_BUTTON7, present[3]);
	DDX_Control(pDX, IDC_LIST1, student);
	DDX_Control(pDX, IDC_LIST2, test_stu);
}


BEGIN_MESSAGE_MAP(CComputer, CPropertyPage)
	ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
	ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedButton3)
END_MESSAGE_MAP()


// CComputer 消息处理程序

void CComputer::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	theApp.vst=theApp.vstudent.begin();
	switch(student.GetCurSel())
	{
	case 0: 
		vtest_stu.push_back(theApp.vstudent[0]);
		test_stu.AddString(theApp.vstudent[0]);
		student.DeleteString(0);
		theApp.vstudent.erase(theApp.vst);
		break;
	case 1:
		vtest_stu.push_back(theApp.vstudent[1]);
		test_stu.AddString(theApp.vstudent[1]);
        student.DeleteString(1);
		theApp.vstudent.erase(theApp.vst+1);
		break;
	case 2: 
		vtest_stu.push_back(theApp.vstudent[2]);
		test_stu.AddString(theApp.vstudent[2]);
        student.DeleteString(2);
		theApp.vstudent.erase(theApp.vst+2);
		break;
	case 3:
		vtest_stu.push_back(theApp.vstudent[3]);
		test_stu.AddString(theApp.vstudent[3]);
        student.DeleteString(3);
		theApp.vstudent.erase(theApp.vst+3);
		break;
	case 4: 
		vtest_stu.push_back(theApp.vstudent[4]);
		test_stu.AddString(theApp.vstudent[4]);
        student.DeleteString(4);
		theApp.vstudent.erase(theApp.vst+4);
		break;
	case 5:
		vtest_stu.push_back(theApp.vstudent[5]);
		test_stu.AddString(theApp.vstudent[5]);
        student.DeleteString(5);
		theApp.vstudent.erase(theApp.vst+5);
		break;
	case 6: 
		vtest_stu.push_back(theApp.vstudent[6]);
		test_stu.AddString(theApp.vstudent[6]);
        student.DeleteString(6);
		theApp.vstudent.erase(theApp.vst+6);
		break;
	case 7:
		vtest_stu.push_back(theApp.vstudent[7]);
		test_stu.AddString(theApp.vstudent[7]);
        student.DeleteString(7);
		theApp.vstudent.erase(theApp.vst+7);
		break;
	case 8: 
		vtest_stu.push_back(theApp.vstudent[8]);
		test_stu.AddString(theApp.vstudent[8]);
        student.DeleteString(8);
		theApp.vstudent.erase(theApp.vst+8);
		break;
	default:
		break;
	}
	sort(theApp.vstudent.begin(),theApp.vstudent.end());
	sort(vtest_stu.begin(),vtest_stu.end());
    if(add_times>=3)
	{
		add.SetState(false);
		test.SetState(true);
	}
}

void CComputer::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	vt=vtest_stu.begin();
	if(vt!=0)
	{
	switch(test_stu.GetCurSel())
	{
	case 0: 
		theApp.vstudent.push_back(vtest_stu[0]);
		student.AddString(vtest_stu[0]);
		test_stu.DeleteString(0);
		vtest_stu.erase(vt);
		break;
	case 1:
		theApp.vstudent.push_back(vtest_stu[1]);
		student.AddString(vtest_stu[1]);
		test_stu.DeleteString(1);
		vtest_stu.erase(vt+1);
		break;
	case 2: 
		theApp.vstudent.push_back(vtest_stu[2]);
		student.AddString(vtest_stu[2]);
		test_stu.DeleteString(2);
		vtest_stu.erase(vt+2);
		break;
	case 3:
		theApp.vstudent.push_back(vtest_stu[3]);
		student.AddString(vtest_stu[3]);
		test_stu.DeleteString(3);
		vtest_stu.erase(vt+3);
		break;
	default:
		break;
	}
	sort(theApp.vstudent.begin(),theApp.vstudent.end());
	sort(vtest_stu.begin(),vtest_stu.end());
	}
}

void CComputer::OnBnClickedButton3()
{
	// TODO: 在此添加控件通知处理程序代码
	present[0].SetWindowText("1");
	present[1].SetWindowText("2");
	present[2].SetWindowText("3");
	present[3].SetWindowText("4");
	President->tongzhi(present,vtest_stu);
	/*while(test_stu.GetCount())
	{   
		//theApp.vstudent.push_back(vtest_stu[0]);
		test_stu.DeleteString(0);
		theApp.vstudent.push_back(vtest_stu[0]);
		student.AddString(vtest_stu[0]);
	}
	vtest_stu.clear();*/
	sort(theApp.vstudent.begin(),theApp.vstudent.end());
	sort(vtest_stu.begin(),vtest_stu.end());
}

BOOL CComputer::OnInitDialog()
{   
	CDialog::OnInitDialog();
	President=president::create();
	return true;
}

BOOL CComputer::OnSetActive()
{
	// TODO: 在此添加专用代码和/或调用基类
	while(student.GetCount())
		student.DeleteString(0);
	for(theApp.vst=theApp.vstudent.begin();theApp.vst<theApp.vstudent.end();theApp.vst++)
	{  
	    student.AddString(*theApp.vst);
	}

	return CPropertyPage::OnSetActive();
}

⌨️ 快捷键说明

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