博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
11月1号 尚未完成
阅读量:4984 次
发布时间:2019-06-12

本文共 7353 字,大约阅读时间需要 24 分钟。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

#define MAX 100

 

/*涉及数据结构*/

struct salary_Info

{

       int card_no;             //工作卡号

       char name[20];           //姓名

       int month;               //月份

       float init_salary;       //应发工资

       float water_rate;        //水费

       float electric_rate;     //电费

       float tax;               //税金

       float final_salary;      //实发工资

}SI[MAX];

/*1、主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择*/

 

static int g_nTotal = 0;

 

//输入部分

void input();

 

//输入部分选择菜单  包含保存选择菜单

int selectinput();

//顺序输入

void SysProductCardNo();

void inputCardName();

void inputCardMonth();

void inputCardSalary();

void inputCardWaterRate();

void inputCardElectricRate();

 

//保存选择菜单

int saveSelect();

void saveInputOK();

void saveInputCancel();

 

 

//处理部分

void handle();

int GetCardNoByName();

int GetCardNoByNo();

void modifyCardName();

void modifyCardMonth();

void modifyCardSalary();

void modifyCardWaterRate();

void modifyCardElectricRate();

void modify();

 

 

//输出部分

void display();

 

//主菜单选择

int selectmenu();

 

int selectmenu()

{

    char szSelect[20] = {0};

Label:   

    system("cls");

    printf("工资管理系统主菜单\n");

    printf("(i/I) 输入\n");

    printf("(h/H) 处理\n");

    printf("(d/D) 显示\n");

    printf("(e/E) 退出\n");

    printf("请选择以上选项 : ");

    scanf("%s",szSelect);

    if(szSelect[1] != '\0'){

           printf("输入错误! 请重新输入");

           goto Label;

    }

    if(szSelect[0] == 'i' || szSelect[0] == 'I')

        return 1;

    else if(szSelect[0] == 'h' || szSelect[0] == 'H')

        return 2;  

    else if(szSelect[0] == 'd' || szSelect[0] == 'D')

        return 3;

    else if(szSelect[0] == 'e' || szSelect[0] == 'E')

        return 0;

}

 

 

 

 

int selectinput()

{

    char szSelect[20] = {0};

Label:

    system("cls");

    printf("1、添加职工信息\n");

    printf("0、返回上一级..\n");

    printf("选择操作 (0 - 1) : "); 

    scanf("%s",szSelect);

    if(szSelect[0] == '1')

         return 1;

    else if(szSelect[0] == '0')

         return 0;

    else

    {

        printf("选择错误,请重新选择 \n");

        goto Label;

    }

}

 

int saveSelect()

{

    char szSelect[20] = {0};

Label:

    printf("选择是否保存 (yes y(Y),no n(N) :");

    scanf("%s",szSelect);

    if(szSelect[1] != '\0')

    {

           printf("输入错误,请重新输入");

           goto Label;

    }

    if(szSelect[0] == 'y' || szSelect[0] == 'Y')

            return 1;

    else if(szSelect[0] == 'n' || szSelect[0] == 'N')

            return 0;

}

void saveInputOK()

{

     printf("保存成功 !\n");

     system("pause");

}

void saveInputCancel()

{

     g_nTotal--;

     printf("保存失败 !\n");

     system("pause");

}

 

void ModifyEditOK()

{

     printf("保存成功 !\n");

     system("pause");

}

void ModifyEditCancel()

{

     g_nTotal--;

     printf("保存失败 !\n");

     system("pause");

}

//输入值

void SysProductCardNo()

{

     int nMember = 0;

     int nNo = 0;

     nMember = g_nTotal;

     nMember++;

     nNo = rand() % 100;

     printf("系统随机产生职员编号为 %d \n", nNo);

     SI[nMember].card_no = nNo;

     g_nTotal = nMember;

}

void inputCardName()

{

     int nMember = 0;

     printf("输入职员名称 : ");

     nMember = g_nTotal;

     scanf("%s",SI[nMember].name);

}

void inputCardMonth()

{

     int nMember = 0;

     printf("输入月份 : ");

     nMember = g_nTotal;

     scanf("%d",&SI[nMember].month);

}

void inputCardSalary()

{

     int nMember = 0;

     printf("输入应发薪水 : ");

     nMember = g_nTotal;

     scanf("%f",&SI[nMember].init_salary);

}

