一个项目设计职工信息管理系统.docx
《一个项目设计职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《一个项目设计职工信息管理系统.docx(42页珍藏版)》请在冰豆网上搜索。
一个项目设计职工信息管理系统
#include
#include
#include
#include
#include
#defineN100
structemployee//职工基本情况
{
intnum; //工号
charname[10]; //姓名
intsex; //性别
intposition; //职位
intage; //年龄
intcult; //学历
intsalary; //工资
intstate; //健康情况
longtel; //联系电话
charadr[50]; //住址
}em[N];
intnum[N]={0};
structemployeenewem;
voidmainmenu(); //主菜单
voidinput(); //输入模块
voiddisplay(); //显示模块
voiddel(); //删除模块
voidadd(); //添加模块
voidcount(); //统计模块
voidchange(); //修改模块
intchangeposition(); //修改职位
intchangecult(); //修改学历
intchangesalary(); //修改工资
intchangestate(); //修改身体状况
voidchangmany(); //修改多项信息
voidprint(); //打印函数
voidselect(); //查询模块
voidnumselect(); //按工号查询
voidnameselect(); //按姓名查询
voidcultselect(); //按学历查询
voidpositionselect(); //按职位查询
∙2010-7-1111:
46
∙回复
∙
∙LUZIF200826
∙2位粉丝
∙
2楼
voidstateselect(); //按身体状况查询
voidsexselect(); //按性别查询
voidageselect(); //按年龄区间查询
voidsalaryselect(); //按工资区间查询
voidpaixu(); //排序模块
voidnumpx(); //按工号排序
voidcultpx(); //按学历排序
voidpositionpx(); //按职位排序
voidstatepx(); //按身体状况排序
voidagepx(); //按年龄排序
voidsalarypx(); //按工资排序
voidmain() //主函数
{
charpassword[7]="1";
chars[7];
intflag=0;
intn=3;
system("modecon:
lines=100cols=120");
do
{
printf("请你输入密码:
\n");
scanf("%s",s);
if(!
strcmp(s,password)) //若密码正确
{
printf("恭喜你成功登陆了\n\n\n");
flag=1;
break;
}
else
{
printf("输入有错误请重新输入:
\n");
n--;
}
}while(n>0);
if(!
flag)
{
printf("你的输入次数已到再见\n");
∙2010-7-1111:
46
∙回复
∙
∙LUZIF200826
∙2位粉丝
∙
3楼
exit(0);
}
printf("请按任意键继续!
\n");
getch();
mainmenu();
}
voidmainmenu() //主菜单
{
intchoicemanage=0;
while
(1)
{
system("cls");
printf("\t\t欢迎进入职工信息管理系统\n");
printf("\t\t============================\n");
printf("\t\t请你选择操作类型:
\n");
printf("\t\t1输入职工信息\n");
printf("\t\t2显示职工信息\n");
printf("\t\t3查询职工信息\n");
printf("\t\t4修改职工信息\n");
printf("\t\t5追加一个职工信息\n");
printf("\t\t6删除一个职工信息\n");
printf("\t\t7统计职工信息\n");
printf("\t\t8对职工信息进行排序\n");
printf("\t\t0退出\n");
printf("\t\t===========================\n");
scanf("%d",&choicemanage);
switch(choicemanage)
{
case1:
input(); //输入职工信息
break;
case2:
display(); //显示职工信息
break;
case3:
select(); //查询职工信息
break;
case4:
change(); //修改职工信息
break;
case5:
add(); //追加一个职工信息
break;
case6:
del(); //删除一个职工信息
∙2010-7-1111:
46
∙回复
∙
∙LUZIF200826
∙2位粉丝
∙
4楼
break;
case7:
count(); //统计职工信息
break;
case8:
paixu(); //对职工信息进行排序
break;
case0:
printf("谢谢你的使用再见\n");
exit(0);
default:
printf("你的输入有错请重新输入\n");
}
}
}
voidinput() //输入模块
{
FILE*fp;
intk,j,flag=0,i=0;
charchoice;
system("cls");
if((fp=fopen("employee.txt","w"))==NULL)
exit(0);
srand(time(NULL));
while
(1)
{
i++;
system("cls");
printf("第%d个职工\n",i);
printf("\n");
do
{
em[i].num=rand()%6000+2000; //自动生成工号
for(j=0;num[j];j++)
{
if(num[j]==em[i].num)
{
flag=1;
break;
}
}
if(flag!
=1)
{
num[i]=em[i].num;
break;
}
}while
(1);
∙2010-7-1111:
46
∙回复
∙
∙LUZIF200826
∙2位粉丝
∙
5楼
printf("工号:
%d\n",num[i]);
printf("请输入姓名:
\n"); //输入姓名
scanf("%s",em[i].name);
printf("\n");
do
{
printf("请选择性别以1为男2为女:
\n"); //输入性别
scanf("%d",&k);
if(k>=1&&k<=2)
{
em[i].sex=k;
break;
}
else
printf("您的输入有误,请重新输入!
\n");
}while
(1);
printf("\n");
do
{
printf("请选择职位1.董事长2.总经理3.副总经理4.经理5.副经理6.秘书7.技术员8.领班9.普通员工:
\n");//输入职位
scanf("%d",&k);
if(k>=1&&k<=9)
{
em[i].position=k;
break;
}
else
printf("您的输入有误,请重新输入!
\n");
}while
(1);
printf("\n");
printf("请输入年龄:
");
scanf("%d",&em[i].age);
printf("\n");
do
{
printf("请选择文化程度1为专家2为博士3为硕士4为学士5为其他:
\n");//输入文化程度
scanf("%d",&k);
if(k>=1&&k<=5)
{
em[i].cult=k;
break;
∙2010-7-1111:
46
∙回复
∙
∙LUZIF200826
∙2位粉丝
∙
6楼
}
else
printf("您的输入有误,请重新输入!
\n");
}while
(1);
printf("\n");
printf("请输入工资:
\n");//输入工资
scanf("%d",&em[i].salary);
printf("\n");
do
{
printf("请你选择身体情况1好2为一般3为差:
\n");//身体情况
scanf("%d",&k);
if(k>=1&&k<=3)
{
em[i].state=k;
break;
}
else
printf("您的输入有误,请重新输入!
\n");
}while
(1);
printf("\n");
printf("请输入联系电话:
");
scanf("%ld",&em[i].tel);
printf("\n");
printf("请输入地址:
");
scanf("%s",em[i].adr);
printf("\n");
fwrite(&em[i],sizeof(structemployee),1,fp);
printf("是否继续输入?
(y/n)\n");
scanf("%s",&choice);
if(choice=='n'||choice=='N')
break;
}
fclose(fp);
if((fp=fopen("num.txt","w"))==NULL)
exit(0);
for(i=0;num[i];i++)
fwrite(&num[i],sizeof(int),1,fp);
fclose(fp);
printf("输入完毕,任意键返回\n");
getch();
}
voiddisplay() //显示职工信息
{
FILE*fp;
inti;
system("cls");
if((fp=fopen("employee.txt","r+"))==NULL)
{
printf("文件不存在或为空,请先输入员工信息!
\n");
mainmenu();
}
printf("输出结果:
\n");
printf("工号 \t姓名 \t年龄 \t性别 \t职位\t \t文化程度 \t身体情况 \t工资 \t电话 \t住址\n");
for(i=0;fread(&em[i],sizeof(structemployee),1,fp)!
=0;i++)
{
print(em[i]);
}
printf("完毕按任意键返回\n");
getch();
fclose(fp);
}
∙2010-7-1111:
46
∙回复
∙KLZ毕业
∙阿宾和白洁
∙289位粉丝
∙
7楼
一大伙作业党要幸福的笑了……
∙2010-7-1111:
50
∙回复
∙
∙LUZIF200826
∙2位粉丝
∙
8楼
voidchange() //修改模块
{
FILE*fp;
inti,k,l=0;
intchnum;
intchoicechange;
system("cls");
printf("请你输入要修改的人的工号:
\n");
scanf("%d",&chnum);
if((fp=fopen("employee.txt","r+"))==NULL)
{
printf("不能够打开这个文件\n");
exit(0);
}
for(i=0;fread(&em[i],sizeof(structemployee),1,fp)!
=0;i++)
;
k=i;
fclose(fp);
if((fp=fopen("employee.txt","w+"))==NULL)
{
printf("不能够打开这个文件\n");
exit(0);
}
for(i=0;i {
if(chnum==em[i].num)
{
l=1;
printf("这是你要修改的人的信息\n");
printf("工号 \t姓名 \t年龄 \t性别 \t职位\t \t文化程度 \t身体情况 \t工资 \t电话 \t住址\n");
print(em[i]);
printf("------------------------------------------------------------\n");
printf("请选择要修改的部分:
\n");
printf("\t\t===============================\n");
printf("\t\t1仅修改职位\n");
printf("\t\t2仅修改文化程度\n");
printf("\t\t3仅修改工资\n");
printf("\t\t4仅修改身体情况\n");
printf("\t\t5修改多项\n");
printf("\t\t0返回主菜单\n");
printf("\t\t============================\n");
∙2010-7-1112:
11
∙回复
∙
∙LUZIF200826
∙2位粉丝
∙
9楼
printf("请选择\n");
scanf("%d",&choicechange);
switch(choicechange)
{
case1:
em[i].position=changeposition();
break;
case2:
em[i].cult=changecult();
break;
case3:
em[i].salary=changesalary();
break;
case4:
em[i].state=changestate();
break;
case5:
newem=em[i];
changmany();
em[i]=newem;
break;
case0:
mainmenu();
default:
printf("输入有错误");
}
}
fwrite(&em[i],sizeof(structemployee),1,fp);
}
fclose(fp);
if(l==0)
{printf("该员工不存在,请查证后再输入!
\n");
select();
}
∙2010-7-1112:
11
∙回复
∙
∙LUZIF200826
∙2位粉丝
∙
10楼
else
printf("操作完成按任意键返回主菜单\n");
getch();