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

📄 studentinfo.cpp

📁 &#61557 职责描述:
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	              // EXCEPTION: OCX Property Pages should return FALSE
}



CStudentStudyInfo::CStudentStudyInfo()
{
	m_strName = _T("");
	m_strID = _T("");
	m_nID = -1;
}

void CStudentStudyInfo::SetCString(CString _strID, CString _strName)
{
	m_strID =  _strID;
	m_strName = _strName;
	ChangeSting2ID();
}

void CStudentStudyInfo::ChangeSting2ID()
{	
	m_nID = atoi(m_strID);
}

CString CStudentStudyInfo::GetNameInfo()
{
	return m_strName;
}

CString CStudentStudyInfo::GetIDInfo()
{
	return m_strID;
}

int CStudentStudyInfo::GetIDValue()
{
	return m_nID;
}


void CClassInfoStringAry::Serialize(CArchive& archive)
{
	CObject::Serialize(archive);
	if (archive.IsStoring())
	{
		for (int i = 0; i < GetSize(); i++)
		{
			archive << GetAt(i);
		}
	}
	else 
	{
		for (int i = 0; i < GetSize(); i++)
		{
			archive >> GetAt(i);
		}
	}
}

const CClassInfoStringAry& CClassInfoStringAry::operator =(const CClassInfoStringAry &_copybject)
{
	int nCurNum;
	nCurNum = _copybject.GetSize();
	this->SetSize(nCurNum);
	if(this != &_copybject)
	{
		for (int i = 0; i <nCurNum; i++)
		{
			SetAt(i, _copybject.GetAt(i));
		}
	}
	return *this;
}

CClassInfoStringAry::CClassInfoStringAry(CClassInfoStringAry & _culObject)
{
	int nCurNum;
	nCurNum = _culObject.GetSize();
	this->SetSize(nCurNum);
 
	for (int i = 0; i < nCurNum; i++)
	{
		SetAt(i, _culObject.GetAt(i));
	}
}

CClassInfoStringAry::CClassInfoStringAry()
{
	
}


///////////////////////////////////////

CString CStuInfo::GetSpecialityNum(CString _strSpecialityName)
{
	CString strRet = _strSpecialityName;
	CStudentStudyInfo* pCurSpeciality = NULL;
	pCurSpeciality = m_StudySpecialityAry.GetData();
	for (int i = 0; i < m_StudySpecialityAry.GetSize(); i++)
	{
		if (0 == pCurSpeciality[i].GetNameInfo().Compare(_strSpecialityName))
		{
			strRet = pCurSpeciality[i].GetIDInfo();
		}
	}
	return strRet;
}

CString CStuInfo::GetClassNum(CString _strClassName)
{
	CString strRet = _strClassName;
	CString* pCurClassName = NULL;
	CString* pCurClassID = NULL;
	
	pCurClassName = m_strClassName.GetData();
	pCurClassID = m_strClassID.GetData();
	for (int i = 0; i < m_strClassName.GetSize(); i++)
	{
		if (0 == pCurClassName[i].Compare(_strClassName))
		{
			strRet = pCurClassID[i];
		}
	}

	return strRet;
}

CString CStuInfo::GetGradeNum(CString _strGradeName)
{
	CString strRet = _strGradeName;
	CStudentStudyInfo* pCurCrade = NULL;
	pCurCrade = m_StudyGradeAry.GetData();
	for (int i = 0; i < m_StudyGradeAry.GetSize(); i++)
	{
		if (0 == pCurCrade[i].GetNameInfo().Compare(_strGradeName))
		{
			strRet = pCurCrade[i].GetIDInfo();
		}
	}

	return strRet;

}

void CStuInfo::FillCollegeAry()
{
	//该部分用来将所有的学院的信息编成一个数组,但是现在暂时不需要
}

void CStuInfo::FillGradeAry()
{
	CString strSQL;
	CArray <class CStudentStudyInfo,class CStudentStudyInfo>* pCurStudyInfoAry;

	strSQL.LoadString(IDS_SQL_GETALLSPECIALTY);
	pCurStudyInfoAry = &m_StudySpecialityAry;

	SearchDB4Info(strSQL, pCurStudyInfoAry);
}

void CStuInfo::FillSpecialityAry()
{
	CString strSQL;
	strSQL.LoadString(IDS_SQL_GETALLGRADE);
	CArray <class CStudentStudyInfo,class CStudentStudyInfo>* pCurStudyInfoAry;

	pCurStudyInfoAry = &m_StudyGradeAry;
	SearchDB4Info(strSQL, pCurStudyInfoAry);

}

void CStuInfo::SearchDB4Info(CString _strSQL, CArray <CStudentStudyInfo, CStudentStudyInfo>* _pCurStudyInfoAry)
{
	CString strID;
	CString strName;
	CStudentStudyInfo NewInfo;
	ADOConn adoCur;
	adoCur.InitialDB();
	_RecordsetPtr CurRecordset;
	_variant_t nstrIDIndex = (long)0;
	_variant_t nstrNameIndex = (long)1;
	_variant_t var;
	CurRecordset = adoCur.GetRecordSet(LPCTSTR(_strSQL));
	while (0 == CurRecordset->adoEOF)
	{
		var = CurRecordset->GetCollect(nstrIDIndex);
		strID = (LPCTSTR)(_bstr_t )var;
		var = CurRecordset->GetCollect(nstrNameIndex);
		strName = (LPCTSTR)(_bstr_t )var;
		NewInfo.SetCString(strID, strName);
		_pCurStudyInfoAry->Add(NewInfo);
		CurRecordset->MoveNext();
	}
	adoCur.ClosedDB();	
}

