C语言程序设计之《查找》源代码
发布网友
发布时间:2022-05-10 04:51
我来回答
共2个回答
热心网友
时间:2023-10-05 16:49
程序如下:
把#define N 3 改成#define N 20 就可以了,定为3是为了输入简单
/*
对于《人事管理系统》,利用C语言,编一个用于查找员工的程序,
且要通过员工的工号查找,一共是二十个员工,要求输入员工的工号就能显示出该员工的信息
,包括工号、姓名、性别、职位、工资;当输入的工号不存在时,要显示出查无此人。
*/
#include<stdio.h>
#include<string.h>
#define N 3
struct staff
{
int num;
char name[10];
char sex[10];
char position[20];
int salary;
}str[N];
void input_staff()
{
int i,j;
for(i=0;i<N;i++)
strcpy(str[i].name,"\0");
for(i=0;i<N;i++)
{
printf("输入第%d个员工的信息:\n",i+1);
printf("工号:");
scanf("%d",&str[i].num);
printf("姓名: ");
scanf("%s",str[i].name);
for(j=0;j<i;j++)
{
if(strcmp(str[j].name,str[i].name)==0)
{
printf("\n名字重复,不能重复给同一个人输入信息!!!\n");
printf("重新输入员工名字:\n");
scanf("%s",str[i].name);
j=-1;
}
}
printf("性别: ");
scanf("%s",str[i].sex);
printf("职位: ");
scanf("%s",str[i].position);
printf("工资: ");
scanf("%d",&str[i].salary);
printf("\n");
}
}
void display()//显示N个员工的信息
{
int i;
printf("%d个员工的信息如下:\n",N);
for(i=0;i<N;i++)
printf("%d %d %s %s %s %d\n\n",i+1,str[i].num,str[i].name,str[i].sex,str[i].position,str[i].salary);
}
void find(int data)
{
int i=0;
for(i=0;i<N;i++)
if(data==str[i].num)
{
printf("\n找到这个员工了!!!\n\n");
printf("这个员工的信息是:%d %s %s %s %d\n\n",str[i].num,str[i].name,str[i].sex,str[i].position,str[i].salary);
break;
}
if(i==N)printf("\n查无此人!!!!\n");
}
void main()
{
int id_find=0;
int i,n=0;
input_staff();//输入N个员工的信息
display();//显示N个员工的信息
printf("\n输入你要查找的员工个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("输入你要查找的员工工号:");
scanf("%d",&id_find);
find(id_find);//查找是否存在该员工
}
}
运行结果:
输入第1个员工的信息:
工号:100
姓名: gong
性别: female
职位: manager
工资: 10000
输入第2个员工的信息:
工号:101
姓名: xi
性别: male
职位: sales
工资: 5000
输入第3个员工的信息:
工号:102
姓名: fa
性别: male
职位: engineer
工资: 8500
3个员工的信息如下:
1 100 gong female manager 10000
2 101 xi male sales 5000
3 102 fa male engineer 8500
输入你要查找的员工个数:2
输入你要查找的员工工号:102
找到这个员工了!!!
这个员工的信息是:102 fa male engineer 8500
输入你要查找的员工工号:103
查无此人!!!!
Press any key to continue
热心网友
时间:2023-10-05 16:49
在网上搜吧。。。