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

📄 teacherinfo.cpp

📁 教学管理系统实现了高校教务、教学和学生三大方面的自动化以及交互式管理
💻 CPP
字号:
// TeacherInfo.cpp : implementation file
//

#include "stdafx.h"
#include "EduAdministration.h"
#include "TeacherInfo.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTeacherInfo dialog


CTeacherInfo::CTeacherInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CTeacherInfo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTeacherInfo)
	m_code = _T("");
	m_contact = _T("");
	m_name = _T("");
	m_title = _T("");
	//}}AFX_DATA_INIT
}


void CTeacherInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTeacherInfo)
	DDX_Control(pDX, IDC_EDTTITLE, m_ctlTitle);
	DDX_Control(pDX, IDC_EDTNAME, m_ctlName);
	DDX_Control(pDX, IDC_EDTCONTACT, m_ctlContact);
	DDX_Control(pDX, IDC_EDTCODE, m_ctlCode);
	DDX_Control(pDX, IDC_LIST1, m_teaList);
	DDX_Control(pDX, IDC_BTNNEW, m_btnNew);
	DDX_Control(pDX, IDC_BTNEDIT, m_btnEdit);
	DDX_Control(pDX, IDC_BTNDELETE, m_btnDelete);
	DDX_Text(pDX, IDC_EDTCODE, m_code);
	DDX_Text(pDX, IDC_EDTCONTACT, m_contact);
	DDX_Text(pDX, IDC_EDTNAME, m_name);
	DDX_Text(pDX, IDC_EDTTITLE, m_title);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTeacherInfo, CDialog)
	//{{AFX_MSG_MAP(CTeacherInfo)
	ON_BN_CLICKED(IDC_BTNNEW, OnBtnnew)
	ON_BN_CLICKED(IDC_BTNEDIT, OnBtnedit)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_BTNDELETE, OnBtndelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTeacherInfo message handlers

BOOL CTeacherInfo::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_btnDelete.SetIcon(IDI_ICONDELETE);
	m_btnNew.SetIcon(IDI_ICONNEW);
	m_btnEdit.SetIcon(IDI_ICONEDIT);

	m_bAddMode = false;
	m_bEditMode = false;

	m_teaList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

	m_teaList.InsertColumn(0,"教师代码",LVCFMT_LEFT,100);
	m_teaList.InsertColumn(1,"教师姓名",LVCFMT_LEFT,100);
	m_teaList.InsertColumn(2,"职称",LVCFMT_LEFT,90);
	m_teaList.InsertColumn(3,"联系方式",LVCFMT_LEFT,100);

	setTeaList();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CTeacherInfo::OnBtnnew() 
{
	// TODO: Add your control notification handler code here
	if(!m_bAddMode)
	{
		setFieldReadWrite();
		setFieldNull();
		m_btnNew.SetIcon(IDI_ICONSAVE);
		m_btnEdit.EnableWindow(false);
		m_btnDelete.EnableWindow(false);
		m_bAddMode = true;
	}
	else
	{
		UpdateData();
		if(m_name == ""){
			AfxMessageBox("请输入教师姓名");
			m_ctlName.SetFocus();
			return;
		}
		if(m_code == ""){
			AfxMessageBox("请输入教师代码");
			m_ctlCode.SetFocus();
			return;
		}
		m_pTeachers = new CTeachers();
		if(!m_pTeachers->IsOpen())
			m_pTeachers->Open();
		m_pTeachers->m_strFilter.Format("teaID='%s'",m_code);
		m_pTeachers->Requery();
		if(!m_pTeachers->IsEOF()){
			AfxMessageBox("此代码已存在");
			m_pTeachers->Close();
			delete m_pTeachers;
			m_ctlCode.SetFocus();
			return;
		}
		m_pTeachers->AddNew();
		m_pTeachers->m_teaID = m_code;
		m_pTeachers->m_teaName = m_name;
		m_pTeachers->m_teaTitle = m_title;
		m_pTeachers->m_contact = m_contact;
		m_pTeachers->Update();
		m_pTeachers->Close();
		delete m_pTeachers;
		
		int i = m_teaList.GetItemCount();
		m_teaList.InsertItem(i,m_code);
		m_teaList.SetItemText(i,1,m_name);
		m_teaList.SetItemText(i,2,m_title);
		m_teaList.SetItemText(i,3,m_contact);

	//	AfxMessageBox("操作完成");
		setFieldReadOnly();
		m_btnDelete.EnableWindow(true);
		m_btnNew.SetIcon(IDI_ICONNEW);
		m_btnEdit.EnableWindow(true);
		m_bAddMode = false;
	}

	
}

void CTeacherInfo::setFieldNull()
{
	m_name = "";
	m_code = "";
	m_contact = "";
	m_title = "";

	UpdateData(false);
}

void CTeacherInfo::setFieldReadOnly()
{
	m_ctlCode.SetReadOnly(true);
	m_ctlContact.SetReadOnly(true);
	m_ctlName.SetReadOnly(true);
	m_ctlTitle.SetReadOnly(true);
}

