写一个小型工资管理系统程序

合集下载

用C++编程——小型公司工资管理系统

用C++编程——小型公司工资管理系统

#include <iostream>#include <string>#include <iomanip>#include <fstream>using namespace std;const int n=2;class Employee{protected:int num;string name;int age;char sex;double salary;public:Employee(int n=0,int a=0,double sa=0){num=n;age=a;salary=sa;} virtual void input();virtual void print(){};virtual void txtout(){} ;int funnum(){return num;}string funname(){return name;}};void Employee::input(){cout<<"编号:";cin>>num;cout<<"其姓名:";cin>>name;cout<<"性别(w/m):";cin>>sex;cout<<"年龄:";cin>>age;}class Technician:public Employee{protected:int hours;int hourlypay;public:Technician(int hp=100){hourlypay=hp;}virtual void input();virtual double pay(){return (salary=hours*hourlypay);}virtual void print();virtual void txtout();};void Technician::input()cout<<"技术员的";Employee::input();cout<<"工作时间:";cin>>hours;}class Manager:public Employee{public:Manager(double sa=8000){salary=sa;}virtual void input();virtual void print();virtual void txtout();};void Manager::input(){cout<<"经理的";Employee::input();}class Salesman:public Employee{protected:double commrate;//提成int Smnum;//所属经理的编号double sales;//销售额public:Salesman(double com=0.04){commrate=com;}virtual void input();virtual double pay(){return (salary=sales*commrate);} virtual void print();virtual void txtout();int funnum1(){return Smnum;}double funsales(){return sales;}};void Salesman::input(){cout<<"销售员的";Employee::input();cout<<"销售额:";cin>>sales;cout<<"所属销售经理的编号:";cin>>Smnum;class Salesmanager:public Employee{protected:double basepay,sumsales,commrate;//底薪,销售总额,提成public:Salesmanager(double base=5000,double com=0.005){basepay=base;commrate=com;}virtual void input();virtual void print();virtual void print1();virtual void pay();virtual void shujutongji();virtual void txtout();};Technician tec[n];Manager man[n];Salesman sal[2*n];Salesmanager sma[n];//定义全局变量void Salesmanager::input(){cout<<"销售经理的";Employee::input();}void Salesmanager::pay(){for(int i=0;i<n;i++){sma[i].sumsales=0;for(int j=0;j<2*n;j++){if(sal[j].funnum1()==sma[j].num)sma[j].sumsales=sma[j].sumsales+sal[j].funsales();}sma[i].salary=basepay+sma[i].sumsales*commrate;}}void Salesmanager::print(){for(int i=0;i<n;i++){sma[i].sumsales=0;cout<<"职工编号为"<<sma[i].num<<"销售经理"<<sma[i].name<<"下属销售员的业绩为:"<<endl;cout<<"┌─────┬─────┬─────┐"<<endl;cout<<"│ 职工号│ 姓名│ 销售额│"<<endl;for(int j=0;j<2*n;j++)if(sal[j].funnum1()==sma[i].num){sma[i].sumsales=sma[i].sumsales+sal[j].funsales();cout<<"├─────┼─────┼─────┤"<<endl;cout<<"│"<<setw(10)<<sal[j].funnum()<<"│"<<setw(10)<<sal[j ].funname()<<"│"<<setw(10)<<sal[j].funsales()<<"│"<<endl;}cout<<"├─────┼─────┴─────┤"<<endl;cout<<"│销售额总计│"<<setw(22)<<sma[i].sumsales<<"│"<<endl;cout<<"└─────┴───────────┘"<<endl;}}void Salesmanager::shujutongji(){for(int i=0;i<n;i++){sma[i].sumsales=0;for(int j=0;j<2*n;j++){if(sal[j].funnum1()==sma[i].num)sma[i].sumsales+=sal[j].funsales();}sma[i].salary=basepay+sma[i].sumsales*commrate;}for(int k=0;k<n-1;k++)for(int m=k+1;m<n;m++)if(sma[k].salary<sma[m].salary){Salesmanager sma1;sma1=sma[k];sma[k]=sma[m];sma[m]=sma1;}cout<<"销售经理按工资排序为:"<<endl;cout<<"┌────┬────┬────┬────┬────┐"<< endl;cout<<"│职工号│姓名│性别│年龄│工资│"<<endl;for(int e=0;e<n;e++){<<endl;cout<<"│"<<setw(8)<<sma[e].num<<"│"<<setw(8)<<sma[e].name< <"│"<<setw(8)<<sma[e].sex<<"│"<<setw(8)<<sma[e].age<<"│"<<setw(8)<<sm a[e].salary<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┘"<< endl;}void Technician::print(){cout<<"┌────┬────┬────┬────┬────┐"<<endl; cout<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){cout<<"├────┼────┼────┼────┼────┤"<<en dl;cout<<"│"<<setw(8)<<tec[i].num<<"│"<<setw(8)<<tec[i].name<<"│"<<setw(8)<<tec[i].sex<<"│"<<setw(8)<<tec[i].age<<"│"<<setw(8)<<tec[i] .pay()<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┘"<<endl; }void Manager::print(){cout<<"┌────┬────┬────┬────┬────┐"<<endl; cout<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){cout<<"├────┼────┼────┼────┼────┤"<<en dl;cout<<"│"<<setw(8)<<man[i].num<<"│"<<setw(8)<<man[i].name<<"│"<<setw(8)<<man[i].sex<<"│"<<setw(8)<<man[i].age<<"│"<<setw(8)<<man[i] .salary<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┘"<<endl; }void Salesman::print(){────┐"<<endl;cout<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│ 所属部门经理编号│"<<endl;for(int i=0;i<2*n;i++){cout<<"├────┼────┼────┼────┼────┼─────────┤"<<endl;cout<<"│"<<setw(8)<<sal[i].num<<"│"<<setw(8)<<sal[i].name<<"│"<<setw(8)<<sal[i].sex<<"│"<<setw(8)<<sal[i].age<<"│"<<setw(8)<<sal[i] .pay()<<"│"<<setw(18)<<sal[i].funnum1()<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┴─────────┘"<<endl;}void Salesmanager::print1()//{cout<<"┌────┬────┬────┬────┬────┐"<<endl; cout<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){cout<<"├────┼────┼────┼────┼────┤"<<en dl;cout<<"│"<<setw(8)<<sma[i].num<<"│"<<setw(8)<<sma[i].name<<"│"<<setw(8)<<sma[i].sex<<"│"<<setw(8)<<sma[i].age<<"│"<<setw(8)<<sma[i] .salary<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┘"<<endl; }void Technician::txtout()//技术员数据备份{ofstream outfile("d:\output.txt",ios::app);if(!outfile){cout<<"备份失败!"<<endl;}outfile<<"************* 公司职员信息备份 ****************"<<endl; outfile<<"*****技术员信息*****"<<endl;outfile<<"┌────┬────┬────┬────┬────┐"<<endl ;outfile<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){outfile<<"├────┼────┼────┼────┼────┤"< <endl;outfile<<"│"<<setw(8)<<tec[i].num<<"│"<<setw(8)<<tec[i].name<< "│"<<setw(8)<<tec[i].sex<<"│"<<setw(8)<<tec[i].age<<"│"<<setw(8)<<tec[i] .pay()<<"│"<<endl;}outfile<<"└────┴────┴────┴────┴────┘"<<endl ;outfile<<"********************************************"<<endl;}void Manager::txtout()//经理数据备份{ofstream outfile("d:\output.txt",ios::app);if(!outfile){cout<<"备份失败!"<<endl;}outfile<<"*****经理信息*****"<<endl;outfile<<"┌────┬────┬────┬────┬────┐"<<endl ;outfile<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){outfile<<"├────┼────┼────┼────┼────┤"< <endl;outfile<<"│"<<setw(8)<<man[i].num<<"│"<<setw(8)<<man[i].name<< "│"<<setw(8)<<man[i].sex<<"│"<<setw(8)<<man[i].age<<"│"<<setw(8)<<man[i] .salary<<"│"<<endl;}outfile<<"└────┴────┴────┴────┴────┘"<<endl ;outfile<<"********************************************"<<endl;}void Salesmanager::txtout()//销售经理数据备份{ofstream outfile("d:\output.txt",ios::app);if(!outfile){cout<<"备份失败!"<<endl;}outfile<<"*****销售经理信息*****"<<endl;outfile<<"┌────┬────┬────┬────┬────┐"<<endl ;outfile<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){outfile<<"├────┼────┼────┼────┼────┤"< <endl;outfile<<"│"<<setw(8)<<sma[i].num<<"│"<<setw(8)<<sma[i].name<< "│"<<setw(8)<<sma[i].sex<<"│"<<setw(8)<<sma[i].age<<"│"<<setw(8)<<sma[i] .salary<<"│"<<endl;}outfile<<"└────┴────┴────┴────┴────┘"<<endl ;outfile<<"********************************************"<<endl;}void Salesman::txtout()//销售员数据备份{ofstream outfile("d:\output.txt",ios::app);if(!outfile){cout<<"备份失败!"<<endl;}outfile<<"*****销售员信息*****"<<endl;outfile<<"┌────┬────┬────┬────┬────┬─────────┐"<<endl;outfile<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│ 所属部门经理编号│"<<endl;for(int i=0;i<2*n;i++){outfile<<"├────┼────┼────┼────┼────┼─────────┤"<<endl;outfile<<"│"<<setw(8)<<sal[i].num<<"│"<<setw(8)<<sal[i].name<< "│"<<setw(8)<<sal[i].sex<<"│"<<setw(8)<<sal[i].age<<"│"<<setw(8)<<sal[i] .pay()<<"│"<<setw(18)<<sal[i].funnum1()<<"│"<<endl;}outfile<<"└────┴────┴────┴────┴────┴─────────┘"<<endl;outfile<<"********************************************"<<endl;}int main(){for(int i=0;;i++){int j;cout<<"★★小型公司工资管理系统★★"<<endl;cout<<"┌─────────────┐"<<endl;cout<<"│请选择您所需的操作│"<<endl;cout<<"│ 数据输入:1,并按回车键│"<<endl;cout<<"│ 数据统计:2,并按回车键│"<<endl;cout<<"│ 数据打印:3,并按回车键│"<<endl;cout<<"│ 数据备份:4,并按回车键│"<<e ndl;cout<<"│ 退出系统:5,并按回车键│"<<endl;cout<<"└─────────────┘"<<endl;cout<<"请输入一个操作: ";cin>>j;cout<<endl;switch(j){case 1:{for(int i=0;i<n;i++){tec[i].input();cout<<endl;};cout<<"---------------------------"<<endl;for(i=0;i<n;i++){man[i].input();cout<<endl;};cout<<"---------------------------"<<endl;for(i=0;i<2*n;i++){sal[i].input();cout<<endl;};cout<<"---------------------------"<<endl;for(i=0;i<n;i++){sma[i].input();cout<<endl;}; };break;case 2:{Salesmanager sma1;sma1.print();sma1.shujutongji();};break;case 3:{cout<<" 请等待......"<<endl;cout<<"职工基本情况一览表如下"<<endl;cout<<endl;cout<<"技术员"<<endl;{Technician tec1;tec1.print();cout<<endl;};cout<<"---------------------------"<<endl;cout<<"经理"<<endl;{Manager man1;man1.print();cout<<endl;};cout<<"---------------------------"<<endl;cout<<"销售经理"<<endl;{Salesmanager sma1;sma1.print1();cout<<endl;};cout<<"---------------------------"<<endl;cout<<"销售员"<<endl;{Salesman sal1;sal1.print();cout<<endl;};cout<<"---------------------------"<<endl;};break;case 4:{cout<<"数据正在备份,请等待......"<<endl;Technician tec1;tec1.txtout();Manager man1;man1.txtout();Salesmanager sma1;sma1.txtout();Salesman sal1;sal1.txtout();cout<<"数据备份完成!"<<endl;};break;case 5:exit(1);break;default : cout<<"输入有误,请重新输入。

