改正错误代码,能够正常运行正确

点击二维码进去就可看
https://share.weiyun.com/F6gWioAI

有错误的复现信息么?这大海捞针?

编译报错给你找完了,都是些语法错误啥的,至于运行问题你自己看吧,还有问题私信问我就行

img

修改完善如下,修改处见注释,供参考:

#include<stdio.h>
#include<stdlib.h>//system函数 
#include<string.h>//strcmp()函数和strcpy函数 
#include<conio.h>//getch()函数

#define MaxSize 100 //修改

//申明函数 
void exit();
void enter();//录入职工信息
void add();//添加职工
void change();//修改职工信息
void show();
void del(); //删除职工信息 
void xmsc(); //按职工姓名删除 
void see();//查询职工所有信息 
void px();
void sort();
void sort_ID();
int  read;//读取文件信息
void save(int m);//存储 信息
void tsalaryll();//统计职工的总工资
void bsalaryaver();//计算全部职工的基本工资平均值
void author();//作者信息
void back();//退出系统
 
struct employee
{
    char ID[10]; //职工号数 
    char name[30]; //职工姓名
    char sex[10];//职工性别
    char age[10];//职工年龄 
    char education[20];//职工学历
    char address[30];//职工住址
    char phone[20];//职工电话
    char nation[20];//职工民族
    char marriage[10];//职工婚否
    char department[20];//职工隶属部门
    char post[20];//职务
    int bsalary;//职工基本工资 
    int bonus;//职工绩效奖金    
    int tsalary;//职工总工资 
};

struct employee wo[MaxSize];//保存所有的职工信息   修改
int Number=0;//全局变量。整个程序都有效,记录总的职工的人数

void show()
{
    printf("\t------这是【职工】管理统计系统------------\n");
    printf("\t------录入职工信息-----------【1】--------\n");
    printf("\t------添加职工信息 ----------【2】--------\n");
    printf("\t------修改职工信息-----------【3】--------\n");
    printf("\t------删除职工信息-----------【4】--------\n");
    printf("\t------查询职工信息-----------【5】--------\n");
    //printf("\t------查看作者信息-----------【6】--------\n");
    printf("\t------统计职工的总工资-------【7】 -------\n");
    printf("\t-计算全部职工的基本工资平均值【8】--------\n");
    printf("\t---------作者信息------------【9】--------\n");
    printf("\t---------退出操作------------【0】--------\n");
    
}

int main()
{
    int choose=0;
    while(true) //无限循环
    {
        show();
        printf("\t\t==========>请选择数字:");
        scanf("%d",&choose);
        system("cls"); //清理屏幕
        switch(choose)
        {
                   case 0:exit(0);//退出系统
                          break;
                   case 1:enter();//录入职工信息
                          back();
                          break;
                   case 2:add();//添加职工信息
                          back();
                          break;
                   case 3:change();//修改职工信息
                          back();
                          break;
                   case 4:del();//删除职工信息
                          back();
                          break;
                   case 5:see();//查询所有职工信息
                          back();
                          break;
                   case 7:tsalaryll();//统计职工的总工资
                          back(); //修改
                          break;
               case 8:bsalaryaver();//计算全部职工的基本工资平均值
                          back(); //修改
                          break;
               case 9:author();//作者信息
                  back(); //修改
                          break;
                   default:break;
        }//switch
        fflush(stdin);//清空输入缓冲区数据
        getchar(); //输入一个字符
        system("cls");//清除屏幕 
    }//while
} //main
 

void back()
{
    printf("\t====>按Enter键返回主菜单\n");
}
//录入职工信息
void enter()
{
    int numberTemp=0;//局部变量
    int i=0;
    struct employee temp;//结构体类型变量
    printf("\n\t请输入要录入的职工的个数:");
    scanf("%d",&numberTemp);
    
    for(i=0;i<numberTemp;i++)
    {
        printf("\t输入第%d个职工的信息\n",i+1);
        printf("\t职工号:");
        scanf("%s",temp.ID);
        printf("\t姓名:");
        scanf("%s",temp.name);
        printf("\t职工性别:");
        scanf("%s",temp.sex);
        printf("\t职工年龄:");
        scanf("%s",temp.age);
        printf("\t职工学历:");
        scanf("%s",temp.education);
        printf("\t职工住址:");
        scanf("%s",temp.address);
        printf("\t职工电话:");
        scanf("%s",temp.phone);
        printf("\t职工民族:");
        scanf("%s",temp.nation);
        printf("\t职工婚否(是/否):");
        scanf("%s",temp.marriage);
        printf("\t职工隶属部分:");
        scanf("%s",temp.department);
        printf("\t职务:");
        scanf("%s",temp.post);
        printf("\t职工基本工资:");
        scanf("%d",&temp.bsalary);
        printf("\t职工绩效奖金:");
        scanf("%d",&temp.bonus);
                temp.tsalary = temp.bsalary + temp.bonus; //修改
        wo[Number++]=temp;
                if (Number >= MaxSize){                   //修改
                    printf("数据库已满!\n");             //修改
                    break;                                //修改
                }
    }
    printf("\t录入成功\n") ;
} 


//添加职工
void add()
{
    int numberTemp=0;//局部变量
    int i=0;
    struct employee temp;//结构体类型变量
    printf("\n\t请输入要新添加的职工的个数:");
    scanf("%d",&numberTemp);
    
    for(i=0;i<numberTemp;i++)
    {
        printf("\t输入第%d个职工的信息\n",i+1);
        printf("\t职工号:");
        scanf("%s",temp.ID);
        printf("\t姓名:");
        scanf("%s",temp.name);
        printf("\t职工性别:");
        scanf("%s",temp.sex);
        printf("\t职工年龄:");
        scanf("%s",temp.age);
        printf("\t职工学历:");
        scanf("%s",temp.education);
        printf("\t职工住址:");
        scanf("%s",temp.address);
        printf("\t职工电话:");
        scanf("%s",temp.phone);
        printf("\t职工民族:");
        scanf("%s",temp.nation);
        printf("\t职工婚否(是/否):");
        scanf("%s",temp.marriage);
        printf("\t职工隶属部分:");
        scanf("%s",temp.department);
        printf("\t职务:");
        scanf("%s",temp.post);
        printf("\t职工基本工资:");
        scanf("%d",&temp.bsalary);
        printf("\t职工绩效奖金:");
        scanf("%d",&temp.bonus);
                temp.tsalary = temp.bsalary + temp.bonus; //修改
        wo[Number++]=temp;
                if (Number >= MaxSize){       //修改
                    printf("数据库已满!\n"); //修改
                    break;                    //修改
                }
    }
    printf("\t添加成功\n") ;
}

