{
system("clear");
printf("\t********************欢迎您使用Happy公司管理系统*********************\n");
printf("\t\t*******************当前信息为***********************\n");
printf("\t\t|| ||\n");
STLINKNODE *p=head.next;
while(p!=NULL)
{
printf("\t\t 姓名 性别 年龄 部门 当月薪水 密码\n" );
printf("\t\t|| ||\n");
printf("\t\t %-10s %-8s %-6d %-10s %-7d %-7d\n",p->stmaninfo.name,
p->stmaninfo.sex,
p->stmaninfo.age,
p->stmaninfo.department,
p->stmaninfo.salary,
p->stmaninfo.Pass);
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
p=p->next;
}
printf("\t请按任意键继续......\n");
printf("\t");
getchar();
while(getchar()!='\n');
sleep(1);
return 0;
}
int change()//修改员工信息
{
char name1[max],sex1[max],department1[max];
int select,age1,salary1,Pass1;
STMANINFO stmaninfo;
system("clear");
printf("\t*********************欢迎您使用Happy公司管理系统*********************\n");
printf("\t\t*************您现在位于修改员工界面******************\n");
printf("\t\t|| ||\n");
char Name[max];
STLINKNODE *p=head.next;
printf("\t\t 请您输入要修改的姓名:");
scanf("%s",Name);
printf("\t\t|| ||\n");
printf("\t\t 您要修改的信息为:\n");
printf("\t\t|| ||\n");
while(p!=NULL)
{
if(strcmp(p->stmaninfo.name,Name)==0)
{
printf("\t\t 姓名 性别 年龄 部门 当月薪水 密码\n" );
printf("\t\t|| ||\n");
printf("\t\t %-10s %-8s %-6d %-10s %-7d %-7d\n",p->stmaninfo.name,
p->stmaninfo.sex,
p->stmaninfo.age,
p->stmaninfo.department,
p->stmaninfo.salary,
p->stmaninfo.Pass);
system("clear");
printf("\t*********************欢迎您使用Happy公司管理系统*********************\n");
printf("\t\t*************您现在位于修改员工界面******************\n");
printf("\t\t|| ||\n");
printf("\t\t 请您选择要修改的该员工的信息:\n");
printf("\t\t|| ||\n");
printf("\t\t\t1.姓名\n");
printf("\t\t|| ||\n");
printf("\t\t\t2.性别\n");
printf("\t\t|| ||\n");
printf("\t\t\t3.年龄\n");
printf("\t\t|| ||\n");
printf("\t\t\t4.部门\n");
printf("\t\t|| ||\n");
printf("\t\t\t5.当月薪水\n");
printf("\t\t|| ||\n");
printf("\t\t\t5.密码\n");
printf("\t\t|| ||\n");
printf("\t\t***************************************************\n");
printf("\n请选择要修改员工的信息:");
scanf("%d",&select);
switch(select)
{
case 1:
printf("\n请输入新的姓名:");
scanf("%s",name1);
strcpy(p->stmaninfo.name,name1);
break;
case 2:
printf("\n请输入新的性别:");
scanf("%s",p->stmaninfo.sex);
break;
case 3:
printf("\n请输入新的年龄:");
scanf("%d",&p->stmaninfo.age);
break;
case 4:
printf("\n请输入新的部门:");
scanf("%s",p->stmaninfo.department);
break;
case 5:
printf("\n请输入新的当月薪水:");
scanf("%d",&p->stmaninfo.salary);
break;
case 6:
printf("\n请输入新的密码:");
scanf("%d",&p->stmaninfo.Pass);
break;
}
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
printf("\t请按任意键继续......\n");
printf("\t");
while(getchar()!='\n');
getchar();
}
p=p->next;
}
if(select==0)
while(getchar()=='\n');
coverlink();
return;
}
int del()//删除
{
STMANINFO stmaninfo;
system("clear");
printf("\t*********************您现在位于删除员工界面*********************\n");
printf("\t\t*************请输入要删除员工的姓名******************\n");
printf("\t\t|| ||\n");
int x;
char Name[64];
STLINKNODE *p=&head;
printf("\t\t 请您输入删除的姓名:");
scanf("%s",Name);
printf("\t\t|| ||\n");
printf("\t\t 下面是您要删除的信息:\n");
printf("\t\t 姓名 性别 年龄 部门 当月薪水 密码\n" );
printf("\t\t|| ||\n");
printf("\t\t %-10s %-8s %-7d %-9s %-7d %-7d\n",p->next->stmaninfo.name,
p->next->stmaninfo.sex,
p->next->stmaninfo.age,
p->next->stmaninfo.department,
p->next->stmaninfo.salary,
p->next->stmaninfo.Pass);
printf("\t\t|| ||\n");
printf("\t\t***************************************************\n");
int ichoice;
printf("\t\t您真的需要删除吗?(0:不删除,1:删除)\n\t");
scanf("%d",&ichoice);
switch(ichoice)
{
case 0:
break;
case 1:
while(p->next!=NULL)
{
if(strcmp(p->next->stmaninfo.name,Name)==0)
{
STLINKNODE *q=p->next;
p->next=p->next->next;
free(q);
q=NULL;
break;
}
p=p->next;
}
coverlink();
break;
default:
printf("您的输入有误,请您重新输入:");
printf("\t请按任意键继续......\n");
printf("\t");
while(getchar()!='\n');
getchar();
break;
}
/*STLINKNODE *p=&head;
p->next=p->next->next;
free(q);
q=NULL;
*/
return 0;
}
/*int dele()
{
STMANINFO stmaninfo;
char Name[64];
STLINKNODE *p=&head;
STLINKNODE *q=p->next;
while(p->next!=NULL)
{
if(strcmp(p->next->stmaninfo.name,Name)==0)
{
p->next=p->next->next;
free(q);
q=NULL;
}
}
return 0;
}
*/
int search()//查询
{
system("clear");
printf("\t********************欢迎您使用Happy公司管理系统*********************\n");
printf("\t\t***************您现在位于查询界面*******************\n");
printf("\t\t|| ||\n");
char Name[64];
STLINKNODE *p=head.next;
printf("\t\t 请您要查询的姓名:");
scanf("%s",Name);
printf("\t\t|| ||\n");
printf("\t\t 您要查询的信息为:\n");
printf("\t\t|| ||\n");
while(p!=NULL)
{
if(strcmp(p->stmaninfo.name,Name)==0)
{
printf("\t\t 姓名 性别 年龄 部门 当月薪水 密码\n" );
printf("\t\t|| ||\n");
printf("\t\t %-10s %-8s %-7d %-9s %-7d %-7d\n",p->stmaninfo.name,
p->stmaninfo.sex,
p->stmaninfo.age,
p->stmaninfo.department,
p->stmaninfo.salary ,
p->stmaninfo.Pass);
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
printf("\t请按任意键继续......\n");
printf("\t");
getchar();
while(getchar()!='\n');
}
p=p->next;
}
return 0;
}
data.h代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 64
typedef struct _STMANINFO
{
char name[max];
char sex[max];
int age;
char department[max];
int salary;
int Pass;
}STMANINFO;
typedef struct _STLINKNODE
{
struct _STMANINFO stmaninfo;
struct _STLINKNODE *next;
}STLINKNODE;
STLINKNODE head;
int addman();
int coverlink();
int del();
int search();
int change();
int dele();
==============================================================================================================================
logic层。。。由于只是简单的,过滤不合法数据的这部分没有写
logic.c 代码
#include"logic.h"
logic.h代码
#include "data.h"
===============================================================================================================================
读写文件的部分
oprfile.c
#include"oprfile.h"
int write()//将链表写到文件中
{
FILE *fp;
STLINKNODE *p=head.next;
fp=fopen("FILE.txt","w+");
while(p!=NULL)
{
fwrite(p,sizeof(p->stmaninfo),1,fp);
p=p->next;
}
fclose(fp);
fp=NULL;
return 0;
}
int read()//读取文件中信息
{
FILE *fp;
STLINKNODE *p=head.next;
fp=fopen("FILE.txt","r+");
while(p!=NULL)
{
fread(p,sizeof(p->stmaninfo),1,fp);
while(!feof(fp))//feof()这个函数是用来判断指针是否已经到达文件尾部的。
{
fread(p,sizeof(p->stmaninfo),1,fp);
printf("\t********************欢迎您使用Happy公司管理系统*********************\n");
printf("\t\t*********************当前信息为*********************\n");
printf("\t\t|| ||\n");
printf("\t\t 姓名 性别 年龄 部门 当月薪水 密码\n" );
printf("\t\t|| ||\n");
printf("\t\t %-10s %-8s %-6d %-10s %-7d %-7d\n",p->stmaninfo.name,
p->stmaninfo.sex,
p->stmaninfo.age,
p->stmaninfo.department,
p->stmaninfo.salary,
p->stmaninfo.Pass);
}
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
}
printf("\t\t|| ||\n");
printf("\t\t***************************************************\n");
fclose(fp);
fp=NULL;
return 0;
}
oprfile.h代码
#include"data.h"
int write();
int read();
==============================================================================================================================