最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C语言课程设计职工档案管理系统

来源:动视网 责编:小OO 时间:2025-10-02 15:32:15
文档

C语言课程设计职工档案管理系统

#include#include#include#include#defineN140structteacher//职工基本情况{charnum[6];//编号charname[8];//姓名charsex[5];//性别f为女m为男charbirth[8];//出生年月intage;//年龄charmarriage[10];//婚姻状况,y/n,是/否charaddress[20];//家庭住址charworkplace[10];//所在单位charsalarylevel[8];//工资级别
推荐度:
导读#include#include#include#include#defineN140structteacher//职工基本情况{charnum[6];//编号charname[8];//姓名charsex[5];//性别f为女m为男charbirth[8];//出生年月intage;//年龄charmarriage[10];//婚姻状况,y/n,是/否charaddress[20];//家庭住址charworkplace[10];//所在单位charsalarylevel[8];//工资级别
#include

#include

#include

#include

#define N 140 

struct teacher//职工基本情况

{

 char num[6];//编号

 char name[8];//姓名

 char sex[5];//性别f为女m为男

 char birth[8];//出生年月

 int age;//年龄

 char marriage[10];//婚姻状况,y/n,是/否

 char address[20];//家庭住址

 char workplace[10];//所在单位

 char salarylevel[8];//工资级别

 char position[8];//职称

} teach[N]; 

/*主要函数*/

void input();//输入职工信息

void display();//显示职工信息

void passWord();//设置密码

void save();//保存职工信息

void change();//修改职工信息

/*查找函数*/

void search();

void searchByname();//按姓名查找

void searchBynum();//按编号查找

int total=0;//定义total来记数记录数

int i=0;

void main()

  {

    int choice;

    do

    {

        printf("************************************\\n");//系统欢迎界面

        printf("*                                  *\\n");

        printf("*****欢迎进入院职工档案管理系统*****\\n");

        printf("*                                  *\\n");

        printf("************************************\\n");

        printf(" 请您选择操作类型: \\n");

        printf("======================== \\n");

        printf("   1.输入职工信息 \\n");//用户选择

        printf("   2.显示职工信息 \\n");

        printf("   3.查找职工信息 \\n");

        printf("   4.修改职工信息 \\n");

        printf("   0.退出系统 \\n");

        printf("======================== \\n");

        scanf("%d",&choice);

        switch(choice)

        {

         case 1:input();break;

         case 2:display();break;

         case 3:search();break;

         case 4:change();break;

         case 0:

            {

             printf("谢谢使用!再见! ");

             exit(0);//退出系统

            }

        default:

            {printf("您的输入有错误,请重新输入!");

             return;

            }       

        }

    }while(1);//当为真值时执行do循环

  }

  

void input()

{

    char j='\\0';//初始化j值为空

    do

    {

        total++;

        i++;

        printf("第%d个职工:\\n",i);

        printf("请您输入编号: ");//输入编号

        scanf("%s",teach[i].num);

        printf("请您输入姓名: ");//输入姓名

        scanf("%s",teach[i].name);

        printf("请您输入性别(m男f女): ");//输入性别

        getchar();

        scanf("%s",teach[i].sex);

        printf("请您输入出生年月(格式如:1990.03): ");//输入出生年月

        scanf("%s",teach[i].birth);

        printf("请您输入年龄: ");//输入年龄

        scanf("%d",&teach[i].age);

        printf("请您输入婚姻状况: ");//输入婚姻状况

        scanf("%s",teach[i].marriage);

        printf("请您输入家庭住址: ");//输入家庭住址

        scanf("%s",teach[i].address);

        printf("请您输入所在单位: ");//输入所在单位

        scanf("%s",teach[i].workplace);

        printf("请您输入职称: ");//输入职称

        scanf("%s",teach[i].position);

        printf("请您输入工资级别: ");//输入工资级别

        scanf("%s",teach[i].salarylevel);

        printf("是否继续输入?(y/n):");

        getchar();

        j=getchar();

        while(j!='y'&&j!='n')

        {

            printf("输入不合法!\\n是否继续输入?(y/n):");

            getchar();

            j=getchar();

        }

    }

while(j=='y');

    save();//保存职工记录

    printf("输入完毕,请按任意键返回\\n ");

   getch();//conio库函数里的,结收键盘输入任意~~~

   return;

}

      