void CTeacherInfo::setFieldReadWrite()
{
	m_ctlCode.SetReadOnly(false);
	m_ctlName.SetReadOnly(false);
	m_ctlTitle.SetReadOnly(false);
	m_ctlContact.SetReadOnly(false);
}

void CTeacherInfo::setTeaList()
{
	m_teaList.DeleteAllItems();
	m_pTeachers = new CTeachers();
	if(!m_pTeachers->IsOpen())
		m_pTeachers->Open();
	int i=0;
	while (!m_pTeachers->IsEOF())
	{
		m_teaList.InsertItem(i,m_pTeachers->m_teaID);
		m_teaList.SetItemText(i,1,m_pTeachers->m_teaName);
		m_teaList.SetItemText(i,2,m_pTeachers->m_teaTitle);
		m_teaList.SetItemText(i,3,m_pTeachers->m_contact);

		i++;
		m_pTeachers->MoveNext();
	}
	m_pTeachers->Close();
	delete m_pTeachers;
}

void CTeacherInfo::OnBtnedit() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	if(m_name==""||m_code=="")
		return;
	if(!m_bEditMode)
	{
		m_btnNew.EnableWindow(false);
		m_btnDelete.EnableWindow(false);
		m_btnEdit.SetIcon(IDI_ICONSAVE);
		setFieldReadWrite();
		m_ctlCode.SetReadOnly(true);
		m_bEditMode = true;
	}
	else
	{
		m_pTeachers = new CTeachers();
		if(!m_pTeachers->IsOpen())
			m_pTeachers->Open();
		m_pTeachers->m_strFilter.Format("teaID='%s'",m_code);
		m_pTeachers->Requery();
		if(m_pTeachers->IsEOF())
		{
			m_pTeachers->Close();
			delete m_pTeachers;
			setFieldReadOnly();
			setFieldNull();
			m_btnNew.EnableWindow(true);
			m_btnDelete.EnableWindow(true);
			m_bEditMode = false;
			m_btnEdit.SetIcon(IDI_ICONEDIT);
			return;
		}
		m_pTeachers->Edit();
		m_pTeachers->m_teaName = m_name;
		m_pTeachers->m_teaTitle = m_title;
		m_pTeachers->m_contact = m_contact;
		m_pTeachers->Update();
		m_pTeachers->Close();
		delete m_pTeachers;
		setFieldReadOnly();
		m_btnNew.EnableWindow(true);
		m_btnDelete.EnableWindow(true);
		m_bEditMode = false;
		m_btnEdit.SetIcon(IDI_ICONEDIT);

		setTeaList();
	}
}

void CTeacherInfo::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here

	if(m_bAddMode)
	{
		if(AfxMessageBox("取消新增?",MB_YESNO)==IDYES)
		{
			setFieldReadOnly();
			setFieldNull();
			m_btnDelete.EnableWindow(true);
			m_btnNew.SetIcon(IDI_ICONNEW);
			m_btnEdit.EnableWindow(true);
			m_bAddMode = false;
		}
		else
			return;
	}
	if(m_bEditMode)
	{
		if(AfxMessageBox("取消修改?",MB_YESNO)==IDYES)
		{
			setFieldReadOnly();
			setFieldNull();
			m_btnNew.EnableWindow(true);
			m_btnDelete.EnableWindow(true);
			m_bEditMode = false;
			m_btnEdit.SetIcon(IDI_ICONEDIT);
		}
		else
			return;
	}

	char s[20];
	m_teaList.GetItemText(m_teaList.GetSelectionMark(),0,s,19);
	if(s=="")
		return;
	m_pTeachers = new CTeachers();
	if(!m_pTeachers->IsOpen())
		m_pTeachers->Open();
	m_pTeachers->m_strFilter.Format("teaID='%s'",s);
	m_pTeachers->Requery();
	if(m_pTeachers->IsEOF()){
		m_pTeachers->Close();
		delete m_pTeachers;
		return;
	}
	m_name = m_pTeachers->m_teaName;
	m_code = m_pTeachers->m_teaID;
	m_title = m_pTeachers->m_teaTitle;
	m_contact = m_pTeachers->m_contact;
	UpdateData(false);
	m_pTeachers->Close();
	delete m_pTeachers;

	*pResult = 0;
}

void CTeacherInfo::OnBtndelete() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	if(m_code=="")
		return;
	m_pTeachers = new CTeachers();
	if(!m_pTeachers->IsOpen())
		m_pTeachers->Open();
	m_pTeachers->m_strFilter.Format("teaID='%s'",m_code);
	m_pTeachers->Requery();
	if(m_pTeachers->IsEOF()){
		m_pTeachers->Close();
		delete m_pTeachers;
		return;
	}
	m_pTeachers->Delete();
	m_pTeachers->Close();
	delete m_pTeachers;
	setFieldNull();
	setTeaList();
	
}

⌨️ 快捷键说明

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