void inputCardWaterRate()

{

     int nMember = 0;

     printf("输入水费 : ");

     nMember = g_nTotal;

     scanf("%f",&SI[nMember].water_rate);

}

void inputCardElectricRate()

{

     int nMember = 0;

     printf("输入电费 : ");

     nMember = g_nTotal;

     scanf("%f",&SI[nMember].electric_rate);

}

 

 

void input()

{

     int nReturn = 1;

     while(nReturn)

     {

             switch(selectinput())

             {

             //继续添加

             case 1:

                  system("cls");

                  //生产系统编号

                  SysProductCardNo();

                  //姓名

                  inputCardName();

                  //月份

                  inputCardMonth();

                  //应发工资

                  inputCardSalary();

                  //水费

                  inputCardWaterRate();

                  //电费

                  inputCardElectricRate();

                  break;

             //不添加

             case 0:

                  nReturn = 0;

                  break;     

             }     

     }

     switch(saveSelect())

     {

             case 1:

                  saveInputOK();

                  break;

             case 0:

                  saveInputCancel();

                  break;      

             default:

                  break;    

     }

}

 

int GetCardNoByName()

{

    int nFlag = 0;

    int nCardNo = -1;

    int nMember = 0;

    char szName[20] = {0};

    system("cls");

    printf("请输入需要查找的姓名 : ");

    scanf("%s",szName);

    for(nMember = 0; nMember < g_nTotal; nMember++)

    {

         if(strcmp(szName,SI[nMember].name) == 0)

         {

                  nCardNo = SI[nMember].card_no;

                  nFlag = 1;                   

                  break;     

         }

    }

    if(0 == nFlag)

         printf("没有找到对应的用户 \n");

    return nCardNo;

}

int GetCardNoByNo()

{

    int nFlag = 0;

    int nCardNo = -1;

    int nMember = 0;

    int nInputNo = 0;

    system("cls");

    printf("请输入需要查找的卡号 : ");

    scanf("%d",&nInputNo);

    for(nMember = 0; nMember < g_nTotal; nMember++)

    {

         if(nInputNo == SI[nMember].card_no)

         {

                 nCardNo = SI[nMember].card_no;

                 nFlag = 1;

                 break;

         }

    }

    if(0 == nFlag)

         printf("没有找到对应的用户 \n");

    return nCardNo;

}

void modifyCardName()

{

     printf("修改员工姓名\n");

}

void modifyCardMonth()

{

}

void modifyCardSalary()

{

}

void modifyCardWaterRate()

{

}

void modifyCardElectricRate()

{

}

int modifyMenu()

{

   

}

void modify()

{

     int nReturn = 1;

  //   SysProductCardNo();

     while(nReturn)

     {

             switch(selectinput())

             {

             case 1:

                  //姓名

                  modifyCardName();

             break;

             case 2:

                  //月份

                  modifyCardMonth();

             break;

             case 3:

                  //应发工资

                  modifyCardSalary();

                  break;

             case 4:

                  //水费

                  modifyCardWaterRate();

                  break;

             case 5:

                  //电费

                  modifyCardElectricRate();

                  break;

             case 0:

                  nReturn = 0;

                  break;     

             default:

                  break;

             }     

     }

     switch(saveSelect())

     {

             case 1:

                  ModifyEditOK();

                  break;

             case 0:

                  ModifyEditCancel();

                  break;  

             default:

                  break;        

     }

}

void calCard()

{

}

void sortCard()

{

}

int handleMenu()

{

    int szSelect[20] = {0};

Label:

    system("cls");

    printf("1、修改职工信息 \n");

    printf("2、处理员工税金工资 \n");

    printf("3、重新排序处理 \n");

    printf("0、返回上一级 ... \n");

    printf("请选择操作 (0 - 3) : ");

    scanf("%s",szSelect);

    if(szSelect[0] == '1')

        return 1;

    else if(szSelect[0] == '2')

        return 2;

    else if(szSelect[0] == '3')

        return 3;

    else if(szSelect[0] == '0')

        return 0;

    else

    {

        printf("选择错误,请重新输入 \n");

        goto Label;

    }

}

void handle()