void save()

 {

    FILE *fp;

    int i=0;

    if((fp=fopen("teacher.txt

    {

        printf("This File Can Not Be Opened !\\n");

        return;

    }

for(i=1;i<=total;i++)

       if(fwrite(&teach[i],sizeof(struct teacher),1,fp)!=1)

            printf("file write error\\n");

       fclose(fp);

}

void display()//显示所有职工信息

{

   FILE *fp;

   int i;

   if((fp=fopen("teacher.txt

   {

       printf("文件打开失败或未创建文件!\\n");

       return;

   }

   printf("所有职工信息如下: \\n");//输出所有职工信息

   printf("\\n==========================================================================================================\\n");

   printf("编号      姓 名  性别   出生年月   年龄   婚姻状况     家庭住址         所在单位         职  称    工资级别\\n");

   printf("============================================================================================================\\n");

   for(i=1;fread(&teach[i],sizeof(struct teacher),1,fp)!=0;i++)//读完所有数据

      printf("%-6s%8s%8s%10s%5d%7s%20s%10s%18s%8s%5s\\n",teach[i].num,teach[i].name,teach[i].sex,teach[i].birth,teach[i].age,teach[i].marriage,teach[i].address,teach[i].workplace,teach[i].position,teach[i].salarylevel);

   printf("完毕,请按任意键返回\\n ");

   getch();

   fclose(fp);

   return;

}

void search()

{int choice;

 printf("请您选择查找方式:\\n");

 printf("1.按编号查找\\n 2.按姓名查找 \\n");

 scanf("%d",&choice);

 switch(choice)

 {

     case 1:searchBynum();break;

     case 2:searchByname();break;

     default:printf("输入有误,请重输入:\\n");

 }

}

void searchBynum()

{

    FILE *fp;

    int i;

    char numb[6];

    if((fp=fopen("teacher.txt

    {

      printf("不能够打开这个文件,请按任意键返回");

      return;

    } 

     printf("请您输入要查找的人的编号: ");

     scanf("%s",numb);

for(i=0;i       if(strcmp(teach[i].num,numb)==0)  //找到并显示该职工记录

       {

           printf("所有职工信息如下: \\n");//输出所有职工信息

           printf("\\n==========================================================================================================\\n");

   printf("编号      姓 名  性别   出生年月   年龄   婚姻状况     家庭住址         所在单位         职  称    工资级别\\n");

       printf("%-6s%8s%8s%10s%5d%7s%20s%10s%18s%8s%5s\\n",teach[i].num,teach[i].name,teach[i].sex,teach[i].birth,teach[i].age,teach[i].marriage,teach[i].address,teach[i].workplace,teach[i].position,teach[i].salarylevel);

  printf("查找完毕,请按任意键返回\\n ");

        getch();

        fclose(fp);

        return;

       }

    printf("不存在,请按任意键返回\\n");

    getch();

    fclose(fp);

    return;

}

void searchByname()

{

 FILE *fp;

 int i=0;

 char nam[8];

 if((fp=fopen("teacher.txt

 {

  printf("不能够打开这个文件,请按任意键返回\\n");

  return;

 }

  printf("请您输入要查找的人的姓名: ");

  scanf("%s",nam);

for(i=0;i     if(strcmp(teach[i].name,nam)==0)  //找到并显示该职工记录

     {

         printf("\\n==========================================================================================================\\n");

   printf("编号      姓 名  性别   出生年月   年龄   婚姻状况     家庭住址         所在单位         职  称    工资级别\\n");

   printf("============================================================================================================\\n");

       printf("%-6s%8s%8s%10s%5d%7s%20s%10s%18s%8s%5s\\n",teach[i].num,teach[i].name,teach[i].sex,teach[i].birth,teach[i].age,teach[i].marriage,teach[i].address,teach[i].workplace,teach[i].position,teach[i].salarylevel);

      fclose(fp);

      printf("查找完毕,请按任意键返回\\n ");

     getch();

     return;

     }

  printf("不存在,请按任意键返回\\n ");

  getch();

  fclose(fp);

  return;  

}

void passWord()

{

     char passWord[8]="123456";//起始密码

     char s[8];

     int flag=0;

     int n=3;//密码输入次数

     do

     {

        scanf("%s",s);

        if(strcmp(passWord,s)==0)//若密码正确

        {

            printf("密码正确,祝您操作愉快!\\n ");

            flag=1;

            break;

        }

        else 

        {

            printf("密码错误,您还有%d次机会: ",n-1);

            n--;//次数记数

        }

}while(n>0);

     if(flag!=1)

     {

       printf("您的输入次数已到!再见!\\n ");

       main();//返回主函数(主菜单)

     }

}

void change()

{

 FILE *fp;

 int i;

 char newnum[6];//新编号

 char newname[8];//新名字

 char newsex[2];//新性别

 char newbirth[8];//新出生年月

 int newage;//新年龄

 char newmarriage[10];//新婚姻状况,y/n,是/否

 char newaddress[20];//新家庭住址

 char newworkplace[10];//新所在单位

 char newposition[8];//新职称

 char newsalarylevel[8];//新工资水平

 char nam[8];

 int choice;

 printf("请您输入密码:");

 passWord();//调用密码函数

 printf("请您输入要修改的人的姓名: ");

 scanf("%s",&nam);

 if((fp=fopen("teacher.txt

 {

  printf("不能够打开这个文件 ");

  return;

 }

for(i=1;i<=N;i++)

   if(strcmp(nam,teach[i].name)==0)

  {

   printf("\\n==========================================================================================================\\n");

   printf("编号      姓 名  性别   出生年月   年龄   婚姻状况     家庭住址         所在单位         职  称    工资级别\\n");

   printf("============================================================================================================\\n");

   for(i=1;fread(&teach[i],sizeof(struct teacher),1,fp)!=0;i++)//读完所有数据

       printf("%-6s%8s%8s%10s%5d%7s%20s%10s%18s%8s%5s\\n",teach[i].num,teach[i].name,teach[i].sex,teach[i].birth,teach[i].age,teach[i].marriage,teach[i].address,teach[i].workplace,teach[i].position,teach[i].salarylevel);

   printf("-----------------------\\n ");

   printf("请您选择要修改的部分: \\n");

   printf("=======================\\n ");

   printf("1.修改编号\\n ");

   printf("2.修改姓名\\n ");

   printf("3.修改性别\\n ");

   printf("4.修改出生年月\\n ");

   printf("5.修改年龄\\n ");

   printf("6.修改婚姻状况\\n ");

   printf("7.修改家庭住址\\n ");

   printf("8.修改所在单位\\n ");

   printf("9.修改职称\\n ");

   printf("10.修改工资级别\\n ");

   printf("0.返回主菜单\\n ");

   printf("========================\\n ");

   scanf("%d",&choice);

   switch(choice)

   {

       case 1: printf("请您输入新的编号: ");

               scanf("%s",newnum);

               strcpy(teach[i].num,newnum);

               break;

       case 2: printf("请您输入新的姓名: ");

               scanf("%s",newname);

               strcpy(teach[i].name,newname);

               break;

       case 3: printf("请您输入新的性别: ");

               getchar();

               scanf("%s",&newsex);

               strcpy(teach[i].sex,newsex);

               break;

       case 4: printf("请您输入新的出生年月: ");

               scanf("%s",newbirth);

               strcpy(teach[i].birth,newbirth);

               break;

case 5: printf("请您输入新的年龄: ");

               getchar();

               scanf("%d",&newage);

               teach[i].age=newage;

               break;

case 6: printf("请您输入新的家庭住址: ");

               getchar();

               scanf("%s",&newaddress);

               strcpy(teach[i].address,newaddress);

               break;

       case 7: printf("请您输入新的婚姻状况: ");

               scanf("%s",newmarriage);

               strcpy(teach[i].marriage,newmarriage);

               break;

       case 8: printf("请您输入新的所在单位: ");

               scanf("%s",newworkplace);

               strcpy(teach[i].workplace,newworkplace);

               break;

       case 9:printf("请您输入新的职称: ");

              scanf("%s",newposition);

              strcpy(teach[i].position,newposition);

              break;

       case 10:printf("请您输入新的工资级别: ");

              scanf("%s",newsalarylevel);

              strcpy(teach[i].salarylevel,newsalarylevel);

              break;

       case 0:

           {

             printf("返回主菜单 ");

             main();//返回

           }

       default :printf("输入有错误!请重新输入!");return;

   }

        printf("\\n==========================================================================================================\\n");

   printf("编号      姓 名  性别   出生年月   年龄   婚姻状况     家庭住址         所在单位         职  称    工资级别\\n");

   printf("============================================================================================================\\n");

   for(i=1;fread(&teach[i],sizeof(struct teacher),1,fp)!=0;i++)//读完所有数据

       printf("%-6s%8s%8s%10s%5d%7s%20s%10s%15s%10s%5s\\n",teach[i].num,teach[i].name,teach[i].sex,teach[i].birth,teach[i].age,teach[i].marriage,teach[i].address,teach[i].workplace,teach[i].position,teach[i].salarylevel);

    save();//保存修改信息

    break;

  }

  else if(i==N) 

   {

      printf("没有这个职工,为了安全,请再次输入密码!\\n");

      change();  

   } 

   printf("\\n===================\\n");

   printf("1.继续修改\\n2.返回主菜单\\n");

   printf("===================\\n");

   printf("\\n请您选择:");

   scanf("%d",&choice);

   switch(choice)

   {

      case 1:change();break;

      case 2:main();break;

      default:printf("输入不合法!返回\\n");main();

   }

}

1.选择功能1,输入三个人的信息,其中一人信息错误,便于使用修改功能

2.选择功能2,显示所有已经录入信息的职工资料、

3.选择功能3,分别按照姓名和编号查询,若输入错误,则有报错提示。

3.选择功能4,将第1步输入错误的职工资料修改正确,随后退出。

文档

C语言课程设计职工档案管理系统

#include#include#include#include#defineN140structteacher//职工基本情况{charnum[6];//编号charname[8];//姓名charsex[5];//性别f为女m为男charbirth[8];//出生年月intage;//年龄charmarriage[10];//婚姻状况,y/n,是/否charaddress[20];//家庭住址charworkplace[10];//所在单位charsalarylevel[8];//工资级别
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top