#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#define N 100
struct employee //职工基本信息
{
long num; //工号
int position; //职位:1为董事长,2为总经理,3为副总经理 4.普通员工
char name[8]; //姓名
char sex[2]; //性别;f为女,m为男
int age; //年龄
int cult; //文化程度:1为硕士。2为学士。3为其他
int state; //健康状况:1为好,2为一般。3为差
}e[N];
/* ************ 管理模块 ************ */
/* 录入职工信息 */
void input ()
{
int i,j;
printf ("请确认输入信息的职工人数(最多100人)\n");
scanf ("%d",&i);
if (i<1 || i>100)
{
printf ("输入数据有误,请重新输入\n");
scanf ("%d",&i);
}
FILE *fp;
if ((fp=fopen("d:\\Staff information.txt","w"))==NULL)
{
printf ("Can not open file!");
exit (0);
}
printf ("*****************************************************************\n");
printf ("备注:\n职位:1为董事长,2为总经理,3为副总经理 4.普通员工\n性别;f为女,m为男\n文化程度:1为硕士。2为学士。3为其他\n健康状况:1为好,2为一般。3为差\n");
printf ("*****************************************************************\n");
printf ("请输入%d名职工信息,(工号、职位等信息,请按Tab键隔开)\n",i);
printf ("工号\t职位\t姓名\t性别\t年龄\t文化程度\t健康状况\n");
for (j=0;j<i;j++);
{
scanf ("%ld%d%s%s%ld%d%d",&e[j].num,&e[j].position,e[j].name,e[j].sex,&e[j].age,&e[j].cult,&e[j].state);
fflush(stdin);
fprintf (fp,"%ld\t%d\t%s\t%s\t%ld\t%d\t%d",e[j].num,e[j].position,e[j].name,e[j].sex,e[j].age,e[j].cult,e[j].state);
/* fflush(stdin);*/
fprintf (fp,"\n");
}
fclose (fp);
if ((fp=fopen("d:\\Count.txt","w"))==NULL)
{
printf ("Can not open file!");
exit (0);
}
fputc (i,fp);
fclose (fp);
}
/* 显示职工信息 */
void display ()
{
FILE *fp;
int f;
if ((fp=fopen("d:\\Count.txt","r"))==NULL)
{
printf ("Can not open file!");
exit (0);
}
f = fgetc (fp);
if ((fp=fopen("d:\\Staff information.txt","r"))==NULL)
{
printf ("Can not open file!");
exit (0);
}
/* printf ("已输入信息的职工有%d人\n",i); */
printf ("工号\t职位\t姓名\t性别\t年龄\t文化程度\t健康状况\n");
for (int a=0;a<f;a++)
{
fscanf (fp,"%ld\t%d\t%s\t%s\t%ld\t%d\t%d",&e[a].num,&e[a].position,e[a].name,e[a].sex,&e[a].age,&e[a].cult,&e[a].state); // 从文件中读出数据,应该用文件的读写函数
printf ("%ld\t%d\t%s\t%s\t%ld\t%d\t\t%d",e[a].num,e[a].position,e[a].name,e[a].sex,e[a].age,e[a].cult,e[a].state);
printf ("\n");
}
/* 这个不行
while (!feof (fp))
{
fgets (a,10000,fp);
}*/
fclose (fp);
}
/* 修改职工信息 */
/* 追加职工信息 */
/* 删除职工信息 */
/* 管理模块选择菜单 */
void manage ()
{
system ("cls");
int choicemanage;
char choice='y';
while (choice == 'Y' || choice == 'y')
{
system ("cls");
printf ("\t\t欢迎进入管理系统\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 ("=======================================\n");
scanf ("%d",&choicemanage);
system ("cls");
switch (choicemanage)
{
case 1:
input (); //输入职工信息
break;
case 2:
display (); //显示职工信息
break;
/* case 3:
chanage (); //修改职工信息
break;
case 4:
add (); //追加职工信息
break;
case 5:
del (); //删除职工信息
break; */
case 0:
{
printf ("谢谢使用再见\n");
return ;
}
default :
printf ("输入错误请重新输入\n");
}
printf ("是否继续管理?(y/Y)\n");
scanf ("%s",&choice); //之前我直接 用格式控制符 %c 根本就没有选择,因为对于%c读入时候,“空格、\n、TAB”等是正常字符,当你最后按 回车键 是把回车键 '\n' 赋值给 choice
}
}
/* ************ 总菜单 ************ */
void main ()
{
int choice;
while (1)
{
printf ("*******************************************\n");
printf ("\t欢迎进入企业人事管理系统中文版\n");
printf ("======================\t\t======================\n");
printf ("\t\t\t请你选择操作\n");
printf ("\t\t\t1进入管理系统\n");
printf ("\t\t\t0退出系统\n");
printf ("======================\t\t======================\n");
scanf ("%d",&choice);
switch (choice)
{
case 1:
manage (); //管理系统
break;
case 0:
{
printf ("谢谢使用,再见\n");
exit (0);
}
default:
printf ("输入有误请重新输入\n");
}
}
}
艾晓健
艾晓健
相关分类