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

📄 administrator_dlg.cpp

📁 数据库编程
💻 CPP
字号:
// Administrator_dlg.cpp : implementation file
//

#include "stdafx.h"
#include "Course.h"
#include "Administrator_dlg.h"
#include "Manager.h"
#include "AddAdmini_dlg.h"
#include "AddTeacher_dlg.h"
#include "AddStudent_dlg.h"
#include "Id_dlg.h"
#include "Modify_dlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAdministrator_dlg dialog


CAdministrator_dlg::CAdministrator_dlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAdministrator_dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAdministrator_dlg)
	m_radio = 0;
	//}}AFX_DATA_INIT
}


void CAdministrator_dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAdministrator_dlg)
	DDX_Control(pDX, IDC_STUDENT_LIST, m_student_list);
	DDX_Control(pDX, IDC_TEACHER_LIST, m_teacher_list);
	DDX_Radio(pDX, IDC_ADMINI_RADIO, m_radio);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAdministrator_dlg, CDialog)
	//{{AFX_MSG_MAP(CAdministrator_dlg)
	ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
	ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton)
	ON_BN_CLICKED(IDC_MODIFY_BUTTON, OnModifyButton)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdministrator_dlg message handlers

BOOL CAdministrator_dlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	m_student_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_teacher_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	//为了美观起见,显示纪录时需要表格线
	LV_COLUMN h;
	
	h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
	h.fmt=LVCFMT_CENTER;
	h.cx=100;

	h.pszText="学号";
	m_student_list.InsertColumn(0,&h);
	h.pszText="姓名";
	m_student_list.InsertColumn(1,&h);
	h.pszText="班级";
	m_student_list.InsertColumn(2,&h);

	h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
	h.fmt=LVCFMT_CENTER;
	h.cx=150;

	h.pszText="教师号";
	m_teacher_list.InsertColumn(0,&h);
	h.pszText="教师姓名";
	m_teacher_list.InsertColumn(1,&h);

	View();
	// TODO: Add extra initialization here
	return TRUE;  // return TRUE  unless you set the focus to a control
}


void CAdministrator_dlg::View()
{
	_RecordsetPtr m_recordset;
	CManager manager;
	m_student_list.DeleteAllItems();
	m_teacher_list.DeleteAllItems();

	m_recordset=manager.StudentView();

	CString s;
	_variant_t vnum,vname,vclass;
	while(!m_recordset->adoEOF)
	{
		vnum=m_recordset->GetCollect("学号");
		s=(LPCTSTR)_bstr_t(vnum);
		m_student_list.InsertItem(0,s);

		vname=m_recordset->GetCollect("姓名");
		s=(LPCTSTR)_bstr_t(vname);
		m_student_list.SetItemText(0,1,s);
				
		vclass=m_recordset->GetCollect("班级");
		s=(LPCTSTR)_bstr_t(vclass);
		m_student_list.SetItemText(0,2,s);

		m_recordset->MoveNext();
	}
	m_recordset=manager.TeacherView();
	while(!m_recordset->adoEOF)
	{
		vnum=m_recordset->GetCollect("教师号");
		s=(LPCTSTR)_bstr_t(vnum);
		m_teacher_list.InsertItem(0,s);

		vname=m_recordset->GetCollect("教师姓名");
		s=(LPCTSTR)_bstr_t(vname);
		m_teacher_list.SetItemText(0,1,s);

		m_recordset->MoveNext();
	}
}

void CAdministrator_dlg::OnAddButton() 
{
	// TODO: Add your control notification handler code here
	CManager manager;
	CAddAdmini_dlg a_dlg;
	CAdministrator a;
	CAddTeacher_dlg t_dlg;
	CTeacher t;
	CAddStudent_dlg s_dlg;
	CStudent s;
	UpdateData(true);
	switch(m_radio)
	{
		case 0:
			if(a_dlg.DoModal()==IDOK){
				if(strlen(a_dlg.m_name)==0||strlen(a_dlg.m_id)==0
					||strlen(a_dlg.m_password)==0)
				{
					AfxMessageBox("输入不能为空!");
					return;
				}
				a.Set(a_dlg.m_name,a_dlg.m_id,a_dlg.m_password);
				manager.Add(a);
			}
			break;
	    case 1:
			if(t_dlg.DoModal()==IDOK){
				if(strlen(t_dlg.m_name)==0||strlen(t_dlg.m_id)==0
					||strlen(t_dlg.m_password)==0)
				{
					AfxMessageBox("输入不能为空!");
					return;
				}
				t.Set(t_dlg.m_name,t_dlg.m_id,t_dlg.m_password);
				manager.Add(t);
			}
			break;
		case 2:
			if(s_dlg.DoModal()==IDOK){
				if(strlen(s_dlg.m_name)==0||strlen(s_dlg.m_id)==0
					||strlen(s_dlg.m_password)==0||strlen(s_dlg.m_class)==0)
				{
					AfxMessageBox("输入不能为空!");
					return;
				}
				s.Set(s_dlg.m_name,s_dlg.m_id,s_dlg.m_password,s_dlg.m_class);
				manager.Add(s);
			}
			break;
		default:break;
	}
	View();
	UpdateData(false);
}

void CAdministrator_dlg::OnDeleteButton() 
{
	// TODO: Add your control notification handler code here
	CManager manager;
	CId_dlg id_dlg;
	CAdministrator a;
	CTeacher t;
	CStudent s;
	UpdateData(true);
	switch(m_radio)
	{
		case 0:
			if(id_dlg.DoModal()==IDOK){
				a.SetNum(id_dlg.m_id);
				if(!manager.ReSearch(a)){
					AfxMessageBox("该管理员ID不存在!");
					return ;
				}
				manager.Delete(a);
			}
			break;
	    case 1:
			if(id_dlg.DoModal()==IDOK){
				t.SetNum(id_dlg.m_id);
				if(!manager.ReSearch(t))
				{
					AfxMessageBox("该教师ID不存在!");
					return ;
				}
				manager.Delete(t);
			}
			break;
		case 2:
			if(id_dlg.DoModal()==IDOK){
				s.SetNum(id_dlg.m_id);
				if(!manager.ReSearch(s))
				{
					AfxMessageBox("该学生ID不存在!");
				}
				manager.Delete(s);
			}
			break;
		default:break;
	}
	View();
	UpdateData(false);
}

void CAdministrator_dlg::OnModifyButton() 
{
	// TODO: Add your control notification handler code here
	CManager manager;
	CModify_dlg dlg;
	if(dlg.DoModal()==IDOK)
	{
		if(strcmp(dlg.m_password2,dlg.m_password3)!=0)
			AfxMessageBox("重新确认密码错误,密码更改失败!");
		else 
		{
			if(strcmp(dlg.m_password1,administrator.GetPassword())!=0)
				AfxMessageBox("原始密码输入错误!");
			else
			{
				administrator.SetPassword(dlg.m_password2);
				manager.Modify(administrator);
			}
		}
	}
}

⌨️ 快捷键说明

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