郑林鸿:学生信息和成绩管理系统的设计与实现 }
RectBmp.top = RectView.top;
RectBmp.bottom = RectView.bottom - RectBmp.top;
}//加载视图到设备上下文中
pDC->StretchBlt(RectBmp.left, RectBmp.top, RectBmp.right,\\
RectBmp.bottom, &dcmem, 0, 0, bm.bmWidth, bm.bmHeight,\\ SRCCOPY);//删除设备上下文
dcmem.DeleteDC();
附录2——权限验证模块的实现MFC代码
void CUserDlg::OnOK()
{
UpdateData();
if(m_ctrUser.IsWindowEnabled()) { //增加新用户 } else
{//修改用户信息 }
if(m_strPass==\{ }
if(m_strPass!=m_strRePass) {
MessageBox(\两次输入地密码不一致,请重新输入密码!\m_ctrPass.SetFocus(); m_strPass = \m_strRePass = \
26
if(m_strUser==\{ }
MessageBox(\请填写用户名!\m_ctrUser.SetFocus(); return;
if(m_strUser==\{
MessageBox(\请选择一个用户!\return;}
MessageBox(\密码不能为空,请输入密码!\m_ctrPass.SetFocus(); return;
郑林鸿:学生信息和成绩管理系统的设计与实现
}
CString strSQL;
strSQL.Format(\if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { }
if(m_ctrUser.IsWindowEnabled()) { //判断用户是否已经存在 } else
{ //修改用户信息
if(m_recordset.GetRecordCount()==0) { //判断用户是否不存在 }
m_recordset.Edit();
m_recordset.m_user = m_strUser; m_recordset.m_passwd = m_strPass; m_recordset.m_isadmin = m_bIsAdmin; m_recordset.Update();
MessageBox(\用户修改成功!请记住用户名和密码!\m_recordset.Close();
27
UpdateData(FALSE); return;
MessageBox(\打开数据库失败!\数据库错误\return ;
if(m_recordset.GetRecordCount()!=0) { }
m_recordset.AddNew(); m_recordset.m_user = m_strUser; m_recordset.m_passwd = m_strPass; m_recordset.m_isadmin = m_bIsAdmin; m_recordset.Update();
MessageBox(\用户添加成功!请记住用户名和密码!\m_recordset.Close();
m_recordset.Close();
MessageBox(\该用户已经存在!\return;
m_recordset.Close();
MessageBox(\该用户不存在!请更新数据库\return;
郑林鸿:学生信息和成绩管理系统的设计与实现 }
}
m_ctrUser.EnableWindow(FALSE); RefreshData();
附录3——用户管理模块的实现MFC代码
void CUserDlg::OnButtonNew()
{// TODO: Add your control notification handler code here
m_strUser = \m_strPass = \m_strRePass = \
m_bIsAdmin = FALSE;//设置用户名编辑框为可用 m_ctrUser.EnableWindow(TRUE); m_ctrUser.SetFocus();//更新数据到界面 UpdateData(FALSE);
}//保存添加或者修改用户信息 void CUserDlg::OnButtonDelete() {
UpdateData(TRUE); if(m_strUser==\
{ MessageBox(\请选择一个用户!\ }
return;
CString strSQL;
strSQL.Format(\if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) {
MessageBox(\打开数据库失败!\数据库错误\return ; }//删除该用户 m_recordset.Delete(); }
CString strSQL;
28
m_recordset.Close();
RefreshData();//刷新用户列表 m_strUser = \m_strPass = \m_strRePass = \m_bIsAdmin = FALSE; UpdateData(FALSE);
郑林鸿:学生信息和成绩管理系统的设计与实现 }
strSQL.Format(\if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(\打开数据库失败!\数据库错误\ }
if(m_ctrUser.IsWindowEnabled()) { //增加新用户 } else
{//修改用户信息 }
m_ctrUser.EnableWindow(FALSE); RefreshData();
if(m_recordset.GetRecordCount()==0) {//判断用户是否不存在 }
m_recordset.Edit();
m_recordset.m_user = m_strUser; m_recordset.m_passwd = m_strPass; m_recordset.m_isadmin = m_bIsAdmin; m_recordset.Update();
MessageBox(\用户修改成功!请记住用户名和密码!\m_recordset.Close();
m_recordset.Close();
MessageBox(\该用户不存在!请更新数据库\return;
//判断用户是否已经存在
if(m_recordset.GetRecordCount()!=0) { m_recordset.Close(); }
m_recordset.AddNew(); m_recordset.m_user = m_strUser; m_recordset.m_passwd = m_strPass; m_recordset.m_isadmin = m_bIsAdmin; m_recordset.Update();
MessageBox(\用户添加成功!请记住用户名和密码!\m_recordset.Close();
MessageBox(\该用户已经存在!\return; return ;
29
郑林鸿:学生信息和成绩管理系统的设计与实现 附录4——学生总分名次查询对话框的初始化的MFC代码
BOOL CScoreTotalDlg::OnInitDialog() {
CDialog::OnInitDialog(); CString strSQL; //初始化班级 CClassSet ClassSet ; strSQL=\
if(!ClassSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { AfxMessageBox(\打开数据库失败!\while(!ClassSet.IsEOF())
{ m_ctrClass.AddString(ClassSet.m_code);
ClassSet.MoveNext();} ClassSet.Close();
CExamtimeSet TimeSet ; //初始化时间段 strSQL=\
if(!TimeSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { } { }
TimeSet.Close();
CExamtypeSet TypeSet ; //初始化考试类型 strSQL=\
if(!TypeSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { } { }
TypeSet.Close(); //初始化成绩列表
m_ctrList.InsertColumn(0,\学号\m_ctrList.InsertColumn(1,\姓名\
30
AfxMessageBox(\打开数据库失败!\
while(!TimeSet.IsEOF())
m_ctrTime.AddString(TimeSet.m_time); TimeSet.MoveNext();
AfxMessageBox(\打开数据库失败!\
while(!TypeSet.IsEOF())
m_ctrType.AddString(TypeSet.m_name); TypeSet.MoveNext();