[精品论文]C++课程设计论文 公司人事管理系统_第1页
[精品论文]C++课程设计论文 公司人事管理系统_第2页
[精品论文]C++课程设计论文 公司人事管理系统_第3页
[精品论文]C++课程设计论文 公司人事管理系统_第4页
[精品论文]C++课程设计论文 公司人事管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计课程定做 Q*Q=1714879127 毕业设计课程定做 Q*Q=1714879127 VC+ 课程设计论文 公司人事管理系统 学生姓名: * 学 号: * 年级专业: * * 班 级: *班 指导老师: * 学 院: *学院 地点* 提交日期:*年*月 信息与计算科学学院 湖南科技大学课程设计论文2 目 录 1 前言3 2 需求分析3 3 概要设计4 3.1 系统功能模块设计.4 3.2 流程图 5 3.3程序运行平台.5 4 详细设计6 4.1.数据的存储 6 4.2模块分析.6 4.3 整体界面的实现.6 4.4 系统登录的实现 8 4.5 添加.查询.删除和修改记录的实现 .13 5 测试分析.19 6 心得体会.20 参考文献.20 致 谢.20 信息与计算科学学院 湖南科技大学课程设计论文3 公司人员信息管理系统 (湖南科技大学 中国 湘潭 0907020405) 摘 要 本次课程设计任务是通过编写一个公司人员信息管理系统,学习用 Visual C+ 6.0(MFC)开发简单的管理系统。采用 Visual C+ 6.0 软件为主要开发工具。 本系统主要完成对公司员工情况和公司信息的管理,包括人员信息的输入、输出、 添加、删除等。系统还可以完成对各类信息的浏览、查询、添加、删除、修改、等功 能。 由于我们还没有学习数据库,所以在有关大量人员信息存储时,次系统显得心有 余而力不足、当然我也能让他能够储存较多的信息,可是最后那些信息还是有限的。 系统的核心是引用 I/O 流和文本处理来存储和修改公司人员的信息联系,每一个 动作都可能影响到其它的功能,还有数据的改变,当完成对数据的操作时系统会自动 地完成数据库的修改。 关键字:VC+6.0;公司人员信息管理系统;模块化设计;i/O 流。 1 前言 使用计算机管理人员信息,不但可以大量节省时间、人力、财力、物力,而 且能更全面有效地掌握公司的基本情况,及时获取最新而又准确的资料和信息。 此课程设计就是这样一个管理公司人员信息的系统,其功能与实现方面有比较 好的的针对性和实用性。软件是在 Visual c+平台上开发的,采用 i/o 流文本 存储数据和信息,作为虚拟的数据库。利用 i/o 流文本操作语言,能比较方便 地实现对人员信息的操作与管理,其中有较好的人机交换功能。 系统登陆功能是系统的核心之一,在系统中有用户注册,用户注销,用户 退出,其目的都是为了方便用户使用。系统有完整的用户对比功能,检查是否 用户名已被注册。 (这些功能中的某些功能可能在 1.0 版中不会实现,不过本公 司会在以后的升级中慢慢实现,如你们在用的过程中发现了有不太好的地方请 你发邮件给我。*) 信息与计算科学学院 湖南科技大学课程设计论文4 2 需求分析 Visual C+6.0 的 MFC 提供了大量的类库函数强大支持。开发一个人员信 息管理系统,可以实现人员信息的管理。并提供新信息输入,现有公司人员信 息查询功能,对记录的删除修改等工作。 公司人员管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据 信息的建立和保存以及前端应用程序的开发两个方面。对于前者要求建立起数 据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完 备,易使用等特点。 3 概要设计 3.13.1 系统功能模块设计系统功能模块设计 公司人员 管理系统 信息输入 信息输出 信息删除信息查询 密码确认 图 3-1 系统功能模块流程图 信息与计算科学学院 湖南科技大学课程设计论文5 1、信息输入: 输入公司职员的基本信息(本版本目前只可以输入 1000 个人的信息) 。 2、信息输出: 输出公司所有职员的信息。 3、信息查询: 查询制定人员的信息。 4、信息删除: 删除指定人员的信息。 3.23.2 流程图流程图 图 3-2 功能流程图 信息与计算科学学院 湖南科技大学课程设计论文6 3.33.3 程序运行平台程序运行平台 开发工具: Visual C+ 6.0 运行环境:Windows XP、Windows7 及以上平台(当然 Windows xp 一下的平 台也不一定不能用,只是我们现在资源有限没有测试) 4 详细设计 .数据的存储数据的存储 根据上面所介绍的本系统的各个模块及其需要实现的功能,由于还没有学习 数据库,所以我们只能应用 i/o 流文本操作来存储信息: 1密码表 用于保存用户账户的基本信息,系统通过该表对账户的用户名和密码的基本 信息进行查询,并比较用户名和密码是否正确。(把密码和用户名各用一行储存, 在取出验证密码和用户名是否匹配时就能更好的操作) 2公司人员信息表 用于保存公司职员的基本信息。 4.24.2模块分析模块分析 1. 显示模块 显示模块将输出所有职员的主要资料 。 2. 查找模块 首先由用户输入要查找的职员姓名,然后系统用查找函数查找,然后系统就调用 输出函数,输出所查找的职员资料。 3. 删除模块 首先由用户输入要删除的单个职员姓名,然后调用删除函数,删除该名职员的资料。 4. 密码登陆部分 用来实现用户的登陆,一确保系统的安全。 信息与计算科学学院 湖南科技大学课程设计论文7 4.34.3 整体界面的实现整体界面的实现 图 4-1 系统主界面 程序的具体实现部分如程序清单如下所示:程序的具体实现部分如程序清单如下所示: 4.44.4 系统登录的实现系统登录的实现 信息与计算科学学院 湖南科技大学课程设计论文8 CMy0907020405View:CMy0907020405View()/用户登陆 CBitmap bmp; /图片处理 / bmp.LoadBitmap(IDB_BITMAP5); / m_brushBackground.CreatePatternBrush( / TODO: add construction code here mima ed; CString aaa; if(ed.DoModal()=IDCANCEL)/直接取消登录退出系统 aaa=“您确定要退出此系统吗?“; if(MB_QUERY(aaa)=IDYES) exit(0); int i=0; while(ed.m_mima!=“0907020405“)/验证密码,输入密码错误超过三次就退出系统 i+; MB_ERROR(“密码错误! 请重新输入!“); MB_INFO(“密码提示:0907020405“); if(ed.DoModal()=IDCANCEL|i=2) if(i=2) MB_ERROR(“对不起,您的输入的错误次数超过 3 次!系统将自动退出!“); exit(0); MB_INFO(“欢迎进入公司人员管理系统!“); (我们把实现登陆代码写在构造函数里面,我们是要在此之前完成用于登陆的验证工作, 信息与计算科学学院 湖南科技大学课程设计论文9 ) 图 4-2 系统登录的实现 4.54.5 输入添加输入添加. .查询查询. .删除和修改记录的实现删除和修改记录的实现 信息输入对话框 void CMy0907020405View:Onxinxishuru()/信息输入 manager m1;声明类对象 technician t1; salesmanager sm1; salesman s1; vector vchar;声明容器指针 vchar.push_back( vchar.push_back( 信息与计算科学学院 湖南科技大学课程设计论文10 vchar.push_back( vchar.push_back( employee ed; if(ed.DoModal()=IDOK) vector vread; vread.push_back(ed.m_JLname); vread.push_back(ed.m_JSYname); vread.push_back(ed.m_XSJLname); vread.push_back(ed.m_TXYname); int i; for(i=0;iSetName(char*) (LPCTSTR)vreadi);/设置姓名 vchari-promote(i);/升级 t1.SetworkHours(ed.m_GZSSnum); /设置工作时间 sm1.Setsales(ed.m_XSEnum);/设置本月的销售总额 s1.Setsales(ed.m_TXYnum);/设置本月销售额 ofstream ofile(“employee.txt“,ios:app);/创建一个输出文件流对象 for(i=0;ipay(); /计算月薪 ofileGetName()“, 编号:“GetindividualEmpNo() “, 级别:“Getgrade()“级, 本月工资“GetaccumPay() endl; 信息与计算科学学院 湖南科技大学课程设计论文11 ofile.close(); MB_INFO(“信息存储完毕!“); else MB_ERROR(“信息没存储并已退出!“); class FileException 定义抛掷错误类 public: FileException() : message( “File is not created !“ ) const char *what() const return message; private: const char *message; ; 人员信息输出后的效果图 void CMy0907020405View:Onxinxishuchu() / TODO: Add your command handler code here ifstream infile(“employee.txt“,ios:in); /创建一个输入文件流对象 try 判断文件是否打开如果没有就返回主系统 if (!infile) 信息与计算科学学院 湖南科技大学课程设计论文12 throw FileException(); catch ( FileException fe ) / exception handler MB_INFO(fe.what(); /“ fe.what() n; exit(0); CClientDC dc(this); char line101; for(int i=0;iOnInitialUpdate(); 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); 信息与计算科学学院 湖南科技大学课程设计论文14 xinxichaxun ed; /申明查询对话框 if(ed.DoModal()=IDOK)/调用查询对话框 char line10000101; BOOL flag=FALSE; CClientDC dc(this); for(int i=0;iOnInitialUpdate(); 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); xinxishanchu ed; int n=0;/声明查询对话框对象 if(ed.DoModal()=IDOK)/调用查询对话框 char line100101; int a100; 信息与计算科学学院 湖南科技大学课程设计论文16 bool flag=FALSE; for(int i=0;i100;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_xxshanchu)/与查询名比较 ai=i; flag=TRUE; n+; if(flag=FALSE) MB_ERROR(“并无此人!“); return; ofstream ofile(“employee.txt“,ios:out); CString aa,ss=“要删除的人员已找到,是否删除?“; for(int j=0;j4;j+) if(j!=a1 else if(MB_QUERY(ss)=IDNO) ofilelinejendl; 信息与计算科学学院 湖南科技大学课程设计论文17 ofile.close(); MB_INFO(“信息已删除!“); 5 测试分析 经过测试,该系统能够较好地完成需求分析中的任务,如数据的添加、删 除、查询,其中,修改可通过先进行查询后再修改,还有特色模块用户注册功 能未实现登陆就在写程序的时候就把密码定下来了,在以后的努力下我们会完 成用户注册,与用于用自己注册的用户名和密码登陆。有些方面仍然存在很多 问题,如对数据的输入方面没有太多的限制,这可能导致用户输出时只能找到 前一 1000 个人的信息。对系统查询设置也不太灵活,系统的可扩展性还是可以 的。功能的实现也不太完善。代码的处理也不是很精简,有待进一步改善。 并且没有大型的支持大容量数据的后台,只有利用文本 i/o 处理来实现所 以数据的保密性和安全性不高,希望以后学习数据库后开发出强大的后台实现 公司人员信息的管理。 6 心得体会 经过几个星期的设计和开发,系统基本开发完毕。在本次课程设计中困难 遇到不少,比如文本文件的操作,i/o 流,string,Cstring 类,容器类相关的 成员函数,全局参数的传递等。都是在百度上查找到的,并且请教了上届的学 长学姐,解决了大部分问题。由于设计时间较短, (正好又要考四级了)所以该 系统还有许多不尽如人意的地方,比如用户界面不够美观,功能不够完善等多 方面问题。 在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分 信息与计算科学学院 湖南科技大学课程设计论文18 析的重要性,了解了一个系统的制作流程,当我们自己了解了制作流程的时候 我们就能节省更多的时间。从功能分析到功能模块分析、与其他系统的关系, 再到后台数据存储设计及各功能模块的创建都需要从整体上考虑设计。这些都 有待以后进一步改进。通过实践对于我以后的学习是一笔不小的财富!特别是 自己编的函数用户注册模块。希望在以后数据库系统设计中能开发出更强大的 系统。 本次实验设计让我体会最深刻的是我没每做完一步我们就要去调试,不要 等到最后一起调试,那样的话有错误我们改起来就更加困难了。同时我也能体 会到以前老师说的话了我们做程序设计的人在做事方面我们会有一定的安排, 什么事情我们在什么时候完成。还有一点是在自己不会的时候我们要学会用网 上和图书馆里面的学习资料。其中最重要的还是要去图书馆找资料,那里面几 乎有我们现阶段所要用的所有资料。 参考文献 1.杨永国. Visual C+ 教程从基础到实际. 电子工业初版社 致 谢 一个学期的 VC+课程学习,让我对 VC 有了一定程度上的认识。了解了 VC 的发展历史,熟悉了 VC 语言的基础知识,明白了 VC 的基本语法规则,可以运 用 VC 来完成简单程序的编写和调试,实现预定的功能。 这次除在李老师的巨大帮助之外,师兄和师姐以及班上同学也给予了很大的 帮助,我们在一起探讨,共同解决遇到的问题,这让我在开发中少走了许多弯 路。在此我由衷地感谢他们! 附录附录: 相关源代码 /employee.h/employee 类的声明部分 class employeem protected: char name20;/姓名 信息与计算科学学院 湖南科技大学课程设计论文19 int individualEmpNo; /个人编号 int grade; /级别 float accumPay;/月薪总额 static int employeeNo;/本公司职员编号目前最大值 public: employeem();/构造函数 employeem(); /析构函数 virtual void pay()=0;/计算月薪函数(纯虚函数) virtual void promote(int increment=0); /升级函数(虚函数) void SetName(char *); /设置姓名函数 char * GetName(); /提取姓名函数 int GetindividualEmpNo(); /提取编号函数 int Getgrade(); /提取级别函数 float GetaccumPay(); /提取月薪函数 ; class technician:public employeem/兼职技术人员类 private: float hourlyRate; /每小时酬金 int workHours;/当月工作时数 public: technician(); /构造函数 void SetworkHours(int wh); /设置工作时数函数 void pay();/计算月薪函数 void promote(int);/升级函数 ; class salesman:virtual public employeem/兼职推销员类 protected: float CommRate;/按销售额提取酬金的百分比 float sales;/当月销售额 public: salesman();/构造函数 void Setsales(float sl); /设置销售额函数 void pay();/计算月薪函数 void promote(int);/升级函数 ; class manager:virtual public employeem /经理类 protected: float monthlyPay; /固定月薪数 信息与计算科学学院 湖南科技大学课程设计论文20 public: manager(); /构造函数 void pay();/计算月薪函数 void promote(int);/升级函数 ; class salesmanager:public manager,public salesman /销售经理类 public: salesmanager();/构造函数 void pay();/计算月薪函数 void promote(int);/升级函数 ; /employee.cpp/employee 类的实现部分 #include “stdafx.h“ #include #include #include“employeet.h“ using namespace std; int employeem:employeeNo=1000; /员工编号基数为 1000 employeem:employeem() individualEmpNo=employeeNo+; /新输入的员工编号为目前最大编号加 1 grade=1;/级别初值为 1 accumPay=0.0;/月薪总额初值为 0 employeem:employeem() void employeem:promote(int increment) grade+=increment; /升级,提升的级数由 increment 指定 void employeem:SetName(char* names) strcpy(name,names); /设置姓名 char* employeem:GetName() return name; /提取成员姓名 int employeem:GetindividualEmpNo() return individualEmpNo; /提取成员编号 int employeem:Getgrade() 信息与计算科学学院 湖南

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论