2021-2022收藏的精品资料09051107仇涛c小型公司工资管理系统实习报告.doc
-
资源ID:30676343
资源大小:659KB
全文页数:32页
- 资源格式: DOC
下载积分:9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2021-2022收藏的精品资料09051107仇涛c小型公司工资管理系统实习报告.doc
中国石油大学(华东)信息与控制工程学院程序设计实习报告小型公司工资管理系统的设计专业班级:自动化09-1班学号:09051107姓名:仇涛 时 间:2010.8.222009.8.28 2010年8月目录一、 实习内容1二、 设计思路2三、 程序清单3四、 运行结果21五、 程序使用说明28六、 总结及心得体会29程序设计实习报告一、实习内容1.题目小型公司工资管理系统设计2.设计说明与要求(1) 公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。(2) 工资的计算方法A、 经理:固定月薪为8000元;B、 技术员:工作时间*小时工资(100/小时);C、 销售员:销售额*4%提成;D、 销售经理:底薪(5000元)+所辖部门销售总额*0.5%(3) 输入员工数据,要求每类人员不能少于4人,员工信息输出格式参考运行效果。(4) 实现功能 数据录入:输入各种数据; 数据统计:统计各销售经理下属销售员的销售额之和;销售经理按工资进行的冒泡排序; 数据打印:打印各类员工的数据信息; 数据备份:把各类员工的数据信息写入文件中保存; 退出:推出本系统;(5) 菜单说明数据录入指通过键盘输入各类员工的各项数据;数据统计指统计各销售经理下身书销售员的销售额及销售额之和;销售按工资进行冒泡排序;数据打印指按照表格的格式在屏幕上输出各员工的信息;数据备份指将所有员工的信息保存到文件;退出:结束程序的运行。二、设计思路从课本上的运行效果可以看出主函数是一个选择结构,可以确定主函数的内容;再根据课本给出的类的层次结构合理的定义类及其对象,在类中声明成员函数来完成对保护数据成员的调用,输出数据。根据运行效果的菜单来看知道有5个功能,于是编类里的成员函数来一个一个实现所要求的功能,总之就是将系统分块来做。 三、程序清单#include <iostream>#include <string>#include <iomanip>#include <fstream>using namespace std;const A=2;const B=4;int a,b,c,d,s;class employee /员工(基类)protected:string name;int num;int age;char sex;double pay;public: employee() name="0" num=0; age=0; sex='0' pay=0; void set() cout<<"其姓名:"cin>>name;cout<<"性别(M/W):"cin>>sex;cout<<"年龄:"cin>>age;int get1()return num;string get2()return name;char get3()return sex;int get4()return age;double payment()return pay;class technician:public employee /技术员protected:int workhour;public:void set()cout<<"技术员的编号:"cin>>num;employee:set();cout<<"工作时间:"cin>>workhour;cout<<endl;pay=100*workhour;technician teA;class manager:public employee /经理public:void set()cout<<"经理的编号:"cin>>num;employee:set();cout<<endl;int get()return 8000;manager manaA;class seller:public employee /销售员protected:double sell;int managernum;public:void set()cout<<"销售员的编号:"cin>>num;employee:set();cout<<"销售额:"cin>>sell;cout<<"所属销售经理的编号:"cin>>managernum;pay=sell*0.04;cout<<endl;int get5()return managernum;double get6() return sell;void tongji()cout<<""<<setw(12)<<num<<""<<setw(12)<<name<<""<<setw(12)<<sell<<""<<endl; ;seller seB;class sellmanager:public employee /销售经理protected:int sumsale;public:void set()cout<<"销售经理的编号:"cin>>num;employee:set(); cout<<endl; for (int i=0;i<B;i+) if (num=sei.get5()sumsale=sumsale+sei.get6(); pay=5000+sumsale*0.005;void tongji()cout<<"职工号为 "<<num<<" 销售经理 "<<name<<" 下属销售员的业绩为:"<<endl; cout<<""<<endl;cout<<""<<setw(12)<<"职工号"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"销售额 "<<""<<endl;sellmanager semanaA;void line()cout<<"-"<<endl<<endl;void shuru1() for(a=0;a<A;a+)tea.set();line();void shuru2() for(a=0;a<A;a+)manaa.set();line();void shuru3() for(b=0;b<B;b+)seb.set();line();void shuru4() for(a=0;a<A;a+)semanaa.set();line();void mulu()cout<<" 小型公司工资管理系统 "<<endl; cout<<""<<endl;cout<<" 请选择您所需的操作 "<<endl; cout<<" 数据输入:1,并按回车键 "<<endl;cout<<" 数据统计:2,并按回车键 "<<endl;cout<<" 数据打印:3,并按回车键 "<<endl;cout<<" 数据备份:4,并按回车键 "<<endl;cout<<" 退出系统:5,并按回车键 "<<endl; cout<<""<<endl;cout<<"请选择一个操作:"cin>>c;cout<<endl;void cijimulu()cout<<" 小型公司工资管理系统 "<<endl; cout<<""<<endl;cout<<" 请选择您所需的操作 "<<endl; cout<<"技术员数据输入: 1,并按回车键 "<<endl;cout<<"经理数据输入: 2,并按回车键 "<<endl;cout<<"销售员数据输入: 3,并按回车键 "<<endl;cout<<"销售经理数据输入:4,并按回车键 "<<endl;cout<<"返回上一级: 5,并按回车键 "<<endl; cout<<""<<endl;cout<<"请选择一个操作:"cin>>d;cout<<endl; void biaotou()cout<<""<<endl; cout<<""<<setw(12)<<"职工号"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性别"<<""<<setw(12)<<"年龄"<<""<<setw(12)<<"工资"<<""<<endl;void biaozhong() cout<<""<<endl;void biaowei()cout<<""<<endl; void tongji() int a,b,s; for(a=0;a<A;a+) s=0; semanaa.tongji(); for(b=0;b<B;b+) if(seb.get5()=semanaa.get1() cout<<""<<endl; seb.tongji(); s=s+seb.get6(); cout<<""<<endl; cout<<""<<setw(8)<<"销售额总计: "<<" "<<setw(21)<<s<<" "<<endl; cout<<""<<endl; cout<<"销售经理按工资排序为:"<<endl; biaotou(); for(int i=0;i<A-1;i+) for(int j=i+1;j<A;j+) if(semanai.payment()<semanaj.payment() sellmanager g; g=semanai; semanai=semanaj; semanaj=g; for (int k=0;k<A;k+) biaozhong(); cout<<""<<setw(12)<<semanak.get1()<<""<<setw(12)<<semanak.get2()<<""<<setw(12)<<semanak.get3()<<""<<setw(12)<<semanak.get4()<<""<<setw(12)<<semanak.payment()<<""<<endl; biaowei();void daying()int k;cout<<"请等待."<<endl<<endl;cout<<"职工基本情况一览表如下"<<endl<<endl;cout<<"技术员"<<endl<<endl;biaotou();for(k=0;k<A;k+)biaozhong();cout<<""<<setw(12)<<tek.get1()<<""<<setw(12)<<tek.get2()<<""<<setw(12)<<tek.get3()<<""<<setw(12)<<tek.get4()<<""<<setw(12)<<tek.payment()<<""<<endl; biaowei();line(); cout<<"经理"<<endl<<endl; biaotou();for(k=0;k<A;k+)biaozhong();cout<<""<<setw(12)<<manak.get1()<<""<<setw(12)<<manak.get2()<<""<<setw(12)<<manak.get3()<<""<<setw(12)<<manak.get4()<<""<<setw(12)<<manak.get()<<""<<endl; biaowei(); line(); cout<<"销售经理"<<endl<<endl; biaotou();for(k=0;k<A;k+)biaozhong();cout<<""<<setw(12)<<semanak.get1()<<""<<setw(12)<<semanak.get2()<<""<<setw(12)<<semanak.get3()<<""<<setw(12)<<semanak.get4()<<""<<setw(12)<<semanak.payment()<<""<<endl; biaowei(); line(); cout<<"销售员"<<endl<<endl; cout<<""<<endl; cout<<""<<setw(8)<<"职工号"<<""<<setw(8)<<"姓名"<<""<<setw(8)<<"性别"<<""<<setw(8)<<"年龄"<<""<<setw(8)<<"工资"<<""<<setw(20)<<"所属部门经理"<<""<<endl; for(k=0;k<B;k+) cout<<""<<endl; cout<<""<<setw(8)<<sek.get1()<<""<<setw(8)<<sek.get2()<<""<<setw(8)<<sek.get3()<<""<<setw(8)<<sek.get4()<<""<<setw(8)<<sek.payment()<<""<<setw(20)<<sek.get5()<<""<<endl; cout<<""<<endl<<endl; cout<<"-"<<endl<<endl;void beifen()ofstream myfile("qt.txt");int k;cout<<"请等待."<<endl<<endl;myfile<<"职工基本情况一览表如下"<<endl<<endl;myfile<<"技术员"<<endl<<endl;myfile<<""<<endl; myfile<<""<<setw(12)<<"职工号"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性别"<<""<<setw(12)<<"年龄"<<""<<setw(12)<<"工资"<<""<<endl;for(k=0;k<A;k+)myfile<<""<<endl;myfile<<""<<setw(12)<<tek.get1()<<""<<setw(12)<<tek.get2()<<""<<setw(12)<<tek.get3()<<""<<setw(12)<<tek.get4()<<""<<setw(12)<<tek.payment()<<""<<endl; myfile<<""<<endl; myfile<<"经理"<<endl<<endl; myfile<<""<<endl; myfile<<""<<setw(12)<<"职工号"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性别"<<""<<setw(12)<<"年龄"<<""<<setw(12)<<"工资"<<""<<endl;for(k=0;k<A;k+)myfile<<""<<endl;myfile<<""<<setw(12)<<manak.get1()<<""<<setw(12)<<manak.get2()<<""<<setw(12)<<manak.get3()<<""<<setw(12)<<manak.get4()<<""<<setw(12)<<manak.get()<<""<<endl; myfile<<""<<endl; myfile<<"销售经理"<<endl<<endl; myfile<<""<<endl; myfile<<""<<setw(12)<<"职工号"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性别"<<""<<setw(12)<<"年龄"<<""<<setw(12)<<"工资"<<""<<endl;for(k=0;k<A;k+)myfile<<""<<endl;myfile<<""<<setw(12)<<semanak.get1()<<""<<setw(12)<<semanak.get2()<<""<<setw(12)<<semanak.get3()<<""<<setw(12)<<semanak.get4()<<""<<setw(12)<<semanak.payment()<<""<<endl; myfile<<""<<endl; myfile<<"销售员"<<endl<<endl; myfile<<""<<endl; myfile<<""<<setw(8)<<"职工号"<<""<<setw(8)<<"姓名"<<""<<setw(8)<<"性别"<<""<<setw(8)<<"年龄"<<""<<setw(8)<<"工资"<<""<<setw(20)<<"所属部门经理"<<""<<endl; for(k=0;k<B;k+) myfile<<""<<endl; myfile<<""<<setw(8)<<sek.get1()<<""<<setw(8)<<sek.get2()<<""<<setw(8)<<sek.get3()<<""<<setw(8)<<sek.get4()<<""<<setw(8)<<sek.payment()<<""<<setw(20)<<sek.get5()<<""<<endl; myfile<<""<<endl<<endl; int main()while (c!=5)mulu();line();switch(c)case 1: while (d!=5) cijimulu();line();switch(d)case 1:shuru1();continue;case 2:shuru2(); continue;case 3:shuru3();continue;case 4:shuru4();continue;continue;case 2:tongji();continue;case 3:daying();continue; case 4: beifen(); continue;return 0;四、运行结果五、程序的使用说明运行程序,按照界面指示,选择需要的功能1).先选择1, 然后按Enter键.弹出次级菜单.2).再次选择1,然后按Enter键.输入技术员数据.3).选择2,然后按Enter键.输入经理数据.4).选择3, 然后按Enter键.输入销售员数据.5).选择4. 然后按Enter键.输入销售经理数据.6).选择5, 然后按Enter键.返回主菜单.7).选择2, 然后按Enter键.对数据进行统计,统计出各个销售经理下属销售员的业绩与销售经理的工资并排序.8).选择3, 然后按Enter键.对每个职位的数据进行打印.9).选择4, 然后按Enter键.进行数据备份.10)选择5, 然后按Enter键.退出程序.六、总结及心得体会程序设计实习就是培养我们运用所学的知识,结合实际问题来编出解决实际问题的程序;是让我们分析和解决问题锻炼独立解决问题,锻炼动手能力的重要手段。通过短短的五天实习,让我认识了程序设计的过程,知道如何去做一个简单的程序设计。回想拿到题目的时候,认为很容易做,但是通过自己的动手发现并不是很容易做,在编程的过程中遇到了各种各样的问题,有的向同学和老师请教,有的自己想办法解决,遇到的这些问题,提高了自己解决问题的能力,也提高了自己对程序设计的掌握的能力。做这次程序设计首先做的是类的定义声明,定义了很多的数据成员及成员函数,加深了对类与派生的理解。对于类的保护成员之被本身的成员函数使用,而不能被公有派生产生的派生类的成员函数使用。了解了类与派生类之间的关系,派生类的成员函数可以调用基类的公有成员。在派生类中还可以定义其他派生类的对象。练习了FOR循环,SWITCH的算法,全局变量的定义与使用,一维数组的定义与使用。在主菜单中调用各函数的算法,掌握了如何去使用函数的调用,以及函数的定义与调用的关系,定义在调用前的话,可以直接进行函数的调用,否则要先声明该函数,然后才能调用该函数。定一个类对象即对一个类进行实例化,了解到该对象调用类的成员函数的方法。掌握用冒泡法对数组进行从小到大的排序。了解到如何使一个系统看起来比较规整,有条理性.了解到类中虚函数的用法,在该类的派生类中定义了同名的成员函数时,该派生类的成员函数仍然是虚函数。了解虚基类的使用和虚函数的使用。其次,做程序时要充分理解题目的要求及要实现的功能,以做到从全局去考虑去实现,不至于做了一步不能满足题目要求还不能满足与其他功能的连接。在程序功能的实现时,一定要考虑使用最优化最简单的算法使程序简单、清晰、明了;在程序清单中对看了不是很明白的变量及函数要做必要的注释,这是一个好程序必备的内容,不仅使自己明白自己写的程序,同时别人也可以看明白。本程序综合性非常强,由于我们对使用C+设计程序的能力还不是很熟练,所以在设计时非常吃力。平时上机调试的程序很短很容易发现错误,而且错误的数目少,但是这次做的设计程序很长,编译出的错误很多,找起来也很麻烦,要将程序一段一段注释掉来检查出错的部分;同时程序中有部分要求实现的功能是课堂上老师没有讲过的,需要我们自己去看书领会。在整个程序中,我们通过使用while循环,switch语句,冒泡排序法,表格设计中的setw()以及类的定义及使用来完成程序设计,使我提高了对C+中语句的使用能力和组合能力,进一步加强了我对使用C+编程的能力。总之做这次程序设计收获颇丰,不但巩固了上课所学的知识,还学到了新的知识,另外将理论知识运用到了实践中去,锻炼了自己分析问题,处理问题的能力,这次程序设计是比较成功的,再以后的课程设计中会更加努力,做到最好,在实践中培养自己的能力。30