小型公司工资管理系统C源代码

小型公司工资管理系统C源代码

#include<iomanip.h>#include<iostream.h>#include<fstream.h>#include<stdlib.h>class Employ//基类-雇员类{protected:int num;char name[10];char sex;int age;int wage;public:virtual void set()=0;virtual void print()=0;virtual void reserved()=0;};class Manager:public Employ//经理类{public:void set();void print();void reserved();};class Salesman:public Employ//销售员类{protected:int salesvolume;int snum;public:void set();void print();void reserved();void printinfor();int getsales(){return salesvolume;}int getsnum(){return snum;}};class MarketMan:public Manager//销售经理类{protected:int salesvolume;public:void set();void print();void reserved();int resetwage();{return num;}char*getname(){return name;}int getamount(Salesman s[],int n){salesvolume=0;for(int i=0;i<n;i++){if(s[i].getsnum()==num)salesvolume+=s[i].getsales();}return salesvolume;}};class Technician:public Employ//技术员类{protected:int worktime;public:void set();void print();void reserved();};void Manager::set(){cout<<"经理旳编号:";cin>>num;cout<<"其姓名:";cin>>name;cout<<"性别(m/w):";cin>>sex;cout<<"年龄:";cin>>age;}void Manager::print()//经理类组员函数{cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl;}void Manager::reserved(){ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);employf<<"经理旳编号:"<<num<<endl<<"其姓名:"<<name<<endl<<"性别(m/w):"<<sex<<endl<<"年龄:"<<age<<endl;}void MarketMan::set(){wage=resetwage();cout<<"销售经理旳编号:";cin>>num;cout<<"其姓名:";cin>>name;cout<<"性别(m/w):";cin>>sex;cout<<"年龄:";cin>>age;}void MarketMan::print(){resetwage();cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl;}void MarketMan::reserved(){ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);employf<<"销售经理旳编号:"<<num<<endl<<"其姓名:"<<name<<endl<<"性别(m/w):"<<sex<<endl<<"年龄:"<<age<<endl;}int MarketMan::resetwage(){wage=5000+int(salesvolume*0.005); return wage;}void Salesman::set()//销售员类定义{cout<<"销售员旳编号:";cin>>num;cout<<"其姓名:";cin>>name;cout<<"性别(m/w):";cin>>sex;cout<<"年龄:";cin>>age;cout<<"销售额:";cin>>salesvolume;cout<<"所属销售经理旳编号:"; cin>>snum;wage=int(salesvolume*0.04);}void Salesman::printinfor(){cout<<"┣━━━━━━━╋━━━━━━━╋━━━━━━━┫"<<endl;cout<<"┃"<<setw(14)<<num<<"┃"<<setw(14)<<name<<"┃"<<setw(14)<<salesvolume<<"┃"<<endl;}void Salesman::print(){cout<<"┣━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━━━┫"<<endl;cout<<"┃"<<setw(8)<<num<<"┃"<<setw(10)<<name<<"┃"<<setw(10)<<sex;cout<<"┃"<<setw(10)<<age<<"┃"<<setw(10)<<wage<<"┃"<<setw(16)<<getsnum()<<"┃"<<endl;}void Salesman::reserved(){ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);employf<<"销售员旳编号:"<<num<<endl<<"其姓名:"<<name<<endl<<"性别(m/w):"<<sex<<endl<<"年龄:"<<age<<endl<<"销售额:"<<salesvolume<<endl<<"所属销售经理旳编号"<<snum<<endl;}void Technician::set()//技术员类定义{cout<<"技术员旳编号:";cin>>num;cout<<"其姓名:";cin>>name;cout<<"性别(m/w):";cin>>sex;cout<<"年龄:";cin>>age;cout<<"工作时间:";cin>>worktime;wage=worktime*100;}void Technician::print(){cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl;}void Technician::reserved(){ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);employf<<"技术员旳编号:"<<num<<endl<<"其姓名:"<<name<<endl<<"性别(m/w):"<<sex<<endl<<"年龄:"<<age<<endl<<"工作时间:"<<worktime<<endl;}//主函数int t,m,s,mm;Technician*pt;Manager*pm;Salesman*ps;MarketMan*pmm;void setin();void count();void printdata();void reservedall();void single();void main(){cout<<"请分别输入技术员, 经理, 销售员, 销售经理人数:"<<endl; cin>>t>>m>>s>>mm;pt=new Technician[t];pm=new Manager[m];ps=new Salesman[s];pmm=new MarketMan[mm];if((!pt)||(!pm)||(!ps)||(!pmm)){cout<<"堆内存分派失败!"<<endl;exit(1);}single();}void single(){cout<<"★★小型企业工资管理系统★★"<<endl; cout<<"┏━━━━━━━━━━━━━┓"<<endl; cout<<"┃请选择所需旳操作┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃数据输入:1,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃数据记录:2,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃数据打印:3,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃数据备份:4,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃退出系统:5,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┗━━━━━━━━━━━━━┛"<<endl; cout<<"请选择一种操作:"<<endl;int choice;cin>>choice;switch(choice){case 1:setin();case 2:count();case 3:printdata();case 4:reservedall();case 5:exit(0);}}void setin(){Menu1:cout<<"★★小型企业工资管理系统★★"<<endl;cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl; cout<<"┃请选择所需旳操作┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃技术员数据输入: 1,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃经理数据输入: 2,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃销售员数据输入: 3,并按回车键┃"<<endl;cout<<"┃┃"<<endl; cout<<"┃销售经理数据输入: 4,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃返回上一级菜单: 5,并按回车键┃"<<endl; cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl; cout<<"请选择一种操作";int ch1,i;cin>>ch1;switch(ch1){case 1:{for(i=0;i<t;i++)pt[i].set();cout<<"---------------------------------"<<endl;goto Menu1;}case 2:{for(i=0;i<m;i++)pm[i].set();cout<<"---------------------------------"<<endl;goto Menu1;}case 3:{for(i=0;i<s;i++)ps[i].set();cout<<"---------------------------------"<<endl;goto Menu1;}case 4:{for(i=0;i<mm;i++)pmm[i].set();cout<<"---------------------------------"<<endl;goto Menu1;}case 5:single();}}void count(){Menu2:cout<<"★★小型企业工资管理系统★★"<<endl;cout<<"┏━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃请选择所需旳操作┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃各销售经理下属销售员业绩记录: 1,并按回车键┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃销售经理按工资排序: 2,并按回车键┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃返回上一级菜单: 3,并按回车键┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;cout<<"请选择一种操作";int ch2,i,j;cin>>ch2;switch(ch2){case 1:{for(i=0;i<mm;i++){cout<<"职工号为:"<<pmm[i].getnum()<<"销售经理:"<<pmm[i].getname()<<"下属销售员旳业绩为:"<<endl;cout<<"┏━━━━━━━┳━━━━━━━┳━━━━━━━┓"<<endl;cout<<"┃职工号┃姓名┃销售额┃"<<endl;for(j=0;j<s;j++)if(pmm[i].getnum()==ps[j].getsnum())ps[j].printinfor();cout<<"┣━━━━━━━┻━━━┳━━━┻━━━━━━━┫"<<endl;cout<<"┃销售额总计: ┃"<<setw(22)<<pmm[i].getamount(ps,s)<<"┃"<<endl;cout<<"┗━━━━━━━━━━━┻━━━━━━━━━━━┛"<<endl;}goto Menu2;}case 2:{cout<<"销售经理按工资排序为:"<<endl;MarketMan pmmm;for(i=1;i<mm;i++)for(j=0;j<mm-i;j++)if(pmm[j].getamount(ps,s)<pmm[j+1].getamount(ps,s)){pmmm=pmm[j];pmm[j]=pmm[j+1];pmm[j+1]=pmmm;}cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<<endl;cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<<endl;for(i=0;i<mm;i++)pmm[i].print();cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<<endl;cout<<" --------------------------------------------"<<endl;goto Menu2;}case 3:single();}}void printdata(){Menu3:cout<<"★★小型企业工资管理系统★★"<<endl;cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃请选择所需旳操作┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃技术员数据输出: 1,并按回车键┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃经理数据输出: 2,并按回车键┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃销售员数据输出: 3,并按回车键┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃销售经理数据输出: 4,并按回车键┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃返回上一级: 5,并按回车键┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl;cout<<"请选择一种操作";int ch3,i;cin>>ch3;switch(ch3){case 1:{cout<<"技术员"<<endl<<endl;cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<<endl;cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<<endl;for(i=0;i<t;i++)pt[i].print();cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<<endl;cout<<"------------------------------------------"<<endl;goto Menu3;}case 2:{ cout<<"经理"<<endl<<endl;cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<<endl;cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<<endl;for(i=0;i<m;i++)pm[i].print();cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<<endl;cout<<"------------------------------------------"<<endl;goto Menu3;}case 4:{cout<<"销售经理"<<endl<<endl;cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<<endl;cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃"<<endl;for(i=0;i<mm;i++)pmm[i].print();cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<<endl;cout<<"------------------------------------------"<<endl;goto Menu3;}case 3:{cout<<"销售员"<<endl<<endl;cout<<"┏━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━━━┓"<<endl;cout<<"┃职工号┃姓名┃性别┃年龄┃工资┃所属部门经理编号┃"<<endl;for(i=0;i<s;i++)ps[i].print();cout<<"┗━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━━━┛"<<endl;cout<<"------------------------------------------"<<endl;goto Menu3;}case 5:single();}}void reservedall(){Menu4:cout<<"★★小型企业工资管理系统★★"<<endl;cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl; cout<<"┃请选择所需旳操作┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃技术员数据备份: 1,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃经理数据备份: 2,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃销售员数据备份: 3,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃销售经理数据备份: 4,并按回车键┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃返回上一级: 5,并按回车键┃"<<endl; cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl; cout<<"请选择一种操作";int ch4,i;cin>>ch4;switch(ch4){case 1:{for(i=0;i<t;i++)pt[i].reserved();goto Menu4;}case 2:{for(i=0;i<m;i++)pm[i].reserved();goto Menu4;}case 3:{for(i=0;i<s;i++)ps[i].reserved();goto Menu4;}case 4:{for(i=0;i<mm;i++) pmm[i].reserved();goto Menu4;}case 5:single();}}。

