当前位置:编程学习 > C/C++ >>

求解一道C++编程题。。。

题目9:职工信息系统
功能包括:
1.建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话)
2.根据职工编号查询职工信息(查询时需要身份确认。单位领导和人事秘书可以看到职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信息简表)
3.增加新职工信息(由人事秘书完成,需要身份确认)
4.删除职工信息(由人事秘书完成,需要身份确认)
5.修改职工工资(由财务处人员完成,需要身份确认)
6.要求所有信息能够存储在文件中,并具有良好的用户界面
答案:#include<iostream.h>

struct worker

{

    int num;                           //职工编号

    char name[20];                     //姓名                                

    int age;                            //年龄

    char xl[8];                         //学历

    double yfgz;                       //应发工资

    double sj;                         //税金

    double sfgz;                       //实发工资

   

};

void px(worker wor[],int n);

void input(worker wor[],int n);

void find(worker wor[],int n);

void main()

{                                 //主函数

    worker wor[20];

    int n;

    int choice;

    cout<<"请输入职工人数:";

    cin>>n;   

    cout<<"请输入职工信息:\n";

    input(wor,n);

 for(int i=1;i<5;i++){  

cout<<" 请选择查询方式:"<<endl;

    cout<<"*进行职工信息的查找.................1"<<endl;

    cout<<"*进行职工信息的排序.................2"<<endl;                           

    cin>>choice;

    if(choice==0)

        break;

   

    switch(choice) {

        case 1:find(wor,n) ;break;

        case 2:px(wor,n); break;

        default: cout<<"出错啦! "<<endl;break;

 

    }

    }

 

}

 

void input(worker wor[],int n)

{                                      //输入与显示函数

    int i=0;

    cout<<"职工编号 姓名 年龄 学历应发工资 "<<endl;

    while(i<n)

    {

        cin>>wor[i].num>>wor[i].name>>wor[i].age>>wor[i].xl>>wor[i].yfgz;            

                       

        if(wor[i].yfgz<1000)                 //税金计算

            wor[i].sj=0;

        else if(wor[i].yfgz<2000)

            wor[i].sj=(wor[i].yfgz-1000)*0.05;

        else if(wor[i].yfgz<3000)

            wor[i].sj=(wor[i].yfgz-1000)*0.1;

        else if(wor[i].yfgz<4000)

            wor[i].sj=(wor[i].yfgz-1000)*0.15;

        else if(wor[i].yfgz<5000)

            wor[i].sj=(wor[i].yfgz-1000)*0.2;

        else

            wor[i].sj=(wor[i].yfgz-1000)*0.3;

        wor[i].sfgz=wor[i].yfgz-wor[i].sj;      //实发工资   

       

            i++;  

     }

    cout<<"职工编号 姓名 年龄 学历应发工资 税金 实发工资"<<endl;

    for(i=0;i<n;i++)

    {

        cout<<wor[i].num<<"\t "<<wor[i].name<<" \t"<<wor[i].age<<"\t "<<wor[i].xl<<"\t "<<wor[i].yfgz<<"\t "<<wor[i].sj<<"\t "<<wor[i].sfgz<<endl;

}

}

 

void find(worker wor[],int n)     //查找职工信息

{                                  //查找函数

    worker p;    

上一个:编写程序 ATM的模拟 C++
下一个:C++的WIN32怎么建文件夹?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,