void CStuInfo::GetAllDBInfo()
{
	FillSpecialityAry();
	FillCollegeAry();
	FillGradeAry();
	CoustructClassHasMap();
}

void CStuInfo::CoustructClassHasMap()
{
	CString strClassID;
	CString strClassName;
	CString strGradeID;
	CString strSpecialityID;
	CString strSQL;
	CString strHashMapKey;
	strSQL.LoadString(IDS_SQL_GETCLASSINFO);

	ADOConn adoCur;
	adoCur.InitialDB();
	_RecordsetPtr CurRecordset;
	_variant_t nstrClassIDIndex = (long)0;
	_variant_t nstrClassNameIndex = (long)1;
	_variant_t nstrSpecialityIDIndex = (long)2;
	_variant_t nstrGradeIDIndex = (long)3;
	_variant_t var;

	CurRecordset = adoCur.GetRecordSet(LPCTSTR(strSQL));
//	m_ClassInfoMap.InitHashTable(10);
	while (0 == CurRecordset->adoEOF)
	{
		CClassInfoStringAry strCurClassAry;
		var = CurRecordset->GetCollect(nstrClassIDIndex);
		strClassID = (LPCTSTR)(_bstr_t )var;
		m_strClassID.Add(strClassID);

		var = CurRecordset->GetCollect(nstrClassNameIndex);
		strClassName = (LPCTSTR)(_bstr_t )var;
		m_strClassName.Add(strClassName);

		var = CurRecordset->GetCollect(nstrSpecialityIDIndex);
		strSpecialityID = (LPCTSTR)(_bstr_t )var;

		var = CurRecordset->GetCollect(nstrGradeIDIndex);
		strGradeID = (LPCTSTR)(_bstr_t )var;

		strHashMapKey = strSpecialityID + strGradeID;
		
		m_ClassInfoMap.Lookup(strHashMapKey, strCurClassAry);		
		strCurClassAry.Add(strClassName);
		m_ClassInfoMap.SetAt(strHashMapKey, strCurClassAry);
		CurRecordset->MoveNext();
	}
	adoCur.ClosedDB();	
}

void CStuInfo::GetClassMapInfo(CString _strKey, CClassInfoStringAry& _CurStuInfo)
{
	m_ClassInfoMap.Lookup(_strKey, _CurStuInfo);	
}

CStudentStudyInfo* CStuInfo::GetSpecialityInfos()
{
	return m_StudySpecialityAry.GetData();
}

CStudentStudyInfo* CStuInfo::GetGradeInfos()
{
	return m_StudyGradeAry.GetData();
}

int CStuInfo::GetGradeCounts()
{
	int nRet = -1;
	nRet = m_StudyGradeAry.GetSize();

	return nRet;
}

int CStuInfo::GetSpecialityCounts()
{
	int nRet = -1;
	nRet = m_StudySpecialityAry.GetSize();

	return nRet;
}

CString CStuInfo::GetNum(CString _strName)
{
	CString strRet = _strName;
	CStudentStudyInfo* pCUrStuInfo = NULL;
	CString* pCurClassID = NULL;
	pCUrStuInfo = m_StudyGradeAry.GetData();
	for (int i = 0; i < m_StudyGradeAry.GetSize(); i++)
	{
		if (_strName == pCUrStuInfo[i].GetIDInfo())
		{
			strRet = pCUrStuInfo[i].GetNameInfo();
		}
	}

	pCUrStuInfo = m_StudySpecialityAry.GetData();
	for (int j = 0; j < m_StudySpecialityAry.GetSize(); j++)
	{
		if (_strName == pCUrStuInfo[j].GetIDInfo())
		{
			strRet = pCUrStuInfo[j].GetNameInfo();
		}

	}

	pCurClassID = m_strClassID.GetData();
	for (int k = 0; k < m_strClassID.GetSize(); k++)
	{
		if (_strName == pCurClassID[k])
		{
			strRet = m_strClassName.GetAt(k);
		}
	}

	return strRet;
}

void CStudentInfoDlg::OnDropdownComboBox() 
{
	// TODO: Add your control notification handler code here

	m_ctrlClassName.SetCurSel(-1); // 清空下拉菜单
}

BOOL CStudentInfoDlg::IsComBoxbeFilled()
{
	BOOL bRet = TRUE;
	if (TRUE == m_strClassNum.IsEmpty())
	{
		bRet = FALSE;
	}
	if (TRUE == m_strSpecialtyNum.IsEmpty())
	{
		bRet = FALSE;
	}
	if (TRUE == m_strGradeNum.IsEmpty())
	{
		bRet = FALSE;
	}
	return bRet;
}

⌨️ 快捷键说明

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