点击二维码进去就可看
https://share.weiyun.com/F6gWioAI
有错误的复现信息么?这大海捞针?
编译报错给你找完了,都是些语法错误啥的,至于运行问题你自己看吧,还有问题私信问我就行
修改完善如下,修改处见注释,供参考:
#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");
}