#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#define N 100struct 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"); } }}
- 2 回答
- 0 关注
- 1055 浏览
添加回答
举报
0/150
提交
取消