收藏 分销(赏)

C专业课程设计人事标准管理系统.docx

上传人:人****来 文档编号:2727331 上传时间:2024-06-05 格式:DOCX 页数:18 大小:480.96KB 下载积分:8 金币
下载 相关 举报
C专业课程设计人事标准管理系统.docx_第1页
第1页 / 共18页
C专业课程设计人事标准管理系统.docx_第2页
第2页 / 共18页


点击查看更多>>
资源描述
《面向对象编程技术》课程设计试验汇报 姓名: 学号: 班级: 指导老师: 日期: 目录: 一. 设计任务和要求……………………………………………………….3 1. 设计目标……………………………………………………………………3 2. 课程设计要求………………………………………………………..3 二. 系统分析……………………………………………………………………3 1. 需求分析:………………………………………………………………3 2. 功效分析:………………………………………………………………3 3. 系统功效模块………………………………………………………..3 4. 功效实现……………………………………………………………3 5. 模块框架图…………………………………………………………...4 三. 系统设计…………………………………………………………………...4 四. 问题分析和试验总结………………………………………………..10 课程设计部分源代码…………………………………………………………11 一. 设计任务和要求 设计题目:人事管理系统 1.设计目标: 制作人事管理系统,实现对增加数据统计,删除统计,排序统计,筛选统计数据要求。 2.课程设计要求 A.用access创建人事管理数据表,该表统计职员基础信息,其中包含职员编号,职员姓名,所在部门,职员年纪,工作时间,基础工资,职称和监理等信息。 B.创建新数据源 C.叙述对“MFC AppEizard(exe)”生成应用程序框架认识,了解和开发心得 二.系统分析 1.需求分析: l 可利用该程序实现对职员信息统计和浏览 l 能够对职员信息进行输入、删除、排序、和筛选等操作; 2.功效分析: l 新增统计:系统能在原有统计基础上增加新统计。 l 删除统计:对数据表中数据进行删除。 l 筛选统计:依据职员标号对职员进行筛选进行正确查找职员人员。 l 排序统计:对职员信息编号进行从小到大排序 3.系统功效模块 人事管理系统有:新增统计、深处统计、排序统计、筛选及浏览统计。 4.功效实现: 1) “筛选及浏览统计”模块: 在access中建表时,在职员编号栏开启关键词索引功效,筛选时在对话框编辑框内输入要筛选职员标号即可进行筛选。 2) “新增统计”模块: 再新建一个对话框创建一个新类,给每个编辑框绑定变量,在人事管理系统view.cpp中添加自拟头文件 3) “数据删除模块” 显示目前数据内容,点击删除按钮将该职员全部信息删除。 4) “排序统计”模块 显示目前数据内容,点击排序按钮将目前表中全部职员信息从小到大排序。 5.模块框架图 人事管理系统 该职员信息消失 排序统计 排序数据 显示目前编号最小职员信息 删除数据 删除统计 保留职员信息 填写信息 增加统计 筛选统计 输入编号 显示职员信息 三、系统设计 人事管理系统.mdb表初始化结果 1.界面设计 运行时主界面 l 增加统计界面 增加信息成功: l 筛选界面 筛选成功: l 排序和删除界面 删除了李英信息 排序功效: 2、程序设计 经过主窗体调用其它窗体,在调用增加统计时要弹出新对话框,一边输入要添加信息。筛选统计时,要实现在创建access数据库时打开索引功效。这么再点击筛选统计是只要在新对话框中输入关键词(职员编号)便可。 四、课程设计问题分析和试验总结 此次人事管理系统设计,关键是利用MFC操作,以让程序愈加便于操作和使用,这其中也出现了不少问题,走了很多弯路,比如: 1. 创建数据源,用控制面板设置数据源文件时老是犯错。 处理方法:先在access中创建人事管理系统表,然后在控制面板中标准添加指定数据源。 2. 在写对话框类组员函数时总出现大小写错误,造成程序编译不能经过。 处理措施:仔细检验源代码,利用错误提醒更正。 3. 在编写子对话框组员函数时,编译老提醒该类未申明。 处理措施:原因是未在view.cpp文件中添加对应类头文件,所以在对应位置添加头文件。 4. 在添加函数中,发觉试验指导步骤结果增加统计函数运行结果不能正常添加统计。 处理措施:点击增加函数时,应该弹出输入信息对话框,方便新增职员信息,新增完成后,点击确定完成添加操作。上网查阅资料后,完善了增加函数代码,并新增了一个对话框和对应类CDlgAdd,使其能完成其指定功效。 本程序部分源代码: // 人事管理系统View.cpp : implementation of the CMyView class // #include "stdafx.h" #include "人事管理系统.h" #include "DlgQuery.h" #include "DlgAdd.h" #include "人事管理系统Set.h" #include "人事管理系统Doc.h" #include "人事管理系统View.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMyView IMPLEMENT_DYNCREATE(CMyView, CRecordView) BEGIN_MESSAGE_MAP(CMyView, CRecordView) //{{AFX_MSG_MAP(CMyView) ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd) ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel) ON_BN_CLICKED(IDC_BUTTON_FILTER, OnButtonFilter) ON_BN_CLICKED(IDC_BUTTON_SORT, OnButtonSort) //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMyView construction/destruction CMyView::CMyView() : CRecordView(CMyView::IDD) { //{{AFX_DATA_INIT(CMyView) m_pSet = NULL; m_gzsj = 0; //}}AFX_DATA_INIT // TODO: add construction code here } CMyView::~CMyView() { } void CMyView::DoDataExchange(CDataExchange* pDX) { CRecordView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMyView) DDX_FieldText(pDX, IDC_EDIT_JBGZ, m_pSet->m_jbgz, m_pSet); DDX_FieldText(pDX, IDC_EDIT_JL, m_pSet->m_jl, m_pSet); DDX_FieldText(pDX, IDC_EDIT_SZBM, m_pSet->m_szbm, m_pSet); DDX_FieldText(pDX, IDC_EDIT_ZC, m_pSet->m_zc, m_pSet); DDX_FieldText(pDX, IDC_EDIT_ZGBH, m_pSet->m_zgbh, m_pSet); DDX_FieldText(pDX, IDC_EDIT_ZGNL, m_pSet->m_zgnl, m_pSet); DDX_FieldText(pDX, IDC_EDIT_ZGXB, m_pSet->m_zgxb, m_pSet); DDX_FieldText(pDX, IDC_EDIT_ZGXM, m_pSet->m_zgxm, m_pSet); DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_GZSJ, m_pSet->m_gzsj); //}}AFX_DATA_MAP } BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CRecordView::PreCreateWindow(cs); } void CMyView::OnInitialUpdate() { m_pSet = &GetDocument()->m_mySet; CRecordView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); } ///////////////////////////////////////////////////////////////////////////// // CMyView printing BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo) { // default preparation return DoPreparePrinting(pInfo); } void CMyView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add extra initialization before printing } void CMyView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add cleanup after printing } ///////////////////////////////////////////////////////////////////////////// // CMyView diagnostics #ifdef _DEBUG void CMyView::AssertValid() const { CRecordView::AssertValid(); } void CMyView::Dump(CDumpContext& dc) const { CRecordView::Dump(dc); } CMyDoc* CMyView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc))); return (CMyDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMyView database support CRecordset* CMyView::OnGetRecordset() { return m_pSet; } ///////////////////////////////////////////////////////////////////////////// // CMyView message handlers void CMyView::OnButtonAdd() { // TODO: Add your control notification handler code here /* m_pSet->AddNew(); m_pSet->Update();//更新统计集 m_pSet->Requery();//重新提取数据 m_pSet->MoveLast();//移动下一条统计 UpdateData(FALSE);//更新视图*/ try { CDlgAdd DlgAdd; if(DlgAdd.DoModal()==IDOK)//"模式窗口方法打开,结束前不能操纵父窗口" { m_pSet->AddNew(); m_pSet->m_zgbh=DlgAdd.m_zgbh; m_pSet->m_zgxm=DlgAdd.m_zgxm; m_pSet->m_zgnl=DlgAdd.m_zgnl; m_pSet->m_zgxb=DlgAdd.m_zgxb; m_pSet->m_zc=DlgAdd.m_zc; m_pSet->m_szbm=DlgAdd.m_szbm; m_pSet->m_jbgz=DlgAdd.m_jbgz; m_pSet->m_gzsj=DlgAdd.m_gzsj; m_pSet->m_jl=DlgAdd.m_jl; m_pSet->Update();//更新统计集 m_pSet->Requery();//重新提取统计集 m_pSet->MoveLast();//移动下一条统计 UpdateData(FALSE);//更新视图 } } catch (CDBException* e) { MessageBox(e->m_strError);//对于异常信息处理,这里是简单输犯错误信息 } } void CMyView::OnButtonDel() { // TODO: Add your control notification handler code here m_pSet->Delete(); m_pSet->MoveNext(); if(m_pSet->IsEOF()) m_pSet->MoveLast(); if(m_pSet->IsBOF()) m_pSet->SetFieldNull(NULL); UpdateData(FALSE); } void CMyView::OnButtonFilter() { // TODO: Add your control notification handler code here CDlgQuery Dlgquery; CString value; if(Dlgquery.DoModal()==IDOK)//"模式窗口方法打开,结束前不能操纵父窗口" { value="职员编号=+"+Dlgquery.m_query+""; m_pSet->m_strFilter=value; m_pSet->Requery(); UpdateData(FALSE); } } void CMyView::OnButtonSort() { // TODO: Add your control notification handler code here m_pSet->m_strSort="职员编号"; m_pSet->Requery(); UpdateData(FALSE); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服