工资管理系统毕业设计附源码

工资管理系统毕业设计附源码

工资管理系统毕业设计附源码工资管理系统是一种用于管理和计算员工工资的软件系统。

它可以帮助企业自动化工资计算、发放和记录,提高工资管理的效率和准确性。

下面是一个简单的工资管理系统的毕业设计附源码的示例。

首先,我们需要设计数据库来存储员工信息和工资数据。

可以使用关系型数据库如MySQL或SQLite。

以下是一个简化的员工表和工资表的设计示例:员工表(employees):employee_id: 员工ID(主键)。

name: 员工姓名。

department: 所属部门。

position: 职位。

工资表(salaries):salary_id: 工资记录ID(主键)。

employee_id: 员工ID(外键)。

salary_date: 工资发放日期。

basic_salary: 基本工资。

bonus: 奖金。

deductions: 扣款。

total_salary: 总工资。

接下来,我们需要开发一个用户界面,让管理员可以输入员工信息和工资数据,并进行工资计算和管理。

可以使用Java编程语言和Swing图形用户界面库来实现。

以下是一个简单的Java代码示例:java.import javax.swing.;import java.awt.;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class SalaryManagementSystem extends JFrame {。

// 声明界面组件。

private JTextField idField, nameField, departmentField, positionField;private JTextField dateField, basicSalaryField, bonusField, deductionsField;private JTextArea resultArea;private JButton calculateButton, saveButton;public SalaryManagementSystem() {。

中小公司工资管理系统

中小公司工资管理系统

c++课程设计某小型公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员.现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息.要求:1)其中,人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1.2)程序对所有人员有提升级别的功能3)月薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成,销售经理既拿固定月薪也领取销售提成.4)能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息#include 〈iostream.h〉#include <iomanip。

