问题在照片哪里,谢谢。
本人已编写了一些代码,大神帮忙看看哪里有问题
#include
#include
#include
#include
#include
#define N 50
struct sta//学生结构体
{
char ID[20];
char name[20];
int jbsalary; //基本
int zwsalary; //
int gwsalary;
int midical;
int gsalary;
//float sum;
//float ave;
};
void menu();//菜单
int creat_sta(struct sta staff[],int n,int m);//批量职工工资
void display_sta(struct sta staff[],int n);//显示职工工资
void modify_sta(struct sta staff[],int n,char num[]);//修改职工工资
int research_sta(struct sta staff[],int n,char num[]);//查询职工工资
int del_sta(struct sta staff[],int n,char num[]);//删除职工记录
void exit_sta();//退出系统
//int add_sta(struct sta staff[],int n);//添加职工工资
//void sort_sta(struct sta staff[],int n);//排序职工成绩
main()
{
struct sta staff[N];
char num[20];
int n=0;
//int i;
int m; //1
int k;
int choose;
char yesorno;
char YN;
do
{
menu();
printf("请在0-5之间选择:");
scanf("%d",&choose);
getchar();
switch(choose)
{
case 1:
printf("\n输入要录入的职工人数:");
scanf("%d",&m);
getchar();
n=creat_sta(staff,n,m);
break;
case 2:
printf("\n显示所有职工的信息:\n");
display_sta(staff,n);
break;
case 3:
printf("\n输入要修改的职工的ID:");
gets(num);
modify_sta(staff,n,num);
getchar();
break;
case 4:
printf("\n输入查找职工的ID:");
gets(num);
k=research_sta(staff,n,num);
break;
case 5:
printf("\n输入需要删除职工的ID号:");
gets(num);
n=del_sta(staff,n,num);
break;
//case 6:
case 0:
printf("\n一定要退出系统吗:");
yesorno=getchar();
getchar();
if(yesorno=='y' || yesorno=='Y')
exit_sta();
}
printf("\n要继续使用系统吗(y(Y)/n(N)):");
YN=getchar();
getchar();
while(YN!='y' && YN!='Y' && YN!='n' && YN!='N')
{
printf("\n要继续使用系统吗(y(Y)/n(N)):");
YN=getchar();
}
}while(YN=='y' || YN=='Y');
return 0;
}
void menu()
{
printf("|---------------------------------------------------|\n");
printf("| 职工工资管理系统,请选择数字进行相应操作 |\n");
printf("| 1.输入职工记录: |\n");
printf("| 2.显示职工记录: |\n");
printf("| 3.修改职工记录: |\n");
printf("| 4.查找职工记录: |\n");
printf("| 5.删除职工记录: |\n");
printf("| 0.退出系统 |\n");
printf("|---------------------------------------------------|\n");
}
//printf("| 6.统计职工信息: |\n");
// printf("| 7.保存数据文件功能: |\n");
int creat_sta(struct sta staff[],int n,int m)
{
int i;
char num[20];
for(i=0;i<m;i++)
{ printf("录入第%d个职工的信息:\n",n+1);
printf("ID号: ");
gets(num);
if(strcmp(num,staff[i].ID)==0)
{
printf("ID号不能相同,请重新输入。\n");
return 0;//添加不成功
}
strcpy(staff[n].ID,num);
printf("姓名: ");
gets(staff[n].name);
printf("基本工资: ");
scanf("%5d",&staff[n].jbsalary);
printf("职务工资: ");
scanf("%5d",&staff[n].zwsalary);
printf("岗位津贴: ");
scanf("%5d",&staff[n].gwsalary);
printf("医疗保险: ");
scanf("%5d",&staff[n].midical);
printf("公积金: ");
scanf("%5d",&staff[n].gsalary);
n=n+1;
getchar();
}
return n;
}
void display_sta(struct sta staff[],int n)
{
int i;
char m;
printf("请输入员工的记录或员工的姓名: ");
scanf("%s", &m);
//printf("\nID号 \t姓名\t基本工资\t职务工资\t岗位津贴\t医疗保险\t公积金\n");
// for(i=0;i<n;i++)
// {
if(m=ID || m=name )
{
printf("%s\t%s\t %d\t\t %d\t\t %d\t\t %d\t\t%d\n",staff[i].ID ,staff[i].name ,
staff[i].jbsalary ,staff[i].zwsalary ,staff[i].gwsalary,
staff[i].midical,staff[i].gsalary);
}
// }
}
void modify_sta(struct sta staff[],int n,char num[])
{
int m;
m=research_sta(staff,n,num);
if(m!=0)//找到职工,修改信息
{
printf("输入修改信息:\n");
printf("姓名:");
gets(staff[m-1].name);
printf("基本工资:");
scanf("%d",&staff[m-1].jbsalary);
printf("职务工资:");
scanf("%d",&staff[m-1].zwsalary);
printf("岗位津贴:");
scanf("%d",&staff[m-1].gwsalary);
printf("医疗保险:");
scanf("%d",&staff[m-1].midical);
printf("公积金:");
scanf("%d",&staff[m-1].gsalary);
//student[m-1].total=student[m-1].english +student[m-1].math +student[m-1].physist ;
printf("\n该生修改后的信息:\n");
printf("ID号\t姓名\t基本工资\t职务工资\t岗位津贴\t医疗保险\t公积金\n");
printf("%s\t %s\t %d\t\t %d\t\t %d\t\t %d\t\t %d\n",staff[m-1].name ,
staff[m-1].ID,staff[m-1].jbsalary,staff[m-1].zwsalary ,
staff[m-1].gwsalary ,staff[m-1].midical ,staff[m-1].gsalary);
}
}
int research_sta(struct sta staff[],int n,char num[])
{
int i; //char num[20];
for(i=0;i<n;i++)
{
if(strcmp(staff[i].ID,num)==0)
{
printf("\n查找到的职工工资记录:\n");
printf("姓名\tID号\t基本工资\t职务工资\t岗位津贴\t医疗保险\t公积金\n");
printf("%s\t%s\t%01.f\t%0.1f\t%0.1f\t%0.1f\t%0.1f\t\n",staff[i].name ,staff[i].ID,
staff[i].jbsalary,staff[i].zwsalary,staff[i].gwsalary,
staff[i].midical,staff[i].gsalary );
return i+1;//查找成功,返回逻辑序号
break;
}
}
// if(i>=n)
// {
// printf("没有ID号为%s的职工信息\n",num);
//查到不成功
// }
return 0;
}
int del_sta(struct sta staff[],int n,char num[])
{
int m;
int i;
m=research_sta(staff,n,num);
if(m!=0)//找到要删除的职工,删除
{
for(i=m;i<n;i++)
{
staff[i-1]=staff[i];
}
n--;//职工人数减一
}
return n;//返回职工总人数
}
void exit_sta()
{
exit(0);
}