员工信息管理系统设计 C语言职工信息管理系统设计

作者&投稿:茶滢 (若有异议请与网页底部的电邮联系)
这个是我自己做的管理系统,里面的汉字什么的你改下就OK了,比如把单价改成工资```总价改成总工资````数量改成月底百分比提成什么的```其他的不用改的。毕竟只有30分,我只能说把我自己做过的复制下给你,汉字我就不给你改了。看着行你就给分,好的话追加,感觉垃圾就骂我。
#include<stdio.h>
struct material
{int num;
char name[20];
char leibie[20];
char shijian[20];
int shuliang;
int price;
int total;
int delet ; }
work[50];
static n=1;int f,g=1,e;
FILE *fp1;
char fname[20];

jianli() /*创建新文件*/
{
int i,x=0;FILE *fp;
system("cls");
menu1();
menu2();
printf("\t\t\t 请输入文件名!");
scanf("%s",fname);
fp=fopen(fname,"rb");
for(i=0;i<50;i++)
{fread(&work[i],sizeof(struct material),1,fp);
if(work[i].total!=0)x++;
}
fclose(fp);n=x;
}

r()
{
int i;FILE *fp;
if((fp=fopen(fname,"rb"))==NULL)
{
printf("\n\n\t\tcannot open file!\n");}
printf("编号 名称 类别 登记时间 数量 单价 总价\n");
for(i=0;i<n;i++)
{
fread(&work[i],sizeof(struct material),1,fp);
if(work[i].delet==0)
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d \n",
work[i].num,work[i].name,work[i].leibie,work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
fclose(fp);
}

r1()
{
int i;FILE *fp;
if((fp=fopen(fname,"rb"))==NULL)
{
printf("\n\n\t\tcannot open file!\n");}
printf("编号 名称 类别 登记时间 数量 单价 总价\n");
for(i=0;i<n;i++)
{
fread(&work[i],sizeof(struct material),1,fp);
if(work[i].delet==1)
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d \n",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
fclose(fp);
}

display2() /*显示所有信息*/
{
int i,d=0;FILE *fp;
fp=fopen(fname,"rb");
system("cls");menu1();
printf("以下是所有材料信息!\n");
for(i=0;i<n;i++)
fread(&work[i],sizeof(struct material),1,fp);
printf("编号 名称 类别 登记时间 数量 单价 总价\n");
for(i=0;i<n;i++)
if(work[i].delet==0)
{d++;
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d \n",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
if(d==0)printf("没找着,想好了再找!\n");
printf("退出请按任意数字键!\n");
scanf("%d",&i);
}

display1() /*显示信息*/
{int i;int d=0;
printf("以下是排序后的信息 :\n");
printf("编号 名称 类别 登记时间 数量 单价 总价\n");
for(i=0;i<n;i++)
if(work[i].delet==0)
{d++;
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d \n",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
if(d==0){printf("没找着,想好了再找!\n");system("pause");}
}

save() /*保存函数*/
{FILE *fp;int i;
system("cls");menu1();
printf("保存在原文件请按 1 另存为请按 2\n");
scanf("%d",&e);
while(1)
{
if(e==1)
{
if((fp=fopen(fname,"w"))==0)
{printf("cannot open\n");return;}
for(i=0;i<n;i++)
if(fwrite(&work[i],sizeof(struct material), 1,fp)!=1)
printf("error!\n");break;
}
else if(e==2)
{
printf("input jianli file name!\n");
scanf("%s",fname);
if((fp=fopen(fname,"w"))==0)
{printf("cannot open\n");return;}
for(i=0;i<n;i++)
if(fwrite(&work[i],sizeof(struct material), 1,fp)!=1)
printf("error!error!\n");break;
}
else printf("error!\n");
}
fclose(fp);
system("cls");menu1();
printf("OK了!\n\n");system("pause");
}

slect()
{
int d,i;system("cls");menu1();menu2();scanf("%d",&d);
if(d==1){add();slect();}
else if(d==2){display2();slect();}
else if(d==3){cha();slect();}
else if(d==4){delet();slect();}
else if(d==5){modify();slect();}
else if(d==6){order();slect();}
else if(d==7){recy();slect();}
else if(d==8){tongji();slect();}
else if(d==9){jianli();slect();}
else if(d==0){printf("exit!\n\n");exit();}
else {printf("error!\n");slect();}
}

cha() /*查询*/
{
int i,num,c,suc=0,suc1;char name[20];FILE *fp;
fp=fopen(fname,"rb");
for(i=0;i<n;i++)
fread(&work[i],sizeof(struct material),1,fp);
while(1)
{
system("cls");menu1();
printf("您有两种方式查询:\n");
printf("输入名称请按 1 输入材料号请按 2\n");
scanf("%d",&c);
system("cls");menu1();
if(c==1)
{printf("输入名称\n");
scanf("%s",name);break;}
else if(c==2)
{printf("输入材料号\n");
scanf("%d",&num);break;}
else while(1)
{ system("cls");menu1();printf("输入出错啦!!!!\n");
printf("重输请按 0 退出请按 1\n ");
scanf("%d",&suc);
if(suc==0||suc==1)
break;
else continue;
}
if(suc==1)break;
}

if(suc!=1)
{
for(i=0;i<n;i++)
if((strcmp(name,work[i].name)==0||num==work[i].num)&&work[i].delet==0)break;
if(i<n)
{ system("cls");menu1();
printf("编号 名称 类别 登记时间 数量 单价 总价\n");
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d \n",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
printf("请按任意数字键继续!\n");
scanf("%d",&i);
}
else {system("cls");menu1();
printf(" I’m sorry!我都快死机了也没找到....!\n\n",i);
printf("继续请按任意数字键!\n");
scanf("%d",&i);}

while(1)
{ system("cls");menu1();
printf("继续请按 0 退出请按 1\n ");
scanf("%d",&suc1);
if(suc1==0||suc1==1)
break;
else printf(" error!\n\n",i);
printf("继续请按任意数字键!\n");
scanf("%d",&i);
}
if(suc1==0) cha();
if(suc1==1) {printf("bye!\n");
system("pause");
}

}
else printf("bye!\n");
}

add() /*添加*/
{
int e,i,num,c,h,suc=0,suc1;char name[20];int a;
while(suc==0)
{if(n<50){a=n;n++;work[a].delet=0;}
else
{for(i=0;i<n;i++)
if(work[i].delet==2)break;
{a=i;work[a].delet=0;}
}
while(1)
{printf("文件已经存有以下信息:\n\n");
system("cls");menu1();r();
printf("请输入编号:\n");
scanf("%d",&work[a].num);
for(h=0;h<n;h++)
{if(h==a)h++;
if((work[a].num==work[h].num)&&work[h].delet==0)break;
}
if(h<n)
{system("cls");menu1();
printf("编号重复!想好了再写!\n"); printf("请按任意数字键继续!\n");
scanf("%d",&i);
}
else break;
}
system("cls");menu1();r();
while(1)
{
printf("请输入名称:name\n");
scanf("%s",&work[a].name);
for(h=0;h<n;h++)
{if(h==a)h++;
if(strcmp(work[a].name,work[h].name)==0&&work[h].delet==0)break;
}
if(h<n)
{system("cls");menu1();printf("名称重复!想好了写!\n");
printf("请按任意数字键继续!\n");
scanf("%d",&i);}
else break;
}
system("cls");menu1();r();
printf("请输入类别:\n");
scanf("%s",&work[a].leibie);system("cls");menu1();r();
printf("请输入登记时间:\n");
scanf("%s",&work[a].shijian);system("cls");menu1();r();
printf("请输入数量:\n");
scanf("%d",&work[a].shuliang);system("cls");menu1();r();
printf("请输入单价:\n");
scanf("%d",&work[a].price);system("cls");menu1();r();
work[a].total=work[a].shuliang*work[a].price;
work[a].delet=0;system("cls");menu1();r();
while(1)
{
printf("\n");
printf(" 保存请按 1 重输请按 2\n");
scanf("%d",&e);
if(e==1){save();suc=1;break;}
else if(e==2){n--;break;}
else {system("cls");menu1();printf("写错啦!想好了写!!\n");}
}
while(e==1)
{system("cls");menu1();
printf("继续请按 0 退出请按 1\n");
scanf("%d",&suc);
if(suc==0||suc==1)break;
else {system("cls");menu1();printf("输入有误!想好了写!\n\n");}
}
if(suc==1)break;
}
}

delet() /*删除*/
{
char j;int e,i,num,c,suc=0;
char name[20];
system("cls");menu1();r();
while(1)
{
printf("请输入您要删除的材料的信息:名称 或 材料号\n");
printf("\n");
printf("输入名称请按 1 输入材料号请按2\n");
scanf("%d",&c);
system("cls");menu1();r();
if(c==1)
{printf("输入名称\n");
scanf("%s",name);break;}
else if(c==2)
{printf("输入材料号\n");
scanf("%d",&num);break;}
else while(1)
{printf("输入出错啦!!!!\n");
printf("重输请按 0 确认请按 1\n ");
scanf("%d",&suc);
if(suc==0||suc==1)
break;
else continue;
}
if(suc==1)break;
}
if(suc!=1)
{
for(i=0;i<n;i++)
if((strcmp(name,work[i].name)==0||num==work[i].num)&&work[i].delet==0)break;
if(i<n)
while(1)
{ system("cls");menu1();r();
printf("您要删除 %s 的信息!\n ",work[i].name);
printf("\n");
printf("暂时删除请按 1 永久删除请按 2\n");
scanf("%d",&e);
if(e==1)
{work[i].delet=1;system("cls");menu1();printf("deleted sucessfully!\n\n");save();break; }
if(e==2)
{work[i].delet=2;system("cls");menu1();printf("deleted sucessfully!\n\n");save();break;}
else {system("cls");menu1(); printf(" 输入出错啦!!!!\n\n",i);
printf("继续请按任意数字键!\n"); scanf("%d",&i);}
}
if(i>=n){system("cls");menu1(); printf(" I’m sorry!我都快死机了也没找到....!\n\n",i);
printf("继续请按任意数字键!\n"); scanf("%d",&i);}
while(1)
{system("cls");menu1();
printf("继续请按 0 退出请按 1\n");scanf("%d",&e);
if(e==0||e==1)break;
else {system("cls");menu1();printf(" 输入出错啦!!!!\n\n",i);
printf("继续请按任意数字键!\n");scanf("%d",&i);}
}
if(e==0)delet();
else printf("bye!\n");
}
}

modify() /*修改*/
{ char name[20];int i,e=1,a,h;
system("cls");menu1();
r();
printf("请输入您要修改的材料的名称!\n");
scanf("%s",name);
for(i=0;i<n;i++)

if(strcmp(work[i].name,name)==0&&work[i].delet==0)break;
if(i<n)
{system("cls");menu1();
printf("您要修改的材料的编号为num: %d, 修改 0 放弃修改 1\n",work[i].num);
scanf("%d",&e);
if(e==0)
while(1)
{ printf("请输入编号:\n");

scanf("%d",&work[i].num);
for(h=0;h<n;h++)
{if(h==i)h++;
if((work[i].num==work[h].num)&&work[h].delet==0)break;
}
if(h<n) printf("编号重复!想好了写!\n");
else break;
}
system("cls");menu1();
printf("您要修改的材料的名称为:%s, 修改 0 放弃修改 1\n",work[i].name);
scanf("%d",&e);
if(e==0)
while(1)
{ printf("请输入名称:\n");
scanf("%s",&work[i].name);
for(h=0;h<n;h++)
{if(h==i)h++;
if(strcmp(work[i].name,work[h].name)==0&&work[h].delet==0)break;
}
if(h<n) printf("名称重复!想好了写!s\n");
else break;
}
system("cls");menu1();
printf("您要修改的材料的类别为 %s, 修改 0 放弃修改 1\n",work[i].leibie);
scanf("%d",&e);
if(e==0)
{printf("请输入类别:\n");
scanf("%s",&work[i].leibie);}
system("cls");menu1();
printf("您要修改的材料的登记时间为:%s, 修改 0 放弃修改 1\n",work[i].shijian);
scanf("%d",&e);
if(e==0)
{printf("请输入登记时间:\n");
scanf("%s",&work[i].shijian);}
system("cls");menu1();
printf("您要修改的材料的数量为%d, 修改 0 放弃修改 1\n", work[i].shuliang);
scanf("%d",&e);
if(e==0)
{printf("请输入数量:\n");
scanf("%d",&work[i].shuliang);}
system("cls");menu1();
printf("您要修改的材料的单价为%d, 修改 0 放弃修改 1\n",work[i].price);
scanf("%d",&e);
if(e==0)
{printf("请输入单价:\n");
scanf("%d",&work[i].price);}
work[i].total=work[i].shuliang*work[i].price;
system("cls");menu1();
printf("搞定! \n");
printf("新信息为:\n");
printf("编号 名称 类别 登记时间 数量 单价 总价\n");
printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d \n",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);

while(1)
{
printf(" 保存请按 1 取消请按 2\n");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {system("cls");menu1();printf("写错啦!想好了写!!\n");}
}
}
if(i==n) {system("cls");menu1();printf("no such a material!\n"); printf("继续请按任意数字键!\n");
scanf("%d",&i);}
while(e==1)
{system("cls");menu1();
printf("继续请按 0 退出请按 1\n");
scanf("%d",&e);
if(e==0||e==1)break;
else {system("cls");menu1();printf("输入有误!想好了写!\n\n");
printf("继续请按任意数字键!\n"); scanf("%d",&i);}
}
if(e==0)modify();
if(e==1)printf("exit!\n");
}

er() /*冒泡排序*/
{int t;char dai[20];
t=work[f].price;work[f].price=work[f+1].price;work[f+1].price=t;
t=work[f].num;work[f].num=work[f+1].num;work[f+1].num=t;
t=work[f].shuliang;work[f].shuliang=work[f+1].shuliang;work[f+1].shuliang=t;
t=work[f].total;work[f].total=work[f+1].total;work[f+1].total=t;
strcpy(dai,work[f].name);
strcpy(work[f].name,work[f+1].name);
strcpy(work[f+1].name,dai);
strcpy(dai,work[f].leibie);
strcpy(work[f].leibie,work[f+1].leibie);
strcpy(work[f+1].leibie,dai);
strcpy(dai,work[f].shijian);
strcpy(work[f].shijian,work[f+1].shijian);
strcpy(work[f+1].shijian,dai);
}

order1() /*按数量排序*/
{ int i,j,e;
system("cls");menu1();
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if((work[i].shuliang>work[i+1].shuliang)&&work[i].delet==0)
{f=i;er();}
while(1)
{ system("cls");menu1();display1();
printf(" 保存请按 1 取消请按 2\n");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {system("cls");menu1();printf("写错啦!想好了写!!\n");
printf("继续请按任意数字键!\n");scanf("%d",&i);}
}
}

order2() /*按单价排序*/
{ int i,j;
system("cls");menu1();
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if((work[i].price>work[i+1].price)&&work[i].delet==0)
{f=i;er();}
while(1)
{ system("cls");menu1();display1();
printf(" 保存请按 1 取消请按 2\n");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {system("cls");menu1();printf("写错啦!想好了写!!\n");
printf("继续请按任意数字键!\n");scanf("%d",&i);}
}

}

order3() /*按总价排序*/
{ int i,j;
system("cls");menu1();
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if((work[i].total>work[i+1].total)&&work[i].delet==0)
{f=i;er();}
while(1)
{ system("cls");menu1();display1();
printf(" 保存请按 1 取消请按 2\n");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {system("cls");menu1();printf("写错啦!想好了写!!\n");
printf("继续请按任意数字键!\n");scanf("%d",&i);}
}
}

deci() /*退出继续选择*/
{ int e,i;
while(1)
{ system("cls");menu1();
printf(" 继续按 1 退出按 2 \n");
scanf("%d",&e);
if(e==1){g=1;break;}
if(e==2){g=2;break;}
else {printf("error!\n"); printf("继续请按任意数字键!\n");
scanf("%d",&i);}
}
}

order() /*排序函数*/
{ int e,i;
while(g==1)
{system("cls");menu1();
printf("按数量排序请按 1 \n");
printf("按单价排序请按 2 \n");
printf("按总价排序请按 3 \n");
scanf("%d",&e);
if(e==1){order1();deci();}
else if(e==2){order2();deci();}
else if(e==3){order3();deci();}
else {system("cls");menu1();printf("写错啦!想好了写!!\n"); printf("继续请按任意数字键!\n");
scanf("%d",&i);}
}
g=1;
}

recy() /*恢复函数*/
{
int i,e,num;FILE *fp;
system("cls");menu1();
fp=fopen(fname,"rb");
for(i=0;i<n;i++)
fread(&work[i],sizeof(struct material),1,fp);
printf("编号 名称 类别 登记时间 数量 单价 总价\n");
for(i=0;i<n;i++)
if(work[i].delet==1)
{ printf("%-5d %-10s %-10s %-10s %-6d %-6d %-6d \n",work[i].num,work[i].name,work[i].leibie,
work[i].shijian,work[i].shuliang,work[i].price,work[i].total);
}
else if(i==n){printf("没找着,想好了再找!\n");printf("继续请按任意数字键!\n");
scanf("%d",&i);}
while(1)
{ system("cls");menu1();r1();
printf("全部死刑(清空)0 宣判无罪(恢复)1 大赦天下(全部恢复)2 打道回府(退出)3 \n");
scanf("%d",&e);
if(e==0)
{for(i=0;i<n;i++)
if(work[i].delet==1)work[i].delet=2;break;
}
else if(e==1)
{ system("cls");menu1();r1();
printf("请输入要恢复的材料的编号:\n");
scanf("%d",&num);
for(i=0;i<n;i++)
if(num==work[i].num&&work[i].delet==1) break;
if(i<n) {work[i].delet=0;break;}
else if(i==n) {printf("没找着,想好了再找!\n");printf("继续请按任意数字键!\n");
scanf("%d",&i); break;}
}
else if(e==2)
{for(i=0;i<n;i++)
if(work[i].delet==1)work[i].delet=0;break;
}
else if(e==3)break;
else {printf("写错啦!想好了写!!\n"); printf("继续请按任意数字键!\n");
scanf("%d",&i);}
}
system("cls");menu1();printf("搞定!\n");
printf("按任意数字键退出!\n");scanf("%d",&i);save();
}

tongji() /*统计函数*/
{int i,e,n1=0,n2=0,n3=0,n4=0,n5=0,z=0,c=0;FILE *fp;
system("cls");menu1();
fp=fopen(fname,"rb");
for(i=0;i<n;i++)
fread(&work[i],sizeof(struct material),1,fp);
for(i=0;i<n;i++)
{if(work[i].delet==0){z=z+work[i].total;c++;}
if(work[i].total<3000&&work[i].delet==0)n1++;
if(work[i].total>=3000&&work[i].total<4000&&work[i].delet==0)n2++;
if(work[i].total>=4000&&work[i].total<5000&&work[i].delet==0)n3++;
if(work[i].total>=5000&&work[i].delet==0)n4++;
}
n5=z/c;
printf(" 总价 材料种类数 \n",n1);
printf(" 3000以下: %d\n",n1);
printf(" 3000 --- 4000: %d\n",n2);
printf(" 4000 --- 5000: %d\n",n3);
printf(" 5000以下: %d\n",n4);
printf("平均价格: %d\n",n5);
printf("\n\n");
system("pause");
while(1)
{ system("cls");menu1();
printf(" 保存请按 1 取消请按 2\n");
scanf("%d",&e);
if(e==1){save();break;}
else if(e==2)break;
else {printf("写错啦!想好了写!!\n"); printf("继续请按任意数字键!\n");
scanf("%d",&i);}
}
printf("按任意数字键退出!\n");
scanf("%d",&i);
}

menu1() /*欢迎界面*/
{
printf("\t \n");
printf("\t 课 程 设 计 \n");
printf("\t \n");
printf("\t 材料管理系统 \n");
printf("\t \n");
printf("\t 自动化 \n");
printf("\t 王璇 \n");
printf("\t \n");
printf("\t \n");
printf("\t \n");
printf("\t\n");
printf("\t \n");
printf("\t\n");
}

menu2() /*菜单函数*/
{
printf("\t1.添加材料信息\n");
printf("\t2.查看全部材料信息\n");
printf("\t3.查找材料资料\n");
printf("\t4.删除材料资料\n");
printf("\t5.修改材料数据\n");
printf("\t6.材料信息排序\n");
printf("\t7.已经删除的材料档案\n");
printf("\t8.材料信息记录统计\n");
printf("\t9.文件管理\n");
printf("\t0.退出\n");
}

main() /*主函数*/
{
system("cls");
menu1();
jianli();
slect();
}



垂直搜索是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。

垂直搜索引擎和普通的网页搜索引擎的最大区别是对网页信息进行了结构化信息抽取,也就是将网页的非结构化数据抽取成特定的结构化信息数据,好比网页搜索是以网页为最小单位,基于视觉的网页块分析是以网页块为最小单位,而垂直搜索是以结构化数据为最小单位。然后将这些数据存储到数据库,进行进一步的加工处理,如:去重、分类等,最后分词、索引再以搜索的方式满足用户的需求。

整个过程中,数据由非结构化数据抽取成结构化数据,经过深度加工处理后以非结构化的方式和结构化的方式返回给用户。

垂直搜索引擎的应用方向很多,比如企业库搜索、供求信息搜索引擎、购物搜索、房产搜索、人才搜索、地图搜索、mp3搜索、图片搜索……几乎各行各业各类信息都可以进一步细化成各类的垂直搜索引擎。

举个例子来说明会更容易理解,比如购物搜索引擎,整体流程大致如下:抓取网页后,对网页商品信息进行抽取,抽取出商品名称、价格、简介……甚至可以进一步将笔记本简介细分成“品牌、型号、CPU、内存、硬盘、显示屏、……”然后对信息进行清洗、去重、分类、分析比较、数据挖掘,最后通过分词索引提供用户搜索、通过分析挖掘提供市场行情报告。

垂直搜索引擎大体上需要以下技术

1.Spider

2.网页结构化信息抽取技术或元数据采集技术

3.分词、索引

4.其他信息处理技术

垂直搜索引擎的技术评估应从以下几点来判断

1.全面性

2.更新性

3.准确性

4.功能性

垂直搜索的进入门槛很低,但是竞争的门槛很高。没有专注的精神和精湛的技术是不行的。行业门户网站具备行业优势但他们又是没有技术优势的,绝对不要想像着招几个人就可以搞定垂直搜索的全部技术,作为一个需要持续改进可运营的产品而不是一个项目来说对技术的把握控制程度又是垂直搜索成功的重要因素之一。

30分,,你觉得让你干你会干不会?

我们组最近刚好做了这么个项目``不过米带U盘来

30分?你还真敢贴出来?

用C语言设计并实现一个员工信息管理系统~

#include #include using namespace std;typedef struct wage {char unit[8];char name[10];char sex[4];char birthdate[12];char title[20];double basewage;double subsidy;double tax;double expenses;double residualwage;}WAGE;void ComputerResidualwage(WAGE a[],int n) {for(int i = 0; i 900.00 &&strcmp(a[i].title,"副教授") == 0 && strcmp(a[i].sex,"男") == 0) {RowShow(a,i);flag = 0;}}if(flag) cout << "(没找到符合条件者)
";}void Search2(WAGE a[], int n) {int i,flag = 1;for(i = 0; i < n; ++i) {if(strcmp(a[i].unit,"理学院") == 0 && a[i].basewage < 1200.00 &&strcmp(a[i].title,"教 授") == 0 && strcmp(a[i].sex,"男") == 0) {RowShow(a,i);flag = 0;}}if(flag) cout << "(没找到符合条件者)
";}int main() {WAGE a[] = {{"理学院","赵志军","男","1957-06-25","教 授",1150,411,176.6,90},{"商学院","于 铭","女","1979-10-21","助 教",500,471,208.9,91},{"工学院","许炎锋","女","1954-03-08","教 授",1250,630,306.2,96},{"理学院","王 嘉","女","1971-06-06","讲 师",850,475,100.3,89},{"工学院","李新江","男","1962-10-02","教 授",950,399,49.5,87},{"商学院","郭海英","女","1963-02-07","副教授",950,332,77.6,85},{"工学院","马淑恩","女","1960-06-09","副教授",900,791,60.5,45},{"理学院","王金科","男","1956-09-10","教 授",1050,480,325.6,93},{"理学院","李东慧","女","1950-08-07","教 授",1350,364,52.3,94},{"工学院","张 宁","女","1980-01-01","助 教",500,395,78,89},{"商学院","王 孟","男","1966-09-08","讲 师",800,463,220.3,98},{"工学院","马会爽","女","1970-02-09","讲 师",800,368,101.1,69},{"工学院","史晓赟","女","1952-06-06","教 授",1200,539,520.3,50},{"理学院","刘燕凤","女","1959-08-07","教 授",1200,892,180.9,86},{"工学院","齐 飞","男","1961-04-05","副教授",1200,626,245.6,74},{"商学院","张 娟","女","1975-09-25","助 教",650,374,625.3,86},{"理学院","潘成文","男","1965-10-09","讲 师",950,402,1050,90},{"工学院","邢 易","女","1981-02-25","助 教",600,325,300,90},{"商学院","谢枭豪","女","1950-11-18","教 授",1350,516,200,90},{"工学院","胡洪静","女","1952-06-24","教 授",1350,277,100,86},{"工学院","李云飞","男","1969-05-04","讲 师",960,729,56,89},{"商学院","张 奇","女","1970-05-28","讲 师",960,331,69,89},{"理学院","夏小波","女","1968-08-01","讲 师",960,482,89,45},{"工学院","王 玮","女","1972-11-05","讲 师",960,340,98,79},{"理学院","张 帝","女","1950-03-26","教 授",1300,335,124,90},{"商学院","孙 帅","男","1966-05-24","讲 师",900,748,326,79},{"工学院","卜辉娟","女","1960-05-23","教 授",960,481,651,78},{"工学院","李辉玲","女","1978-09-09","助 教",630,379,400,77},{"理学院","刘亚静","男","1969-08-09","副教授",890,377,23,66},{"工学院","尹 娴","女","1958-06-09","教 授",1050,955,59,65},{"商学院","马春英","男","1964-12-06","讲 师",850,387,78,69},{"工学院","孟 梦","女","1965-08-09","副教授",850,753,485.6,93},{"工学院","梁晓萌","女","1975-06-09","助 教",650,551,136.5,99},{"理学院","张 然","女","1973-03-03","讲 师",800,761,203.1,100},{"工学院","彭雁南","男","1978-05-09","助 教",650,200,200,90}};int i,n = sizeof(a)/sizeof(a[0]);if(n == 0) return 1;ComputerResidualwage(a,n);PrintTitle();for(i = 0; i < n; ++i) RowShow(a,i);for(i = 0; i < 79; ++i) cout << "*";cout << endl; cout << "
理学院,基本工资高于900元的男副教授有:

"; PrintTitle();Search1(a,n);for(i = 0; i < 79; ++i) cout << "*";cout << endl;cout << "
理学院,基本工资低于1200元的男教授有:

";PrintTitle();Search2(a,n);for(i = 0; i < 79; ++i) cout << "*";cout << endl << endl;return 0;}

以下是我的程序,刚编好的,刚好符合你的要求,看看吧,对你应该有帮助:
呵呵
#include
#include
#include
#include
#define N 100
struct employee
{
int num;
char name[10];
char sex;
int age;
char xueli[30];
int wage;
char addr[30];
long int tel;
}em[100]; /*定义一个结构体*/




void menu();
void input();
void save(int);
void display();
void del();
void add();
void search();
void search_num();
void search_xueli();
void search_tel();
void modify(); /*定义各函数*/

void menu() /*菜单函数*/
{
printf(" ☆☆☆计算机科学与技术学系☆☆☆
");
printf("
");
printf(" ∮08802班 关丽霞∮
");
printf("
");
printf(" ******************职工信息管理****************
");
printf(" 1.录入职工信息");
printf(" 2.浏览职工信息
");
printf(" 3.查询职工信息");
printf(" 4.删除职工信息
");
printf(" 5.添加职工信息");
printf(" 6.修改职工信息
");
printf(" 7.退出
");
printf(" ********************谢谢使用******************
");
printf("
");
printf("
");

}


void main()
{
menu(); /*调用菜单函数*/
int n,flag;
char a;
do
{
printf("请选择你需要操作的步骤(1--7):
");
scanf("%d",&n);
if(n>=1&&n<=7)
{
flag=1;
break;
}
else
{
flag=0;
printf("您输入有误,请重新选择!");
}
}
while(flag==0);
while(flag==1)
{
switch(n)
{
case 1:printf(" ◆◆◆输入职工信息◆◆◆
");printf("
");input();break;
case 2:printf(" ◆◆◆浏览职工信息◆◆◆
");printf("
");display();break;
case 3:printf(" ◆◆◆按职工号查询职工信息◆◆◆
");printf("
");search();break;
case 4:printf(" ◆◆◆删除职工信息◆◆◆
");printf("
");del();break;
case 5:printf(" ◆◆◆添加职工信息◆◆◆
");printf("
");add();break;
case 6:printf(" ◆◆◆修改职工信息◆◆◆
");printf("
");modify();break;
case 7:exit(0);break;
default :break;
}
getchar();
printf("
");
printf("是否继续进行(y or n):
");
scanf("%c",&a);
if(a=='y')
{
flag=1;
system("cls"); /*清屏*/
menu(); /*调用菜单函数*/
printf("请再次选择你需要操作的步骤(1--6):
");
scanf("%d",&n);
printf("
");
}

else
exit(0);
}

}



void input() /*录入函数*/
{
int i,m;
printf("请输入需要创建信息的职工人数(1--100):
");
scanf("%d",&m);
for (i=0;i<m;i++)
{
printf("职工号: ");
srand((int)time(0));
em[i].num=rand()%10000+20000000;
if(em[i].num!=em[i-1].num)
printf("%8d ",em[i].num);
printf("
");
printf("请输入姓名: ");
scanf("%s",em[i].name);
getchar();
printf("请输入性别(f--女 m--男): ");
scanf("%c",&em[i].sex);
printf("请输入年龄: ");
scanf("%d",&em[i].age);
printf("请输入学历: ");
scanf("%s",em[i].xueli);
printf("请输入工资: ");
scanf("%d",&em[i].wage);
printf("请输入住址: ");
scanf("%s",em[i].addr);
printf("请输入电话: ");
scanf("%d",&em[i].tel);
printf("
");

}
printf("
创建完毕!
");
save(m);
}



void save(int m) /*保存文件函数*/
{
int i;
FILE*fp;
if ((fp=fopen("employee_list","wb"))==NULL) /*创建文件并判断是否能打开*/
{
printf ("cannot open file
");
exit(0);
}
for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/
if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)
printf("file write error
");
fclose(fp);
}


int load() /*导入函数*/
{
FILE*fp;
int i=0;
if((fp=fopen("employee_list","rb"))==NULL)
{
printf ("cannot open file
");
exit(0);
}
else
{
do
{
fread(&em[i],sizeof(struct employee),1,fp);
i++;
}
while(feof(fp)==0);
}
fclose(fp);
return(i-1);
}




void display() /*浏览函数*/
{
int i;
int m=load();
printf("
职工号姓名性别年龄学历工资住址电话
");
for(i=0;i<m;i++) /*m为输入部分的职工人数*/
printf("
%d%s%c%d%s%d%s%ld
",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
}


void del() /*删除函数*/
{

int m=load();
int i,j,n,t,flag;
char name[20];
printf("
原来的职工信息:
");
display(); /* 调用浏览函数*/
printf("
");
printf("请输入要删除的职工的姓名:
");
scanf("%s",name);
for(flag=1,i=0;flag&&i<m;i++)
{
if(strcmp(em[i].name,name)==0)
{
printf("
已找到此人,原始记录为:
");
printf("
职工号姓名性别年龄学历工资住址电话
");
printf("
%d%s%c%d%s%d%s%ld
",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
printf("
确实要删除此人信息请按1,不删除请按0
");
scanf("%d",&n);
if(n==1) /*如果删除,则其他的信息都往上移一行*/
{
for(j=i;j<m-1;j++)
{
strcpy(em[j].name,em[j+1].name);
em[j].num=em[j+1].num;
em[j].sex=em[j+1].sex;
em[j].age=em[j+1].age;
strcpy(em[j].xueli,em[j+1].xueli);
em[j].wage=em[j+1].wage;
strcpy(em[j].addr,em[j+1].addr);
em[j].tel=em[j+1].tel;
}
flag=0;
}
}
}
if(!flag)
m=m-1;
else
printf("
对不起,查无此人!
");
printf("
浏览删除后的所有职工信息:
");
save(m); /*调用保存函数*/
display(); /*调用浏览函数*/
printf("
继续删除请按1,不再删除请按0
");
scanf("%d",&t);
switch(t)
{
case 1:del();break;
case 0:break;
default :break;
}
}



void add()/*添加函数*/
{
FILE*fp;
int n;
int count=0;
int i;
int m=load();
printf("
原来的职工信息:
");
display(); /* 调用浏览函数*/
printf("
");
fp=fopen("emploee_list","a");
printf("请输入想增加的职工数:
");
scanf("%d",&n);
for (i=m;i<(m+n);i++)
{
printf("
请输入新增加职工的信息:
");
printf("请输入职工号: ");
srand((int)time(0));
em[i].num=rand()%10000+20000000;
if(em[i].num!=em[i-1].num)
printf("%8d ",em[i].num);
printf("
");
printf("请输入姓名: ");
scanf("%s",em[i].name);
getchar();
printf("请输入性别(f--女 m--男): ");
scanf("%c",&em[i].sex);
printf("请输入年龄: ");
scanf("%d",&em[i].age);
printf("请输入学历: ");
scanf("%s",em[i].xueli);
printf("请输入工资: ");
scanf("%d",&em[i].wage);
printf("请输入住址: ");
scanf("%s",em[i].addr);
printf("请输入电话: ");
scanf("%d",&em[i].tel);
printf("
");
count=count+1;
printf("已增加的人数:
");
printf("%d
",count);
}
printf("
添加完毕!
");
m=m+count;
printf("
浏览增加后的所有职工信息:
");
printf("
");
save(m);
display();
fclose(fp);
}


void search()/*查询函数*/
{
int t,flag;
do
{
printf("
按职工号查询请按1 ; 按学历查询请按2 ; 按电话号码查询请按3,进入主函数按4
");
scanf("%d",&t);
if(t>=1&&t<=4)
{
flag=1;
break;
}
else
{
flag=0;
printf("您输入有误,请重新选择!");
}
}
while(flag==0);
while(flag==1)
{
switch(t)
{
case 1:printf("按职工号查询
");search_num();break;
case 2:printf("按学历查询
");search_xueli();break;
case 3:printf("按电话号码查询
");search_tel();break;
case 4:main();break;
default:break;
}

}

}

void search_num()
{
int num;
int i,t;
int m=load();
printf("请输入要查找的职工号(20001111---20009999):
");
scanf("%d",&num);
for(i=0;i<m;i++)
if(num==em[i].num)
{
printf("
已找到此人,其记录为:
");
printf("
职工号姓名性别年龄学历工资住址电话
");
printf("
%d%s%c%d%s%d%s%ld
",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
break;
}
if(i==m)
printf("
对不起,查无此人
");
printf("
");
printf("返回查询函数请按1,继续查询职工号请按2
");
scanf("%d",&t);
switch(t)
{
case 1:search();break;
case 2: break;
default:break;
}
}





void search_xueli()
{
char xueli[30];
int i,t;
int m=load();
printf("请输入要查找的学历:
");
scanf("%s",xueli);
for(i=0;i<m;i++)
if(strcmp(em[i].xueli,xueli)==0)
{
printf("
已找到,其记录为:
");
printf("
职工号姓名性别年龄学历工资住址电话
");
printf("
%d%s%c%d%s%d%s%ld
",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

}
if(i==m)
printf("
对不起,查无此人
");
printf("
");
printf("返回查询函数请按1,继续查询学历请按2
");
scanf("%d",&t);
switch(t)
{
case 1:search();break;
case 2:break;
default :break;
}

}


void search_tel()
{
long int tel;
int i, t;
int m=load();
printf("请输入要查找的电话号码:
");
scanf("%ld",&tel);
for(i=0;i<m;i++)
if(tel==em[i].tel)
{
printf("
已找到此人,其记录为:
");
printf("
职工号姓名性别年龄学历工资住址电话
");
printf("
%d%s%c%d%s%d%s%ld
",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
break;
}
if(i==m)
printf("
对不起,查无此人
");
printf("
");
printf("返回查询函数请按1,继续查询电话号码请按2
");
scanf("%d",&t);
switch(t)
{
case 1:search();break;
case 2:break;
default :break;
}

}

void modify() /*修改函数*/
{
int num;
char name[10];
char sex;
int age;
char xueli[30];
int wage;
char addr[30];
long int tel;
int b,c,i,n,t,flag;
int m=load(); /*导入文件内的信息*/
printf("
原来的职工信息:
");
display(); /* 调用浏览函数*/
printf("
");
printf("请输入要修改的职工的姓名:
");
scanf("%s",name);
for(flag=1,i=0;flag&&i<m;i++)
{
if(strcmp(em[i].name,name)==0)
{
printf("
已找到此人,原始记录为:
");
printf("
职工号姓名性别年龄学历工资住址电话
");
printf("
%d%s%c%d%s%d%s%ld
",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
printf("
确实要修改此人信息请按1 ; 不修改请按0
");
scanf("%d",&n);
if(n==1)
{
printf("
需要进行修改的选项
1.职工号 2.姓名 3.性别 4.年龄 5.学历 6.工资 7.住址 8.电话
");
printf("请输入你想修改的那一项序号:
");
scanf("%d",&c);
if(c>8||c<1)
printf("
选择错误,请重新选择!
");
}
flag=0;
}

}
if(flag==1)
printf("
对不起,查无此人!
");
do
{
switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/
{
case 1:printf("职工号改为: ");
scanf("%d",&num);
em[i-1].num=num;
break;
case 2:printf("姓名改为: ");
scanf("%s",name);
strcpy(em[i-1].name,name);
break;
case 3:printf("性别改为: ");
getchar();
scanf("%c",&sex);
em[i-1].sex=sex;
break;
case 4:printf("年龄改为: ");
scanf("%d",&age);
em[i-1].age=age;
break;
case 5:printf("学历改为: ");
scanf("%s",xueli);
strcpy(em[i-1].xueli,xueli);
break;
case 6:printf("工资改为: ");
scanf("%d",wage);
break;
case 7:printf("住址改为: ");
scanf("%s",addr);
strcpy(em[i-1].addr,addr);
break;
case 8:printf("电话改为: ");
scanf("%ld",&tel);
em[i-1].tel=tel;
break;
}
printf("
");
printf("
是否确定所修改的信息?
是 请按1 ; 不,重新修改 请按2:
");
scanf("%d",&b);

}
while(b==2);
printf("
浏览修改后的所有职工信息:
");
printf("
");
save(m);
display();
printf("
继续修改请按1,不再修改请按0
");
scanf("%d",&t);
switch(t)
{
case 1:modify();break;
case 0:break;
default :break;
}

}

如何规划,设计人力资源管理信息系统
答:系统的信息制订绩效计划,即界定绩效的具体内容与标准、权重,员工可以方便查询到考核自己绩效的具体指标;管理者可以和员工通过此系统进行沟通,对工作中出现的问题及时解决,从而对绩效计划随时调整;根据绩效内容、考核方法、考核程序...

管理信息系统设计的目标及主要内容有哪些
答:1、系统总体设计。其中包括:系统总体布局方案的确定、软件系统总体结构的设计、数据存储的总体设计、计算机和网络系统方案的选择等。2、各部分的详细设计。其中包括:代码设计、数据库设计、人—机界面设计(包括输入设计、输出...

C语言课程设计之公司员工信息管理系统怎么做?
答:1、员工信息管理系统是事业单位科学、全面、高效进行人事管理的系统,参考大量中国人力资源管理理论,根植于国内管理的实际情况,实用而科学。内容包括机构的建立和维护,人员信息的录入和输出,工资的调整和发放以及各类报表的绘制和输出等功能。...

信息管理系统设计论文
答:在对计算机信息管理系统进行相应的设计时,首先需要对数据进行全面的分析,找出对信息系统进行管理的具体 方法 ,最终的目标及在系统中所提供的一系列相关管理功能;其次将功能管理的模块设计出来,来实现服务器中所具有的功能;同时需要对数据库...

c++职工管理信息系统
答:c++职工管理信息系统 50 职工信息管理系统设计要求实现如下功能:(1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。(2)根据职工信息表,建立只含有......

管理信息系统设计的基本思想是什么
答:第一层包括联机的屏幕活动,这一层的目的是确定屏幕及报表的版式和内容、屏幕活动的顺序及屏幕排版的方法;第二层是第一层的扩展,引用了数据库的交互作用及数据操作,这一层的主要目的是论证系统关键区域的操作,用户可以输入...

管理信息系统 程序设计方法有哪些
答:可行的开发方法:自上而下(Top__Down),从企业管理的整体进行设计,逐渐从抽象到具体,从概要设计到详细设计,体现结构化的设计思想。自下而上(Bottom__Up),设计系统的构件,采用搭积木的方式组成整个系统,缺点在于忽视系统...

C语言课程设计职工信息管理系统
答:职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作v职工信息录入功能(职工信息... 职工信息包括职工号、姓名、性别、年龄、学历、工资、...

用C语言设计并实现一个员工信息管理系统
答:{cout << "单 位 姓 名 性别 出生年月 职 称 基本工资 津 贴 个 税 水电费 实发工资\n";for(int i = 0; i < 79; ++i) cout << "*"; cout << endl;}void RowShow(WAGE a[]...

员工信息管理系统,C语言做
答:员工信息管理系统,C语言做 公司员工基本信息管理程序设计设计结构体数组,结构体中包含数据为:员工编号、姓名、性别、年龄、职务、部门、住址、设计各个函数,分别实现以下功能:(1)输入数据(2)显示所有员... 公司员工基本信息管理程序设计...