求大佬帮忙看看修改一下,用C语言编一个职工档案管理系统

azcrazy 2018-06-28 07:43:14
#include<stdio.h>
struct staff
{
char name[8];
char sex[10];
char tel[15];
char num[10];
char bir[15];
char addr[50];
char dep[10];
char pos[10];
char money[10];
}worker;
char filename[20]={"123456"};
void *fp;
void creat();
void browse();
void search1();
void search2();
void append();
void modify();
void del();

void main()
{
int m;
a:
while(1)
{
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("***********************************************\n");
printf("选择功能(1-8):[ ]\b\b");
scanf("%d",&m);
if(m>=1&&m<=8&&m!=5)
{
switch(m)
{
case 1:
creat();
break;
case 2:
append();
break;
case 3:
search1();
break;
case 4:
search2();
break;
case 6:
del();
break;
case 7:
browse();
break;
}
printf("\n\n操作完毕,请再次选择!");
goto a;
}
if(m==5)
{
int i;
printf("请输入密码(初始密码为12450):");
scanf("%d",&i);
while(i!=12450)
{
printf("密码错误,你是主人大人吗?!?!:");
scanf("%d",&i);
}
printf("成功登入!");
printf("\n");
modify();
printf("\n\n操作完毕,请再次选择!");
}
else
printf("选择错误,请再次选择!");
}
}

void creat()
{
struct staff one;
if((fp=fopen(filename,"w"))==NULL)
{
printf("\n不能建立!");
}
fprintf(fp,"%-10s%-10s%-10s%-18s%-10s\n%-10s%-10s%-18s%-15s\n","姓名","工号","性别","出生年月","所在部门","职位","工资","电话号码","住址");
printf("\n请输入职工信息(以0结束)\n");
scanf("%s",one.num);
printf("姓名:\n");
scanf("%s",one.name);
while(strcmp(one.name,"0"))
{
printf("工号:\n");
scanf("%s",one.num);
printf("性别:\n");
scanf("%s",one.sex);
printf("出生年月:\n");
scanf("%s",one.bir);
printf("所在部门:\n");
scanf("%s",one.dep);
printf("职位:\n");
scanf("%s",one.pos);
printf("工资:\n");
scanf("%s",one.money);
printf("电话:\n");
scanf("%s",one.tel);
printf("住址:\n");
scanf("%s",one.addr);
fprintf(fp,"%-10s%-10s%-10s%-18s%-10s\n%-10s%-10s%-18s%-15s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
printf("姓名:\n");
scanf("%s",one.name);
}
fclose(fp);
}
void browse()
{
struct staff one;
if((fp=fopen(filename,"r"))==NULL)
{
printf("\n不能打开文件!");
}
printf("\n%20s\n","\t\t职工个人信息");
while(!feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
printf("%-10s%-10s%-10s%-20s%-10s\n%-10s%-10s%-20s%-15s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
}
fclose(fp);
}
void append()
{
struct staff one;

if((fp=fopen(filename,"a"))==NULL)
{
printf("\n不能打开该文件!");
}
printf("\n请输入要添加的职工信息,各项之间以回车隔开.\n(姓名 工号 性别 出生年月 所在部门 职位 工资 电话 地址)\n");/*向文件中输入数据*/
scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
fprintf(fp,"%-10s%-10s%-10s%-20s%-10s\n%-10s%-10s%-20s%-15s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
fclose(fp);
}
void search1()
{
int k=0;
char namekey[8];
struct staff one;

printf("\n请输入您要查找的职工姓名:");
scanf("%s",namekey);

if((fp=fopen(filename,"rb"))==NULL)
{
printf("\n不能打开文件!");
}
while(!feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
if(!strcmp(namekey,one.name))
{
printf("\n\n已查到,记录为:");
printf("\n%-10s%-10s%-10s%-20s%-10s\n%-10s%-10s%-20s%-15s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
k=1;
}
}
if(!k)
printf("\n\n对不起,查无此人!。");
fclose(fp);
}
void search2()
{
int k=0;
char numkey[8];
struct staff one;

printf("\n请输入您要查找的职工姓工号:");
scanf("%s",numkey);

if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/
{
printf("\n不能打开文件!");
}
while(!feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
if(!strcmp(numkey,one.num))
{
printf("\n\n已查到,记录为:");
printf("\n%-10s%-10s%-10s%-20s%-10s\n%-10s%-10s%-20s%-15s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
k=1;
}
}
if(!k)
printf("\n\n对不起,查无此人!。");
fclose(fp);
}
void modify()
{
int m,k=0;
long offset;
char namekey[8];
struct staff one;

printf("\n请输入您要修改的职工的姓名:");
scanf("%s",namekey);

if((fp=fopen(filename,"r+"))==NULL) /*打开文件*/
{
printf("\n不能打开该文件!");
}
while(!feof(fp))
{
offset=ftell(fp); /*查找信息*/
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
if(!strcmp(namekey,one.name))
{
k=1;
break;
}
}
if(k)
{
printf("\n已查到,记录为:");
printf("\n%-10s%-10s%-10s%-20s%-10s\n%-10s%-10s%-20s%-15s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
printf("\n请输入信息,各项之间以回车隔开.\n(姓名、工号、性别、出生年月、所在部门、职位、工资、电话、地址):\n");
scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
fseek(fp,offset,SEEK_SET);
printf("%ld",ftell(fp));
fprintf(fp,"%-10s%-10s%-10s%-20s%-10s\n%-10s%-10s%-20s%-15s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
}
else
printf("\n对不起,查无此人,无法进行修改。");
fclose(fp);
}
void del()
{
int m,k=0,flag;
long offset1,offset2;
char namekey[8], valid[4];
struct staff one;

printf("\n请输入您要删除的职工姓名:");
scanf("%s",namekey);
if((fp=fopen(filename,"r+"))==NULL)
{
printf("\n不能打开该文件!");
}
while(!feof(fp))
{
offset1=ftell(fp); /*查询文件中相关的信息*/
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
if(!strcmp(namekey,one.name))
{
k=1;
break;
}
}
if(k)
{
printf("\n已查到,记录为");
printf("\n%-10s%-10s%-10s%-20s%-10s\n%-10s%-10s%-20s%-15s\n",one.name,one.num,one.sex,one.bir,one.dep,one.pos,one.money,one.tel,one.addr);
printf("\n确实要删除,按1;不删除,按0:");
scanf("%d",&m);
if(m)
{
fseek(fp,offset1,SEEK_SET);
fprintf(fp,"%-10s%-10s%-10s%-20s%-10s\n%-10s%-10s%-20s%-15s\n","","","","","","","","","");
}
}
else
printf("\n对不起,查无此人。");
fclose(fp);
}
...全文
134 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