h>#include 〈cstring>#include 〈string。

h>#include <fstream.h〉const int Maxr=100;class Employee //职工类{int tag;//删除标记int no;//职工编号char name[20];//职工姓名char zw[20];//职工职务int salary;//职工工资int grade;//职工级别public:Employee(){}char *getname() {return name;}//获取名字int gettag() {return tag;}//获取标记int getno() {return no;}//获取编号int getgrade() {return grade;}//获取级别int getsalary(){return salary;}//获取工资void setzw(char q[])//设置职务{strcpy(zw,q);}void setname(char na[])//设置名字{strcpy(name,na);}void getsalary(int sa){salary=sa;}void getgrade(int gr){grade=gr;}void delna(){tag=1;}//删除void addemp(int n,int sa,char *na,char *q,int gr)//增加{tag=0;no=n;salary=sa;grade=gr;strcpy(name,na);strcpy(zw,q);}void disp()//显示职工信息{cout<<” ”〈<setw(13)<〈no〈<" ”〈〈setw(13)<〈name<〈" ”<<setw(13)<<salary<<" ”<〈setw(13)<〈zw〈<” ”<〈setw(13)〈〈grade<<endl;}};class Database//职工数据类{int top;Employee read[Maxr];public:Database()//将职工信息从employee。

员工工资管理系统(c语言编程)6页

员工工资管理系统(c语言编程)6页

员工工资管理系统(c语言编程)6页一、设计目标1、完成一个员工工资管理系统,包括对员工信息的添加、删除、修改和查询、员工工资管理和统计等功能。

2、程序必须具备易用性、可靠性、安全性和稳定性等特点。

二、程序结构设计员工工资管理系统是由若干模块构成的一个整体,它们之间相互联系,共同完成对员工信息的处理和管理。

程序分为主界面模块、添加模块、删除模块、修改模块、查询模块、统计模块、退出模块。

三、模块功能设计1、主界面模块主界面包括菜单栏和功能栏,菜单栏包括添加、删除、修改、查询、统计和退出功能,功能栏是对主界面菜单的补充,包括一些快捷操作按钮。

2、添加模块添加模块是用来录入员工信息的,可以录入的信息有员工编号、员工姓名、员工部门、员工工作年限、员工基本工资、员工奖金等。

添加模块会对信息进行一系列的校验,要求信息必须完整正确才能录入。

3、删除模块删除模块是用来删除员工信息的,输入员工编号就可以删除该员工的信息。

5、查询模块查询模块提供了多种查询方式,包括按部门查询、按姓名查询、按工作年限查询、按基本工资查询、按奖金查询等。

查询结果会按照员工编号的顺序进行排序。

6、统计模块统计模块会根据查询结果进行工资统计,包括总工资、平均工资、最高工资和最低工资等。

7、退出模块退出模块是用来关闭程序的,保证程序的安全性和稳定性。

四、程序流程设计1、主界面程序启动后,会显示主界面界面,包括菜单栏和功能栏。

2、录入信息点击添加功能或者添加按钮,会进入添加模块,要求用户输入员工信息,录入完成后数据将保存到文件中。

4、修改信息点击修改功能或者修改按钮,会进入修改模块,输入员工编号,然后修改员工信息。

5、查询信息点击查询功能或者查询按钮,会进入查询模块,选择查询方式,输入查询条件,系统将显示符合条件的员工信息。

6、工资统计当查询完成后,点击统计功能或者统计按钮,会进入统计模块,系统将根据查询结果进行统计。

7、程序退出当操作完成后,点击退出功能或者退出按钮,会关闭程序。

小型公司的工资管理系统实训报告

小型公司的工资管理系统实训报告

小型公司的工资管理系统实训报告一、概述工资管理对于任何一个公司来说都是非常重要的,而对于小型公司来说尤其如此。

由于小型公司通常拥有较少的员工,因此往往没有专门的人力资源部门来管理工资事务。

为了解决这个问题,本报告提出了一种小型公司工资管理系统。

二、系统设计1、系统目标该系统的目标是实现小型公司的工资管理自动化,提高工资管理的效率和准确性。

2、系统功能(1)员工信息管理:系统可以记录每个员工的基本信息,包括姓名、工号、职位、部门等。

(2)工资计算:系统可以根据每个员工的工作时间、绩效评估等因素,自动计算出每个员工的工资。

(3)工资发放:系统可以根据员工的工资计算结果,自动生成工资条,并将工资直接发放到员工的工资卡或支付宝账户。

(4)工资报表:系统可以生成各种工资报表,包括每个员工的工资明细、部门工资汇总等。

3、系统架构该系统可以采用B/S架构,即浏览器/服务器架构。

员工和管理员可以通过浏览器访问系统,管理员可以进行系统设置和工资管理,员工可以查询自己的工资信息。

4、技术选型前端技术可以采用HTML、CSS和JavaScript;后端技术可以采用Java语言,使用Spring框架进行开发;数据库可以选用MySQL。

三、系统实施1、需求分析和系统设计:首先,对小型公司的工资管理需求进行分析,确定系统功能和交互界面设计。

然后,根据需求,进行系统设计,包括数据库设计和系统架构设计。

2、系统开发:根据系统设计,进行系统开发。

开发过程中需要进行模块开发、接口开发和数据库开发等。

3、系统测试:完成系统开发后,进行系统测试,包括功能测试、性能测试和安全测试等,确保系统的正确性和稳定性。

4、系统上线和培训:系统测试通过后,可以将系统部署到服务器上,并进行上线。

同时,还需要对相关人员进行系统培训,包括管理员和员工的培训。

四、结论通过对小型公司工资管理系统的实训报告,可以看出,该系统可以有效地提高小型公司的工资管理效率和准确性。

小型企业工资管理系统java课程设计

小型企业工资管理系统java课程设计

小型企业工资管理系统java课程设计1.概述随着社会的发展,企业的规模越来越多样化。

小型企业也日益增加,而小型企业的存在为大多数人提供了就业机会。

然而,小型企业的管理也面临着诸多挑战,其中包括工资管理。

为了提高工资管理的效率和准确性,我们决定设计一个小型企业工资管理系统。

2.系统设计目标本课程设计的目标是设计一个基于java语言的小型企业工资管理系统,该系统应能够实现以下功能:- 实现员工信息的录入、修改和删除。

- 实现工资的计算、发放和管理。

- 实现员工考勤记录的管理。

- 实现员工与薪资的绑定。

- 实现数据的可视化统计和报表生成。

3.系统设计理念本系统的设计理念是简洁而高效。

我们希望通过精心设计的用户界面和清晰的操作流程,为小型企业提供一套方便、快捷、准确的工资管理方案。

4.系统实现方案为实现以上目标和理念,我们将采用以下技术方案:- 使用java语言进行系统开发,结合面向对象的设计思想。

- 使用MySQL数据库进行数据存储,确保数据的可靠性和安全性。

- 使用Swing框架进行用户界面设计,确保界面美观和易用。

- 使用JDBC技术进行数据库连接和操作,保证系统的数据操作能力。

- 使用Eclipse作为开发工具,提高开发效率和代码质量。

5.系统功能模块本系统将包括以下主要功能模块:- 员工信息管理模块:包括员工基本信息的录入、修改和删除。

- 工资管理模块:包括工资的计算、发放和管理。

