小型公司工资管理系统实习报告.doc_第1页
小型公司工资管理系统实习报告.doc_第2页
小型公司工资管理系统实习报告.doc_第3页
小型公司工资管理系统实习报告.doc_第4页
小型公司工资管理系统实习报告.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

中国石油大学(华东)信息与控制工程学院程序设计实习报告小型公司工资管理系统设计专业班级:电子1403学号:14050203*姓名:张恩赐 实习时间:2015年7月6日7月10日2015年7月目录一、 实习内容-1二、 设计思路-2三、 程序调试过程中典型问题及解决方法-3四、 源程序代码-4五、 程序使用说明-23六、 总结及心得体会-一、实习内容1、设计目的:以程序设计语言(C/C+)为基础,针对具有一定难度的综合性题目,进行分析、编程、调试和运行,进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,是理论与实践相结合,提高分析问题、解决问题的能力。通过设计一个简单的小型公司工资管理系统,进一步熟悉C+中类的概念、类的封装、继承和多态的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程;逐步熟悉程序设计的方法,并养成良好的编程习惯。2、设计要求:(1)公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。(2)工资的计算方法:A.经理:固定月薪为8000;B.技术员:工作时间*小时工资(100元每小时);C.销售员:销售额*4%提成;D.销售经理:底薪(5000)+所辖部门销售额总额*0.5%;(3)输入数据要求每类人员不能少于2人,并按以下格式输出:职工号姓名性别年龄岗位工资排名(4)部门业绩表某销售经理所辖部门各销售员的业绩及自己的工资表(5)菜单要求:要有一个菜单,用于选择各项功能,其中1.数据录入:输入各种数据;2.数据统计:统计各种数据;3.数据打印:打印上述表格;4.数据备份:把相关数据写入文件;5.退出:退出本系统;二、设计思路1.4个主要功能设置为4个函数(指前四个功能);主体用swith()来实现功能选择;2.四个职员都具有姓名,性别,年龄三个属性,可以设置为一个基类包含这三个属性;这样这四类职员可设为派生类;3.按功能分步来做。 三、程序调试过程中典型问题及解决方法1.对象数组的设置,这里的对象数组的元素多少可以动态设置。后来了解到new运算符。2.受保护的成员数据的访问。在类中定义非空函数返回受保护的成员函数值;在需要变动的受保护成员函数(如销售经理的工资)的访问中,与前面不同的是在类中定义的非空函数加入了参数。3.表格因输入数据影响不会一直对齐。后来了解到setw()函数。四、源程序代码#include#include/stew()函数所在的头文件#include/文件输入输出流函数所在头文件#include/exit()退出函数所在头文件#includeusing namespace std;/用来接收用户指令int pi;class technology; /定义了指向类类型technology的数据的指针变量technology *t; class manager;manager *m;class salesman;salesman *sn;class salesmanager;salesmanager *sr;/我们定义了一个基类;该基类包含了公司4类人员的基本属性:姓名,性别,年龄。class employeepublic:void input_data_employee();string get_name()return name;char get_sex()return sex;int get_age()return age;protected:string name;char sex;int age;void employee:input_data_employee() coutname; coutsex; coutage;/定义技术人员类,继承方式为公有继承。class technology:public employeepublic:void input_data_tecnology_number();void input_data_tecnology_time();int get_tecnology_number( ) return tecnology_number;double get_tecnology_time() return tecnology_time;protected: int tecnology_number; double tecnology_time;void technology:input_data_tecnology_number()couttecnology_number;void technology:input_data_tecnology_time()couttecnology_time;/定义经理类,继承方式为公有继承class manager:public employeepublic:void input_data_manager_number();int get_manager_number()return manager_number;protected:int manager_number;void manager:input_data_manager_number()coutmanager_number;/定义销售人员类class salesman:public managerpublic: void input_data_salesman_number(); void input_data_salesman_saleavolume(); void input_data_salesman_classification(); int get_salesman_number() return salesman_number; double get_salesman_saleavolume() return salesman_saleavolume; int get_salesman_classification() return salesman_classification;protected:int salesman_number; double salesman_saleavolume; int salesman_classification; ;void salesman:input_data_salesman_number()coutsalesman_number;void salesman:input_data_salesman_saleavolume()coutsalesman_saleavolume;void salesman:input_data_salesman_classification()coutsalesman_classification;/定义销售经理类class salesmanager:public managerpublic: void input_data_salesmanager_number(); int get_salesmanager_number() return salesmanager_number; double get_salesmanager_salary() return salesmanager_salary; void caculation_salesmanager_salary(double caculation_salesmanager_salar) salesmanager_salary=caculation_salesmanager_salar;protected:int salesmanager_number;double salesmanager_salary;void salesmanager:input_data_salesmanager_number()coutsalesmanager_number;/第一部分:数据的输入/全局变量,用来储存各个人员的人数int technology_quantity,manager_quantity,salesman_quantity,salesmanager_quantity;/定义全局变量,用于判断是否已经输入数据int e=0;/各类人员人数输入函数void quantity()couttechnology_quantity;coutmanager_quantity;coutsalesman_quantity;coutsalesmanager_quantity;/输入各人员的相关信息函数void information() for(int i=0;itechnology_quantity;i+)ti.input_data_tecnology_number();ti.input_data_employee();ti.input_data_tecnology_time();cout-endl;for( i=0;imanager_quantity;i+) mi.input_data_manager_number(); mi.input_data_employee(); cout-endl; for( i=0;isalesman_quantity;i+) sni.input_data_salesman_number(); sni.input_data_employee(); sni.input_data_salesman_saleavolume(); sni.input_data_salesman_classification(); cout-endl; for( i=0;isalesmanager_quantity;i+) sri.input_data_salesmanager_number(); sri.input_data_employee(); cout-endl; / 开辟了用来存放对象数组的空间,并将对象数组的首地址返回给指针变量t/数据的输入void input_data() quantity(); t=new technologytechnology_quantity; m=new managermanager_quantity; sn=new salesmansalesman_quantity; sr=new salesmanagersalesmanager_quantity; information(); e=1; / / /第二部分:数据的统计 / /输出销售员的相关信息void out1()for(int j=0;jsalesmanager_quantity;j+)cout职工号为srj.get_salesmanager_number()销售经理srj.get_name()下属销售员的业绩为endl; coutendl; cout 职工号 姓名 销售额 endl; double sum=0; for(int k=0;ksalesman_quantity;k+) if(snk.get_salesman_classification()=srj.get_salesmanager_number() sum=sum+snk.get_salesman_saleavolume(); coutendl;coutsetw(10)snk.get_salesman_number()setw(10)snk.get_name()setw(10)snk.get_salesman_saleavolume()endl; coutendl;cout销售额总计setw(22) sumendl;coutendl; srj.caculation_salesmanager_salary(sum*0.005+5000);/冒泡法排序void sort()for(int i2=0;i2salesmanager_quantity;i2+)for(int j2=0;j2srj2.get_salesmanager_salary() salesmanager t1;t1=srj2+1;srj2+1=srj2;srj2=t1;/输出冒泡法排序后的结果void out2() cout销售经理按工资排序为:endl; coutendl; cout 职工号 姓名 性别 年龄 工资 endl;for(int k2=0;k2salesmanager_quantity;k2+) coutendl; coutsetw(10)srk2.get_salesmanager_number()setw(10)srk2.get_name()setw(10)srk2.get_sex()setw(10)srk2.get_age()setw(10)srk2.get_salesmanager_salary()endl; coutendl;cout-endl;void statistics_data() out1(); sort(); out2();/第三部分数据的打印/void print_data() cout职工基本情况一览表如下:endl; /技术员信息 cout技术员endl; coutendl; cout 职工号 姓名 性别 年龄 工资 endl;for(int k3=0;k3technology_quantity;k3+) coutendl; coutsetw(10)tk3.get_tecnology_number()setw(10)tk3.get_name()setw(10)tk3.get_sex()setw(10)tk3.get_age()setw(10)tk3.get_tecnology_time()*100endl; coutendl;cout-endl; /经理信息 cout经理endl; coutendl; cout 职工号 姓名 性别 年龄 工资 endl;for(int i3=0;i3manager_quantity;i3+) coutendl; coutsetw(10)mi3.get_manager_number()setw(10)mi3.get_name()setw(10)mi3.get_sex()setw(10)mi3.get_age()setw(10)8000endl; coutendl;cout-endl;/销售经理信息 cout销售经理endl; coutendl; cout 职工号 姓名 性别 年龄 工资 endl;for(int j3=0;j3salesmanager_quantity;j3+) coutendl; coutsetw(10)srj3.get_salesmanager_number()setw(10)srj3.get_name()setw(10)srj3.get_sex()setw(10)srj3.get_age()setw(10)srj3.get_salesmanager_salary()endl; coutendl;cout-endl;/销售员信息 cout销售员endl; coutendl; cout 职工号 姓名 性别 年龄 工资 所属经理编号endl;for(int n3=0;n3salesman_quantity;n3+) coutendl; coutsetw(10)snn3.get_salesman_number()setw(10)snn3.get_name()setw(10)snn3.get_sex()setw(10)snn3.get_age()setw(10)snn3.get_salesman_saleavolume()*0.04setw(12)snn3.get_salesman_classification()endl; coutendl;cout-endl;/第四部分数据备份/void backup_data() /定义对象outfile ofstream outfile; /对象执行动作 outfile.open(公司职工信息备份.txt); /输出数据 outfile职工基本情况一览表如下:endl; /技术员信息 outfile技术员endl; outfileendl; outfile 职工号 姓名 性别 年龄 工资 endl;for(int k3=0;k3technology_quantity;k3+) outfileendl; outfilesetw(10)tk3.get_tecnology_number()setw(10)tk3.get_name()setw(10)tk3.get_sex()setw(10)tk3.get_age()setw(10)tk3.get_tecnology_time()*100endl; outfileendl;outfile-endl; /经理信息 outfile经理endl; outfileendl;outfile 职工号 姓名 性别 年龄 工资 endl;for(int i3=0;i3manager_quantity;i3+) outfileendl; outfilesetw(10)mi3.get_manager_number()setw(10)mi3.get_name()setw(10)mi3.get_sex()setw(10)mi3.get_age()setw(10)8000endl; outfileendl;outfile-endl;/销售经理信息 outfile销售经理endl; outfileendl; outfile 职工号 姓名 性别 年龄 工资 endl;for(int j3=0;j3salesmanager_quantity;j3+) outfileendl; outfilesetw(10)srj3.get_salesmanager_number()setw(10)srj3.get_name()setw(10)srj3.get_sex()setw(10)srj3.get_age()setw(10)srj3.get_salesmanager_salary()endl; outfileendl;outfile-endl;/销售员信息 outfile销售员endl; outfileendl; outfile 职工号 姓名 性别 年龄 工资 endl;for(int n3=0;n3salesman_quantity;n3+) outfileendl; outfilese

温馨提示

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

评论

0/150

提交评论