首页 人员管理系统

人员管理系统

举报
开通vip

人员管理系统一、设计目的 目 录 TOC \o "1-3" \h \z \u 1.系统设计的目的和意义 2 2.系统总框架图 3 3.软件功能描述 3 4.软件代码的设计 3 4.1数据结构描述与定义 3 4.2模块设计 5 5.软件使用说明 7 6.测试结果与分析 7 7.比较有特色的函数 12 8.存在的不足与对策 14 9.课程设计总结 14 附录:源程序清单(核心部分) 15 1.系统设计的目的和意义 采用面向对象设计思想,管理2类人员。教师信息(姓名,编号,年龄,职称,学历,籍贯,工作日期),学生信息(姓名,年龄,学...

人员管理系统
一、 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 目的 目 录 TOC \o "1-3" \h \z \u 1.系统设计的目的和意义 2 2.系统总框架图 3 3.软件功能描述 3 4.软件代码的设计 3 4.1数据结构描述与定义 3 4.2模块设计 5 5.软件使用说明 7 6.测试结果与 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 7 7.比较有特色的函数 12 8.存在的不足与对策 14 9.课程设计总结 14 附录:源程序清单(核心部分) 15 1.系统设计的目的和意义 采用面向对象设计思想,管理2类人员。教师信息(姓名,编号,年龄,职称,学历,籍贯,工作日期),学生信息(姓名,年龄,学号,籍贯,入学日期)。完整输入/输出设计,写入ACCESS文件,分别建立两个表信息,一个存储教师信息,一个存储学生信息。采用工程文件方式组织程序。能进行增、 删、 查、改等操作。初始完成密码认证框的编写。外观设计风格各异 2.系统总框架图 3.软件功能描述 管理2类人员:教师信息(姓名,编号,年龄,职称,学历,籍贯,工作日期),学生信息(姓名,年龄,学号,籍贯,入学日期)。 完整输入/输出设计,写入ACCESS文件。 能进行增、删、 查、改等操作。 采用友好的用户界面。 管理用户:添加、删除、修改密码等操作。 4.软件代码的设计 4.1数据结构描述与定义 ①ACCESS表 表password: Puser 文本 Ppassword 文本 Pisadmin 是/否 表student: Sname 文本 Sno 文本 Sage 文本 Snative 文本 Setime 文本 表teacher: Tname 文本 Tno 文本 Tage 文本 Ttitle 文本 Tdegree 文本 Tnative 文本 Twtime 文本 ②MFC类 class CUserSet : public CRecordset //用户数据定义 { CString m_Puser; CString m_Ppassword; BOOL m_Pisadmin; } class CStudentSet : public CRecordset //学生数据定义 { CString m_Sname; CString m_Sno; CString m_Sage; CString m_Snative; CString m_Setime; } class CTeacherSet : public CRecordset //教师数据定义 { CString m_Tname; CString m_Tno; CString m_Tage; CString m_Ttitle; CString m_Tdegree; CString m_Tnative; CString m_Twtime; } 4.2模块设计 系统共分成七个模块,分别是:用户登录模块,用户管理模块,学生信息查询模块,学生信息编辑模块,教师信息查询模块,教师信息编辑模块,帮助模块。 ①用户登录模块 ②用户管理模块 ③查询模块(学生信息查询,教师信息查询) ④编辑模块(学生信息编辑,教师信息编辑) 5.软件使用说明 登录系统时可根据ACCESS表password查看用户名和密码。无需建立ODBC。 登录成功后显示主菜单,有系统管理,学生信息管理,教师信息管理和帮助。在系统管理中,你可以进行用户管理,注销/重新登录和退出系统。在学生信息管理中,你可以进行学生信息查询和添加/修改信息。教师信息管理中,你可以进行教师信息查询和添加/修改信息。在帮助中,你可以查看软件的相关内容。 特别提醒:如果你的登录是非管理员,那么你将没有用户管理,添加/修改信息等操作。 在用户管理中,你可以修改密码,新增用户,删除用户。 在信息查询中,你可以通过编号查询或姓名查询。可以同时输入或不输,若不输则显示全部信息。 在添加/修改信息中,你可以对信息进行添加,修改,删除等操作。 6.测试结果与分析 运行程序,显示登录界面。(管理员建议使用:用户名“weiheng”,密码“1234”。非管理员建议使用:用户名“ww”,密码“1234”。) 成功登录后显示主界面。然后根据菜单内容依次运行。 返回登录界面。 这是用户信息界面。以管理员身份进入该界面。图为创建一个用户“bbb”的操作。 这是学生信息查询界面。若不输入查询项查询,则显示所有数据。 图为根据学生学号查询。 显示,添加,修改,删除一体化。根据所需要的操作进行操作。 图为教师信息查询。操作 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 如同学生信息查询 图为教师信息编辑。操作方法如同学生信息编辑 图为帮助界面。 7.比较有特色的函数 ①显示全部信息函数,以下是显示全部教师信息函数。 void CTeachereDlg::OnTeonall() { m_ctlList.DeleteAllItems(); m_ctlList.SetRedraw(FALSE); UpdateData(TRUE); CString strSQL; strSQL.Format( "select * from teacher"); if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return ; } int i=0; while(!m_recordset.IsEOF()) { m_ctlList.InsertItem(i,m_recordset.m_Tno); m_ctlList.SetItemText(i,1,m_recordset.m_Tname); m_ctlList.SetItemText(i,2,m_recordset.m_Tage); m_ctlList.SetItemText(i,3,m_recordset.m_Ttitle); m_ctlList.SetItemText(i,4,m_recordset.m_Tdegree); m_ctlList.SetItemText(i,5,m_recordset.m_Tnative); m_ctlList.SetItemText(i,6,m_recordset.m_Twtime); i++; m_recordset.MoveNext(); } m_recordset.Close(); m_ctlList.SetRedraw(TRUE); } ②查询函数,以下是学生信息查询函数 void CStudentDlg::OnSsearch() { UpdateData( TRUE ); m_ctlList.DeleteAllItems(); m_ctlList.SetRedraw(FALSE); CString str="select * from student"; UpdateData( true ); if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE, _T(str))) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return ; } int i=0; while(!m_recordset.IsEOF()) { if((m_recordset.m_Sno==m_valSno||m_valSno=="")&& (m_recordset.m_Sname==m_valSname||m_valSname=="") ) { m_ctlList.InsertItem(i,m_recordset.m_Sno); m_ctlList.SetItemText(i,1,m_recordset.m_Sname); m_ctlList.SetItemText(i,2,m_recordset.m_Sage); m_ctlList.SetItemText(i,3,m_recordset.m_Snative); m_ctlList.SetItemText(i,4,m_recordset.m_Setime); i++; } m_recordset.MoveNext(); } m_recordset.Close(); m_ctlList.SetRedraw(TRUE); } 8.存在的不足与对策 一开始做的程序,界面简单,显示信息单调,分不清普通用户和管理员的区别。改进后,加入了图片和皮肤系统提供了友好的界面,采用列表控件进行对多组数据的显示,同时添加根据是否是管理员进行操作判定。 9.课程设计总结 在这次课程设计中,我学到了很多。拿到课题是觉得还是很简单的,即便加入身份验证功能。无非就是三张ACCESS表,一张储存用户名和密码,一张储存学生信息,还有一张储存教师信息。创建对话框也就三个,分别对应。内容简单,功能也满足要求,但是缺乏创新。于是在此基础上又加入了注册和修改密码。反复改,反复改,不知不觉的一个工程做了好几遍。当我把所有我能想到的东西都加进去后,还是觉得少了点什么。这一直觉来自于看了一个人做的图书管理系统,在界面上比我优化,在功能上比我先进,虽然他做的不是和我一个系统。 看到比自己好的,不自觉地开始改进。首先是创建ODBC,从需要自己创建ODBC开始到程序生成ODBC,感觉很复杂,其实也就几行代码的问题。其次是皮肤,没有皮肤觉得界面太难看。虽然是下载的文件,但是添进去也是一个难事,还要添加一个SkinPlusPlus.h。再有就是采用列表控件,只要会了方法,输出信息非常方便。原来我程序思想是在学生信息中分为查询、添加、修改、删除等模块,现在进行统一,查询还是查询系统,添加、修改和删除融合成一个编辑系统。教师也是一样。在对于用户,也不局限于一旦创建只能修改密码,现在还可以注销账号。最后是各个功能的衔接,用菜单来调用。同时根据是否是管理员进行判定某些操作是否可用。 这次课程设计同时也使我对MFC有了更深刻的认识。再也不是局限于那几个控件和某些类的派生。对不同文件之间的联系,.h和.cpp之间的联系有了更深层次的理解。以前因为知识的匮乏,总是纳闷各个文件之间是怎样作用的,现在虽然不是十分的了解,但已经能感受到其中的奥妙所在,让我感受到C++的无穷魅力。 附录:源程序清单(核心部分) 文件:wh.cpp #include "stdafx.h" #include "wh.h" #include "MainFrm.h" #include "whDoc.h" #include "whView.h" #include "LoginDlg.h" #include "SkinPlusPlus.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif BEGIN_MESSAGE_MAP(CWhApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) END_MESSAGE_MAP() CWhApp::CWhApp() { } CWhApp theApp; BOOL CWhApp::InitInstance() { AfxEnableControlContainer(); SQLConfigDataSource(NULL,ODBC_ADD_DSN, //通过程序创建ODBC "Microsoft Access Driver (*.mdb)", "DSN=WhODBC\0" "Description=Hotel\0" "FileType=Access\0" "DBQ=.\\Wh.mdb\0 ); #ifdef _AFXDLL Enable3dControls(); #else Enable3dControlsStatic(); #endif SetRegistryKey(_T("Local AppWizard-Generated Applications")); LoadStdProfileSettings(0); InitializeSkin(_T("XPCorona.ssk")); //加载皮肤 CLoginDlg loginDlg; //先显示登录界面 if(loginDlg.DoModal()!=IDOK) return FALSE; CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CWhDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CWhView)); AddDocTemplate(pDocTemplate); CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); if (!ProcessShellCommand(cmdInfo)) return FALSE; m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); m_pMainWnd->SetWindowText("人员管理系统"); //显示主菜单标题 return TRUE; } class CAboutDlg : public CDialog {public: CAboutDlg(); enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() void CWhApp::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } 文件:UserSet.cpp #include "stdafx.h" #include "wh.h" #include "UserSet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif IMPLEMENT_DYNAMIC(CUserSet, CRecordset) CUserSet::CUserSet(CDatabase* pdb) : CRecordset(pdb) { m_Puser = _T(""); m_Ppassword = _T(""); m_Pisadmin = FALSE; m_nFields = 3; m_nDefaultType = snapshot; } CString CUserSet::GetDefaultConnect() { return _T("ODBC;DSN=WhODBC"); } CString CUserSet::GetDefaultSQL() { return _T("[password]"); } void CUserSet::DoFieldExchange(CFieldExchange* pFX) { pFX->SetFieldType(CFieldExchange::outputColumn); RFX_Text(pFX, _T("[Puser]"), m_Puser); RFX_Text(pFX, _T("[Ppassword]"), m_Ppassword); RFX_Bool(pFX, _T("[Pisadmin]"), m_Pisadmin); } #ifdef _DEBUG void CUserSet::AssertValid() const { CRecordset::AssertValid(); } void CUserSet::Dump(CDumpContext& dc) const { CRecordset::Dump(dc); } #endif 文件:StudentSet.cpp #include "stdafx.h" #include "wh.h" #include "StudentSet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif IMPLEMENT_DYNAMIC(CStudentSet, CRecordset) CStudentSet::CStudentSet(CDatabase* pdb) : CRecordset(pdb) { m_Sname = _T(""); m_Sno = _T(""); m_Sage = _T(""); m_Snative = _T(""); m_Setime = _T(""); m_nFields = 5; m_nDefaultType = snapshot; } CString CStudentSet::GetDefaultConnect() { return _T("ODBC;DSN=WhODBC"); } CString CStudentSet::GetDefaultSQL() { return _T("[student]"); } void CStudentSet::DoFieldExchange(CFieldExchange* pFX) { pFX->SetFieldType(CFieldExchange::outputColumn); RFX_Text(pFX, _T("[Sname]"), m_Sname); RFX_Text(pFX, _T("[Sno]"), m_Sno); RFX_Text(pFX, _T("[Sage]"), m_Sage); RFX_Text(pFX, _T("[Snative]"), m_Snative); RFX_Text(pFX, _T("[Setime]"), m_Setime); } #ifdef _DEBUG void CStudentSet::AssertValid() const { CRecordset::AssertValid(); } void CStudentSet::Dump(CDumpContext& dc) const { CRecordset::Dump(dc); } #endif 文件:TeacherSet.cpp #include "stdafx.h" #include "wh.h" #include "TeacherSet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif IMPLEMENT_DYNAMIC(CTeacherSet, CRecordset) CTeacherSet::CTeacherSet(CDatabase* pdb) : CRecordset(pdb) { m_Tname = _T(""); m_Tno = _T(""); m_Tage = _T(""); m_Ttitle = _T(""); m_Tdegree = _T(""); m_Tnative = _T(""); m_Twtime = _T(""); m_nFields = 7; m_nDefaultType = snapshot; } CString CTeacherSet::GetDefaultConnect() { return _T("ODBC;DSN=WhODBC"); } CString CTeacherSet::GetDefaultSQL() { return _T("[teacher]"); } void CTeacherSet::DoFieldExchange(CFieldExchange* pFX) { pFX->SetFieldType(CFieldExchange::outputColumn); RFX_Text(pFX, _T("[Tname]"), m_Tname); RFX_Text(pFX, _T("[Tno]"), m_Tno); RFX_Text(pFX, _T("[Tage]"), m_Tage); RFX_Text(pFX, _T("[Ttitle]"), m_Ttitle); RFX_Text(pFX, _T("[Tdegree]"), m_Tdegree); RFX_Text(pFX, _T("[Tnative]"), m_Tnative); RFX_Text(pFX, _T("[Tworktime]"), m_Twtime); } #ifdef _DEBUG void CTeacherSet::AssertValid() const { CRecordset::AssertValid(); } void CTeacherSet::Dump(CDumpContext& dc) const { CRecordset::Dump(dc); } #endif 文件:LoginDlg.cpp #include "stdafx.h" #include "wh.h" #include "LoginDlg.h" #include "UserSet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CLoginDlg::CLoginDlg(CWnd* pParent) : CDialog(CLoginDlg::IDD, pParent) { m_valPass = _T(""); m_valUser = _T(""); } void CLoginDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LUSER, m_ctlUser); DDX_Control(pDX, IDC_LPASS, m_ctlPass); DDX_Text(pDX, IDC_LPASS, m_valPass); DDX_CBString(pDX, IDC_LUSER, m_valUser); } BEGIN_MESSAGE_MAP(CLoginDlg, CDialog) ON_BN_CLICKED(IDC_LOK, OnLok) END_MESSAGE_MAP() void CLoginDlg::OnLok() { CUserSet recordset; CString strSQL; UpdateData(TRUE); if(m_valUser.IsEmpty()) { MessageBox("请输入用户名!", "您的访问出错了!", MB_ICONEXCLAMATION); m_ctlUser.SetFocus(); return; } if(m_valPass.IsEmpty()) //检查密码是否输入 { MessageBox("请输入密码!", "您的访问出错了!", MB_ICONEXCLAMATION); m_ctlPass.SetFocus(); return; } CWhApp* ptheApp = (CWhApp *) AfxGetApp(); strSQL.Format("select * from password where Puser='%s' AND Ppassword='%s'",m_valUser,m_valPass); if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox("打开数据库失败!","数据库错误", MB_ICONSTOP); return ; } if(recordset.GetRecordCount()==0) { recordset.Close(); MessageBox("密码错误,请重新输入!", "Are you tricking me?", MB_ICONSTOP ); m_valPass=""; m_ctlPass.SetFocus(); UpdateData(FALSE); } else { ptheApp->m_bIsAdmin = recordset.m_Pisadmin; recordset.Close(); CDialog::OnOK(); } } BOOL CLoginDlg::OnInitDialog() { CDialog::OnInitDialog(); CUserSet recordset ; CString strSQL; UpdateData(TRUE); strSQL="select * from password"; if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox("打开数据库失败!","数据库错误",MB_OK); return FALSE; } while(!recordset.IsEOF()) { m_ctlUser.AddString(recordset.m_Puser); recordset.MoveNext(); } recordset.Close(); return TRUE; } void CLoginDlg::OnCancel() { CDialog::OnCancel(); } 文件:UserDlg.cpp #include "stdafx.h" #include "wh.h" #include "UserDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CUserDlg::CUserDlg(CWnd* pParent /*=NULL*/) : CDialog(CUserDlg::IDD, pParent) { m_bIsAdmin = FALSE; m_valPass = _T(""); m_valRePass = _T(""); m_valUser = _T(""); } void CUserDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_UUSER, m_ctlUser); DDX_Control(pDX, IDC_UPASS, m_ctlPass); DDX_Control(pDX, IDC_ULIST, m_ctlList); DDX_Check(pDX, IDC_UCHECK, m_bIsAdmin); DDX_Text(pDX, IDC_UPASS, m_valPass); DDX_Text(pDX, IDC_UREPASS, m_valRePass); DDX_Text(pDX, IDC_UUSER, m_valUser); } BEGIN_MESSAGE_MAP(CUserDlg, CDialog) ON_BN_CLICKED(IDC_UADDNEW, OnUaddnew) ON_BN_CLICKED(IDC_UDELETE, OnUdelete) ON_BN_CLICKED(IDC_UOK, OnUok) ON_BN_CLICKED(IDC_UCANCEL, OnUcancel) ON_NOTIFY(NM_CLICK, IDC_ULIST, OnClickUlist) END_MESSAGE_MAP() BOOL CUserDlg::OnInitDialog() { CDialog::OnInitDialog(); //创建用户列表 m_ctlList.InsertColumn(0,"用户名"); m_ctlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_ctlList.SetColumnWidth(0,155); RefreshData(); //在添加用户列表中添加用户名 return TRUE; } void CUserDlg::RefreshData() { m_ctlList.SetFocus(); m_ctlList.DeleteAllItems(); //清空用户列表 m_ctlList.SetRedraw(FALSE); CString strSQL; UpdateData(TRUE); strSQL="select * from password"; //打开 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 集 if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return ; } int i=0; while(!m_recordset.IsEOF()) //添加用户名到用户列表中 { m_ctlList.InsertItem(i++,m_recordset.m_Puser); m_recordset.MoveNext(); } m_recordset.Close(); m_ctlList.SetRedraw(TRUE); } void CUserDlg::OnUaddnew() { m_valUser = ""; //清空用户资料 m_valPass = ""; m_valRePass = ""; m_bIsAdmin = FALSE; m_ctlUser.EnableWindow(TRUE); //设置用户名编辑框为可用 m_ctlUser.SetFocus(); UpdateData(FALSE); //更新数据到界面 } void CUserDlg::OnUdelete() { UpdateData(TRUE); if(m_valUser=="") //判断是否指定用户 { MessageBox("请选择一个用户!"); return; } CString strSQL; strSQL.Format("select * from password where Puser='%s'",m_valUser); if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return ; } m_recordset.Delete(); //删除该用户 m_recordset.Close(); RefreshData(); //刷新用户列表 m_valUser = ""; m_valPass = ""; m_valRePass = ""; m_bIsAdmin = FALSE; UpdateData(FALSE); } void CUserDlg::OnUok() { UpdateData(); if(m_ctlUser.IsWindowEnabled()) { if(m_valUser=="") //增加新用户的输入检查 { MessageBox("请填写用户名!"); m_ctlUser.SetFocus(); return; } } else { if(m_valUser=="") //修改用户信息的输入检查 { MessageBox("请选择一个用户!"); return; } } if(m_valPass=="") //限制密码不能为空 { MessageBox("密码不能为空,请输入密码!"); m_ctlPass.SetFocus(); return; } if(m_valPass!=m_valRePass) //验证密码与确认密码是否一致 { MessageBox("两次输入地密码不一致,请重新输入密码!"); m_ctlPass.SetFocus(); m_valPass = ""; m_valRePass = ""; UpdateData(FALSE); return; } CString strSQL; strSQL.Format("select * from password where Puser='%s'",m_valUser); if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return ; } if(m_ctlUser.IsWindowEnabled()) {//增加新用户 if(m_recordset.GetRecordCount()!=0) //判断用户是否已存在 { m_recordset.Close(); MessageBox("该用户已经存在!"); return; } m_recordset.AddNew(); m_recordset.m_Puser = m_valUser; m_recordset.m_Ppassword = m_valPass; m_recordset.m_Pisadmin = m_bIsAdmin; m_recordset.Update(); MessageBox("用户添加成功!请记住用户名和密码!"); m_recordset.Close(); } else {//修改用户信息 if(m_recordset.GetRecordCount()==0) //判断用户是否不存在 { m_recordset.Close(); MessageBox("该用户不存在!请更新数据库"); return; } m_recordset.Edit(); m_recordset.m_Puser = m_valUser; m_recordset.m_Ppassword = m_valPass; m_recordset.m_Pisadmin = m_bIsAdmin; m_recordset.Update(); MessageBox("用户修改成功!请记住用户名和密码!"); m_recordset.Close(); } m_ctlUser.EnableWindow(FALSE); RefreshData(); } void CUserDlg::OnUcancel() { m_valUser = ""; m_valPass = ""; m_valRePass = ""; m_bIsAdmin = FALSE; m_ctlUser.EnableWindow(FALSE); UpdateData(FALSE); } void CUserDlg::OnClickUlist(NMHDR* pNMHDR, LRESULT* pResult) { CString strSQL; UpdateData(TRUE); m_ctlUser.EnableWindow(FALSE); int i = m_ctlList.GetSelectionMark(); //从数据库中获取选择用户名的资料 m_valUser = m_ctlList.GetItemText(i,0); strSQL.Format("select * from password where Puser='%s'",m_valUser); if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return ; } //显示用户资料 m_valPass = m_recordset.m_Ppassword; m_valRePass = m_valPass; m_bIsAdmin = m_recordset.m_Pisadmin; m_recordset.Close(); UpdateData(FALSE); *pResult = 0; } 文件:StudentDlg.cpp #include "stdafx.h" #include "wh.h" #include "StudentDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CStudentDlg::CStudentDlg(CWnd* pParent /*=NULL*/) : CDialog(CStudentDlg::IDD, pParent) { m_valSname = _T(""); m_valSno = _T(""); } void CStudentDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_ctlList); DDX_Text(pDX, IDC_SSNAME, m_valSname); DDX_Text(pDX, IDC_SSNO, m_valSno); } BEGIN_MESSAGE_MAP(CStudentDlg, CDialog) ON_BN_CLICKED(IDC_SSEARCH, OnSsearch) END_MESSAGE_MAP() BOOL CStudentDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctlList.InsertColumn(0,"学生学号"); m_ctlList.InsertColumn(1,"学生姓名"); m_ctlList.InsertColumn(2,"学生年龄"); m_ctlList.InsertColumn(3,"学生籍贯"); m_ctlList.InsertColumn(4,"入学日期"); m_ctlList.SetColumnWidth(0,120); m_ctlList.SetColumnWidth(1,110); m_ctlList.SetColumnWidth(2,60); m_ctlList.SetColumnWidth(3,110); m_ctlList.SetColumnWidth(4,175); m_ctlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); return TRUE; } void CStudentDlg::OnSsearch() { UpdateData( TRUE ); m_ctlList.DeleteAllItems(); m_ctlList.SetRedraw(FALSE); CString str="select * from student"; UpdateData( true ); if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE, _T(str))) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return ; } int i=0; while(!m_recordset.IsEOF()) { if((m_recordset.m_Sno==m_valSno||m_valSno=="")&& (m_recordset.m_Sname==m_valSname||m_valSname=="") ) { m_ctlList.InsertItem(i,m_recordset.m_Sno); m_ctlList.SetItemText(i,1,m_recordset.m_Sname); m_ctlList.SetItemText(i,2,m_recordset.m_Sage); m_ctlList.SetItemText(i,3,m_recordset.m_Snative); m_ctlList.SetItemText(i,4,m_recordset.m_Setime); i++; } m_recordset.MoveNext(); } m_recordset.Close(); m_ctlList.SetRedraw(TRUE); } 文件:StudenteDlg.cpp #include "stdafx.h" #include "wh.h" #include "StudenteDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CStudenteDlg::CStudenteDlg(CWnd* pParent /*=NULL*/) : CDialog(CStudenteDlg::IDD, pParent) { m_valSetime = _T(""); m_valSname = _T(""); m_valSnative = _T(""); m_valSno = _T(""); m_valSage = _T(""); } void CStudenteDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_SELIST, m_ctlList); DDX_Text(pDX, IDC_SEETIME, m_valSetime); DDX_Text(pDX, IDC_SENAME, m_valSname); DDX_Text(pDX, IDC_SENATIVE, m_valSnative); DDX_Text(pDX, IDC_SENO, m_valSno); DDX_Text(pDX, IDC_SEAGE, m_valSage); } BEGIN_MESSAGE_MAP(CStudenteDlg, CDialog) ON_BN_CLICKED(IDC_SEADDNEW, OnSeaddnew) ON_NOTIFY(NM_CLICK, IDC_SELIST, OnClickSelist) ON_BN_CLICKED(IDC_SEDELETE, OnSedelete) ON_BN_CLICKED(IDC_SEONALL, OnSeonall) ON_BN_CLICKED(IDC_SEEDIT, OnSeedit) END_MESSAGE_MAP() BOOL CStudenteDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctlList.InsertColumn(0,"学生学号"); m_ctlList.InsertColumn(1,"学生姓名"); m_ctlList.InsertColumn(2,"学生年龄"); m_ctlList.InsertColumn(3,"学生籍贯"); m_ctlList.InsertColumn(4,"入学日期"); m_ctlList.SetColumnWidth(0,120); m_ctlList.SetColumnWidth(1,90); m_ctlList.SetColumnWidth(2,60); m_ctlList.SetColumnWidth(3,90); m_ctlList.SetColumnWidth(4,155); m_ctlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); CStudentSet recordset; //初始化学生信息 if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,"select * from student")) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return FALSE; } recordset.Close(); return TRUE; } void CStudenteDlg::OnClickSelist(NMHDR* pNMHDR, LRESULT* pResult) { int i = m_ctlList.GetSelectionMark(); m_valSno = m_ctlList.GetItemText(i,0); m_valSname = m_ctlList.GetItemText(i,1); m_valSage = m_ctlList.GetItemText(i,2); m_valSnative = m_ctlList.GetItemText(i,3); m_valSetime = m_ctlList.GetItemText(i,4); UpdateData(FALSE); *pResult = 0; } void CStudenteDlg::OnSeaddnew() { UpdateData( TRUE ); if(m_valSname.IsEmpty()) { MessageBox("请输入学生姓名!"); return; } if(m_valSno.IsEmpty()) { MessageBox("请输入学生学号!"); return; } if(m_valSage.IsEmpty()) { MessageBox("请输入学生年龄!"); return; } if(m_valSnative.IsEmpty()) { MessageBox("请输入学生籍贯!"); return; } if(m_valSetime.IsEmpty()) { MessageBox("请输入学生入学日期!"); return; } CString str="select * from student"; int flag=0; if( !m_recordset.Open( AFX_DB_USE_DEFAULT_TYPE , _T(str) ) ) { MessageBox("打开数据库失败!","数据库错误",MB_ICONSTOP); return ; } while( !m_recordset.IsEOF() ) { if( m_valSno == m_recordset.m_Sno ) { flag=1; break; } else { m_recordset.MoveNext(); } } if( flag==1) { MessageBox( "已有此人,添加失败!", "学生信息", MB_ICONEXCLAMATION
本文档为【人员管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_529046
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:50
分类:工学
上传时间:2011-07-01
浏览量:19