///修改职工信息
void change()
{
    char ID[10];//修改职工的号数   修改
    int  i=0;
    int  n;//判断是否需要修改

    printf("\n\t>>请输入需要修改的职工的序号:\n"); 
    scanf("%s",ID);
     
    while(strcmp(wo[i].ID,ID) != 0 && i < Number) i++;//修改
        system("cls");//清空屏幕
           //for(int j=0;j<Number;j++) 修改
           //{                         修改
        if(i >= Number) //(strcmp(ID,wo[i].ID)==0) 修改
        {
             printf("\n\t无此员工信息!!\n");
             return;  //break;修改
        }
        while(1)
    {
             printf("\t号数\t姓名\t性别\t年龄\t学历\t民族\t婚否\t电话\n");
             printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",wo[i].ID,wo[i].name,wo[i].sex,//"\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n"
                      wo[i].age,wo[i].education,wo[i].nation,wo[i].marriage,wo[i].phone);
             printf("\t职工隶属部门\t\t职工主要业务(职务)\n");
             printf("\t%s\t\t\t%s\n",wo[i].department,wo[i].post);
             printf("\n\t职工基本工资\t\t职工绩效奖金\t\t职工总工资\n");
             printf("\t%d\t\t\t%d\t\t\t%d\n",wo[i].bsalary,wo[i].bonus,wo[i].tsalary);
             printf("\n\t住址\n");
             printf("\t%s\n",wo[i].address);
        
             printf("\n\t****************修改****************\n");
             printf("\t\t"          "\n");
             printf("\t\t“1. 修改姓名”\n");
             printf("\t\t"          "\n");
             printf("\t\t“2. 修改性别”\n");
             printf("\t\t"          "\n");
             printf("\t\t“3. 修改年龄”\n");
             printf("\t\t"          "\n");
             printf("\t\t“4. 修改学历”\n");
             printf("\t\t"          "\n");
             printf("\t\t“5. 修改民族”\n");
             printf("\t\t"          "\n");
             printf("\t\t“6. 修改婚否”\n");
             printf("\t\t"          "\n");
             printf("\t\t“7. 修改电话”\n");
             printf("\t\t"          "\n");
             printf("\t\t“8. 修改隶属部门”\n");
             printf("\t\t"          "\n");
             printf("\t\t“9. 修改职务”\n");
             printf("\t\t"          "\n");
             printf("\t\t“10.修改基本工资”\n");
             printf("\t\t"          "\n");
             printf("\t\t“11.修改绩效奖金”\n");
             printf("\t\t"          "\n");
             //printf("\t\t“12.修改总工资”\n");  修改
             //printf("\t\t"          "\n");       修改
             printf("\t\t“12.修改住址”\n");
             printf("\t\t"          "\n");
             printf("\t\t“13.清空屏幕”\n");
             printf("\t\t"          "\n");
             printf("\n\t**********************************\n");

             printf("\t\t请输入指令(1-13):");
         int order;     //char order=getch();
         scanf("%d", &order);
             switch(order)
             {
                    case 1:
                            //char name[100];          修改
                            printf("请输入新的姓名:");
                            scanf("%s",wo[i].name);
                            //strcpy(wo[i].name,name); 修改
                            break;
                    case 2:
                            //char sex[100];           修改
                            printf("请输入新的性别:");
                            scanf("%s",wo[i].sex);
                            //strcpy(wo[i].sex,sex);   修改
                            break;
                    case 3:
                            //char age[10];            修改
                            printf("请输入新的年龄:");
                            scanf("%s",wo[i].age);
                            //strcpy(wo[i].age,age);   修改
                            break;
                    case 4:
                            //char education[100];      修改
                            printf("请输入新的学历:");
                            scanf("%s",wo[i].education);
                            //strcpy(wo[i].education,education); 修改
                            break;
                    case 5:
                            //char nation[100];          修改
                            printf("请输入新的民族:");
                            scanf("%s",wo[i].nation);
                            //strcpy(wo[i].nation,nation); 修改
                            break;
                    case 6:
                            //char marriage[100];       修改
                            printf("请输入婚否:");
                            scanf("%s",wo[i].marriage);
                            //strcpy(wo[i].marriage,marriage);修改
                            break;
                    case 7:
                            //char phone[100];         修改
                            printf("请输入新的电话:");
                            scanf("%s",wo[i].phone);
                            //strcpy(wo[i].phone,phone); 修改
                            break;
                    case 8:
                            //char department[100];      修改
                            printf("请输入新的隶属部门:");
                            scanf("%s",wo[i].department);
                            //strcpy(wo[i].department,department); 修改
                            break;
                    case 9:
                            //char post[100];        修改
                            printf("请输入新的职务:");
                            scanf("%s",wo[i].post);
                            //strcpy(wo[i].post,post); 修改
                            break;
                    case 10:
                            //int bsalary;            修改
                            printf("请输入新的基础工资:");
                            scanf("%d",&wo[i].bsalary);
                            //wo[i].bsalary=bsalary;    修改
                            wo[i].tsalary = wo[i].bonus + wo[i].bsalary; //修改
                            break;
                    case 11:
                            //int bonus;                 修改
                            printf("请输入新的绩效奖金:");
                            scanf("%d",&wo[i].bonus);
                            //wo[i].bonus=bonus;         修改
                            wo[i].tsalary = wo[i].bonus + wo[i].bsalary; //修改
                            break;
                    //case 12:                          修改
                            //int tsalary;              修改
                            //printf("请输入新的总工资:");修改
                            //scanf("%d",&tsalary);      修改
                            //wo[i].tsalary=tsalary;     修改
                            //break;
                    case 12:
                            //char address[100];        修改
                            printf("请输入新的住址:");
                            scanf("%s",wo[i].address);
                            //strcpy(wo[i].address,address); 修改
                            break;
                    case 13:
                            system("cls");
                            break;
                    default:
                            printf("Error!");
                            break;
        }
        system("cls");
        printf("修改成功!\n");

        printf("\t是否需要继续其它属性的修改( 1 :是; 0 :否):"); //修改
        scanf("%d",&n); //}修改
                if(n==0)  break;
        }
                                //} 修改
}


//删除职工信息
void del() 
{
    int n=0;
        if(Number <= 0) {                //修改
           printf("数据库记录已为0!\n");//修改
           return;                       //修改
        }
        printf("按姓名删除\n");
        xmsc();
}

