欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    公司人员信息管理系统课程设计论文.doc

    • 资源ID:3789964       资源大小:1.79MB        全文页数:35页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    公司人员信息管理系统课程设计论文.doc

    VC+ 课程设计报告公司人事管理系统学生姓名: 学 号: 年级专业:2007级信息与计算科学班 级: 指导老师: 学 院:数学与计算科学学院 目 录1 前言32 需求分析43 概要设计43.1系统功能模块设计43.2 流程图53.3程序运行平台64详细设计64.1公司人员信息类的设计64.2 数据的存储94.3模块详细分析94.4 整体界面的实现104.5 系统登录的实现124.6 添加.查询.删除和修改记录的实现184.7(特色)用户注册的实现275 测试分析326 心得体会32参考文献33致 谢33公司人员信息管理系统摘 要本次课程设计任务是通过编写一个公司人员信息管理系统,学习用Visual C+ 6.0开发简单的管理系统。采用Visual C+ 6.0软件为主要开发工具。本系统主要完成对公司员工情况和公司信息的管理,包括人员信息的添加、修改、删除等。系统还可以完成对各类信息的浏览、查询、添加、删除、修改、等功能。由于我们还没有学习数据库,所以在有关大量人员信息存储时,次系统显得心有余而力不足。 系统的核心是引用I/O流和文本处理来存储和修改公司人员的信息联系,每一个动作都可能影响到其它的功能,还有数据的改变,当完成对数据的操作时系统会自动地完成数据库的修改。关键字:VC+6.0;公司人员信息管理系统;模块化设计;i/O流;1 前言使用计算机管理人员信息,不但可以大量节省时间、人力、财力、物力,而且能更全面有效地掌握公司的基本情况,及时获取最新而又准确的资料和信息。此课程设计就是这样一个管理公司人员信息的系统,其功能与实现方面有比较好的的针对性和实用性。软件是在Visual c+平台上开发的,采用i/o流文本存储数据和信息,作为虚拟的数据库。利用i/o流文本操作语言,能比较方便地实现对人员信息的操作与管理。系统登陆功能是系统的核心之一,在系统中有用户注册,用户注销,用户退出,其目的都是为了方便用户使用。系统有完整的用户对比功能,检查是否用户名已被注册。2 需求分析Visual C+6.0的MFC提供了大量的类库函数强大支持。开发一个人员信息管理系统,可以实现人员信息的管理。并提供新信息输入,现有公司人员信息查询功能,对记录的删除修改等工作。公司人员管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据信息的建立和保存以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。3 概要设计公司人员管理系统的概要设计分成两部分,首先是简要介绍系统功能模块设计,其次是简要介绍流程图。3.1系统功能模块设计系统功能划分为九个模块,其流程图如图3-1。各模块功能简要介绍如下: 图3-1 系统功能模块流程图1、用户注册:添加一个系统账户,当输入的用户名未被注册且密码两次输入相同则注册成功。2、系统注销:可以注销当前用户,登陆另一个账户。3、系统退出:退出公司人员管理信息系统。4、信息输入:输入公司职员的基本信息。5、信息输出:输出公司所有职员的信息。6、信息查询:查询制定人员的信息。7、信息修改:修改指定人员的信息。8、信息删除:删除指定人员的信息。9、信息清空:清空所有人员的信息。3.2 流程图系统操作流程图如图3-2。图3-2 功能流程图3.3 程序运行平台开发工具: Visual C+运行环境:Windows 9x、Windows NT/2000、Windows XP4 详细设计公司人员管理系统的详细设计分成七部分,分别是公司人员信息类的设计、数据的存储、模块详细分析、整体界面的实现、系统登录的实现、添加.查询.删除和修改记录的实现以及(特色)用户注册的实现。下面分别加以介绍,其中某些部分会将具体代码列出。4.1.公司人员信息类的设计公司人员管理系统主要的人员信息主要分为技术员、销售员、经理以及销售经理等四类人员,为此设计了五个人员信息类分别是employee(作为基类)、technician、salesman、manager以及salesmanager,后四个类都公有地继承了employee。下面是上述类的设计,即各类的声明,放在了employee.h文件中,而其中所有成员函数的设计见附件。/employee.hclass employeeprotected:char name20;/姓名int individualEmpNo;/个人编号int grade;/级别float accumPay;/月薪总额static int employeeNo;/本公司职员编号目前最大值public:employee();/构造函数employee();/析构函数virtual void pay()=0;/计算月薪函数(纯虚函数)virtual void promote(int increment=0);/升级函数(虚函数)void SetName(char *); /设置姓名函数char * GetName(); /提取姓名函数int GetindividualEmpNo(); /提取编号函数int Getgrade(); /提取级别函数float GetaccumPay(); /提取月薪函数;class technician:public employee/兼职技术人员类private:float hourlyRate;/每小时酬金int workHours;/当月工作时数public:technician();/构造函数void SetworkHours(int wh); /设置工作时数函数void pay();/计算月薪函数void promote(int);/升级函数;class salesman:virtual public employee/兼职推销员类protected:float CommRate;/按销售额提取酬金的百分比float sales;/当月销售额public:salesman();/构造函数void Setsales(float sl); /设置销售额函数void pay();/计算月薪函数void promote(int);/升级函数;class manager:virtual public employee/经理类protected:float monthlyPay;/固定月薪数public:manager();/构造函数void pay();/计算月薪函数void promote(int);/升级函数;class salesmanager:public manager,public salesman /销售经理类public:salesmanager();/构造函数void pay();/计算月薪函数void promote(int);/升级函数;4.2.数据的存储 根据上面所介绍的本系统的各个模块及其需要实现的功能,由于还没有学习数据库,所以我们只能应用i/o流文本操作来存储信息:1密码表 用于保存用户账户的基本信息,系统通过该表对账户的用户名和密码的基本信息进行查询,并比较用户名和密码是否正确。2公司人员信息表 用于保存公司职员的基本信息。4.3模块详细分析1. 系统登录注册和注销系统开始运行就出现系统登录对话框,密码正确后才能进入主界面(默认用户名:金钊,密码为123),用户还可以注销,注册和退出功能。自己认为有特色的是注册功能,由于没有数据库做后台,只好多次重复i/o流操作,调用文本框。用来完成用户名的查找、对比,和用户的添加。2. 显示模块显示模块将输出所有职员的主要资料 。3. 修改模块首先由用户输入要修改的职员的姓名,然后系统用修改函数查找,显示该名职员的资料,然后系统提示用户输入需要修改的项目和新的资料。4. 查找模块首先由用户输入要查找的职员姓名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的职员资料。5. 删除模块首先由用户输入要删除的单个职员姓名,然后调用删除函数,删除该名职员的资料。6. 清空模块系统将会把所有职员的资料全部删除,将链表清空。4.4整体界面的实现系统使用VC+6.0的MFC提供的主对话框作为整体界面,添加了一个下拉菜单,菜单中列出了六个功能按钮,见图4-1所示。 图 4-1 系统主界面程序的具体实现部分放整个工程(MFC)的CMy0701_33App类中的成员函数InitInstance()中。具体代码清单如下所示: BOOL CMy0701_33App:InitInstance()CLoginDlg login;if(login.DoModal()=IDOK) /如果登录成功MB_INFO("欢迎进入公司人员信息管理系统!");/CMy0701_33App ed;/ed.OnAppAbout;AfxEnableControlContainer();/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove from the following/ the specific initialization routines you do not need.#ifdef _AFXDLLEnable3dControls();/ Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();/ Call this when linking to MFC statically#endif/ Change the registry key under which our settings are stored./ TODO: You should modify this string to be something appropriate/ such as the name of your company or organization.SetRegistryKey(_T("Local AppWizard-Generated Applications");LoadStdProfileSettings(); / Load standard INI file options (including MRU)/ Register the application's document templates. Document templates/ serve as the connection between documents, frame windows and views.CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CMy0701_33Doc),RUNTIME_CLASS(CMainFrame), / main SDI frame windowRUNTIME_CLASS(CMy0701_33View);AddDocTemplate(pDocTemplate);/ Parse command line for standard shell commands, DDE, file openCCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);/ Dispatch commands specified on the command lineif (!ProcessShellCommand(cmdInfo)return FALSE;/ The one and only window has been initialized, so show and update it.m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();return TRUE;else return false;4.5 系统登录的实现系统登录是设计了一个对话框,对应的对话框类名为CloginDlg。具体设计见图4-2以及相应的代码,代码清单放在了CloginDlg的成员函数OnOK()内。 图 4-2 系统登录的实现void CLoginDlg:OnOK() / TODO: Add extra validation hereCString username,password; /定义两个字符串变量m_strUserName.GetWindowText(username); /讲文本框中的值赋给username;m_strPassword.GetWindowText(password); /讲文本框中的值赋给password;/获得账号信息,从xinxi.txt中获取,确定账号个数ifstream fin;fin.open("xinxi.txt");if(fin.fail()MB_INFO("打开数据文件错误!文件已被损坏!");exit(1);string xinxigeshu,geshu;char lline100;fin.getline(lline,100);xinxigeshu=lline;int xx=xinxigeshu.find("共有",0);int yy=xinxigeshu.find("个账号",0);geshu=xinxigeshu.substr(xx+4,yy-1);int znum=atoi(geshu.c_str();fin.close();/比较账号和密码,来确定是否登录成功 fin.open("code.txt"); if(fin.fail()MB_ERROR("没有注册的用户!");exit(1);char line10101;string strname,strpassword;strname=username.GetBuffer(0);strpassword=password.GetBuffer(0);string str1,str2,stry;BOOL flag=false,flagname=false,flagpassword=false;for(int i=0;i<znum;i+)fin.getline(linei,100); /从文件读入人员信息stry=linei;int loc1,loc2;loc1=stry.find("用户名:",0);loc2=stry.find("密码:",0);str1=stry.substr(loc1+7,loc2-8);str2=stry.substr(loc2+5);if(!pare(strname) flagname=true;if(!pare(strpassword)flagpassword=true;if(flagname=true&&flagpassword=true)flag=true;if(flag=true)MB_INFO("登陆成功!");fileinfo info;info.setfileinfo(1);CDialog:OnOK();elseif(flagname=false)MB_WARNING("用户名不存在,请重新输入!");m_strPassword.SetWindowText("");m_strUserName.SetWindowText("");elseMB_WARNING("密码错误,请重新输入!");m_strPassword.SetWindowText("");/m_strUserName.SetWindowText("");fin.close();void CLoginDlg:OnCancel() / TODO: Add extra cleanup hereMB_QUERY("真的要退出系统吗?");CDialog:OnCancel();exit(1);BOOL CLoginDlg:OnEraseBkgnd(CDC* pDC) /设置对话框背景/ TODO: Add your message handler code here and/or call defaultCRect rect;CPaintDC dc(this);GetClientRect(&rect);CDC dcMem;dcMem.CreateCompatibleDC(&dc);CBitmap bmpBKG;bmpBKG.LoadBitmap(IDB_BITMAP_DENGLU);/载入位图,IDB_DLGBITMAP是在ResourceView里边导入的位图IDBITMAP bmp;bmpBKG.GetBitmap(&bmp);CBitmap* pOldBMP = dcMem.SelectObject(&bmpBKG);dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);return TRUE;4.6 添加.查询.删除和修改记录的实现这部分设计了四个对话框,见图4-3,对应的对话框类名分别为CEmployeeInfoDlg 、CqueryDlg、CshanchuDlg以及CxiugaiDlg1。具体设计见图4-2以及相应的代码,对应代码清单分别放在了CMy0701_33View的成员函数:OnInputData()、OnChaxunData()、OnShanchuData()以及OnXiugaiData()内。图 4-3 添加.删除和修改的实现void CMy0701_33View:OnInputData()/公司人员信息输入 access=finfo.getfileinfo();if(access=false)MB_INFO("请您先登录");CLoginDlg ed;if(ed.DoModal()=IDOK)goto loop1;else/ TODO: Add your command handler code hereloop1:manager m1;technician t1;salesmanager sm1;salesman s1;vector <employee *> vchar;vchar.push_back(&m1);vchar.push_back(&t1);vchar.push_back(&sm1);vchar.push_back(&s1);CEmployeeInfoDlg ed;if(ed.DoModal()=IDOK)vector<CString> vread; vread.push_back(ed.m_manager); vread.push_back(ed.m_technician); vread.push_back(ed.m_salesmanager); vread.push_back(ed.m_tuixy); int i; for(i=0;i<4;i+)vchari->SetName(char*) (LPCTSTR)vreadi);/设置姓名 vchari->promote(i);/升级 t1.SetworkHours(ed.m_hour); /设置工作时间 sm1.Setsales(ed.m_zsales);/设置本月的销售总额 s1.Setsales(ed.m_sales);/设置本月销售额 ofstream ofile("employee.txt",ios:out);/创建一个输出文件流对象 for(i=0;i<4;i+) vchari->pay(); /计算月薪 ofile<<vchari->GetName()<<", 编号:"<<vchari->GetindividualEmpNo() <<", 级别:"<<vchari->Getgrade()<<"级, 本月工资"<<vchari->GetaccumPay() <<endl; ofile.close();MB_INFO("信息已经储存!");else MB_INFO("信息没存储并已退出!");/定义判断类FileExceptionclass FileException public: FileException() : message( "File is not created!" ) const char *what() const return message; private: const char *message;/信息查询,查询指定人员的信息void CMy0701_33View:OnChaxunData() access=finfo.getfileinfo();if(access=false)MB_INFO("请您先登录");CLoginDlg ed;if(ed.DoModal()=IDOK)goto loop3;else/ TODO: Add your command handler code hereloop3:this->OnInitialUpdate();system("cls");ifstream infile("employee.txt",ios:in);/创建一个输入文件流对象try if (!infile) throw FileException(); catch ( FileException fe ) / exception handler MB_ERROR(fe.what(); /" << fe.what() << 'n' exit(0); CQueryDlg ed; /声明查询对话框对象if(ed.DoModal()=IDOK)/调用查询对话框 char line10101;BOOL flag=FALSE; for(int i=0;i<4;i+) CClientDC dc(this);infile.getline(linei,100); /从文件读入人员信息 CString c_str,name_str; c_str.Format("%s",linei); /转换为字符串 name_str=c_str.Left(c_str.Find(',');/提取姓名if(!name_str.Compare(ed.m_strQuery)/与查询名比较flag=TRUE;name_str+="已经查询到,要显示该人员信息吗?" if(MB_QUERY(name_str)=IDYES)dc.TextOut(120,100+30*i,c_str); if(flag=FALSE) MB_ERROR("对不起!没有这个人");infile.close();/修改已存在的人员的信息void CMy0701_33View:OnXiugaiData() access=finfo.getfileinfo();if(access=false)MB_INFO("请您先登录");CLoginDlg ed;if(ed.DoModal()=IDOK)goto loop4;else/ TODO: Add your command handler code hereloop4:CxiugaiDlg1 ed;if(ed.DoModal()=IDOK)this->OnInitialUpdate();ifstream infile("employee.txt",ios:in);tryif (!infile) throw FileException();catch ( FileException fe )MB_ERROR(fe.what();exit(0);char line4101;int j4;BOOL flag=FALSE;for(int i=0;i<4;i+)infile.getline(linei,100);CString c_str1,name_str;c_str1.Format("%s",linei);name_str=c_str1.Left(c_str1.Find(',');if(!name_str.Compare(ed.m_strxiuname1)flag=TRUE;ji=i;if(flag=FALSE) MB_ERROR("并无此人!");elseCxiugaiDlg ed;if(ed.DoModal()=IDOK)infile.close();ofstream ofile("employee.txt",ios:out);for(i=0;i<4;i+)if(i!=j0&&i!=j1&&i!=j2&&i!=j3)ofile<<linei<<endl;elseofile<<ed.m_strxiuname.GetBuffer(12)<<", 编号:"<<ed.m_strxiuno <<", 级别:"<<ed.m_strxiuji<<"级, 本月工资"<<ed.m_strxiugong <<endl;ofile.close();MB_INFO("信息已修改");elseMB_INFO("取消修改!"); else MB_INFO("取消修改!");/删除指定人员信息void CMy0701_33View:OnShanchuData() access=finfo.getfileinfo();if(access=false)MB_INFO("请您先登录");CLoginDlg ed;if(ed.DoModal()=IDOK)goto loop5;else/ TODO: Add your command handler code hereloop5:this->OnInitialUpdate();ifstream infile("employee.txt",ios:in);/创建一个输入文件流对象try if (!infile) throw FileException(); catch ( FileException fe ) / exception handler MB_INFO(fe.what(); /" << fe.what() << 'n' exit(0); CshanchuDlg ed; /声明删除对话框对象if(ed.DoModal()=IDOK)/调用删除对话框 char line4101;int a4;bool flag=FALSE; for(int i=0;i<4;i+)infile.getline(linei,100); /从文件读入人员信息 CString c_str,name_str; c_str.Format("%s",linei); /转换为字符串 name_str=c_str.Left(c_str.Find(',');/提取姓名if(!name_str.Compare(ed.m_strshancname)/与查询名比较ai=i;flag=TRUE;infile.close();if(flag=FALSE) MB_ERROR("并无此人!");return; ofstream ofile("employee.txt",ios:out);for(int j=0;j<4;j+)if(j!=a1&&j!=a2&&j!=a3&&j!=a0) ofile<<linej<<endl; ofile.close(); MB_INFO("此人信息已删除!");4.7(特色)用户注册的实现此部分对用户注册设计了一个对话框,见图4-4,对应的对话框类名为Czhuce,具体代码清单CMy0701_33View的成员函数OnZhuceinfo()中。图 4-4 年级成绩的实现待添加的隐藏文字内容2/特色函数,注册用户void CMy0701_33View:OnZhuceinfo() / TODO: Add your command handler code heresystem("cls");loop9:CZhuce ed;bool boolzhuce=fals

    注意事项

    本文(公司人员信息管理系统课程设计论文.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开