📄 studentinfo.cpp
字号:
// 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 + -