}
6)做一个查询学生信息窗口类CQueryStudentDlg类:
代码:// QueryStudentDlg.cpp : implementation file //
#include \#include \#include \#include \#ifdef _DEBUG
#define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////// // CQueryStudentDlg dialog
CQueryStudentDlg::CQueryStudentDlg(CWnd* pParent /*=NULL*/) { }
//{{AFX_DATA_INIT(CQueryStudentDlg) m_QueryText = _T(\//}}AFX_DATA_INIT
: CDialog(CQueryStudentDlg::IDD, pParent)
26
void CQueryStudentDlg::DoDataExchange(CDataExchange* pDX) { }
BEGIN_MESSAGE_MAP(CQueryStudentDlg, CDialog)
//{{AFX_MSG_MAP(CQueryStudentDlg)
ON_COMMAND(ID_MANAGE_QUERY, OnManageQuery) ON_BN_CLICKED(IDC_BUTTON_Query, OnBUTTONQuery) //}}AFX_MSG_MAP
CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CQueryStudentDlg)
DDX_Control(pDX, IDC_LIST_Query, m_listQuery); DDX_Control(pDX, IDC_COMBO_QueryType, m_QueryType); DDX_Text(pDX, IDC_EDIT_QueryText, m_QueryText); //}}AFX_DATA_MAP
END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////// // CQueryStudentDlg message handlers
void CQueryStudentDlg::OnManageQuery() { }
BOOL CQueryStudentDlg::OnInitDialog()
// TODO: Add your command handler code here CQueryStudentDlg dlgQuery; dlgQuery.DoModal();
27
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here m_listQuery.InsertColumn(0,\学号\m_listQuery.InsertColumn(1,\姓名\m_listQuery.InsertColumn(2,\性别\m_listQuery.InsertColumn(3,\年龄\m_listQuery.InsertColumn(4,\籍贯\m_listQuery.InsertColumn(5,\联系电话\m_listQuery.InsertColumn(6,\家庭地址\m_listQuery.InsertColumn(7,\m_listQuery.InsertColumn(8,\电子邮箱\
m_listQuery.SetColumnWidth(0,80); m_listQuery.SetColumnWidth(1,80); m_listQuery.SetColumnWidth(2,60); m_listQuery.SetColumnWidth(3,60); m_listQuery.SetColumnWidth(4,100); m_listQuery.SetColumnWidth(5,100); m_listQuery.SetColumnWidth(6,100); m_listQuery.SetColumnWidth(7,100); m_listQuery.SetColumnWidth(8,100);
m_listQuery.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINE
S);
CStudentDoc doc;
m_v=doc.GetStudentList();
return TRUE; // return TRUE unless you set the focus to a control
28
}
// EXCEPTION: OCX Property Pages should return FALSE
void CQueryStudentDlg::OnBUTTONQuery() {
// TODO: Add your control notification handler code here CString strQueryType; UpdateData(true);
m_QueryType.GetWindowText(strQueryType);
int vSize=(int) m_v.size(); int i=0;
if (m_listQuery.GetItemCount()!=0) { }
int itemCount=0;
if (strQueryType==\学号\{
for (i=0;i if (m_v[i]->GetStuNo()==m_QueryText) { CString strAge; strAge.Format(\ m_listQuery.InsertItem(itemCount,m_v[i]->GetStuNo()); m_listQuery.DeleteAllItems(); m_listQuery.SetItemText(itemCount,1,m_v[i]->GetStuName()); m_listQuery.SetItemText(itemCount,2,m_v[i]->GetSex()); 29 m_listQuery.SetItemText(itemCount,3,strAge); m_listQuery.SetItemText(itemCount,4,m_v[i]->GetNative()); m_listQuery.SetItemText(itemCount,5,m_v[i]->GetHomeAddress()); m_listQuery.SetItemText(itemCount,6,m_v[i]->GetTelephone()); m_listQuery.SetItemText(itemCount,7,m_v[i]->GetQQ()); m_listQuery.SetItemText(itemCount,8,m_v[i]->GetEmail()); } else if (strQueryType==\姓名\{ } } itemCount++; //自己添加 } else if (strQueryType==\性别\{ } else if (strQueryType==\年龄\{ } else if (strQueryType==\籍贯\{ //自己添加 //自己添加 //自己添加 30 } } 4.设计结果及体会 通过本次课程设计,使我对c++面向对象程序设计和MFC有了更深层次的认识和理解,懂得了灵活用于所学的知识解决实际问题。在计算机飞速发展的今天,懂得一门计算机语言是非常有必要的。 C++的课程设计培养了我们独立分析问题、解决问题、繁阅资料及自学能力。通过此次课程设计,让我明白了巩固专业知识的重要性。 5.参考文献 教材: 谭浩强编著. C++面向对象程序设计.北京:清华大学出版社,2006年1月出版 参考书: [1]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006年出版 [2] 郑莉、傅仕星编,《C++面向对象程序设计》,清华大学出版社,2003年9月出版 [3] 李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版 [4] Davis Chapman,《学用Visual c++ 6.0》,清华大学出版社,2001年7月出版 [5] 郑莉、傅仕星编,C++语言面向对象程序设计习题与实验指导,清华大 学出版社,2003年9月出版。 31