parent
d38baf0083
commit
7536a7f1bc
Binary file not shown.
@ -0,0 +1,303 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
struct worker//定义结构体
|
||||
{
|
||||
long int num;
|
||||
char name[10];
|
||||
int age;
|
||||
char sex[4];
|
||||
char b[30];
|
||||
char p[15];
|
||||
};
|
||||
int n=0;
|
||||
struct worker stu[100];
|
||||
struct worker *p;
|
||||
void lr();
|
||||
void ll();
|
||||
void cx();
|
||||
void xg();
|
||||
void sc();
|
||||
void cd();
|
||||
void save();
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
int x;
|
||||
printf("\n\t\t\t--------------------------------\n");
|
||||
printf("\t\t\t 欢迎使用职工管理系统\n");
|
||||
printf("\t\t\t 1:进入主菜单 \n");
|
||||
printf("\t\t\t 2:退出程序 \n");
|
||||
printf("\t\t\t 按数字键选择要执行的操作: \n");
|
||||
printf("\t\t\t--------------------------------\n");
|
||||
scanf("%d",&x);
|
||||
printf("\n");
|
||||
if(x==1)
|
||||
cd();
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
void cd()//主菜单函数
|
||||
{
|
||||
int z;
|
||||
do
|
||||
{
|
||||
printf("\n\t\t\t--------------------------------\n");
|
||||
printf("\t\t\t\t 主菜单 \n");
|
||||
printf("\t\t\t--------------------------------\n");
|
||||
printf("\t\t\t [1]----录入职工信息 \n");
|
||||
printf("\t\t\t [2]----浏览职工信息 \n");
|
||||
printf("\t\t\t [3]----查询职工信息 \n");
|
||||
printf("\t\t\t [4]----删除职工信息 \n");
|
||||
printf("\t\t\t [5]----修改职工信息 \n");
|
||||
printf("\t\t\t [0]----退出系统 \n");
|
||||
printf("\t\t\t--------------------------------\n");
|
||||
printf("请输入您的选择:");
|
||||
scanf("%d", &z);
|
||||
switch(z)
|
||||
{
|
||||
case 0 : break;
|
||||
case 1 :lr();break;
|
||||
case 2 :ll();break;
|
||||
case 3 :cx();break;
|
||||
case 4 :sc();break;
|
||||
case 5 :xg();break;
|
||||
default:printf("\n无效选项!");
|
||||
}
|
||||
}
|
||||
while(z!= 0);
|
||||
}
|
||||
void lr()/*录入函数*/
|
||||
{
|
||||
int y,s;
|
||||
if(n==0)
|
||||
p=stu;
|
||||
do
|
||||
{
|
||||
printf("--------------------\n");
|
||||
printf("请输入职工的职工号:");
|
||||
scanf("%ld",&p->num);
|
||||
printf("请输入职工的姓名:");
|
||||
scanf("%s",p->name);
|
||||
printf("请输入职工的年龄:");
|
||||
scanf("%d",&p->age);
|
||||
printf("请输入职工的性别:");
|
||||
scanf("%s",p->sex);
|
||||
printf("请输入职工的地址:");
|
||||
scanf("%s",p->b);
|
||||
printf("请输入职工的电话:");
|
||||
scanf("%s",p->p);
|
||||
n++;
|
||||
p++;
|
||||
printf("\n1.继续输入.\n0.输入完毕.\n");
|
||||
printf("请选择:");
|
||||
scanf("%d",&y);
|
||||
}
|
||||
while(y==1);
|
||||
printf("提示:输入完毕!你一共输入%d个\n",n);
|
||||
save();
|
||||
return;
|
||||
|
||||
}
|
||||
void save() /*建立保存文件函数*/
|
||||
{
|
||||
FILE *fp; /*定义文件型指针*/
|
||||
int i;
|
||||
if((fp=fopen("student.txt","w+"))==NULL) /*打开文件进行读写追加*/
|
||||
{
|
||||
printf("不能打开文件!\n");
|
||||
return; /*终止程序*/
|
||||
}
|
||||
for(i=0;i<n;i++) /*向student文件中写入信息*/
|
||||
if(fwrite(&stu[i],sizeof(struct worker),1,fp)!=1)
|
||||
printf("文件写入错误\n");
|
||||
fclose(fp); /*关闭文件*/
|
||||
printf("\n\n\n\n\t\t\t职工信息保存成功!\n");
|
||||
cd();
|
||||
}
|
||||
int load() /*导入函数*/
|
||||
{
|
||||
FILE*fp;
|
||||
int i=0;
|
||||
if((fp=fopen("student.txt","r+"))==NULL)//打开文本进行读写
|
||||
{
|
||||
printf ("cannot open file\n");
|
||||
exit(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
fread(&stu[i],sizeof(struct worker),1,fp);
|
||||
i++;
|
||||
}
|
||||
while(feof(fp)==0);
|
||||
}
|
||||
fclose(fp);
|
||||
return(i-1);
|
||||
}
|
||||
void ll()/*浏览函数*/
|
||||
{
|
||||
int i;
|
||||
int n=load();
|
||||
if(n!=0)
|
||||
{ printf("职工总数:%d\n", n);
|
||||
printf("职工号\t姓名\t年龄\t性别\t地址\t\t电话\n");
|
||||
printf("-----------------------------------------------------\n");
|
||||
for(i=0;i<n;i++)
|
||||
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
|
||||
}
|
||||
else printf("提示:无职工数据,请输入数据!");
|
||||
|
||||
}
|
||||
void cx()/*查询函数*/
|
||||
{
|
||||
int c;
|
||||
int n=load();
|
||||
int w,i,j=0;
|
||||
char name[20];
|
||||
if(n!=0)
|
||||
{
|
||||
do{ printf("\n");
|
||||
printf("+--------------------+\n");
|
||||
printf("| 按职工号查询 请按 1 |\n");
|
||||
printf("| 按姓名查询 请按 2 |\n");
|
||||
printf("| 取消 请按 0 |\n");
|
||||
printf("+--------------------+\n");
|
||||
printf("请输入您的选择:");
|
||||
scanf("%d", &c);
|
||||
switch(c)
|
||||
{
|
||||
case 0:break;
|
||||
case 1:
|
||||
printf("请输入职工的职工号;");
|
||||
scanf("%ld", &w);
|
||||
printf("\n");
|
||||
for(i=0;i<n;i++)
|
||||
if(stu[i].num==w)
|
||||
{
|
||||
printf("\n职工号\t姓名\t年龄\t性别\t地址\t\t电话\n");
|
||||
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
|
||||
j=1;
|
||||
}
|
||||
if(j==0)
|
||||
printf("提示:没有该职工记录,请核对!");
|
||||
break;
|
||||
case 2:
|
||||
printf("请输入职工的姓名:");
|
||||
scanf("%s", name);
|
||||
printf("\n");
|
||||
for(i=0;i<n;i++)
|
||||
if(strcmp(name,stu[i].name)==0)
|
||||
{
|
||||
printf("\n职工号\t姓名\t年龄\t性别\t地址\t\t电话\n");
|
||||
j=1;
|
||||
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
|
||||
}
|
||||
if(j==0)
|
||||
printf("提示:没有该职工记录,请核对!");
|
||||
break;
|
||||
default:
|
||||
printf("\n提示:无效选项!");
|
||||
break;
|
||||
}
|
||||
}while(c!= 0);
|
||||
}else printf("提示:无职工数据,请输入数据!");
|
||||
return;
|
||||
|
||||
}
|
||||
void xg()/*修改函数*/
|
||||
{
|
||||
int n=load();
|
||||
long int num;
|
||||
int i,j,c;
|
||||
if(n!=0)
|
||||
{
|
||||
printf("请输入您要修改的职工的职工号:");
|
||||
scanf("%ld", &num);
|
||||
printf("\n");
|
||||
for(i=0;i<n;i++)
|
||||
if(stu[i].num==num)
|
||||
j=i;
|
||||
do{
|
||||
printf("请选择您要修改的职工的信息内容:\n");
|
||||
printf("+----------------------+\n");
|
||||
printf("| 姓名 请按 1 |\n");
|
||||
printf("| 年龄 请按 2 |\n");
|
||||
printf("| 性别 请按 3 |\n");
|
||||
printf("| 职工号 请按 4 |\n");
|
||||
printf("| 地址 请按 5 |\n");
|
||||
printf("| 电话 请按 6 |\n");
|
||||
printf("| 取消 请按 0 |\n");
|
||||
printf("+----------------------+\n");
|
||||
printf("请输入您的选择:");
|
||||
scanf("%d", &c);
|
||||
printf("\n");
|
||||
switch(c)
|
||||
{
|
||||
case 0:break;
|
||||
case 1:printf("请输入新姓名:");
|
||||
scanf("%s",stu[j].name);
|
||||
break;
|
||||
case 2:printf("请输入新年龄:");
|
||||
scanf("%d",&stu[j].age);
|
||||
break;
|
||||
case 3:printf("请输入新性别:");
|
||||
scanf("%s",stu[j].sex);
|
||||
break;
|
||||
case 4:printf("请输入新职工号:");
|
||||
scanf("%ld",&stu[j].num);
|
||||
break;
|
||||
case 5:printf("请输入新地址:");
|
||||
scanf("%s",stu[j].b);
|
||||
break;
|
||||
case 6:printf("请输入新电话:");
|
||||
scanf("%s",stu[j].p);
|
||||
break;
|
||||
default:
|
||||
printf("\n无效选项!");
|
||||
break;
|
||||
}
|
||||
}while(c!= 0);
|
||||
}else printf("提示:无职工数据,请输入数据!");
|
||||
save();
|
||||
return;
|
||||
}
|
||||
void sc()/*删除函数*/
|
||||
{
|
||||
|
||||
long int num;
|
||||
int i,j,e;
|
||||
if(n!=0)
|
||||
{
|
||||
printf("职工号\t姓名\t年龄\t性别\t地址\t\t电话\n");
|
||||
printf("-----------------------------------------------------\n");
|
||||
for(i=0;i<n;i++)
|
||||
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
|
||||
printf("请输入您要删除的职工的职工号:");
|
||||
scanf("%ld", &num);
|
||||
printf("\n");
|
||||
for(i=0;i<n;i++)
|
||||
if(num==stu[i].num)
|
||||
j=i;
|
||||
if(j!=(n-1))
|
||||
{
|
||||
for(e=i-1;e<n;e++,j++)
|
||||
{
|
||||
stu[j].num=stu[j+1].num;
|
||||
strcpy(stu[j].name,stu[j+1].name);
|
||||
strcpy(stu[j].sex,stu[j+1].sex);
|
||||
stu[j].age=stu[j+1].age;
|
||||
strcpy(stu[j].b,stu[j+1].b);
|
||||
strcpy(stu[j].p,stu[j+1].p);
|
||||
n--;p--;
|
||||
}
|
||||
}else {n--;p--;}
|
||||
printf("提示:删除完毕!");
|
||||
}else printf("提示:无职工数据,请输入数据!");
|
||||
save();
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in new issue