logo资料库

MFC公司人员信息管理系统.doc

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
重 庆 交 通 大 学 学 生 实 验 报 告 实验课程名称 信息技术实训 I 开课实验室 信息学院通信与软件实验中心 学 院 年级 专业班 班 学 生 姓 名 学 号 开 课 时 间 2012 至 2013 学年第 1 学期 总 成 绩 教师签名
一、系统总体方案 设计选题为一个公司人员管理系统: 根据系统要求,将问题解决分为以下几个步骤: (一)、分析系统功能,建立系统的功能模块框图及界面的组织设计; (二)、分析系统中的各个对象及其关系; (三)、根据功能要求,设计系统的类层次; (四)、完成类层次中各个类的描述; (五)、完成类中各个成员函数的定义; (六)、完成系统中的各功能模块; (七)、功能调试; (八)、完成课程设计报告。 二、各功能模块 1、信息添加: 添加公司职员的基本信息。 2、信息输出: 输出公司职员的基本信息。 3、信息修改: 修改公司人员的信息。 4、信息删除: 删除公司人员信息。 功能模块示意图: 系统主界面 信息添加 信息添加 信息添加 信息添加
5、各控件及 ID: 主界面控件: 添加的控件 ID 号 按钮 按钮 按钮 按钮 IDC_BUTTON_ADD IDC_BUTTON_CHANGE IDC_BUTTON_DEL IDC_BUTTON_QUIT 标题 添加 修改 删除 退出 人员信息对话框控件: 添加的控件 编辑框(编号) ID 号 IDC_EDIT_ID 编辑框(姓名) IDC_EDIT_NAME 单选按钮(男) IDC_RADIO_MALE 单选按钮(女) IDC_RADIO_FEMALE 编辑框(年) IDC_EDIT_YEAR 编辑框(月) IDC_EDIT_MONTH 组合框(职位) IDC_COMBO_PLACE 编辑框(工资) IDC_EDIT_SALARY 6、控件变量:
三、界面实现 欢迎界面: 主界面:
在主界面创建中选择的应用程序类型是单文档,考虑到在以后界面上天界按钮的便捷, 在选择基类时选择的是 CFormView ,创建完成后禁用了主界面的最大化按钮功能(方法是 从网络上查询得到的)。 代码如下: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { } if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; cs.style&=~WS_MAXIMIZEBOX; //禁用按动最大化按钮 cs.style&=~WS_THICKFRAME; //禁止用户改变窗口大小 cs.cx = 900; cs.cy = 700; //窗口宽度 //窗口高度 cs.style&=~FWS_ADDTOTITLE; //将 FWS_ADDTOTITLE 去掉 cs. lpszName = "人员信息管理系统"; //改变标题,替换自己的标题 // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return TRUE; 保存与打开: 各功能模块的执行有三种方式选择,分别是菜单、工具栏上的按钮以及主界面上的按钮。
人员信息界面: 1、信息添加实现: 添加成功后在列表控件中显示: 代码如下: void CEmployeeView::OnButtonAdd() {
CPersonDlg dlg; if(IDOK != dlg.DoModal()) return; //根据编号判断人员信息是否已经添加过 LVFINDINFO info; info.flags = LVFI_PARTIAL|LVFI_STRING; info.psz = dlg.m_id; if (m_ListCtrl.FindItem(&info)!=-1) //若找到 { } CString str; str.Format("编号为%s 的人员信息已经添加过!",dlg.m_id); MessageBox(str); return; //添加人员基本信息 int nItem = m_ListCtrl.GetItemCount(); m_ListCtrl.InsertItem(nItem, dlg.m_id); m_ListCtrl.SetItemText(nItem, 1,dlg.m_name); if (dlg.m_bMale) m_ListCtrl.SetItemText(nItem,2,"男"); else m_ListCtrl.SetItemText(nItem,2,"女"); m_ListCtrl.SetItemText(nItem, 3, dlg.m_year + "年"+ dlg.m_month + " 月"); m_ListCtrl.SetItemText(nItem, 4, dlg.m_place); m_ListCtrl.SetItemText(nItem, 5, dlg.m_salary); } void CPersonDlg::OnOK() { UpdateData(); m_id.TrimLeft(); m_name.TrimLeft(); if (m_id.IsEmpty())
MessageBox("编号不能为空!",TEXT("提示"),MB_ICONWARNING); else if (m_name.IsEmpty()) MessageBox("姓名不能为空!",TEXT("提示"),MB_ICONWARNING); else if (m_year.IsEmpty() || m_month.IsEmpty()) MessageBox("出生日期不能为空!",TEXT("提示"),MB_ICONWARNING); else if (m_salary.IsEmpty()) MessageBox("工资不能为空!",TEXT("提示"),MB_ICONWARNING); else CDialog::OnOK(); } 2、信息修改实现: 在未选中列表项时主界面中的修改按钮式灰色不可用的,但是工具栏处的按钮是 你可用的。 代码如下: void CEmployeeView::OnButtonChange() { // 获取被选择的列表项索引号 POSITION pos; pos = m_ListCtrl.GetFirstSelectedItemPosition(); if (pos == NULL) { MessageBox("你还没有选中列表项!",TEXT("提示"),MB_ICONWARNING);
分享到:
收藏