- 考勤记录管理模块:包括员工考勤记录的管理和统计。

- 统计报表模块:包括员工工资和考勤情况的可视化统计和报表生成。

6.系统实现步骤开发该系统的步骤如下:- 分析需求:对系统功能和性能进行详细分析,明确需求。

- 数据库设计:设计合理的数据库表结构,保证数据的准确性和完整性。

- 系统架构设计:设计系统的整体架构和模块划分,明确模块之间的关系和交互。

- 编码实现:按照设计要求,使用java语言进行编码实现。

- 调试测试:对系统进行全面测试和调试,确保系统的稳定性和可靠性。

小型公司工资管理系统

小型公司工资管理系统

小型公司工资管理系统项目简介随着公司的发展,一个可靠的工资管理系统对于员工和管理层来说已经成为必不可少的东西了。

本文档将介绍一款小型公司工资管理系统的设计与实现。

功能模块登录模块工资管理系统首先要保证安全性,所以必须有登录模块。

只有通过验证的用户才能登录系统。

员工信息管理系统必须能够记录和展示员工个人信息,例如姓名、电话号码、地址等等。

此外,也需要包括员工的薪资信息、考勤记录和工作绩效。

工资管理在工资管理模块中,需要:•记录一个员工的薪水和其他奖励的详细信息。

•员工工资的计算与统计。

包括查询某个员工的工资明细、查询某个时间段的工资概况、按照不同方式的报告生成等。

•工资单的生成和导出。

需要生成和导出PDF、Excel格式的工资单。

考勤管理在考勤管理模块中,需要:•记录每个员工的出勤和缺勤情况。

•统计每个员工的考勤情况。

需要查询一个月或半个月的考勤情况,并将其显示在一张报告中。

•根据考勤状况计算员工的实际工资。

绩效管理绩效管理模块中,需要:•记录每个员工的绩效和得分情况。

•根据绩效,计算每个员工的奖金,并把它添加到员工工资明细中。

数据库管理系统需要建立数据库来保存和管理员工、考勤、工资和绩效信息。

需要设置基本的权限,以满足系统使用者的不同需求。

开发环境•操作系统:Windows 10或MacOS或Linux。

•数据库:MySQL。

•后端开发技术:PHP。

•前端开发技术:HTML、CSS、JavaScript。

系统预览这里将展示系统的登录页面和主页:•登录页面:用户可以输入用户名和密码来登录系统。

•主页:展示了系统的主要功能,比如员工信息管理、工资管理、考勤管理和绩效管理模块。

总结本文档介绍了小型公司工资管理系统的设计与实现。

通过该系统,公司可以更好地管理员工的工资和考勤情况,从而提高工作效率和员工满意度。

小型工资管理系统的设计与实现

小型工资管理系统的设计与实现

小型工资管理系统的设计与实现一、引言随着现代企业的不断发展,工资管理变得愈加复杂。

如何快速、准确地计算出员工的薪资水平,如何发放薪资并记录统计,成为了企业管理者们的一大难题。

针对这一问题,设计一个小型的工资管理系统变得尤为必要。

本文将介绍一款小型工资管理系统的设计与实现,该系统主要包括员工信息管理、薪资管理、考勤管理、绩效管理等模块,旨在为企业管理者提供一种快速便利的工资管理方案。

二、功能需求(一)员工信息管理员工信息管理是整个系统的基础,它主要包含员工的基本信息、入职时间、工作职责、薪资结构等信息。

管理员可以通过该模块对员工的基本信息进行增、删、改、查操作,也可以根据员工的薪资结构自动生成员工的工资信息。

同时,管理员也可以将员工按部门、职务等进行分类和管理。

(二)薪资管理薪资管理是工资管理系统的核心部分,主要包括员工的实际工资、考勤信息、支付方式等内容。

管理员可以在从员工信息管理模块中获取员工的薪资结构后,根据员工的具体情况计算出实际工资,再根据支付方式进行发放。

同时,管理员还可以查看员工的历史工资信息,并进行统计分析,以便于企业可以更好地了解员工的工资水平和发展趋势。

(三)考勤管理考勤管理是对员工工作时间和工作质量的评估,主要包括员工的迟到、早退、缺勤等情况。

管理员可以通过该模块记录员工打卡情况,并及时发现和纠正违规行为。

同时,管理员还可以根据员工的考勤情况对员工进行奖惩,以激励员工对工作的积极性。

(四)绩效管理绩效管理是对员工工作质量和工作成效的评估,主要包括员工的工作进度、工作质量、工作态度等维度。

管理员可以通过该模块对员工的绩效情况进行评估,并及时反馈给员工。

同时,管理员还可以根据员工的绩效情况进行奖惩,以激励员工进一步提升工作能力和工作水平。

三、技术架构本小型工资管理系统基于Web应用程序开发,采用的开发语言为PHP,数据库采用MySQL,Web服务器采用Apache,前端框架采用BootStrap。

如何编写一个简单的工资管理系统。

如何编写一个简单的工资管理系统。

如何编写一个简单的工资管理系统。

编写一个简单的工资管理系统。

具体要求:设计三个类Employee类,Manager类和HourlyWorker类。

Manager类和HourlyWorker类是 Employee类的子类。

Emloyee类记录职工的姓名和编号,Manager类增加了经理的工资属性;Hwourlyworker记录钟点工每小时的工资数和一个月的工作小时数。

每一个类中必须包含构造函数,析构函数,修改和获取所有数据成员的函数,计算职工工资,显示职工姓名和编号的虚函数。

主函数中设计一个数组存放所有职工对象。

提示用户选择:[1] 增加一个职工[2] 显示数组中所有的职工以及他们的工资[3] 显示数组中所有的经理以及他们的工资[4] 显示数组中钟点工以及他们的工资[5] 退出选择1时,输入职工名字,编号,职工类别,工资情况选择2时,显示数组中所有职工的姓名,编号和工资选择3时,显示数组中所有经理的姓名,编号和工资选择4时,显示数组中所有钟点工的姓名,编号和工资选择5,提示“谢谢使用,再会”后,退出。

程序运行示例:[1] 增加一个职工[2] 显示数组中所有的职工以及他们的工资[3] 显示数组中所有的经理以及他们的工资[4] 显示数组中钟点工以及他们的工资[5] 退出输入选择:1输入职工信息:姓名:张三编号:9904类别:经理月工资:2000***增加一个职工***张三 9904 2000[1] 增加一个职工[2] 显示数组中所有的职工以及他们的工资[3] 显示数组中所有的经理以及他们的工资[4] 显示数组中钟点工以及他们的工资[5] 退出输入选择:1输入职工信息:姓名:李四编号:9905类别:经理月工资:1000***增加一个职工***李四 9905 1000[1] 增加一个职工[2] 显示数组中所有的职工以及他们的工资[3] 显示数组中所有的经理以及他们的工资[4] 显示数组中钟点工以及他们的工资[5] 退出输入选择:1输入职工信息:姓名:王五编号:9906类别:钟点工小时工资:10月工作小时数:50***增加一个职工***王五 9906 小时工资:10,月工作小时数:50[1] 增加一个职工[2] 显示数组中所有的职工以及他们的工资[4] 显示数组中钟点工以及他们的工资[5] 退出输入选择:2***职工工资表***张三 9904 2000李四 9905 1000王五 9906 500[1] 增加一个职工[2] 显示数组中所有的职工以及他们的工资[3] 显示数组中所有的经理以及他们的工资[4] 显示数组中钟点工以及他们的工资[5] 退出输入选择:3***经理工资表***张三 9904 2000李四 9905 1000[1] 增加一个职工[3] 显示数组中所有的经理以及他们的工资[4] 显示数组中钟点工以及他们的工资[5] 退出输入选择:4***钟点工工资表***王五 9906 10 50 500[1] 增加一个职工[2] 显示数组中所有的职工以及他们的工资[3] 显示数组中所有的经理以及他们的工资[4] 显示数组中钟点工以及他们的工资[5] 退出输入选择:5***谢谢使用,再会***。

职工工资管理系统c语言程序设计

职工工资管理系统c语言程序设计

职工工资管理系统 C 语言程序设计简介职工工资管理系统是一个用于帮助企业管理职工工资的程序,它可以实现对职工的基本信息、工作时长、工资等进行管理。

本文将介绍如何使用 C 语言实现一个简单的职工工资管理系统。

功能设计1. 添加职工信息系统可以添加新的职工信息,包括职工编号、姓名、性别、职位等。

2. 修改职工信息已有职工信息可以进行修改,如姓名、性别、职位等。

3. 计算工资系统可以根据职工的工作时长和基础工资计算出实际工资。

4. 查询职工信息可以通过职工编号或姓名查询职工的详细信息。

5. 显示所有职工信息将所有职工的信息显示在界面上。

开发流程1. 定义数据结构首先,我们需要定义一个数据结构Employee来保存职工的信息,包括职工编号、姓名、性别、职位、基础工资等字段。

struct Employee {int id;char name[50];char gender[10];char position[50];float baseSalary;float hoursWorked;float totalSalary;};2. 编写主要函数添加职工信息void addEmployee(struct Employee emp) {// 将 emp 添加到员工列表中}修改职工信息void updateEmployee(struct Employee emp) {// 根据职工编号修改对应的员工信息}计算工资float calculateSalary(struct Employee emp) {// 计算职工的实际工资return emp.baseSalary + emp.hoursWorked * hourlyRate;}查询职工信息void searchEmployee(int id) {// 根据职工编号查询职工信息}显示所有职工信息void displayAllEmployees() {// 显示所有职工的信息}3. 用户界面交互为了方便用户操作,可以设计一个简单的用户界面,使用控制台打印实现信息展示和输入。

C小型企业工资管理系统

C小型企业工资管理系统

C小型企业工资管理系统Credit is the best character, there is no one, so people should look at their character first.一、需求分析1.从要求上来看是要对各个员工的各种情况名字、年龄、性别、职位、工资状况进行输入.然后可以输出.2.可以对于员工数据进行修改,可以查询.3.对于员工的各种情况系统还可以进行统计排名.二、概要设计首先,创建了一个employee类.然后派生出四个类: manager、technician、salesman、sales manager.在派生类中定义了三个构造函数,分别是:数据输入函数Input,表格输出函数Print,排序函数Pay.其次,在总体结构上,建立以各根菜单,用于选择各种功能.1.Input数据输入:输入员工的各种数据.2.Total数据统计:将员工的总数据进行对比排序,然后输出.3.Output数据显示:显示输入的各种数据.4.Save数据保存:对输入的数据进行保存备份.5.Eixt退出程序:执行退出程序命令.三、详细设计1.Input数据输入: 定义了各个岗位的人员的类,并把每个类的人员的属性设为类中的保护成员,其中技术工的工作时间和每小时的所得为私有成员,而销售员的销售额、经理的工资和销售经理的所辖部门的销售额和其底薪设为公有成员,再依次录入.2.Total数据统计: 根据所有类的工资算法在其所属类中定义一个函数void pay来根据各个职位的具体情况来计算工资,并且算出的工资经过冒泡法排序.void printtotal{cout<<"├─────┴──┬──┴─────┤"<<endl;cout<<"│Total │"<<setw10<<total<<" │"<<endl;cout<<"└────────┴────────┘"<<endl;}3.Output数据显示: 通过do-while循环以及制表格和setw的使用将输入的数据和统计并排序的数据以表格的形式打印出来,销售额合计一栏宽度要大些.void saleprint{cout<<"│"<<setw10<<no1<<"│"<<setw10<<name1<<"│"<<setw10<<sale1<<"│"<<endl;cout<<"├─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no2<<"│"<<setw10<<name2<<"│"<<setw10<<sale2<<"│"<<endl;cout<<"├─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no3<<"│"<<setw10<<name3<<"│"<<setw10<<sale3<<"│"<<endl;cout<<"├─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no4<<"│"<<setw10<<name4<<"│"<<setw10<<sale4<<"│"<<endl;}void print{cout<<"├─────┼─────┼─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no<<"│"<<setw10<<name<<"│"<<setw10<<sex<<"│"\ <<setw10<<age<<"│"<<setw10<<salary<<"│"<<endl;}4.Save数据保存: 通过函数save来将输入的数据和统计并排序的数据进行保存.例如:void save{fstream outfile;"f:",ios::app;ifoutfile{cout<<"f can't open.\n";abort;}outfile<<"Sales manger"<<endl;outfile<<"ID"<<no<<"NAME"<<name<<"SEX"< <sex<<"AGE"<<age<<"SALARY"<<salary<<endl;} 5.Eixt退出:利用exit来完成退出系统功能.四、设计和调试分析程序清单:include<>include<>include<>include<>include<>class employee{public:employee{salary=0;}void pay{}void print{}void input{cout<<"ID:";cin>>no;cout<<" NAME:";cin>>name;cout<<" SEXm/w:";cin>>sex;cout<<" AGE:";cin>>age;}protected:int no;char name8;float salary;char sex;int age;};class manager:virtual public employee {protected:float monthlypay,sale;public:manager{monthlypay=8000;}voidinput{cout<<"Manger";employee::input;}void save{fstream outfile;"f:",ios::app;ifoutfile{cout<<"f can't open.\n";abort;}outfile<<"Manger"<<endl;outfile<<"ID"<<no<<"NAME"<<name<<"SEX"<<sex <<"AGE"<<age<<"SALARY"<<salary<<endl;}void pay{salary=monthlypay;}void print{cout<<"├─────┼─────┼─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no<<"│"<<setw10<<name<<"│"<<setw10<<sex\<<"│"<<setw10<<age<<"│"<<setw10<<salary<<"│"<<endl;}};class technician:virtual public employee{private:float hourlyrate;int workhours;public:technician{hourlyrate=100;}void paycout<<name<<"Work hour:";cin>>workhours;salary=hourlyrateworkhours;}voidinput{cout<<"TECHNICIAN"<<endl;employee::input;} void save{fstream outfile;"f:",ios::app;ifoutfile{cout<<"f can't open.\n";abort;}outfile<<"TECHNICIAN"<<endl;outfile<<"ID"<<no<<"NAME"<<name<<"SEX"<<sex <<"AGE"<<age<<"SALARY"<<salary<<endl;void print{cout<<"├─────┼─────┼─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no<<"│"<<setw10<<name<<"│"<<setw10<<sex\<<"│"<<setw10<<age<<"│"<<setw10<<salary<<"│"<<endl;}};class salesman:virtual public employee{protected:float commrate;float sales;public:salesman{commrate=;}voidinput{cout<<"SALEMAN";employee::input;}void save{fstream outfile;"f:",ios::app;ifoutfile{cout<<"f can't open.\n";abort;}outfile<<"TECHNICIAN"<<endl;outfile<<"ID"<<no<<"NAME"<<name<<"SEX"<<sex <<"AGE"<<age<<"SALARY"<<salary<<endl;}void pay{cout<<name<<"Sales volume:";cin>>sales;salary=salescommrate;}void print{cout<<"├─────┼─────┼─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no<<"│"<<setw10<<name<<"│"<<setw10\<<sex<<"│"<<setw10<<age<<"│"<<setw10<<salary<<"│"<<endl;}};class salesmanager:virtual public manager,virtual public salesman{private:float total;int no1,no2,no3,no4;charname18,name28,name38,name48;float sale1,sale2,sale3,sale4;public:void salemanager{monthlypay=5000;commrate=;}void input{cout<<"Sales manger";employee::input;}void save{fstream outfile;"f:",ios::app;ifoutfile{cout<<"f can't open.\n";abort;}outfile<<"Sales manger"<<endl;<<"AGE"<<age<<"SALARY"<<salary<<endl;}void savesale{fstream outfile;"f:",ios::app;ifoutfile{cout<<"f can't open.\n";abort;}outfile<<"The salary of saleman of sales manger and themselves"<<endl;outfile<<"ID"<<no1<<"NAME"<<name1<<"SALARY" <<sale1<<endl;outfile<<"ID"<<no2<<"NAME"<<name2<<"SALARY" <<sale2<<endl;<<sale3<<endl;outfile<<"ID"<<no4<<"NAME"<<name4<<"SALARY" <<sale4<<endl;}void pay{cout<<name<<"The sales volume of everydepartment:";salary=monthlypay+commratetotal;}floattotalsale{total=sale1+sale2+sale3+sale4;return total;}void printtotal{cout<<"├─────┴──┬──┴─────┤"<<endl;cout<<"│Total │"<<setw10<<total<<" │"<<endl;cout<<"└────────┴────────┘"<<endl;}void sortsalesmanager p{int tmp,i,j;forj=0;j<2;j++fori=0;i<2;i++iftotal<{tmp=salary;total=;=tmp;tmp=no;no=;=tmp;}}void saler{cout<<"Staff ID:";cin>>no1;cout<<" Staff NAME:";cin>>name1;cout<<" Sales volume:";cin>>sale1;cout<<"Staff ID:";cin>>no2;cout<<" Staff NAME:";cin>>name2;cout<<" Sales volume:";cin>>sale2;cout<<"Staff ID:";cin>>no3;cout<<" Staff NAME:";cin>>name3;cout<<" Sales volume:";cin>>sale3;cout<<"Staff ID:";cin>>no4;cout<<" Staff NAME:";cin>>name4;cout<<" Sales volume:";cin>>sale4;}void saleprint{cout<<"│"<<setw10<<no1<<"│"<<setw10<<name1<<"│"<<setw10<<sale1<<"│"<<endl;cout<<"├─────┼─────┼─────┤"<<endl;"<<setw10<<name2<<"│"<<setw10<<sale2<<"│"<<endl;cout<<"├─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no3<<"│"<<setw10<<name3<<"│"<<setw10<<sale3<<"│"<<endl;cout<<"├─────┼─────┼─────┤"<<endl;cout<<"│"<<setw10<<no4<<"│"<<setw10<<name4<<"│"<<setw10<<sale4<<"│"<<endl;}void print{cout<<"├─────┼─────┼─────┼─────┼─────┤"<<endl;"<<setw10<<name<<"│"<<setw10<<sex<<"│"\<<setw10<<age<<"│"<<setw10<<salary<<"│"<<endl;}};void main{manager m4;technician t4;salesman s4;salesmanager sm4;t1.save;int flag=1,operate;do{cout<<" The system of salary manger \n";cout<<" ┌─────────────┐\n";cout<<" │ Chose youractions │\n";cout<<" │ Input:1,Enter │\n";cout<<" │ Total:2,Enter │\n";cout<<" │ Output:3,Enter │\n";cout<<" │ Save:4,Enter │\n";cout<<" │ Exit:5,Enter │\n";cout<<" └─────────────┘\n";cout<<" Pleasechose one action: ";cin>>operate;switchoperate{case 1:cout<<"Waiting for a minute"<<endl;{forint i=0;i<4;i++{mi.input;}forint j=0;j<4;j++{tj.input;}forint k=0;k<4;k++{sk.input;}forint l=0;l<4;l++{sml.input;}};{forint i=0;i<4;i++{mi.pay;}forint j=0;j<4;j++{tj.pay;}forint k=0;k<4;k++{sk.pay;}forint l=0;l<4;l++{sml.pay;sml.saler;}};break;case 2:cout<<"Waiting for a minute"<<endl;{{forint l=0;l<4;l++sml.totalsale;forint i=0;i<4;i++forint j=0;j<2;j++smj.sortsmj+1;};cout<<"The saleman of the first sales manger"<<endl;cout<<"┌─────┬─────┬─────┐"<<endl;cout<<"│ID │ NAME │SALARY │"<<endl;sm0.saleprint;sm0.printtotal;cout<<" The order is complete"<<endl;cout<<"List names of every sales manger"<<endl;cout<<"┌─────┬─────┬─────┬─────┬─────┐"<<endl;cout<<"│ID │ NAME │SEX │AGE │ SALARY │"<<endl;forint k=0;k<4;k++smk.print;cout<<"└─────┴─────┴─────┴─────┴─────┘"<<endl;};break;case 3:cout<<"Waiting for a minute"<<endl;{cout<<" The blank of the :"<<endl;cout<<"┌─────┬─────┬─────┬─────┬─────┐"<<endl;cout<<"│ID │ NAME │SEX │AGE │ SALARY │"<<endl;forint i=0;i<4;i++{mi.print;}cout<<"└─────┴─────┴─────┴─────┴─────┘"<<endl;cout<<"┌─────┬─────┬─────┬─────┬─────┐"<<endl;cout<<"└─────┴─────┴─────┴─────┴─────┘"<<endl;cout<<"┌─────┬─────┬─────┬─────┬─────┐"<<endl;cout<<"│ID │ NAME │SEX │AGE │ SALARY │"<<endl;forint k=0;k<4;k++{sk.print;}cout<<"└─────┴─────┴─────┴─────┴─────┘"<<endl;cout<<"┌─────┬─────┬─────┬─────┬─────┐"<<endl;cout<<"└─────┴─────┴─────┴─────┴─────┘"<<endl;};break;case 4:cout<<"Waiting for a minute"<<endl;{forint i=0;i<4;i++{mi.save;}forint j=0;j<4;j++{tj.save;}forint k=0;k<4;k++{sk.save;}forint l=0;l<4;l++{sml.save;}};cout<<" Information save "<<endl;break;case 5:exit0;break;default:cout<<"ErrorRepeat again"<<endl;}}whileflag=1;}}五、用户手册1)运行程序.会出现如下画面,按照提示进行选择.2)首先选择1,然后按Enter键.按照提示对员工个人情况进行输入.如图:3)然后选择4,然后按Enter键.对刚才输入的数据进行保存.4)选择2, 然后按Enter键.对数据进行统计.如图:六、测试结果对各个部分功能进行测试后,各部分功能都很好.但是此程序也有的它的缺点在.那就是它不能按照个人的意愿,职能按照固定的人数对数据进行输入,既不能多也不能少.很麻烦.一但格式输入的不正确会立即进入死循环.不理想.本程序综合性非常强,由于我们对使用C++设计程序的能力还不是很熟练,所以在设计时非常吃力.在整个程序中,我们通过使用while循环,switch语句,冒泡排序法,表格设计中的setw以及类的定义及使用来完成程序设计,使我提高了对C++中语句的使用能力和组合能力,进一步加强了我对使用C++编程的能力.通过此次程序设计实习,我发现自己在学习C++方面还有很多不足,在此程序中可能还有一些不足和错误,我们将在以后的学习过程中不断努力并强化对C++的练习七、参考文献[1]苏金明,周建斌.用和VC开发交互式CAD系统M.北京:电子工业出版社,2004[2]普悠玛.程序设计示例导学M. 北京:科海电子出版社,2003。

小型公司工资管理系统(内附程序)

小型公司工资管理系统(内附程序)

中国石油大学(华东)信息与控制工程学院《程序设计实习》报告小型公司工资管理系统的设计专业班级:学号:姓名:指导教师:时间:2014.6.29~2014.7.42014年7月目录一、实习内容 (1)二、设计思路 (2)三、程序调试过程中典型问题及解决方法 (3)四、程序使用说明 (4)五、心得体会及课程改进设想 (5)一、实习内容计算机与网络技术的高速发展,特别是面向对象技术的出现,使得C++的软件开发得到了迅速普及。

本设计主要以C++语言为基础,针对小型公司员工情况,编写出简单的小型公司工资管理系统。

并在这一过程进一步熟悉C++类的概念、类的封装、继承、和多态的实现方式。

了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装、模块组装和整体调试的全过程;逐步熟悉程序设计的方法,并养成良好的编程习惯。

同时在进行分析、编程、调试和运行的过程中,巩固了所学的理论知识,使理论与事件相结合,提高分析问题、解决问题的能力。

设计题目及要求:1.题目:《小型公司工资管理系统》设计2.设计说明与要求3.(1)公司主要有4类人员:经理、技术员、销售员、销售经理。

要求存储这些人的职工号、姓名、性别、年龄、月工资、年龄、性别等信息(2)工资的计算方法A、经理:固定月薪为8000元;B、技术员:工作时间*小时工资(100元/小时);C、销售员:销售额*4%提成;D、销售经理:底薪(5000元)+下属销售员销售额总额*0.5%;(3) 类的层次结构大体如下(4) 员工基本数据的输入(测试数据)要求每类人员不能少于2人,其中销售员需要4名,每名销售经理手下有2名销售员。

(6) 各类的数据成员访问权限设置为:protected(7)实现功能应用程序中要有菜单,用于选择各种功能,其中①数据输入:输入各种数据;②数据统计:统计各种销售经理下属销售员的销售额及限售额之和;销售经理按工资进行的冒泡排序;③数据打印:打印各类员工的数据信息;④数据备份:把各类员工的数据星系写入文件中保存;⑤退出本系统;(8)菜单说明①数据录入指通过键盘输入各类员工的各项数据;②数据统计指统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行冒泡法排序;③数据打印指按照表格的格式在屏幕上输出个员工的信息;④数据备份指将所有员工的信息保存到文件;⑤退出:结束程序的运行。

选题一_小型公司工资管理系统

选题一_小型公司工资管理系统

小型公司工资管理系统
一、设计任务
编写一个小型公司的工资管理程序。

该公司主要有4类人员:经理、兼职技术人员、销售员和销售经理。

其中月薪计算方法为:经理固定月薪8000元,兼职技术人员100元/小时,销售员为其当月销售额的4%,销售经理保底工资5000元另加其所管部门销售额的5‰。

二、设计要求
1、使用文件存储相关信息(可用多个文件,存储人员信息、销
售员销售额等等)。

2、能实现人员信息的录入及增删改,人员信息包括编号、姓
名、职位、部门等等,人员编号自动产生(即无需用户输入,
从10000起编号)。

a)删除(针对人员离职)后该人员过往的销售记录还应保留,
查寻以前的销售情况或工资清单时仍显示该员工记录;
b)改是针对人员职位变动,仅能更改职位。

3、能录入某月各销售员的销售额(自行设计操作方式,方便用
户操作),可列出某月的销售额清单。

4、能列出某月的工资清单,可按多种方式排序(按员工编号、
工资升序、工资降序、按职位等)。

5、其他未尽事项可自行设计,遵循合理及易用的原则。

小型工资管理系统_报告文档

小型工资管理系统_报告文档

电子与信息工程学院计算机系《面向对象程序设计》考查作业文档题目:小型工资管理系统班级:计算机08本(一)班姓名: * ****学号:*******评定成绩:完成时间:2011-6-13目录第一章结构化分析.................................... - 3 -一、系统概述...................................... - 3 -1.1 开发目的.................................. - 3 -1.2 系统功能.................................. - 3 -1.3 开发平台.................................. - 4 -二、结构化分析建模................................ - 4 -2.1 功能建模.................................. - 4 -2.2 数据建模................................... - 8 - 第二章结构化设计.................................... - 9 -一、软件体系结构设计.............................. - 9 -二、模块详细设计................................. - 10 -1、工资计算模块............................... - 11 -2、工资统计模块............................... - 12 - 第三章系统实施..................................... - 13 -一、模块设计..................................... - 13 -二、参考文献..................................... - 23 -第一章结构化分析一、系统概述1.1 开发目的要求了解企业管理信息系统开发的全过程,理解信息系统课程相关的概念,掌握管理信息系统的开发方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sethour(h);
}
void hourworker::sethour(int h)
{
hour=h;}
void hourworker::setmoney(double m)
{
money=m;
}
double hourworker::earnings()const
{
return money*hour;
virtual void print()const;
private:
double money;
int hour;
};
hourworker::hourworker(const long k, const char*str,double m,int h):employee(k,str){
setmoney(m);
void salesmanager::setsalary(double )
{
salary=salary1;
}
void salesmanager::setsales(double sales2)
{
sales=sales2;
}
double salesmanager::earnings()const
};
manager::manager(const long k, const char*str,double sal):employee(k,str){setmonthsalary(sal);}
void manager::setmonthsalary(double sal)
{
monthsalary=sal;
cout<<"\tearning:"<<earnings()<<endl;
}
int main()
{
manager a(61,"xiaohao",100000);
a.print();
salesmanager B(10,"hao",5000,10000);
B.print();
hourworker C(11,"shihao",80,5);
}
class hourworker:public employee
{
public:
hourworker(const long,const char*,double=0.0,int =0);
~hourworker(){}
void sethour(int);
void setmoney(double);
virtual double earnings()const;
{
return salary+0.04*sales;
}
void salesmanager::print()const
{
employee::print();
cout<<setw(16)<<"salesmanager\n";
cout<<"\tsalary: $"<<sales<<endl;
cout<<"\tearnings: $"<<earnings()<<endl;
const char*getname()const;
const long getnumber()const;
virtual double earnings()const=0;
virtual void print()const;
protected:
long number;
char*name;
};
employee::employee(const long k,const char*str)
}
double salesman::earnings()const
{
return sales*0.04;
}
void salesman::print()const
{
employee::print();
cout<<setw(16)<<"salesman\n";
cout<<"\tsales: "<<sales<<endl;
{
number=k;
name=new char[strlen(str)+1];
assert(name!=0);
strcpy(name,str);
}
employee::~employee()
{
delete []name;
}
const char*employee::getname()const
{
return name;
virtual double earnings()const;
virtual void print()const;
protected:
double sales;
double salary;};
salesmanager::salesmanager(const long k,const char*str,double salary1,double sales2):employee(k,str){setsalary(salary1);setsales(sales2);}
manager(const long,const char*,double=0.0);
~manager(){};
void setmonthsalary(double);
virtual double earnings()const;
virtual void print()const;
private:
double monthsalary;
C.print();
salesman D(90,"shihao",5000);
D.print();
return 0;
}
}
double manager::earnings()const
{
return monthsalary;
}
void manager::print()const
{
employee::print();
cout<<setw(16)<<"manager\n";
cout<<"\tearning$"<<monthsalary<<endl;
}
class salesmanager:public employee
{
public:
salesmanager(const long , const char*, double=0.0,double=0.0);
~salesmanager(){}
void setsalary(double);
void setsales(double);
#include<iostream.h>
#include<string.h>
#include<assert.h>
#include<iomanip.h>
class employee
{
public:
employee(const long, const char*);
virtual ~employee();
}
const long employee::getnumber()const
{
return number ;
}
void employee::print()const
{
cout<<number<<setw(16)<<name<<endl;
}
class manager:public employee
{
public:
}
class salesman:public employee
{
public:
salesman(const long,const char*,double=0.0);
~salesman(){}
void setsales(double);
virtual double earnings()const;
virtual void print()const;
}
void hourworker::print()const
{
employee::print();
cout<<setw(16)<<"hourwoker\n";
cout<<"\tworkhour: "<<hour<<endl;
cout<<"\tearning: $"<<earnings()<<endl;
private:
double sales;
};
salesman::salesman(const long k,const char* str,double s):employee(k,str){setsales(s);}
void salesman::setsales(double s)
{
sales=s;
相关文档
最新文档