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

📄 teacher_dlg.cpp

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

#include "stdafx.h"
#include "Course.h"
#include "Teacher_dlg.h"
#include "Manager.h"
#include "Modify_dlg.h"
#include "AddCourse_dlg.h"
#include "Id_dlg.h"
#include "CCourse.h"
#include "TeacherView_dlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTeacher_dlg dialog


CTeacher_dlg::CTeacher_dlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTeacher_dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTeacher_dlg)
	//}}AFX_DATA_INIT
}


void CTeacher_dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTeacher_dlg)
	DDX_Control(pDX, IDC_COURSE_LIST, m_course_list);
	//}}AFX_DATA_MAP
}


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

/////////////////////////////////////////////////////////////////////////////
// CTeacher_dlg message handlers

BOOL CTeacher_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
	
	// TODO: Add extra initialization here
	m_course_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	//为了美观起见,显示纪录时需要表格线
	
	LV_COLUMN h;

	CManager manager;
	h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
	h.fmt=LVCFMT_CENTER;
	h.cx=80;

	h.pszText="课程号";
	m_course_list.InsertColumn(0,&h);
	h.pszText="课程名";
	m_course_list.InsertColumn(1,&h);
	h.pszText="任课老师";
	m_course_list.InsertColumn(2,&h);
	h.pszText="已选人数";
	m_course_list.InsertColumn(3,&h);
	h.pszText="限选人数";
	m_course_list.InsertColumn(4,&h);
	UpdateData(true);
	View();
	UpdateData(false);
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CTeacher_dlg::View()
{
	
	CString s;
	CManager manager;
	_RecordsetPtr m_recordset;
	m_course_list.DeleteAllItems();
	_variant_t vnum,vname,vteacher,vrenum,vupnum;
	
	m_recordset=manager.CourseView();
	while(!m_recordset->adoEOF)
	{
		vnum=m_recordset->GetCollect("课程号");
		s=(LPCTSTR)_bstr_t(vnum);
		m_course_list.InsertItem(0,s);

		vname=m_recordset->GetCollect("课程名");
		s=(LPCTSTR)_bstr_t(vname);
		m_course_list.SetItemText(0,1,s);
				
		vteacher=m_recordset->GetCollect("任课老师");
		s=(LPCTSTR)_bstr_t(vteacher);
		m_course_list.SetItemText(0,2,s);

		vrenum=m_recordset->GetCollect("已选人数");
		s=(LPCTSTR)_bstr_t(vrenum);
		m_course_list.SetItemText(0,3,s);

		vupnum=m_recordset->GetCollect("限选人数");
		s=(LPCTSTR)_bstr_t(vupnum);
		m_course_list.SetItemText(0,4,s);

		m_recordset->MoveNext();
	}
}

void CTeacher_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,teacher.GetPassword())!=0)
				AfxMessageBox("原始密码输入错误!");
			else
			{
				teacher.SetPassword(dlg.m_password1);
				manager.Modify(teacher);
			}
		}
	}
}

void CTeacher_dlg::OnViewButton() 
{
	// TODO: Add your control notification handler code here
	CTeacherView_dlg dlg;
	dlg.teacher.SetNum(teacher.GetNum());
	dlg.teacher.SetName(teacher.GetName());
	if(dlg.DoModal()==IDOK)
	{}
}

void CTeacher_dlg::OnAddButton() 
{
	// TODO: Add your control notification handler code here
	CManager manager;
	CAddCourse_dlg dlg;
	UpdateData(true);
	if(dlg.DoModal()==IDOK)
	{
		if(strlen(dlg.m_name)==0||strlen(dlg.m_id)==0||!(dlg.m_upnum>=0))
		{
			AfxMessageBox("输入不能为空!");
				return;
		}
		
		dlg.course.Set(dlg.m_name,teacher.GetName(),dlg.m_id,dlg.m_upnum,0);
		manager.Add(dlg.course);
		View();
	}
	UpdateData(false);
}

void CTeacher_dlg::OnDeleteButton() 
{
	// TODO: Add your control notification handler code here
	CManager manager;
	CId_dlg dlg;
	CCCourse course;
	course.SetTeacher(teacher.GetName());
	UpdateData(true);
	if(dlg.DoModal()==IDOK)
	{
		course.SetId(dlg.m_id);
		if(!manager.ReSearch(course))
		{
			AfxMessageBox("您好!您未开设此课程!");
			return ;
		}
		manager.Delete(course);
		View();
	}
	UpdateData(false);
}

⌨️ 快捷键说明

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