c语言编程!职工信息管理系统,谁能帮我改改?我只有这些分数,都拿出来
发布网友
发布时间:2022-05-29 07:43
我来回答
共3个回答
热心网友
时间:2023-10-11 12:26
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct one /*定义一个结构体*/
{
char nam[50];
int num;
char sex[50];
int age;
char career[50];
char marry[50];
char department[50];
char position[50];
char wages[50];
int worktime;
long telephone;
char address[50];
}one[50];
struct one tmp;
void add();
void search();
void change();
void del();
void output();
void sort();
void TitlePrint();
void ContentPrint( struct one p );
void Input( struct one &p );
int main() /*主函数*/
{
int m,r,count=0;
char ctmp;
printf("\n|------------------------------------------------------|\n",ctmp);
printf("\n|^_^*********^_^欢迎进入员工信息管理系统^_^*********^_^|\n");
printf("\n|------------------------------------------------------|\n");
for( count=0;count<3;count++ )
{
printf("请输入进入系统的通行密码(4位):");
scanf("%d",&r);
if( r!=1234 ) continue;
}
ctmp=' ';
if( count=4 )
{
printf("错误次数达到最大,按任意键退出!\n");
system("pause");
exit(-1);
}
count = 25;
while(1)
{
printf("%25c-----------------------------\n",ctmp);
printf("%25c|添加员工记录,请按1 |\n",ctmp);
printf("%25c|查找员工信息,请按2 |\n",ctmp);
printf("%25c|修改员工信息,请按3 |\n",ctmp);
printf("%25c|删除员工信息,请按4 |\n",ctmp);
printf("%25c|输出显示员工信息,请按5 |\n",ctmp);
printf("%25c|对员工信息进行排序,请按6 |\n",ctmp);
printf("%25c|退出,请按0 |\n",ctmp); /*输出提示信息*/
printf("%25c-----------------------------\n",ctmp);
printf("请选择:");
scanf("%d",&m);
system("cls");
switch(m)
{
case 1: add();break;
case 2: search();break;
case 3: change();break;
case 4: del(); break;
case 5: output();break;
case 6: sort();break;
case 0: exit(-1);
default: printf("\n\n选择错误,请重选");
system("pause");
}
}
return 0;
}
void TitlePrint()
{
printf("%-6s%-6s%-6s%-6s%-6s%-6s%-6s%-6s%-6s%-6s%-6s%-6s\n","姓名","工号","性别",
"年龄","学历","婚姻状况","部门","职位","工资","工龄","电话","地址");
}
void ContentPrint( struct one p )
{
printf("%s %d %s %d %s %s %s %s %s %d %d %s\n",p.nam,p.num,p.sex,
p.age,p.career,p.marry,p.department,p.position,p.wages,p.worktime,p.telephone,p.address);
}
void Input( struct one &p )
{
printf("请输入员工的姓名:");
scanf("%s",p.nam);
printf("请输入员工的工号:");
scanf("%d",&p.num);
printf("请输入员工的性别:");
scanf("%s",p.sex);
printf("请输入员工的年龄:");
scanf("%d",&p.age);
printf("请输入员工的学历:");
scanf("%s",p.career);
printf("请输入员工的婚姻状况:");
scanf("%s",p.marry);
printf("请输入员工的部门:");
scanf("%s",p.department);
printf("请输入员工的职位:");
scanf("%s",p.position);
printf("请输入员工的工资:");
scanf("%s",p.wages);
printf("请输入员工的工龄:");
scanf("%d",&p.worktime);
printf("请输入员工的电话:");
scanf("%ld",&p.telephone);
printf("请输入员工的地址");
scanf("%s",p.address);
}
void add()
{
FILE *fp;
int i=0;
fp=fopen("information.txt","ab+");
Input( tmp );
fwrite(&tmp,sizeof(struct one),1,fp);
fclose(fp);
printf("输入完毕,任意键返回\n");
}
void search() /*查询函数*/
{
FILE *fp;
char namekey[50];
int flag=0,i;
fp=fopen("information.txt","rb");
printf("\n请输入要查找的职工姓名:");
scanf("%s",namekey);
for(i=0;fread(&one[i],sizeof(struct one),1,fp)!=0;i++)
{
if(strcmp(namekey,one[i].nam)==0)
{
flag=1;
TitlePrint();
ContentPrint(one[i]);
}
}
if(flag==0)printf("无此人\n");
fclose(fp);
}
void change() /*修改函数*/
{
FILE *fp;
char name[10];
int i,flag=0,n,choice;
fp = fopen("information.txt","rb");
for( n=0; !feof(fp);n++ ) fread(&one[n],sizeof(struct one),1,fp) ;//先读取本地文件内容
fclose(fp);
fp = fopen("information.txt","w");
printf("请你输入要修改的员工的名字\n");
scanf("%s",name);
for( int i=0;i<=n;i++ )
{
if(strcmp(one[i].nam,name)==0)
{
flag = 1;
printf("你所要修改的员工的资料如下,请选择你要修改的内容\n");
TitlePrint();
ContentPrint(one[i]);
printf("请选择对应序号(从左往右依次为1,2,3,...):\n");
scanf("%d",&choice);getchar();
switch( choice )
{
case 1:
printf("请输入员工的新姓名:");
scanf("%s",one[i].nam);
break;
case 2:
printf("请输入员工的新工号:");
scanf("%d",&one[i].num);
break;
case 3:
printf("请输入员工的新性别:");
scanf("%s",one[i].sex);
break;
case 4:
printf("请输入员工的新年龄:");
scanf("%d",&one[i].age);
break;
case 5:
printf("请输入员工的新学历:");
scanf("%s",one[i].career);
break;
case 6:
printf("请输入员工的婚姻新状况:");
scanf("%s",one[i].marry);
break;
case 7:
printf("请输入员工的新部门:");
scanf("%s",one[i].department);
break;
case 8:
printf("请输入员工的新职位:");
scanf("%s",one[i].position);
break;
case 9:
printf("请输入员工的新工资:");
scanf("%s",one[i].wages);
case 10:
printf("请输入员工的新工龄:");
scanf("%d",&one[i].worktime);
break;
case 11:
printf("请输入员工的新电话:");
scanf("%ld",&one[i].telephone);
break;
case 12:
printf("请输入员工的新地址");
scanf("%s",one[i].address);
break;
default:
printf("输入有误,修改失败,请重试!\n");
}
}
fwrite(&one[i],sizeof(struct one),1,fp);
}
fclose(fp);
if( flag==0 ) printf("没找到,请检查操作是否正确!\n");
}
void output() /*输出函数*/
{
FILE *fp;
int i;
fp=fopen("information.txt","rb");
TitlePrint();
for(i=0;fread(&one[i],sizeof(struct one),1,fp)!=0;i++)
ContentPrint( one[i] );
if( i==0 ) printf("本地没有数据!\n");
fclose(fp);
}
void del()
{
FILE *fp;
int num,position=-1,i,n;
char choice;
printf("如果你输入的员工号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");
printf("请输入你要删除的员工号:");
scanf("%d",&num);
if( (fp=fopen("information.txt","r"))==NULL )
{
printf("文件操作失败!");
return;
}
for( n=0;!feof(fp);n++ )
{
fread(&one[n],sizeof(struct one),1,fp);//先读取本地文件内容
if( one[n].num==num ) position=n;
}
fclose(fp);
printf("是否真的要删除该人?删除后该人的所有信息将无法恢复《Y/N》\n");
scanf("%s",&choice);
if(choice=='y'||choice=='Y')
{
fp = fopen("information.txt","wb");
for( i=0;i<n;i++ )
if( i!=position ) fwrite(&one[i],sizeof(struct one),1,fp);
fclose(fp);
}
}
void sort() //冒泡排序
{
FILE *fp;
int temp,flag,n;
struct one tmp;
fp=fopen("information.txt","rb");
for( n=0; !feof(fp);n++ ) !fread(&one[n],sizeof(struct one),1,fp); //先读取本地文件内容
fclose(fp);
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if( one[i].num>one[j].num )
{
tmp = one[i];
one[i] = one[j];
one[j] = tmp;
}
fp=fopen("information.txt","wb");
for( int i=0;i<=n;i++ ) fwrite(&one[i],sizeof(struct one),1,fp);
fclose(fp);
}
热心网友
时间:2023-10-11 12:26
可以通过Bai Hi告诉我们
有机会可能完成你所面临的任务
具体的要求也可能告诉我们
ES:\\A0FA28591AE1FF3D9B58CD8531661899
交易提醒:预付定金是诈骗
热心网友
时间:2023-10-11 12:27
3月16号我应该有时间,可以帮你看看!你发我邮箱吧:532305721@qq.com