#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
FILE *fp;
int m;
struct info
{
int bianhao;
char name[20];
int gongzi;
char xueli[20];
char zhiwu[20];
char dianhua[15];
}em[100];
int vis[100]={0};
void bynumber() //按编号查询
{
int n;
printf("请输入所需查询的员工编号:");
scanf("%d",&n);
if(vis[n])
{
printf("编号 员工姓名 工资 学历 职务 联系电话\n");
printf("%-3d %-6s %-7d %-8s %-8s %-8s\n",em[n].bianhao,em[n].name,em[n].gongzi,em[n].xueli,em[n].zhiwu,em[n].dianhua);
}
else
printf("未找到符合要求的记录\n");
}
void byname() //按姓名查询
{ char ch[10];
int s=0;
int i;
printf("请输入所需查询的员工姓名:");
scanf("%s",&ch);
for( i=1;i<=m;i++)
{
if(strcmp(ch,em[i].name)==0)
{
s=1;
printf("编号 员工姓名 工资 学历 职务 联系电话\n");
printf("%-3d %-6s %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
}
}
if(s==0)
printf("未找到符合要求的记录\n");
}
void bymoney() //按工资区间查询
{
if((fp=fopen("out,text","r"))==NULL)
return;
char c;
int i;
int n;
int s=0;
printf("请输入所需查询的工资区间:");
scanf("%c%d",&c,&n);
if(c=='>')
{
for( i=1;i<=m;i++)
{
if(em[i].gongzi>n)
{
s=1;
printf("编号 员工姓名 工资 学历 职务 联系电话\n");
printf("%-3d %-6s %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
}
}
if(s==0)
printf("未找到符合要求的记录\n");
}
else if(c=='<')
{
for( i=1;i<=m;i++)
{
if(em[i].gongzi<n)
{
s=1;
printf("编号 员工姓名 工资 学历 职务 联系电话\n");
printf("%-3d %-6s %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
}
}
if(s==0)
printf("未找到符合要求的记录\n");
}
else if(c=='=')
{
for( i=1;i<=m;i++)
{
if(em[i].gongzi==n)
{
s=1;
printf("编号 员工姓名 工资 学历 职务 联系电话\n");
printf("%-3d %-6s %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
}
}
if(s==0)
printf("未找到符合要求的记录\n");
}
fclose(fp);
void byposition()//按职务查询
{
if((fp=fopen("out,text","r"))==NULL)
return;
char ch[10];
int s=0;
printf("请输入所需查询的员工职务:");
scanf("%s",&ch);
for(int i=1;i<=m;i++)
{
if(strcmp(ch,em[i].zhiwu)==0)
{
s=1;
printf("编号 员工姓名 工资 学历 职务 联系电话\n");
printf("%-3d %-6s %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
}
}
if(s==0)
printf("未找到符合要求的记录\n");
fclose(fp);
}
void byxueli()//按学历查询
{
if((fp=fopen("out,text","r"))==NULL)
return;
char ch[10];
int s=0;
printf("请输入所需查询的员工学历:");
scanf("%s",&ch);
for(int i=1;i<=m;i++)
{
if(strcmp(ch,em[i].xueli)==0)
{
s=1;
printf("编号 员工姓名 工资 学历 职务 联系电话\n");
printf("%-3d %-6s %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
}
}
if(s==0)
printf("未找到符合要求的记录\n");
fclose(fp);
}
void serch()//查询
{int t;
system("cls");
printf(" ###########请选择查询方式##########\n");
printf(" 1.通过员工编号 4.通过职务\n");
printf(" 2.通过员工姓名 5.通过学历\n");
printf(" 3.通过工资区间 6.清屏\n");
printf(" 0.退出\n");
printf(" ##############################################\n");
while(1)
{
printf("请输入您的选择:");
scanf("%d",&t);
if (t==1)
bynumber();
else if (t==2)
byname();
else if (t==3)
bymoney();
else if (t==4)
byposition();
else if (t==5)
byxueli();
else if (t==6)
system("cls");
else if (t==0)
break;
else
printf("指令错误!!\n");
}
}
scanf("%s",ch);//字符串不需要取地址
for( i=1;i<=m;i++)都应该是for( i=0;i<m;i++),不然数组会越界访问
谢谢!!
谢谢!!