void xmsc()  //按姓名删除 
{
    char name[10];
    int i=0, j=0 , flg = 0;
    printf("请输入要删除的职工姓名:");
    scanf("%s",name);
    
    // 步1 定位name在数组的什么位置。
    // 步2 将name所在位置的后面的元素都向前移动一个。 
    for(i=0;i<Number;i++)
    {
        //步1 
        if (strcmp(name,wo[i].name)==0)  //当两个字符串相等时,返回值 = 0; 
        {
            for (j=i;j<Number-1;j++)
            {
                             wo[j]=wo[j+1];   //步2
            }
            Number--;
                        printf("删除成功;\n"); //修改
                        flg = 1;               //修改
                        break;                 //修改
        }
    }
        if(!flg)
             printf("未找到相关记录!\n");//修改
}

//查看职工信息
void see() 
{
    int i=0;
        if(Number <= 0)  return;                      //修改
    printf("以下是全部职工基本信息\n");
    printf("\t姓名\t工号\t性别\t年龄\t学历\t民族\t隶属部门\t电话\t\t总工资\t\n");
    while(i<Number)  // Number :全局变量 
    {
         printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\t%s\t%d\n",wo[i].name,wo[i].ID,wo[i].sex,
                  wo[i].age,wo[i].education,wo[i].nation,wo[i].department,wo[i].phone,wo[i].tsalary);
             i++;
    }  //wo[i].name : []访问数组成员, .访问结构体成员 
}

//统计所有职工的总工资 
void tsalaryll()
{   
    int i=0; 
    int s1=0;       //表示所有职工的总工资
    int numberTemp2=0;//局部变量
    struct employee temp2;//结构体类型变量
        if(Number <= 0)  return;                        //修改
        do{                                             //修改
        printf("\n\t请输入要统计职工的个数:");
        scanf("%d",&numberTemp2);
        }while(numberTemp2 <= 0 || numberTemp2 > Number); //修改
    
    for(i=0;i<numberTemp2;i++)
    {
                printf("\t请输入第%d个职工的工资信息:\n",i+1);
        printf("\t基本工资: %d\n", wo[i].bsalary); //修改
                //printf("\t基本工资: %d\n",&wo[i].bsalary);
        printf("\t绩效奖金: %d\n", wo[i].bonus);  //修改
                //printf("\t绩效奖金: %d\n",&wo[i].bonus);
                //wo[i].tsalary=wo[i].bsalary+wo[i].bonus;//修改
        printf("\t职工的总工资为: %d\n",wo[i].tsalary);
        s1+=wo[i].tsalary;
    } 
    printf("\t所有职工的总工资为: %d\n",s1); //修改
        //printf("\t所有职工的总工资为: %d\n",&s1);
}

//计算全部职工的基本工资平均值
void bsalaryaver()
{
    int i;
    int s2=0;       //表示所有职工的基本工资 
    int aver=0;    //全部职工的基本工资平均值
    int numberTemp3=0;//局部变量
    struct employee temp3;//结构体类型变量
        if(Number <= 0)  return;                      //修改
        do{                                           //修改
        printf("\n\t请输入要统计职工的个数:");
        scanf("%d",&numberTemp3);
        }while(numberTemp3 <= 0 || numberTemp3 > Number);//修改

    for(i=0;i<numberTemp3;i++)
    {
                printf("\t第%d个职工的工资信息:\n",i+1);
        printf("\t基本工资:%d\n", wo[i].bsalary); //修改
                //printf("\t基本工资:%d\n",&wo[i].bsalary);
        s2+=wo[i].bsalary;
    }
        printf("\t全部职工的基本工资总和为:%d\n", s2); //修改
        //printf("\t全部职工的基本工资总和为:%d\n",&s2);
        aver=s2/numberTemp3;
        printf("\t全部职工的基本工资平均值为:%d\n", aver); //修改
        //printf("\t全部职工的基本工资平均值为:%d\n",&aver);
}
//作者信息
void author()
{
    printf("\t***---------------作者信息-----------------***\n\n");
    printf("\t------------湖北师范大学文理学院--------------\n\n");
    printf("\t-----------------计科2101班------------------\n\n");
    printf("\t-----------------组长 韦飞燕-----------------\n\n");
    printf("\t-----------------组员 王怡晨-----------------\n\n");
    printf("\t-----------------组员 韦雅婷-----------------\n\n");
    printf("\t***----------------------------------------***\n\n"); 
}