C语言课程设计职工信息管理系统

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE 2




struct worker_type
{int number;
char name[20];
char sex;
char xueli[20];
int wage;
char address[30];
char phone_num[20];
}worker[SIZE]; int i=0;
 


void input()
{FILE *fp;
int i; 
  printf("信息输入\n");
 for(i=0;i<SIZE;i++)
 {
printf("\n请输入职工的姓名:");
scanf("%s",worker[i].name);
printf("\n请输入职工的编号:");
scanf("%d",&worker[i].number);
printf("\n请输入职工的学历:");
scanf("%s",worker[i].xueli);
printf("\n请输入职工的工资:");
scanf("%d",&worker[i].wage);
printf("\n请输入职工的性别:");
getchar();//注意消除多余字符
scanf("%c",&worker[i].sex);
printf("\n请输入职工的地址:");
scanf("%s",worker[i].address);
printf("\n请输入职工的电话:");
     scanf("%s",worker[i].phone_num);
 }


if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
if(fwrite(&worker[i],sizeof(struct worker_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}




void scan() 
{
 FILE *fp;
int i;
 printf("    信息浏览\n\n");
 printf("    编号       姓名    性别        学历      工资     地址            电话 \n ");
 printf("********************************************************************************\n");
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}


for(i=0;i<SIZE;i++)
{
fread(&worker[i],sizeof(struct worker_type),1,fp);
printf("  %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);}
fclose(fp);
}




void find()
{ FILE *fp;
int i,n,a;char name[20];
printf("    请输入您的查询方式:\n\n    1.按编号查询\n    2.按姓名查询\n");
scanf("%d",&n);
switch(n)
{case 1:
     printf("    请输入要查找职工的编号:\n");
scanf("%d",&a);
     if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
     return;}
     for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);
     if(a==worker[i].number)
{ printf("    编号       姓名    性别        学历      工资     地址            电话 \n ");
  printf("********************************************************************************\n");
printf("  %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);
fclose(fp);}}break;
 case 2:
     printf("请输入要查找职工的姓名:\n");
     scanf("%s",name);
     if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
     return;}
     for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);
if(strcmp(worker[i].name,name)==0)
{
printf("    编号       姓名    性别        学历      工资     地址            电话 \n ");
    printf("********************************************************************************\n");
printf("  %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);
fclose(fp);}}break;
     fclose(fp);break;
 default:printf("您输入的指令有误!\n");
}
}


void change()
{FILE*fp;


 int n,i;
printf("  请浏览职工信息表,然后输入需要修改信息职工的编号\n\n");
scan(); 
printf("  请输入需要修改信息职工的编号\n");
scanf("%d",&n);
 if((fp=fopen("D:\\worker.dat", "r+"))==NULL)
{printf("cannot open file\n");
     return;}
     for(i=0;i<SIZE;i++)
{
fread(&worker[i],sizeof(struct worker_type),1,fp);
if(n==worker[i].number)
break;
}
fseek(fp,-sizeof(worker_type),SEEK_CUR); 
printf("请输入修改后的信息:\n");
         printf("\n请输入职工的姓名:");
scanf("%s",worker[i].name);
printf("\n请输入职工的编号:");
scanf("%d",&worker[i].number);
printf("\n请输入职工的学历:");
scanf("%s",worker[i].xueli);
printf("\n请输入职工的工资:");
scanf("%d",&worker[i].wage);
printf("\n请输入职工的性别:");
getchar();
scanf("%c",&worker[i].sex);
printf("\n请输入职工的地址:");
scanf("%s",worker[i].address);
printf("\n请输入职工的电话:");
scanf("%s",worker[i].phone_num);
fwrite(&worker[i],sizeof(struct worker_type),1,fp);
fclose(fp);
}


void delate()
{FILE *fp;
int i,a,j;
printf("    请输入要删除信息职工的编号\n");
scanf("%d",&a);
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
     return;}
     for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);}
fclose(fp);


for(i=0;i<SIZE;i++)
if(a==worker[i].number)break;
{
  for(j=i;j<SIZE;j++)
  {strcpy(worker[j].name,worker[j+1].name);
   worker[j].number=worker[j+1].number;
   strcpy(worker[j].xueli,worker[j+1].xueli);
   worker[j].wage=worker[j+1].wage;
   worker[j].sex=worker[j+1].sex;
   strcpy(worker[j].address,worker[j+1].address);
   strcpy(worker[j].phone_num,worker[j+1].phone_num);}
}


if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}
fclose(fp);


if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}


for(i=0;i<SIZE-1;i++)
if(fwrite(&worker[i],sizeof(struct worker_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);


}
  
     








void menu()
{ int n;
printf("             *************主菜单**************\n");
printf("             *        1、信息输入       *\n");
printf("             *        2、信息浏览            *\n");
printf("             *        3、信息查询            *\n");
printf("             *        4、信息修改            *\n");
printf("             *        5、信息删除            *\n");
printf("             *        6、退出系统            *\n");
printf("             *********************************\n");


scanf("%d",&n);
switch (n)
{case 1:  input(); break;
 case 2:  scan();  break;
 case 3:  find();  break;
 case 4:  change();break;
 case 5:  delate();break;
 case 6:  exit(0);  break;
 default:  printf("操作错误!");}


 printf("    返回主菜单请按1,结束操作请按0\n");
 scanf("%d",&n);
 switch(n)
 {case 1: menu();break;
  case 0: ;      break;
  default:printf("您输入的指令有误!\n");}
}






void main()
{printf("             *********************************\n");
 printf("               ******职工信息管理系统******\n");
 printf("             *********************************\n\n");
 menu();
}

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值