www.gusucode.com > 大学排课系统,VC++实现,能实现根据教师及课程资源自动排 > 大学排课系统,VC++实现,能实现根据教师及课程资源自动排课/ARRANGE/AddTeachPlanDlg.cpp
// AddTeachPlanDlg.cpp : implementation file // #include "stdafx.h" #include "arrange.h" #include "AddTeachPlanDlg.h" #include "TeachPlanSet.h" #include "CourseClassSet.h" #include "TeacherSet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAddTeachPlanDlg dialog CAddTeachPlanDlg::CAddTeachPlanDlg(CWnd* pParent /*=NULL*/) : CDialog(CAddTeachPlanDlg::IDD, pParent) { //{{AFX_DATA_INIT(CAddTeachPlanDlg) m_ismedia = _T(""); m_classesid = _T(""); m_teacherid = _T(""); m_classesnum = 0; m_courseid = _T(""); m_coursename = _T(""); m_credit = 0.0f; m_week = _T(""); m_teachername = _T(""); //}}AFX_DATA_INIT } void CAddTeachPlanDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAddTeachPlanDlg) DDX_CBString(pDX, IDC_COMBO1, m_ismedia); DDX_Text(pDX, IDC_EDIT1, m_classesid); DDX_Text(pDX, IDC_EDIT10, m_teacherid); DDX_Text(pDX, IDC_EDIT2, m_classesnum); DDV_MinMaxInt(pDX, m_classesnum, 0, 8); DDX_Text(pDX, IDC_EDIT11, m_courseid); DDX_Text(pDX, IDC_EDIT9, m_coursename); DDX_Text(pDX, IDC_EDIT13, m_credit); DDX_Text(pDX, IDC_EDIT8, m_week); DDX_Text(pDX, IDC_EDIT12, m_teachername); DDX_Control(pDX,IDC_BUTTONRESET,m_reset); DDX_Control(pDX,IDOK,m_ok); DDX_Control(pDX,IDCANCEL,m_cancel); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAddTeachPlanDlg, CDialog) //{{AFX_MSG_MAP(CAddTeachPlanDlg) ON_BN_CLICKED(IDC_BUTTONRESET, OnButtonreset) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CAddTeachPlanDlg message handlers void CAddTeachPlanDlg::OnOK() { // TODO: Add extra validation here UpdateData(TRUE); CTeachPlanSet m_pTPSet(&m_database); CCourseClassSet m_pCCSet(&m_database); CTeacherSet m_pTSet(&m_database); bool flag = true; CString strSQL; strSQL.Format("select * from COURSE_CLASSES where classes_id = \'%s\'", m_classesid); m_pCCSet.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL); if (m_pCCSet.GetRecordCount()==0) { AfxMessageBox("对不起, 此教学班号不存在,请先增加!",MB_OK|MB_ICONEXCLAMATION); flag = false; return; } m_pCCSet.MoveFirst(); int classesnum = 0; while (!m_pCCSet.IsEOF()) { if(m_pCCSet.m_classes_id == m_classesid) classesnum++; m_pCCSet.MoveNext(); } if(m_classesnum != classesnum) { CString str; str.Format("此教学班号的班级数应为 %d.请重新输入!",classesnum); AfxMessageBox(str,MB_OK|MB_ICONEXCLAMATION); flag = false; return ; } strSQL.Format("select * from TEACHERS where teacher_id = \'%s\'", m_teacherid); m_pTSet.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL); if (m_pTSet.GetRecordCount()==0) { AfxMessageBox("无此教师, 请先添加!",MB_OK|MB_ICONEXCLAMATION); flag = false; return ; } if(flag) { m_pTPSet.Open(); CString sMedia; int iMedia; GetDlgItemText(IDC_COMBO1, sMedia); if(sMedia == "是") iMedia = 1; else iMedia = 0; if(m_classesid == "" || m_classesnum ==0 || m_teacherid == "" || m_teachername == "" || m_courseid =="" || m_coursename =="" || m_credit == 0 || sMedia=="" || m_week =="") AfxMessageBox("The items cann't be empty!",MB_OK|MB_ICONEXCLAMATION); else { strSQL.Format("insert into TEACHPLAN (classes_id, classes_num, teacher_id, \ teacher_name, course_id, course_name,credit, medium, course_week) values \ (\'%s\',%d,\'%s\',\'%s\',\'%s\',\'%s\',%f, %d,\'%s\')",m_classesid,m_classesnum, m_teacherid, m_teachername, m_courseid, m_coursename, m_credit, iMedia, m_week); m_database.ExecuteSQL(strSQL); } OnButtonreset(); } //CDialog::OnOK(); } void CAddTeachPlanDlg::OnButtonreset() { // TODO: Add your control notification handler code here m_classesid.Empty(); m_classesnum = 0; m_courseid.Empty(); m_coursename.Empty(); m_credit = 0; m_ismedia.Empty(); m_teacherid.Empty(); m_teachername.Empty(); m_week.Empty(); UpdateData(FALSE); } BOOL CAddTeachPlanDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_ok.LoadBitmaps(IDB_BUTTON,5, 5, 5, 5, 4 ); m_reset.LoadBitmaps(IDB_BUTTON,5, 5, 5, 5, 4 ); m_cancel.LoadBitmaps(IDB_BUTTON,5, 5, 5, 5, 4 ); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }