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

📄 scsearch.cpp

📁 学生选课系统
💻 CPP
字号:
// SCSearch.cpp : implementation file
//

#include "stdafx.h"
#include "SC.h"
#include "SCSearch.h"
#include "SC1.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSCSearch dialog


CSCSearch::CSCSearch(CWnd* pParent /*=NULL*/)
	: CDialog(CSCSearch::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSCSearch)
	m_strCcredit = _T("");
	m_strCname = _T("");
	m_strCno = _T("");
	m_strCpno = _T("");
	m_strSage = _T("");
	m_strSdept = _T("");
	m_strSname = _T("");
	m_strSno = _T("");
	m_strSCGrade = _T("");
	//}}AFX_DATA_INIT
}


void CSCSearch::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSCSearch)
	DDX_Text(pDX, IDC_CSEARCH_CREDIT, m_strCcredit);
	DDX_Text(pDX, IDC_CSEARCH_NAME, m_strCname);
	DDX_Text(pDX, IDC_CSEARCH_NO, m_strCno);
	DDX_Text(pDX, IDC_CSEARCH_PNO, m_strCpno);
	DDX_Text(pDX, IDC_SSEARCH_AGE, m_strSage);
	DDX_Text(pDX, IDC_SSEARCH_DEPT, m_strSdept);
	DDX_Text(pDX, IDC_SSEARCH_NAME, m_strSname);
	DDX_Text(pDX, IDC_SSEARCH_NO, m_strSno);
	DDX_Text(pDX, IDC_SCSEARCH_GRADE, m_strSCGrade);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSCSearch, CDialog)
	//{{AFX_MSG_MAP(CSCSearch)
	ON_BN_CLICKED(IDC_S_SEARCH, OnSSearch)
	ON_BN_CLICKED(IDC_S_RESET, OnSReset)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSCSearch message handlers

void CSCSearch::OnSSearch() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CComboBox *ssex=(CComboBox*)GetDlgItem(IDC_SSEARCH_SEX);
	CComboBox *sno2=(CComboBox*)GetDlgItem(IDC_SSEARCH_NO_2);
	CComboBox *sage2=(CComboBox*)GetDlgItem(IDC_SSEARCH_AGE_2);
	CComboBox *cno2=(CComboBox*)GetDlgItem(IDC_CSEARCH_NO_2);
	CComboBox *cpno2=(CComboBox*)GetDlgItem(IDC_CSEARCH_PNO_2);
	CComboBox *ccredit2=(CComboBox*)GetDlgItem(IDC_CSEARCH_CREDIT_2);
	CComboBox *scgrade2=(CComboBox*)GetDlgItem(IDC_SCSEARCH_GRADE_2);

	CString strSsex,strSno2,strSage2,strCno2,strCpno2,strCcredit2,strSCGrade2;
	ssex->GetLBText(ssex->GetCurSel(),strSsex);
	sno2->GetLBText(sno2->GetCurSel(),strSno2);
	sage2->GetLBText(sage2->GetCurSel(),strSage2);
	cno2->GetLBText(cno2->GetCurSel(),strCno2);
	cpno2->GetLBText(cpno2->GetCurSel(),strCpno2);
	ccredit2->GetLBText(ccredit2->GetCurSel(),strCcredit2);
	scgrade2->GetLBText(scgrade2->GetCurSel(),strSCGrade2);

	CString temp[3];
	CString table[2]={",Student",",Course"};

	if(m_strSno.IsEmpty()==1&&m_strSname.IsEmpty()==1&&m_strSage.IsEmpty()==1
		&&strSsex.IsEmpty()==1&&m_strSdept.IsEmpty()==1&&m_strCno.IsEmpty()==1
		&&m_strCname.IsEmpty()==1&&m_strCpno.IsEmpty()==1&&m_strCcredit.IsEmpty()==1
		&&m_strSCGrade.IsEmpty()==1) return;
	m_SQL="SELECT SC.Sno,SC.Cno,SC.Grade FROM SC";
	if(m_strSno.IsEmpty()!=1||m_strSname.IsEmpty()!=1||m_strSage.IsEmpty()!=1
		||strSsex.IsEmpty()!=1||m_strSdept.IsEmpty()!=1)
	{
		temp[0]="SC.Sno=Student.Sno AND ";
		int i=0;
		CString str[5];

		if(m_strSno.IsEmpty()==0)
		{
			str[i]="Student.Sno"+strSno2+m_strSno;
			i++;
		}
		if(m_strSname.IsEmpty()==0)
		{
			str[i]="Sname='"+m_strSname+"'";
			i++;
		}
		if(m_strSage.IsEmpty()==0)
		{
			str[i]="Sage"+strSage2+m_strSage;
			i++;
		}
		if(strSsex.IsEmpty()==0)
		{
			str[i]="Ssex='"+strSsex+"'";
			i++;
		}
		if(m_strSdept.IsEmpty()==0)
		{
			str[i]="Sdept='"+m_strSdept+"'";
			i++;
		}
		for(i=0;i<5;i++)
		{
			if(i==0)
				if(str[i].IsEmpty()==0) temp[0]+=str[i];
			if(i!=0) 
			{
				if(str[i].IsEmpty()==0)
				{
					temp[0]+=" AND ";
					temp[0]+=str[i];
				}
			}
		}
		m_SQL+=table[0];
	}
	
	if(m_strCno.IsEmpty()!=1||m_strCname.IsEmpty()!=1||m_strCpno.IsEmpty()!=1
		||m_strCcredit.IsEmpty()!=1)
	{
		temp[1]="SC.Cno=Course.Cno AND ";
		int i=0;
		CString str[4];

		if(m_strCno.IsEmpty()==0)
		{
			str[i]="Course.Cno"+strCno2+m_strCno;
			i++;
		}
		if(m_strCname.IsEmpty()==0)
		{
			str[i]="Cname='"+m_strCname+"'";
			i++;
		}
		if(m_strCpno.IsEmpty()==0)
		{
			str[i]="Cpno"+strCpno2+m_strCpno;
			i++;
		}
		if(m_strCcredit.IsEmpty()==0)
		{
			str[i]="Ccredit"+strCcredit2+m_strCcredit;
			i++;
		}
		for(i=0;i<4;i++)
		{
			if(i==0)
				if(str[i].IsEmpty()==0) temp[1]+=str[i];
			if(i!=0)
			{
				if(str[i].IsEmpty()==0) temp[1]+=" AND "+str[i];
			}
		}
		m_SQL+=table[1];
	}
	m_SQL+=" WHERE ";

	if(m_strSCGrade.IsEmpty()==0)
	{
		temp[2]+="Grade"+strSCGrade2+m_strSCGrade;
	}
	
	for(int i=0;i<3;i++)
	{
		if(i==0)
			if(temp[i].IsEmpty()==0) m_SQL+=temp[i];
		if(i!=0)
		{
			if(temp[i].IsEmpty()==0)
			{
				if(i==1)
				{
					if(temp[i-1].IsEmpty()==0) m_SQL+=" AND "+temp[i];
					else m_SQL+=temp[i];
				}
				if(i==2)
				{
					if(temp[i-1].IsEmpty()==0||temp[i-2].IsEmpty()==0) m_SQL+=" AND "+temp[i];
					else m_SQL+=temp[i];
				}
				
			}
		}

	}
	MessageBox(m_SQL);

	CSC *pMain=(CSC*)AfxGetApp()->GetMainWnd();
	pMain->m_strSQL=m_SQL;

	this->EndDialog(0);
}

void CSCSearch::OnSReset() 
{
	// TODO: Add your control notification handler code here
	CComboBox *ssex=(CComboBox*)GetDlgItem(IDC_SSEARCH_SEX);
	CComboBox *sno2=(CComboBox*)GetDlgItem(IDC_SSEARCH_NO_2);
	CComboBox *sage2=(CComboBox*)GetDlgItem(IDC_SSEARCH_AGE_2);
	CComboBox *cno2=(CComboBox*)GetDlgItem(IDC_CSEARCH_NO_2);
	CComboBox *cpno2=(CComboBox*)GetDlgItem(IDC_CSEARCH_PNO_2);
	CComboBox *ccredit2=(CComboBox*)GetDlgItem(IDC_CSEARCH_CREDIT_2);
	CComboBox *scgrade2=(CComboBox*)GetDlgItem(IDC_SCSEARCH_GRADE_2);

	ssex->SetCurSel(0);
	sno2->SetCurSel(0);
	sage2->SetCurSel(0);
	cno2->SetCurSel(0);
	cpno2->SetCurSel(0);
	ccredit2->SetCurSel(0);
	scgrade2->SetCurSel(0);

	CEdit *sname=(CEdit*)GetDlgItem(IDC_SSEARCH_NAME);
	CEdit *sno=(CEdit*)GetDlgItem(IDC_SSEARCH_NO);
	CEdit *sage=(CEdit*)GetDlgItem(IDC_SSEARCH_AGE);
	CEdit *sdept=(CEdit*)GetDlgItem(IDC_SSEARCH_DEPT);
	CEdit *cname=(CEdit*)GetDlgItem(IDC_CSEARCH_NAME);
	CEdit *cno=(CEdit*)GetDlgItem(IDC_CSEARCH_NO);
	CEdit *ccredit=(CEdit*)GetDlgItem(IDC_CSEARCH_CREDIT);
	CEdit *cpno=(CEdit*)GetDlgItem(IDC_CSEARCH_PNO);
	CEdit *scgrade=(CEdit*)GetDlgItem(IDC_SCSEARCH_GRADE);
	
	sname->SetWindowText("");
	sno->SetWindowText("");
	sage->SetWindowText("");
	sdept->SetWindowText("");
	cname->SetWindowText("");
	cno->SetWindowText("");
	ccredit->SetWindowText("");
	cpno->SetWindowText("");
	scgrade->SetWindowText("");
}

BOOL CSCSearch::OnInitDialog()
{
	CDialog::OnInitDialog();
	CComboBox *ssex=(CComboBox*)GetDlgItem(IDC_SSEARCH_SEX);
	CComboBox *sno2=(CComboBox*)GetDlgItem(IDC_SSEARCH_NO_2);
	CComboBox *sage2=(CComboBox*)GetDlgItem(IDC_SSEARCH_AGE_2);
	CComboBox *cno2=(CComboBox*)GetDlgItem(IDC_CSEARCH_NO_2);
	CComboBox *cpno2=(CComboBox*)GetDlgItem(IDC_CSEARCH_PNO_2);
	CComboBox *ccredit2=(CComboBox*)GetDlgItem(IDC_CSEARCH_CREDIT_2);
	CComboBox *scgrade2=(CComboBox*)GetDlgItem(IDC_SCSEARCH_GRADE_2);

	ssex->SetCurSel(0);
	sno2->SetCurSel(0);
	sage2->SetCurSel(0);
	cno2->SetCurSel(0);
	cpno2->SetCurSel(0);
	ccredit2->SetCurSel(0);
	scgrade2->SetCurSel(0);

	return TRUE;
}

⌨️ 快捷键说明

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