⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 改编的c版职工管理系统.txt

📁 改编的C版职工管理系统,包括了一些常用的操作内容
💻 TXT
📖 第 1 页 / 共 2 页
字号:
改编的C版职工管理系统
日期:2005-01-25  作者:未知  来源:转载  浏览次数: 34  【字体:小 大】
________________________________________

/*八、简单的职工管理系统
1.问题描述
  对单位的职工进行管理,包括插入、删除、查找、排序等功能。
2.要求
  职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。
(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2)删除一名职工:从职工管理文件中删除一名职工对象。
(3)查询:从职工管理文件中查询符合某些条件的职工。
(4)修改:检索某个职工对象,对其某些属性进行修改。
(5)排序:按某种需要对职工对象文件进行排序。
3.实现提示
  职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。
(1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。
(2)对职工对象中的"姓名"按字典顺序进行排序。
(3)对排序后的职工对象进行增、删、查询、修改、排序等操作。
4.选做内容
  将职工对象按散列法存储,并设计解决冲突的方法。在此基础上实现增、删、查询、修改、排序等操作。
*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#define N 100
typedef struct employee//职工基本情况
{
int num;//工号
int position;//职位1为董事长2为总经理3为副总经理等
char name[8];//姓名
char sex[2];//性别f为女m为男
int age;//年龄
int cult;//文化程度1为专家2为博士3为硕士4为学士5为其他
int salary;//工资
int state;//健康情况分为good,general,bad
char day[10];//工作年月
}ro;
ro em[N];

typedef struct communication//职工通讯录
{
char name[8];
char officetel[13];
char hometel[13];
char handtel[13];
char address[13];
char time[13];
}el;
el empc[N];
void manage();
void query();
void communicate();
void input();
void display();
void change();
void del();
void add();
int changeposition();
int changecult();
int changesalary();
int changestate();
void inputcommunicate();
void querycommunicate();
void changecommunicate();
char *changetel1();
char *changetel2();
char *changetel3();
int total;
int p;
char password[10]="talentxch";
void main()
{
   int choice;
   char s[10];
   int flag=0;
   int n=3;
   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");
}
   do
{
    printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf("\t\t欢迎进入职工管理系统中文版\n");
    printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf("\t\t请你选择操作类型:\n");
    printf("======================================================\n");
    printf("  \t\t1进入管理系统\n");
    printf("  \t\t2进入查询系统\n");
    printf("  \t\t3进入通讯录\n");
    printf("  \t\t0退出系统\n");
    printf("======================================================\n");
    scanf("%d",&choice);
    switch(choice)
 {
      case 1:manage();
      break;
      case 2:query();
      break;
      case 3:communicate();
      break;
      case 0:
   {
          printf("谢谢使用再见\n");
          exit(0);
   }
      default:
   {
          printf("输入有错误请重新输入:\n");
          return;
   }
 }
}while(1);
}
void manage()
{
   int choicemanage;
   char choice='y';
   while(choice=='y'||choice=='Y')
{
     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);
     switch(choicemanage)
  {
       case 1: input();//输入职工信息
       break;
       case 2:display();//显示职工信息
       break;
       case 3:change();//修改职工信息
       break;
       case 4:add();//追加一个职工信息
       break;
       case 5:del();//删除一个职工信息
       break;
       case 0:
       printf("谢谢你的使用再见\n");
       return;
      default:printf("你的输入有错请重新输入\n");
  }
     printf("是否继续管理?(y/n)");
     scanf("%s",&choice);
}
   if(toupper(choice)=='N'||(choice)=='n')
{
     printf("输入完毕,任意键返回\n");
     getch();
     return;
}
}

void input()
{
  FILE *fp;
  int i=0;
  char choiceinput='y';
  if((fp=fopen("employee.txt","w"))==NULL)
  return;
  while(choiceinput=='y'||choiceinput=='Y')
{
   i ;
  total ;
   printf("第%d个职工\n",i);
   printf("\n");
   printf("请你输入工号:\n");//输入工号
   scanf("%d",&em[i].num);
   printf("\n");
   printf("请你输入职位:\n");//输入职位
   printf("1董事长   2总经理  3副总经理\n");
   printf("4部门经理  5工程师  6秘书\n");
   printf("7技术员   8领班   9员工\n");
   scanf("%d",&em[i].position);
   printf("\n");
   printf("请你输入姓名:\n");//输入姓名
   scanf("%s",em[i].name);
   printf("\n");
   printf("请你输入性别以(m男f女):\n");//输入性别
   scanf("%s",em[i].sex);
   printf("\n");
   printf("请你输入文化程度:\n");//输入文化程度
   printf("1专家 2博士 3硕士 4学士 5其他\n");
   scanf("%d",&em[i].cult);
   printf("\n");
   printf("请你输入工资:\n");//输入工资
   scanf("%d",&em[i].salary);
   printf("\n");
   printf("请你输入身体情况:\n");//身体情况
   printf("1好 2一般 3差\n");
   scanf("%d",&em[i].state);
  printf("请你输入工作年月:\n");
  scanf("%s",em[i].day);
   printf("\n");
   printf("是否继续输入?(y/n)\n");
    scanf("%s",&choiceinput);
   fwrite(&em[i],sizeof(struct employee),1,fp);
}
  if(toupper(choiceinput)=='N') //字符大小写转换
    {
     fclose(fp);
     printf("输入完毕,任意键返回\n");
     getch();
     return;
    }
}

void display()//显示职工信息
{
  FILE *fp;
  int i;
  if((fp=fopen("employee.txt","r"))==NULL)
   return;
  printf("输出结果:\n");
  printf("工号 职位 姓名 性别 文化程度 工资 身体情况\n");
  printf("\n");
  for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i )
  { 
   printf("\n");
   printf("工号: %d\n",em[i].num);
   printf("职位: %d\n",em[i].position);
   printf("1董事长   2总经理  3副总经理\n");
   printf("4部门经理  5工程师  6秘书\n");
   printf("7技术员   8领班   9员工\n");
   printf("姓名: %s\n",em[i].name);
   printf("性别: %s\n",em[i].sex);
   printf("其中(m男f女)\n");
   printf("文化程度: %d\n",em[i].cult);
   printf("1专家 2博士 3硕士 4学士 5其他\n");
   printf("工资: %d\n",em[i].salary);
   printf("身体情况: %d\n",em[i].state);
   printf("1好 2一般 3差\n");
  printf("工作年月: %s",em[i].day);
   printf("\n");
  }
  printf("\n");
  printf("完毕按任意键返回\n");
  getch();                     //文件里用
  fclose(fp);
  return;
}

void change()
{
FILE *fp;
int i;
char chname[8];
int choicechange;
ro a[N];
printf("请你输入要修改的人的姓名:\n");
scanf("%s",&chname);
if((fp=fopen("employee.txt","w "))==NULL)
{
printf("不能够打开这个文件\n");
return;
}
for(i=0;i<N;i )
{
if(strcmp(chname,em[i].name)==0)
{
  printf("这是你要修改的人的信息\n");
  printf("工号:%d 职位:%d 姓名:%s 性别:%s 文化程度:%d 工资:%d 身体:%d\n",em[i].num,em[i].position,em[i].name,em[i].sex,em[i].cult,em[i].salary,em[i].state);
  printf("--------------------------------------------------------\n");
  printf("请你输入要修改的部分:\n");
  printf("========================================================\n");
  printf("1修改职位\n");
  printf("2修改文化程度\n");
  printf("3修改工资\n");
  printf("4修改身体情况\n");
  printf("0退出系统\n");
  printf("========================================================\n");
  printf("请选择\n");
  scanf("%d",&choicechange);
  switch(choicechange)
  {
  case 1:
  em[i].position=changeposition();
  break;
  case 2:
  em[i].cult=changecult();
  break;
  case 3:
  em[i].salary=changesalary();
  break;
  case 4:
  em[i].state=changestate();
  break;
  case 0:
  return;
  default :
  printf("输入有错误");
  }
  a[i]=em[i];
}
else
{
  a[i]=em[i];
}
}
for(i=0;i<total;i )
{
em[i]=a[i];
}
i=0;
fwrite(&em[i],sizeof(struct employee),total,fp);
fclose(fp);
printf("操作完成按任意键返回\n");
getch();
return;
}

int changeposition()
{
int newposition;
printf("请你输入新职位:\n");
printf("1董事长   2总经理  3副总经理\n");
printf("4部门经理  5工程师  6秘书\n");
printf("7技术员   8领班   9员工\n");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -