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

    C++课程设计报告公司人员信息管理系统.doc

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

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

    C++课程设计报告公司人员信息管理系统.doc

    北 华 航 天 工 业 学 院基于C+的面向对象程序设计实例课程设计报告报告题目: 公司人员信息管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术 作者所在班级: B09512 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 2010年6月 北华航天工业学院教务处制摘 要在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有好的产品和销售服务,还必须加强对公司内部的人员管理,以提高内部人员的凝聚力和积极性、提高工作效率等。本文利用Visual C+6.0编写程序,实现了用户对公司人员的编号、姓名、性别、部门。级别、工资等信息的管理操作。本系统主要有八个功能模块:到添加信息子系统、查询信息子系统、统计子系统、显示子系统、修改子系统、删除子系统、保存子系统和读取子系统。已经过全面的系统测试,能够很好的运行,达到了预期的效果。本系统主要实现了对四类人员的管理:经理管理、销售人员管理、技术人员管理、销售经理管理;主要运用了继承友元等编程方法来实现对这些人员的管理。关键词:系统设计 人员管理 信息 公司目 录第1章 绪 论11.1 课程设计的目的11.2 课程设计的背景和意义11.2.1 课程设计的背景11.2.2 课程设计的意义1第2章 需求分析22.1 问题描述2 2.2 功能描述2 2.3 问题的解决方案3第3章 系统设计43.1 数据设计43.1.1 类设计4 3.1.2 类之间的关系6 3.1.3 函数设计6 3.2 结构设计9 3.2.1 系统流程图9 3.2.2 界面设计12第4章 系统实现14 4.1 类实现14 4.2 函数实现25 4.3 主函数实现30第5章 系统测试325.1 模块测试325.2 课程设计过成中遇到的问题34总结35致谢36参考文献37第1章 绪论1.1 课程设计的目的(1)要求学生能够熟练掌握C+语言的基本知识和技能。(2)基本掌握面向对象程序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。1.2 课程设计的背景和意义1.2.1课程设计的背景1. 理论研究基础(1)C+在C的基础上增加了面向对象的机制。(2)充分运用面向对象机制中的继承性与多态性实现函数的设计。2. 技术层面的支持运用系统为C+面向对象程序设计提供的各种设计方法和VC+系统提供的库函数实现项目的开发。1.2.2 课程设计的意义通过设计此系统,熟练掌握C+语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,培养学生的动手操作能力,提高自主学艺能力,能够利用所学的基本知识和技能,进行简单应用程序设计。 第2章 需求分析2.1 问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪;技术人员按小时领取月薪;销售人员按其当月销售额的提成领取工资;销售经理既拿固定月薪也领取销售提成。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。2.2 功能要求(1)基本功能1) 添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。2) 查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;3) 显示功能:可显示当前系统中所有记录,每条记录占据一行。4) 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。6) 统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。(2)扩展功能在完成以上基本功能的基础上,可自行进行扩展或完善,例如: 1) 添加人员记录时,考虑各种数据的有效性。2)组合查询功能的实现。3)可按人员的某些信息进行排序,例如按工资进行排序等。4)对文件的读写使用二进制信息。2.3 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体及它们之间的关系; 3)根据问题描述,设计系统的类层次; 4)完成类层次中各个类的描述; 5)完成类中各个成员函数的定义; 6)完成系统的应用模块; 7)功能调试; 8)完成系统总结报告。第3章 系统设计3.1 数据设计3.1.1 类设计设计基类以派生出各个人员类:类名人员类 Person数据成员num name sex department grade wage编号 姓名 性别 部门 级别 工资成员函数获取姓名、获取编号、获取性别的函数 输入输出的虚函数表 3.1继承基类设计经理类:类名 经理类 Manager数据成员继承于Person类成员函数输入输出函数表 3.2根据经理类设计经理管理类: 类名 经理管理类 Man_administ 数据成员ManTMAX、top经历数组 总数 成员函数添加 修改 查询 统计 显示 删除 保存 读取表 3.3设计继承于基类的销售人员类: 类名 销售人员类 Sales 数据成员销售额 提成率和基类成员 成员函数获取销售额、提成率的函数 输入输出函数表 3.4根据销售人员类涉及销售人员管理类: 类名 销售人员管理类 Sal_administ 数据成员SalTMAX top 成员函数添加 修改 查询 统计 显示 删除 保存 读取表 3.5设计继承于基类的技术人员类: 类名 技术人员类 Technicist 数据成员 hour pay2 工作时间(小时) 薪水/小时 成员函数输入输出函数表 3.6根据技术人员类设计技术人员管理类: 类名 技术人员管理类 Tec_administ 数据成员TecTMAX top 成员函数添加 修改 查询 统计 显示 删除 保存 读取表 3.7根据经理类及销售人员类设计销售经理类: 类名 销售经理类 SalesManager 数据成员 pay1 工资 成员函数输入输出函数表 3.8根据销售经理类设计销售经理管理类: 类名 销售经理管理类 SalMan_administ 数据成员SalManTMAX top 成员函数添加 修改 查询 统计 显示 删除 保存 读取表 3.93.1.2 类之间的关系每一个人员类都是其相应人员管理类的友元类,以方便人员管理类对相应人员类的访问;每一个人员管理类也都是基类的友元类,以方便对编号姓名等数据成员的访问。即:Manager类是Man_administ类的友元类;Sales类是Sal_administ的友元类;SalesManager类是SalMan_administ的友元类;Technicist类是Tec_administ的友元类;Person类是Man_administ、Sal_administ、SalMan_administ、Tec_administ类的友元类3.1.3 函数设计 系统设计了五个函数:实现经理菜单、销售人员菜单、技术人员菜单、销售经理菜单的函数和实现主菜单的函数;其中各类人员管理菜单的函数基本相同,在此只给出经理菜单的函数算法如下: void ManMenu() Man_administ m;int choice;while(choice!=0)cout<< " n *经理管理* "<<endl;cout<<"+"<<endl;cout<<"| |"<<endl;cout<<"| 1.添加 2.查找 3.修改 4.统计 5.删除 6.显示 7.保存 8.读取 0=>退出 |"<<endl;cout<<"| |"<<endl;cout<<"+"<<endl;cout<<"n输入您要操作的选项:"cin>>choice;switch(choice)case 1:m.Add();break; case 2:m.Search();break; case 3:m.Edit();break; case 4:m.Total();break;case 5:m.Delete();break;case 6:m.Show();break;case 7:m.Save();break; case 8:m.Read();break;case 0:cout<<"退出成功!"<<endl;break;default:cout<<"无此选项 请重试!"<<endl;break; 实现主菜单的函数算法: int main() cout<<" *欢迎进入公司人员信息管理系统*"<<endl;int choice;docout<<" *主菜单*n"<<endl;cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;cout<<"| |"<<endl;cout<<"| 1 => 经理管理 2 => 销售人员管理 3 => 技术人员管理 4=> 销售经理管理 0 => 退出系统 |"<<endl;cout<<"| |"<<endl;cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;cout<<"n请输入您的选择:"cin>>choice;switch(choice)case 1:ManMenu();break; case 2:SalMenu();break; case 3:TecMenu();break;case 4:SalManMenu();break;case 0:cout<<"n您已安全退出系统."<<endl;break;default:cout<<"n没有此选项 请重选!"<<endl;break;while(choice!=0); cout<<"n *欢迎您下次再使用本系统!*"<<endl;return 0;3.2 结构设计3.2.1 系统流程图类的关系图:人员类经理类销售人员类技术人员类销售经理类图 3.1添加函数流程图:图 3.2输入信息编号是否存在添加成功 top+添加否是人员管理菜单人员管理菜单查询函数流程图:查询按编号查询按姓名查询输入编号输入姓名是否找到找到了不存在此人是否 图 3.3人员管理菜单 修改函数流程图:修改按姓名查找按编号查找否输入编号输入姓名是否存在找到了败找到了输入修改信息编号是否存在修改失败是是否 图 3.4修改成功人员管理菜单删除函数流程图:删除按编号找按姓名找输入姓名输入编号否是否存在删除失败是找到了确定删除取消确定删除成功图 3.53.2.2 界面设计 系统采用的主菜单图形样式,如图所示: 图 3.6选择相应的人员之后可进入该类人员的管理菜单选项,如图所示: 图 3.7 图 3.8 图 3.9 图 3.9每个菜单的子菜单项如图所示,实现这些界面主要用到了循环等方法。第4章 系统实现4.1 类实现定义人员类作为基类,包含各个人员类共有的数据局成员,同时定义输入输出函数为虚函数。class Personprotected: int num; string name; char sex; string department; string grade; float wage;public:Person(int n=0,string nam=" ",char s=' ',string dep=" ",string gra=" ",float w=0)num=n;name=nam;sex=s;department=dep;grade=gra;wage=w;int GetNum()return num;string GetName()return name;char GetSex()return sex; string GetDepartment()return department; string GetGrade()return grade; float GetWage()return wage; virtual void Input() virtual void Output();定义继承于基类的经理类,主要有输入输出函数。class Manager:virtual public Person public:Manager(int n=0,string nam="xxx",char s='x',string dep="xxx", string gra="xxx",float w=0):Person(n,nam,s,dep,gra,w) friend class Man_administ; virtual void Input()cout<<"编号:" cin>>num; cout<<"姓名:" cin>>name; cout<<"性别(男/m,女/f):" cin>>sex; while(sex!='f'&&sex!='m') cout<<"性别输入错误!请重新输入:" cin>>sex; cout<<"所在部门:" cin>>department; cout<<"级别:" cin>>grade; cout<<"固定工资:" cin>>wage; void Output() cout<<setw(6)<<num;cout<<setw(14)<<name; cout<<setw(10)<<sex;cout<<setw(15)<<department; cout<<setw(15)<<grade;cout<<setw(15)<<wage;定义经理管理类,包含添加、查询、修改、删除、统计、显示、保存、读取等函数,以实现对经理人员的管理class Man_administ private:Manager ManTMAX; int top; public:Man_administ()top=0; void Add(); void Show(); void Search(); void Edit(); void Delete(); void Total(); void Save(); void Read(); ;void Man_administ:Add() if(top>=TMAX) cout<<"人员已达上限,添加失败!"<<endl; return; Manager m;cout<<"n输入要添加经理的信息:"<<endl;m.Input(); for(int i=0;i<top;i+) if(m.GetNum()=Mani.GetNum()cout<<"该编号已经存在,添加失败!"<<endl;return;Mantop=m;top=top+1;cout<<"添加成功!"<<endl; void Man_administ:Search() if(top=0) cout<<"n当前记录为空!"<<endl;return; cout<<"n查找时:"<<endl; cout<<" _"<<endl; cout<<"| |"<<endl; cout<<"| 1.按编号查询 2.按姓名查询 |"<<endl; cout<<"|_|"<<endl; cout<<"n输入查找方式:" int choice; cin>>choice; switch(choice) case 1: int a; cout<<"n输入所找者编号:" cin>>a; for(int i=0;i<top;i+)if(Mani.GetNum()=a) cout<<"n找到了:"<<endl; Mani.Output();cout<<endl;return;cout<<"查无此人!"<<endl;break; case 2: string b; cout<<"n输入所找者姓名:" cin>>b; for(int i=0;i<top;i+) if(Mani.GetName()=b) cout<<"n找到了:"<<endl; Mani.Output(); cout<<endl; return; cout<<"查无此人!"<<endl;break; default:cout<<"无此选项 请重试!"<<endl;break;void Man_administ:Edit() if(top=0)cout<<"n当前记录为空!"<<endl;return; cout<<"n修改时:"<<endl; cout<<" _"<<endl; cout<<"| |"<<endl; cout<<"| 1.按编号查询 2.按姓名查询 |"<<endl; cout<<"|_|"<<endl; cout<<"n输入查找方式:" int choice; Manager m; cin>>choice; switch(choice) case 1: int a; cout<<"n输入所找者编号:" cin>>a; for(int i=0;i<top;i+)if(Mani.GetNum()=a)cout<<"n找到了:"<<endl; Mani.Output(); cout<<"n输入修改后的信息:"<<endl; m.Input(); for(i=0;i<top;i+) if(Mani.GetNum()=m.GetNum() cout<<"修改失败!"<<endl; return; Mani=m; cout<<"修改成功!"<<endl; return;cout<<"查无此人!"<<endl;break; case 2: string b; cout<<"n输入要修改者姓名:" cin>>b; for(int i=0;i<top;i+) if(Mani.GetName()=b) cout<<"n找到了:"<<endl; Mani.Output(); cout<<"n输入修改后的信息:"<<endl; m.Input(); for(i=0;i<top;i+) if(Mani.GetNum()=m.GetNum() cout<<"修改失败!"<<endl; return; Mani=m; cout<<"修改成功!"<<endl; return; cout<<"查无此人!"<<endl;break; default:cout<<"无此选项 请重试!"<<endl;break; void Man_administ:Delete() if(top=0) cout<<"n当前记录为空!"<<endl;return; cout<<"n删除时:"<<endl; cout<<" _"<<endl; cout<<"| |"<<endl; cout<<"| 1.按编号查询 2.按姓名查询 |"<<endl; cout<<"|_|"<<endl; cout<<"n输入查找方式:" int choice; cin>>choice; switch(choice) case 1: int a,x; cout<<"n输入要删除者编号:" cin>>a; for(int i=0;i<top;i+)if(Mani.GetNum()=a)cout<<"n找到了:"<<endl; Mani.Output(); cout<<"n确定要删除吗?"<<endl; cout<<" _ "<<endl;cout<<"| |"<<endl;cout<<"| 1.确定 2.取消 |"<<endl;cout<<"|_|"<<endl; cout<<"输入你的选择:"cin>>x;switch(x) case 1:while(i<=top-1) Mani=Mani+1; i+; top=top-1; cout<<"删除成功!"<<endl;break; case 2:cout<<"n删除取消!"<<endl; return;break; default:cout<<"n无此选项 请重试!"<<endl;break; return; cout<<"查无此人!"<<endl;break; case 2: string b; int y; cout<<"n输入要删除者姓名:" cin>>b; for(int i=0;i<top;i+) if(Mani.GetName()=b)cout<<"n找到了:"<<endl; Mani.Output(); cout<<"n确定要删除吗?"<<endl;cout<<" _ "<<endl;cout<<"| |"<<endl;cout<<"| 1.确定 2.取消 |"<<endl;cout<<"|_|"<<endl; cout<<"输入你的选择:"cin>>y;switch(y) case 1:while(i<=top-1) Mani=Mani+1; i+; top=top-1; cout<<"删除成功!"<<endl;break; case 2:cout<<"n删除取消!"<<endl;return;break; default:cout<<"n无此选项 请重试!"<<endl;break; return; cout<<"查无此人!"<<endl;break; default:cout<<"无此选项 请重试!"<<endl;break; void Man_administ:Total() cout<<"n共有经理: "<<top<<" 名!"<<endl; int x=0; int y=0; for(int i=0;i<top;i+) if(Mani.GetSex()='m') x=x+1;if(Mani.GetSex()='f') y=y+1;cout<<"其中男经理有: "<<x<<" 名!"<<endl;cout<<" 女经理有: "<<y<<" 名!"<<endl; void Man_administ:Sav

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开