c语言管理系统编程急!

# include & ltstdio.h & gt

# include & ltwindows.h & gt

# include & lttime.h & gt

# include & ltstring.h & gt

#定义编号100

结构员工

{

int num

字符名称[10];

查尔志成;

int吉本;

int江津;

int宝仙;

int zafei

int《史记》;

} em[100];/*定义一个结构*/

void menu();

void输入();

void save(int);

void显示();

void del();

void search();

void search _ zhi cheng();

void搜索名称();

void modify();/*定义每个函数*/

Void menu() /*菜单功能*/

{

printf(" \ n ");

printf(" Netmeter 091 Group 7 \ n ");

printf(" \ n ");

Printf ("* * * * * * * * * * * *员工信息管理* * * * * * * * * * * * * * * * \ n ");

Printf(" 1。输入员工信息”);

Printf(" 2。浏览员工信息\ n ");

Printf(" 3。查询员工信息”);

Printf(" 4。删除员工信息\ n ");

Printf(" 5。修改员工信息\ n ");

Printf(" 6。退出\ n ");

printf(" * * * * * * * * * * * * * * * *感谢您使用* * * * * * * * * * * * \ n ");

printf(" \ n ");

printf(" \ n ");

}

void main()

{

int n,flag

char a;

while(1)

{

{

menu();/*调用菜单功能*/

Printf("请选择您需要操作的步骤(1-6):\ n ");

scanf("%d ",& ampn);

如果(n & gt=1。& ampn & lt=6)

{

flag = 1;

打破;

}

其他

{

flag = 0;

Printf("您输入错误,请重新选择!");

}

} while(flag = = 0);

开关(n)

{

Case 1:printf("输入员工信息\ n ");printf(" \ n ");input();打破;

案例二:printf("浏览员工信息\ n ");printf(" \ n ");系统(“cls”);显示();打破;

案例三:printf("按员工编号查询员工信息\ n ");printf(" \ n ");系统(“cls”);search();打破;

案例四:printf("删除员工信息\ n ");printf(" \ n ");系统(“cls”);del();打破;

案例五:printf("修改员工信息\ n ");printf(" \ n ");系统(“cls”);modify();打破;

案例六:goto la

默认:break

}

}

洛杉矶:

系统(“cls”);

printf(" \ n \ n \ n \ n \ n感谢您的使用!\ n ");

}

Void input() /*输入函数*/

{

int i,m;

Printf("请输入需要创建信息的员工人数(1-100):\ n ");

scanf("%d ",& ampm);

for(I = 0;我& ltm;i++)

{

Printf("请输入员工编号:");

scanf("%d ",& ampem[i]。num);//这里代码不对,应该用数组下标。

printf(" \ n ");

Printf("请输入您的姓名:");

scanf("%s ",em[i]。姓名);//这里代码不对,应该用数组下标。

getchar();

Printf("请输入标题:");

scanf("%c ",& ampem[i]。志诚);//这里代码不对,应该用数组下标。

Printf("请输入基本工资:");

scanf("%d ",& ampem[i]。吉本);//这里代码不对,应该用数组下标。

Printf("请输入奖金:");

scanf("%d ",& ampem[i]。江津);//这里代码不对,应该用数组下标。

Printf("请输入保险:");

scanf("%d ",& ampem[i]。宝贤);//这里代码不对,应该用数组下标。

Printf("请输入杂费:");

scanf("%d ",& ampem[i]。zafei);//这里代码不对,应该用数组下标。

em[i]。shiji=em[i]。jiben + em[i]。江津- em[i]。宝贤- em[i]。扎非;//这里代码不对,应该用数组下标。

printf(" \ n ");

}

printf(" \ n已创建!\ n ");系统(“cls”);

保存(m);

}

Void save(int m) /*保存文件函数*/

{

int I;

FILE * fp

If ((FP = fopen ("employee _ list "," WB ")= = null)/*创建一个文件,判断是否可以打开*/

{

printf("无法打开文件\ n ");

退出(0);

}

for(I = 0;我& ltm;I++) /*将内存中的员工信息输出到磁盘文件*/

if(fwrite(& amp;em,sizeof(结构雇员),1,fp)!=1)

printf("文件写入错误\ n ");

fclose(FP);

}

Int load() /*导入函数*/

{

FILE * fp

int I = 0;

if((fp=fopen("employee_list "," Rb ")= = NULL)

{

printf("无法打开文件\ n ");

退出(0);

}

其他

{

{

弗雷德(& ampem,sizeof(struct employee),1,FP);

i++;

}

while(feof(FP)= = 0);

}

fclose(FP);

返回(I-1);

}

Void display() /*浏览函数*/

{

int I;

int m = load();

printf(" \ n员工编号\ t姓名\ t职务\ t基本工资\ t责任\ t保险\ t其他费用\ t实际工资\ n ");

for(I = 0;我& ltm;I++) /*m是输入部分的员工数*/

printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ",em[i]。num,em[i]。姓名,em[i]。志成,em[i]。吉本,em[i]。江津,em[i]。宝贤,em[i]。zafei,em[i]。《史记》);//这里代码不对,应该用数组下标。

Printf("按任意键继续\ n ");

getchar();getchar();系统(“cls”);

}

Void del() /*删除函数*/

{

int m = load();

int i,j,n,t,flag

char name 1[10];

printf(" \ n原始员工信息:\ n ");

显示();/*调用浏览函数*/

printf(" \ n ");

Printf("请输入要删除的员工姓名:\ n ");

scanf("%s ",name 1);

for(flag=1,I = 0;旗帜& amp& amp我& ltm;i++)

{

if(strcmp(em[i].name,name1)==0)

{

printf(" \ n此人已找到,原始记录为:\ n ");

printf(" \ n员工编号\ t姓名\ t职务\ t基本工资\ t责任\ t保险\ t其他费用\ t实际工资\ n ");

printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ",em[i]。num,em[i]。姓名,em[i]。志成,em[i]。吉本,em[i]。江津,em[i]。宝贤,em[i]。zafei,em[i]。《史记》);

printf(" \ n按1删除此人信息,或按0\n "不删除);

scanf("%d ",& ampn);

If(n==1) /*如果删除,所有其他信息将上移一行*/

{

for(j = I;j & ltm-1;j++)

{

em[j]= em[j+1];

}

flag = 0;

}

}

}

如果(!旗帜)

m = m-1;

其他

printf(" \ n抱歉,没有这个人!\ n ");

printf(" \ n浏览所有删除的员工信息:\ n ");

保存(m);/*调用保存函数*/

显示();/*调用浏览函数*/

printf(" \ n按1继续删除,按0停止删除\ n ");

scanf("%d ",& ampt);

开关(t)

{

案例1:del();打破;

案例0:破;

默认:break

}系统(“cls”);

}

Void search()/*查询函数*/

{

int t,flag

{

printf(" \ n请按1按名称查询;按职称查询请按2;按3\n”进入主功能);

scanf("%d ",& ampt);

if(t & gt;=1。& ampt & lt=3)

{

flag = 1;

打破;

}

其他

{

flag = 0;

Printf("您输入错误,请重新选择!");

}

} while(flag = = 0);系统(“cls”);

while(flag==1)

{

开关(t)

{

Case 1:printf("按名称查询\ n ");搜索名称();打破;

案例二:printf("按标题查询\ n ");search _ zhi cheng();打破;

案例三:main();打破;

默认:break

}

系统(“cls”);

}

}

void search_name()

{

char name 1[10];

int i,t;

int m = load();

Printf("请输入要查找的名称:\ n ");

scanf("%s ",name 1);

for(I = 0;我& ltm;i++)

if(strcmp(name1,em[i].name)==0)

{

printf(" \ n已找到此人,其记录为:\ n ");

printf(" \ n员工编号\ t姓名\ t职务\ t基本工资\ t责任\ t保险\ t其他费用\ t实际工资\ n ");

printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ",em[i]。num,em[i]。姓名,em[i]。志成,em[i]。吉本,em[i]。江津,em[i]。宝贤,em[i]。zafei,em[i]。《史记》);

打破;

}

如果(i==m)

printf(" \ n抱歉,没有找到此人\ n ");

printf(" \ n ");

Printf("按1返回查询功能,按2\n "继续查询员工号);

scanf("%d ",& ampt);

开关(t)

{

案例1:search();打破;

案例二:破;

默认:break

}

}

void搜索_志诚()

{

查尔志成;

int i,t = 0;

int m = load();

系统(“cls”);

Printf("请输入您要查找的标题:\ n ");

scanf("%c ",& amp志诚);//使用此处的地址。

for(I = 0;我& ltm;i++)

if(em[i]。志成= =志成)

{

printf(" \ n找到记录:\ n ");

printf(" \ n员工编号\ t姓名\ t职务\ t基本工资\ t责任\ t保险\ t其他费用\ t实际工资\ n ");

printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ",em[i]。num,em[i]。姓名,em[i]。志成,em[i]。吉本,em[i]。江津,em[i]。宝贤,em[i]。zafei,em[i]。《史记》);

}

如果(i==m)

printf(" \ n抱歉,没有找到此人\ n ");

printf(" \ n ");

Printf("按1返回查询功能,按2\n "继续学历查询);

scanf("%d ",& ampt);

开关(t)

{

案例1:系统(" cls ");search();打破;

案例二:破;

默认:break

}

}

Void modify() /*修改函数*/

{

int num

字符名称[10];

查尔志成;

int吉本;

int江津;

int宝仙;

int zafei

int《史记》;

int b,c,I,n,t,flag

int m = load();/*导入文件中的信息*/

printf(" \ n原始员工信息:\ n ");

显示();/*调用浏览函数*/

printf(" \ n ");

Printf("请输入要修改的员工姓名:\ n ");

scanf("%s ",名称);

for(flag=1,I = 0;旗帜& amp& amp我& ltm;i++)

{

if(strcmp(em[i].name,name)==0)

{

printf(" \ n此人已找到,原始记录为:\ n ");

printf(" \ n员工编号\ t姓名\ t职务\ t基本\ t责任\ t保险\ t杂项费用\ t实际工资\ n ");

printf(" \ n % d \ t % s \ t % c \ t % d \ t % d \ t % d \ t % d \ t % d \ n ",em[i]。num,em[i]。姓名,em[i]。志成,em[i]。吉本,em[i]。江津,em[i]。宝贤,em[i]。zafei,em[i]。《史记》);

printf(" \ n请按1修改此人的信息;按0\n”)不加修改;

scanf("%d ",& ampn);

如果(n==1)

{

printf(" \ n要修改的选项\n 1。员工2号。名字3。标题4。基本工资5。奖金6。保险7。杂项开支。实际工资\ n ");

Printf("请输入您要修改的序列号:\ n ");

scanf("%d ",& ampc);

if(c & gt;8 | | c & lt1)

printf(" \ n选择错误,请重新选择!\ n ");

}

flag = 0;

}

}

if(flag==1)

printf(" \ n抱歉,没有这个人!\ n ");

{

Switch(c) /*因为在找到第I个雇员的时候,我在for语句后面加了1,所以下面要改。

信息分配给i-1个人*/

{

案例1:printf("员工号更改为");

scanf("%d ",& ampnum);

em[i-1]。num = num

打破;

案例二:printf(“名称改为”);

scanf("%s ",名称);

strcpy(em[i-1])。姓名、名称);

打破;

案例三:printf(“标题改为”);

getchar();

scanf("%c ",& amp志诚);

em[i-1]。志成=志成;

打破;

案例四:printf(“底薪改为”);

scanf("%d ",& amp吉本);

em[i-1]。吉本=吉本;

打破;

案例五:printf("奖金改为");

scanf("%d ",& amp江津);//使用此处的地址。

em[i-1]。江津=江津;

打破;

案例6:printf(“保险改为”);

scanf("%d ",& amp宝贤);//使用此处的地址。

打破;

案例7:printf("杂费改为");

scanf("%d ",& ampzafei);//使用此处的地址。

em[i-1]。zafei = zafei

打破;

案例8:printf("实际工资改为");

scanf("%d ",& amp《史记》);

em[i-1]。史记=史记;

打破;

}

printf(" \ n ");

printf(" \ n您确定要修改信息吗?\是的,请按1;否,请按2再次修改:\ n”);

scanf("%d ",& ampb);

}

while(b = = 2);

printf(" \ n浏览所有修改后的员工信息:\ n ");

printf(" \ n ");

保存(m);

显示();

printf(" \ n按1继续修改,按0\n "停止修改);

scanf("%d ",& ampt);

开关(t)

{

案例1:modify();打破;

案例0:破;

默认:break

}系统(“cls”);

}