亮亮的职工管理系统加注释版
#include <stdio.h>
#include <string.h>
struct worker/*定义结构体存储职工信息*/
{
char num[10];/*职工号*/
char name[8];/*姓名*/
char sex[8];/*性别*/
char age[10];/*年龄*/
char xueli[12];/*学历*/
char zhiwu[12];/*职务*/
char gongzi[8];/*工资*/
char addr[10];/*住址*/
char tel[12];/*电话*/
};
struct worker input();
void display(struct worker b[],int count);
void search(struct worker b[],int count,char name[]);
void sort(struct worker b[],int count);
void del(struct worker b[],int count);/*声明被调用函数*/main()
{
int number;
int quit;
struct worker bo[50];
int count=0;
while(quit!=7)
{
printf(" ********欢迎使用职工信息管理系统********
");
printf("本系统的功能如下:
");
printf("1--职工信息录入
");
printf("2--职工信息浏览
");
printf("3--职工信息按工资排序
");
printf("4--职工信息查询(按职务)
");
printf("5--职工信息删除
");
printf("6--退出系统
");
printf("请选择功能(输入序号):");
scanf("%d",&number);/*判断功能*/
switch(number)
{
case 1:/*录入*/
{
char ch=’y’;
printf("请输入职工信息:
");
while((ch==’y’)||(ch==’Y’))
{
bo[count]=input();
count++;
scanf("%c",&ch);
fflush(stdin);
}break;
}
case 2: display(bo,count); break;/*浏览*/
case 3: /*工资排序*/
{
sort(bo,count);
printf("按工资排序后的职工信息如下:
");
display(bo,count);
break;
}
case 4: /*查询*/
{
char zhiwu[12];
printf("请输入职务:");
scanf("%s",&zhiwu);
fflush(stdin);
search(bo,count,zhiwu);
break;
}
case 5:/*删除*/
{
del(bo,count);
count--;
printf("删除后的职工信息如下:
");
display(bo,count);
break;
}
case 6: quit=6;printf(" ********退出系统,欢迎下次使用!********
");break;/*退出*/
default:printf("选择错误,请重新输入
");break;/*容错*/
}
fflush(stdin);
}
}struct worker input()/*录入信息*/
{
struct worker b;
printf("职工号:");
scanf("%s",&b.num);
fflush(stdin);
printf("姓名:");
scanf("%s",&b.name);
fflush(stdin);
printf("性别:");
scanf("%s",&b.sex);
fflush(stdin);
printf("年龄:");
scanf("%s",&b.age);
fflush(stdin);
printf("学历:");
scanf("%s",&b.xueli);
fflush(stdin);
printf("职务:");
scanf("%s",&b.zhiwu);
fflush(stdin);
printf("工资:");
scanf("%s",&b.gongzi);
fflush(stdin);
printf("住址:");
scanf("%s",&b.addr);
printf("电话:");
scanf("%s",&b.tel);
fflush(stdin);
return(b);
}void display(struct worker b[],int count)/*浏览*/
{
int i;
printf("
职工号 姓名 性别 年龄 学历 职务 工资 住址 电话
");
for(i=0;i{
printf("%s",b[i].num);
printf(" %s",b[i].name);
printf(" %s",b[i].sex);
printf(" %s",b[i].age);
printf(" %s",b[i].xueli);
printf(" %s",b[i].zhiwu);
printf(" %s",b[i].gongzi);
printf(" %s",b[i].addr);
printf(" %s",b[i].tel);
printf("
");
}
}
void search(struct worker b[],int count,char zhiwu[])/*查询*/
{
int i;
for(i=0;i{
if(strcmp(b[i].zhiwu,zhiwu)==0)
/*
strcmp函数
用法:#include
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1当s1=s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’ ’为止。
*/
{
printf("%s",b[i].num);
printf(" %s",b[i].name);
printf(" %s",b[i].sex);
printf(" %s",b[i].age);
printf(" %s",b[i].xueli);
printf(" %s",b[i].zhiwu);
printf(" %s",b[i].gongzi);
printf(" %s",b[i].addr);
printf(" %s",b[i].tel);
printf("
");
break;
}
}
if(i==count)
printf("查无此人!
");
printf("
");
}
void sort(struct worker b[],int count)/*排序,采用冒泡排序,稳定*/
{
struct worker t;
int i,j;
for(i=0;i{
for(j=0;j{
if(b[j].gongzi>b[j+1].gongzi)
{
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}
}
}
}
void del(struct worker b[],int count)/*删除*/
{
int i,j;
char num[10];
printf("请输入要删除职工的信息:");
scanf("%s",num);
for(i=0;iif(strcmp(b[i].num,num)==0)
break;
for(j=i;jb[j]=b[j+1];
}