小型公司工资管理系统设计c课程设计.doc
《小型公司工资管理系统设计c课程设计.doc》由会员分享,可在线阅读,更多相关《小型公司工资管理系统设计c课程设计.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录一、课程设计目的.1二、课程设计内容.1 1、题目及简介.1 2、设计说明.1 3、程序设计.1 (1)程序流程图.1 (2)程序代码.2三、课程设计总结.15参考文献.15一、 课程设计目的(1) 要求学生达到熟练掌握c+语言的基本知识和技能;(2) 基本掌握面向对象程序设计的基础思路和方法;(3) 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。二、 课程设计内容1、题目及简介(1) 设计题目:小型公司工资管理系统设计(2) 简介:公司主要有4类人员:经理,技术员,销售员,销售经理。要求存储这些人的职工号,姓名,月工资,岗位,年龄,性别等信息。工资的计算方法:经理:固定
2、月薪为8000;技术员:工作时间*小是工资(100元每小时);销售员:销售额*4%提成;销售经理:底薪(5000)+所辖部门销售额总额*0.5%;要求;1) 输入数据要求每类人员不能少于4人,并按一下格式输出:职员号 姓名 性别 年龄 岗位 工资 排名 及某销售经理管理所辖部门各销售员的业绩及自己的工资表:职员号 姓名 销售额 销售额合计。2)总体设计,要有一个菜单,用于选择各项功能,其中(1)数据录入:输入各种数据;(2)数据统计:各销售经理的工资计算及最终按工资进行的冒泡排序;(3)数据打印:打印上述表格;(4)退出:退出本系统;2设计说明充分利用了类的继承与派生的知识,先定义了一个雇员类
3、Employee,由雇员类公有派生出技术员类Tech,销售员类Seller,经理类Manager,由销售员类Seller,经理类Manager公有派生出销售经理类XManager。把基类都定义为虚基类。通过基类去写的派生类就可以调基类的公有成员。利用for循环把经理数据,技术员数据,销售员数据,销售经理数据输入,利用冒泡排序法把各销售经理的资按升序排列。利用switch进行选择系统进行的工作。在主菜单中进行调用各函数,从而实现系统各功能的运行。3程序设计(1)程序流程图雇员类技术员类经理类销售员类类销售经理类开始主函数输入ii=1录入i=2统计i=3打印i=4退出InputMenu()输入ii
4、=1Manager类i=2Tech类i=3Seller类i=4XManager类i=5返回结束(2)程序代码#include#include#includeclass Employee/雇员类protected: int num; int age; char name10; double income; char sex;public: virtual void Set() coutname; coutsex; coutage; void Get() coutendl; coutsetw(10)num; int n=10-strlen(name); for(int i=0;in;i+) cou
5、t ; coutname sex setw(10)agesetw(10)incomeendl;class Tech:virtual public Employee/技术员类protected: double hour; double per;public: void Set() coutnum; coutendl; Employee:Set(); coutendl; couthour; per=100; income=hour*per;class Seller: virtual public Employee/销售员类protected: double salary;/销售额 int ss;/
6、所属经理编号public: double Gets() return salary; void Set() coutnum; Employee:Set(); coutsalary; coutss; income=salary*0.04; void Get1() int n=10-strlen(name); coutsetw(12)num; for(int i=0;in;i+) cout ; coutnamesetw(12)salaryendl;class Manager:virtual public Employee/经理类protected:public: void Set() coutnu
7、m; Employee:Set(); income=8000;class Xmanager:virtual public Manager,public Seller/销售经理类protected: Seller c1;/销售员 Seller c2;/销售员 double totals;/销售总额public: double returnt() return totals; void Setc() c1.Set(); coutendl; c2.Set(); coutendl; void Set() coutnum; Employee:Set(); totals=c1.Gets()+c2.Gets
8、(); income=5000+totals*0.005; void Getx() coutendl; coutsetw(10)num; int n=10-strlen(name); for(int i=0;in;i+) cout ; coutname sex setw(10)agesetw(10)incomeendl; void Get1() cout职工编号num销售经理name下属销售员的业绩为:endl; coutendl; cout 职工号 姓名 销售额 endl; coutendl; c1.Get1(); coutendl; c2.Get1(); coutendl; cout销售额
9、总计:setw(23)totals endl; coutendl; void Getc() c1.Get(); c2.Get();void tou()/输出表格头部coutendl;cout 职工号 姓名 性别 年龄 工资 endl;void wei()/输出表格尾部coutendl; Manager A4; /定义全局对象Tech B4;Xmanager D4;int i; /变量int InputManager()for(i=0;i4;i+) Ai.Set();coutendl;cout-endl;return 0;int InputTech ()for(i=0;i4;i+) Bi.Set
10、();coutendl;cout-endl;return 0;int InputSeller()for(i=0;i4;i+) Di.Setc();coutendl;cout-endl;return 0;int InputXManager()for(i=0;i4;i+) Di.Set();coutendl;cout-endl;return 0;int fanhui()/冒泡排序法 for(int pass=1;pass4;pass+) for(i=0;i4-pass;i+) if(Di.returnt()Di+1.returnt() Xmanager temp; temp=Di; Di=Di+1
11、; Di+1=temp;return 0;int IntputMenu() cout 小型公司工资管理系统endl; cout endl; cout 请选择您所需要的操作 endl; cout 经理数据输入 : 1,并按回车键 endl; cout 技术员数据输入 : 2,并按回车键 endl; cout 销售员数据输入 : 3,并按回车键 endl; cout 销售经理数据输入: 4,并按回车键 endl; cout 返回上一层 : 5,并按回车 endl; cout endl; couti;switch(i) case 1:InputManager(); break;case 2:Inpu
12、tTech (); break;case 3:InputSeller();break; case 4:InputXManager();break;case 5:fanhui();return 0; break;return 1;int StatisticMenu()/数据统计for(i=0;i4;i+) Di.Get1();coutendl; coutendl; cout销售经理按工资排序为:endl; tou(); for(i=0;i4;i+) Di.Getx(); wei();return 0;int PrintMenu()cout请等待.endl; cout职工基本情况一览表如下:end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 公司 工资管理 系统 设计 课程设计
限制150内