C语言.docx

上传人:b****5 文档编号:4638852 上传时间:2022-12-07 格式:DOCX 页数:9 大小:17.27KB
下载 相关 举报
C语言.docx_第1页
第1页 / 共9页
C语言.docx_第2页
第2页 / 共9页
C语言.docx_第3页
第3页 / 共9页
C语言.docx_第4页
第4页 / 共9页
C语言.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

C语言.docx

《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(9页珍藏版)》请在冰豆网上搜索。

C语言.docx

C语言

#include

#include

#include

#include

#defineN100

structemployee

{

intnum;

charname[10];

charzhicheng;  

intjiben;

intjiangjin;

intbaoxian;

intzafei;

intshiji;

}em[100];      /*定义一个结构体*/

voidmenu();

voidinput();

voidsave(int);

voiddisplay();

voiddel();

voidsearch();

voidsearch_zhicheng();

voidsearch_name();

voidmodify();  /*定义各函数*/

voidmenu()  /*菜单函数*/

{

  printf("\n");

  printf("              网计091第7小组\n");

  printf("\n");

  printf("      ******************职工信息管理****************\n");

  printf("        1.录入职工信息");

  printf("        2.浏览职工信息\n");

  printf("        3.查询职工信息");

  printf("        4.删除职工信息\n");

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

  printf("        6.退出\n");

  printf("      ********************谢谢使用******************\n");

  printf("\n");

  printf("\n");

  

}

voidmain()

{  

  

  intn,flag;

  chara;

while

(1)

{

do

  {

      menu();/*调用菜单函数*/

  printf("请选择你需要操作的步骤(1--6):

\n");

  scanf("%d",&n);

  if(n>=1&&n<=6)

  {

  flag=1;

  break;

  }

  else

  {

    flag=0;

    printf("您输入有误,请重新选择!

");

  }

}while(flag==0);

  

    switch(n)

      {

    case1:

printf("          输入职工信息\n");printf("\n");input();break;

    case2:

printf("          浏览职工信息\n");printf("\n");system("cls");display();break;

    case3:

printf("          按职工号查询职工信息\n");printf("\n");system("cls");search();break;

    case4:

printf("          删除职工信息\n");printf("\n");system("cls");del();break;

    case5:

printf("          修改职工信息\n");printf("\n");system("cls");modify();break;

    case6:

gotola;

    default:

break;

      }

  

}

la:

  system("cls");  

  printf("\n\n\n\n\n      谢谢使用!

\n");

}

voidinput()  /*录入函数*/

{

  inti,m;

  printf("请输入需要创建信息的职工人数(1--100):

\n");

  scanf("%d",&m);

  for(i=0;i

  {

  printf("请输入职工号:

");

  scanf("%d",&em[i].num);  //这里的代码错,要用数组下标

    printf("\n");

    printf("请输入姓名:

  ");

  scanf("%s",em[i].name);//这里的代码错,要用数组下标

  getchar();

  printf("请输入职称:

  ");

  scanf("%c",&em[i].zhicheng);//这里的代码错,要用数组下标

  printf("请输入基本工资:

  ");

  scanf("%d",&em[i].jiben);//这里的代码错,要用数组下标

  printf("请输入奖金:

  ");

  scanf("%d",&em[i].jiangjin);//这里的代码错,要用数组下标

  printf("请输入保险:

  ");

  scanf("%d",&em[i].baoxian);//这里的代码错,要用数组下标

  printf("请输入杂费:

  ");

  scanf("%d",&em[i].zafei);//这里的代码错,要用数组下标

      

  em[i].shiji=em[i].jiben+em[i].jiangjin-em[i].baoxian-em[i].zafei;//这里的代码错,要用数组下标

  printf("\n");

  

  }

  printf("\n创建完毕!

\n");system("cls");

    save(m);

}

voidsave(intm)  /*保存文件函数*/

{

  inti;

  FILE*fp;

  if((fp=fopen("employee_list","wb"))==NULL)  /*创建文件并判断是否能打开*/

  {

    printf("cannotopenfile\n");

    exit(0);

  }

  for(i=0;i

  if(fwrite(&em,sizeof(structemployee),1,fp)!

=1)

  printf("filewriteerror\n");

  fclose(fp);

}

intload()  /*导入函数*/

{

    FILE*fp;

    inti=0;

    if((fp=fopen("employee_list","rb"))==NULL)

      {

    printf("cannotopenfile\n");

    exit(0);

      }

else

{

  do

  {

      fread(&em,sizeof(structemployee),1,fp);

      i++;

  }

  while(feof(fp)==0);

}

fclose(fp);

return(i-1);

}

  

voiddisplay()  /*浏览函数*/

{

inti;

intm=load();

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资  \n");

for(i=0;i

    printf("\n  %d\t  %s\t  %c\t    %d\t  %d\t  %d\t  %d\t  %d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);//这里的代码错,要用数组下标

printf("按任意键继续\n");

getchar();getchar();system("cls");

}

voiddel()  /*删除函数*/

{

  

  intm=load();

inti,j,n,t,flag;

charname1[10];

printf("\n原来的职工信息:

\n");

  display();  /*调用浏览函数*/

  printf("\n");

printf("请输入要删除的职工的姓名:

\n");

scanf("%s",name1);

for(flag=1,i=0;flag&&i

{

  if(strcmp(em[i].name,name1)==0)

  {

  printf("\n已找到此人,原始记录为:

\n");

        printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资  \n");

  printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);  

        printf("\n确实要删除此人信息请按1,不删除请按0\n");

  scanf("%d",&n);

        if(n==1)  /*如果删除,则其他的信息都往上移一行*/

  {

    for(j=i;j

    {

    em[j]=em[j+1];

        

    }

  flag=0;

  }

  }

}

if(!

flag)

  m=m-1;

else

  printf("\n对不起,查无此人!

\n");

  printf("\n浏览删除后的所有职工信息:

\n");

  save(m);    /*调用保存函数*/

  display();  /*调用浏览函数*/

printf("\n继续删除请按1,不再删除请按0\n");

scanf("%d",&t);

switch(t)

{

  case1:

del();break;

  case0:

break;

  default:

break;

}system("cls");

}

voidsearch()/*查询函数*/

{

  intt,flag;

do

{

  printf("\n按姓名查询请按1;按职称查询请按2;进入主函数按3\n");

  scanf("%d",&t);

  if(t>=1&&t<=3)

  {

  flag=1;

  break;

  }

  else

  {

  flag=0;

  printf("您输入有误,请重新选择!

");

  }

}while(flag==0);system("cls");

  while(flag==1)

{

  switch(t)

  {

    case1:

printf("按姓名查询\n");search_name();break;

    case2:

printf("按职称查询\n");search_zhicheng();break;

  case3:

main();break;

    default:

break;

  }

  system("cls");  

}

}

voidsearch_name()

{

  charname1[10];

  inti,t;

  intm=load();

  printf("请输入要查找的姓名:

\n");

  scanf("%s",name1);

  for(i=0;i

  if(strcmp(name1,em[i].name)==0)

{  

  printf("\n已找到此人,其记录为:

\n");

    printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资  \n");

  printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);  

  break;

}

  if(i==m)  

  printf("\n对不起,查无此人\n");

  printf("\n");

  printf("返回查询函数请按1,继续查询职工号请按2\n");

  scanf("%d",&t);

  switch(t)

  {

  case1:

search();break;

    case2:

break;

  default:

break;

  }

}

  

  

voidsearch_zhicheng()

{

  charzhicheng;

  inti,t=0;

  intm=load();

  system("cls");

  printf("请输入要查找的职称:

\n");

  scanf("%c",&zhicheng);  //这里要用地址

  for(i=0;i

  if(em[i].zhicheng==zhicheng)

{

  printf("\n已找到,其记录为:

\n");

  printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资  \n");

  printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);  

  

}

  if(i==m)

  printf("\n对不起,查无此人\n");

  printf("\n");

  printf("返回查询函数请按1,继续查询学历请按2\n");

  scanf("%d",&t);

  switch(t)

  {

  case1:

system("cls");search();break;

    case2:

break;

  default:

break;

  }

}

voidmodify()/*修改函数*/

{

intnum;

charname[10];

charzhicheng;  

intjiben;

intjiangjin;

intbaoxian;

intzafei;

intshiji;

intb,c,i,n,t,flag;

intm=load();/*导入文件内的信息*/

  printf("\n原来的职工信息:

\n");

  display();  /*调用浏览函数*/

  printf("\n");

  printf("请输入要修改的职工的姓名:

\n");

scanf("%s",name);

for(flag=1,i=0;flag&&i

{

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

  {

  printf("\n已找到此人,原始记录为:

\n");

        printf("\n职工号\t姓名\t职称\t基本\t奖金\t保险\t杂费\t实际工资  \n");

  printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);  

        printf("\n确实要修改此人信息请按1;不修改请按0\n");

  scanf("%d",&n);

        if(n==1)

                {

          printf("\n需要进行修改的选项\n1.职工号2.姓名3.职称4.基本工资5.奖金6.保险7.杂费8.实际工资\n");  

          printf("请输入你想修改的那一项序号:

\n");  

          scanf("%d",&c);  

          if(c>8||c<1)  

          printf("\n选择错误,请重新选择!

\n");  

                }

      flag=0;

  }

      

}

  if(flag==1)

  printf("\n对不起,查无此人!

\n");  

  do  

      {

    switch(c)    /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的

信息赋值给第i-1个人*/

        {  

        case1:

printf("职工号改为:

");

            scanf("%d",&num);

            em[i-1].num=num;

          break;  

          case2:

printf("姓名改为:

");

      scanf("%s",name);

      strcpy(em[i-1].name,name);

      break;  

        case3:

printf("职称改为:

");

      getchar();

      scanf("%c",&zhicheng);

    em[i-1].zhicheng=zhicheng;

    break;  

        case4:

printf("基本工资改为:

");

      scanf("%d",&jiben);

            em[i-1].jiben=jiben;

    break;  

        case5:

printf("奖金改为:

");

      scanf("%d",&jiangjin);//这里要用地址

            em[i-1].jiangjin=jiangjin;

    break;  

        case6:

printf("保险改为:

");

      scanf("%d",&baoxian);//这里要用地址

            break;  

        case7:

printf("杂费改为:

");

      scanf("%d",&zafei);//这里要用地址

            em[i-1].zafei=zafei;

    break;  

        case8:

printf("实际工资改为:

");

      scanf("%d",&shiji);

            em[i-1].shiji=shiji;

    break;  

  }

      printf("\n");

  printf("\n是否确定所修改的信息?

\n是请按1;不,重新修改请按2:

  \n");

      scanf("%d",&b);

  

}  

  while(b==2);

  printf("\n浏览修改后的所有职工信息:

\n");

  printf("\n");

  save(m);

  display();

  printf("\n继续修改请按1,不再修改请按0\n");

  scanf("%d",&t);

  switch(t)

{

  case1:

modify();break;

  case0:

break;

  default:

break;

}system("cls");

  

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1