{

     int nFlag = 1;

     while(nFlag)

     {

          switch(handleMenu())

          {

          case 1:

               modify();

               break;

          case 2:

               calCard();

               break;

          case 3:

               sortCard();

               break;

          case 0:

               break;

          }

     }   

}

void displayCardNo()

{

    int nMember = 0;

    printf(" %d 员工的卡号", g_nTotal);

    for(nMember = 0; nMember < g_nTotal; nMember++)

    {

          printf("%d  ", SI[nMember].card_no);

         

    }

}

void displayCardName()

{

    int nMember = 0;

    printf(" %d 员工的姓名", g_nTotal);

    for(nMember = 0; nMember < g_nTotal; nMember++)

    {

          printf("%d  ", SI[nMember].name);

         

    }

}

int choiceMenu()

{

    int nChoice = 0;

Label:   

    system("cls");

    printf("选择菜单 \n");

    printf("1、只显示姓名 \n");

    printf("2、只显示卡号 \n");

    printf("3、显示选择列 \n");

    printf("0、返回上一级 .. \n");

    printf("请选择以上选项 : ");

    scanf("%d",&nChoice);

    if(nChoice > 3 && nChoice < 0)

    {

          printf("选择错误,请重新选择 \n");

          goto Label;

    }

    return nChoice;

}

void choiceDisplay()

{

    int nChoice = 1;

    while(nChoice)

    {

          switch(choiceMenu())

          {

          case 1:

               break;

          case 2:

               break;

          case 3:

               break;

          case 0:

               nChoice = 0;

               break;

          }

    }

}

int listMenu()

{

}

void listDisplay()

{

}

int sortMenu()

{

}

void SortDisplay()

{

}

int displayMenu()

{

    char szSelect[20] = {0};

Label:

    system("cls");

    printf("选择浏览方式 \n");

    printf("1、选择所有用户 \n");

    printf("2、分列显示用户 \n");

    printf("3、排序显示用户 \n");

    printf("0、返回上一级.. \n");

    printf("请选择以上选项 : ");

    scanf("%s",szSelect);

    if(szSelect[0] == '1')

         return 1;

    else if(szSelect[0] == '2')

         return 2;

    else if(szSelect[0] == '3')

         return 3;

    else if(szSelect[0] == '0')

         return 0;

    else{

         printf("选择错误,请重新选择 \n");

         goto Label;

    }

}

void display()

{

    int nDisplay = 1;

    while(nDisplay)

    {

           switch(displayMenu())

           {

           case 1:

                choiceDisplay();

                break;

           case 2:

                listDisplay();

                break;

           case 3:

                SortDisplay();

                break;

           case 0:

                nDisplay = 0;

                break;       

           }

    }

}

void ChangeDesktop()

{

    

//      system("mode con cols=30 lines=20");

//      system("color 14");

   //   system("title=工资管理系统");

}

/*主函数*/

int main(void)

{

 

    int nExit = 1;

    ChangeDesktop();

    while(nExit)

    {       

            switch(selectmenu())

            {

            case 1:

                 //1、输入

                 input();

                 break;

            case 2:

                 //2、处理

                 handle();

                 break;

            case 3:

                 //3、输出

                 display();

                 break;

            case 0:

                 //退出

                 nExit = 0;

                 break;

            }

    }

    //存盘处理

    return 0;

}

 

转载于:https://www.cnblogs.com/boobuy/p/3402206.html

你可能感兴趣的文章
Python 包的制作(__init__.py)
查看>>
java内存模型优化建议
查看>>
三十、模块补充
查看>>
流程审批设计
查看>>
别装了,你根本就不想变成更好的人
查看>>
数据库 join
查看>>
AES加密工具类[亲测可用]
查看>>
方法区
查看>>
Django-----ORM
查看>>
ARCGIS部分刷新
查看>>
发 零 食
查看>>
poj3613:Cow Relays(倍增优化+矩阵乘法floyd+快速幂)
查看>>
洛谷P1886 滑动窗口
查看>>
Shell编程(二)Bash中调用Python
查看>>
主动与被动监控 拓扑图组合图 自定义监控
查看>>
SQL总结(一)基本查询
查看>>
PDF分割--可脱离python环境执行,可传参数,可弹窗的PC端小工具
查看>>
cas-client-core单点登录排除不需要拦截的URL
查看>>
OCR技术浅探 : 文字定位和文本切割(2)
查看>>
jmeter集合点
查看>>