#include<stdio.h>

#include<stdlib.h>

int workertotal=0;

struct WORKER

{

int num;

char name[50];

char sex[10];

char age[30];

char education[50];

char money[10];

char address[50];

char call[10];

}worker[100];

void add()

{

   int n,i;

   printf("请输入增加的职工数:");

   scanf("%d",&n);

   for(i=1;i<=n;i++){

   printf("\n职工号、姓名、性别、年龄、学历、工资、住址、电话\n");

   scanf("%d %s %s %s %s %s %s %s",&worker[i].num,&worker[i].name,&worker[i].sex,&worker[i].age,&worker[i].education,&worker[i].money,&worker[i].address,&worker[i].call);

   }

   workertotal+=n;

   

     }

void print()

{

int i;

printf("系统中所有的职工\n");

for(i=1;i<=workertotal;i++){

printf("%d %s %s %s %s %s %s %s",worker[i].num,worker[i].name,worker[i].sex,worker[i].age,worker[i].education,worker[i].money,worker[i].address,worker[i].call);

}

 

}

int searchworker()

{

char workername[50];

int i;

int total;

printf("按学历查询:");

printf("\n\n请输入学历:");

scanf("%s",&workername);

for(i=1;i<=workertotal;i++)

{

if(strcmp(worker[i].education,workername)==0)

{

printf("%d %s %s %s %s %s %s %s",worker[i].num,worker[i].name,worker[i].sex,worker[i].age,worker[i].education,worker[i].money,worker[i].address,worker[i].call);

 

total+=1;

}

}

if(total==0){

printf("没有查到\n");

 

}

return 1;

}

 

int searchworkerl()

{

int i,num;

int total;

printf("按职工号查询:");

printf("\n\n请输入职工号:");

scanf("%d",&num);

for(i=1;i<=workertotal;i++)

{

if(worker[i].num==num)

{

printf("%d %s %s %s %s %s %s %s",worker[i].num,worker[i].name,worker[i].sex,worker[i].age,worker[i].education,worker[i].money,worker[i].address,worker[i].call);

total+=1;

}

}

if(total==0){

printf("没有查到\n");

 

}

return 1;

}

void deleteworker()

{

int i,j;

printf("注销职工");

i=searchworker();

workertotal=workertotal-1;

 

if(i!=-1){

for(j=i;j<=workertotal;j++){

worker[j]=worker[j+1];

}

printf("该职工已注销.\n");

}

else printf("不存在职工.\n");

 }

 void modify()

 {

 int workerno,i;

printf("职工号查询:");

 printf("\n\n请输入职工号:");

 scanf("%d",&workerno);

 for(i=1;i<=workertotal;i++){

 if(worker[i].num==workerno)

 {

 printf("\n职工号、姓名、性别、年龄、学历、工资、住址、电话\n");

 scanf("%d %s %s %s %s %s %s %s",&worker[i].num,&worker[i].name,&worker[i].sex,&worker[i].age,&worker[i].education,&worker[i].money,&worker[i].address,&worker[i].call);

   }

 

 }

}

 

int main()

{

int flag=1;

while(flag){

printf("\t\n\n职工信息管理系统\n");

printf("\t\n 1.添加职工信息");

printf("\t\n 2.浏览所有职工信息");

printf("\t\n 3.按学历查询");

printf("\t\n 4.按职工号查询");

printf("\t\n 5.删除指定职工信息");

printf("\t\n 6.修改指定职工信息");

printf("\t\n 0.退出系统\n\n");

printf("请选择你的业务,用数字键操作:");

scanf("%d",&flag);

system("cls");

switch (flag){

case 1: add();break;

case 2:print();break;

case 3:searchworker();break;

case 4:searchworkerl();break;

case 5:deleteworker();break;

case 6:modify();break;

case 0:exit(0);

}

}

return 0;}

 

 

 

 

结果上来说要先有个整体框架和整体规划,系统所需要的功能和作用,要对你所要编写的系统列一个类似大纲东西,系统其实就是整合一个个的小的c语言程序,把他编程一个个小的函数进行应用,通过主函数的调用,发挥系统的作用;

如果一个系统中,例如学生信息管理系统中,需要同时保存一个学生的姓名,性别,年龄等信息,那么设置变量保存很多同学的这些信息就有点不太方便。类似一个登记本,每一页只能写名字,如果你要登记其他的信息,又要添加一个登记本,只能写性别,如果登记年龄,又要添加一个登记本,只能写年龄,….,多么的不方便,还容易混乱。解决的方法你一定想,多么简单,一个登记本一页中,同时写姓名,性别,年龄不就行了吗?C语言也是这样,如果定义一种形式,一个变量同时记录很多的信息,这样在管理系统中,就方便很多了。这就是结构体。

结构体首先要定义,因为每个程序用到的组合在一起的信息不一样,例如学生信息管理系统中,可能要将学号、姓名、性别、年龄、班级组合到一起,所以 第一行用struct告诉程序,下面是一个结构体,后面的stu是这个结构体的类型,类似整数用int表示,这个stu是你自己起的名字。

如果要设计一个职工管理系统,

首先要确定系统有哪些应用,像录入功能,调用功能,修改功能,删除功能,都需要具备

然后就是确定产品有哪些信息,像职工号、姓名、性别、年龄、学历、工资、住址、电话等

 

定义一个结构struct worker和数组num,用来存储姓名、工号、学历等信息,void add调用函数,用来调用职工信息。

void print是输出函数,输出系统中的职工。searchworker查询函数,按学历、姓名、性别等信息来查询职工信息。

void deleteworker是删除函数,删除职工信息。 void modify用于修改职工信息。case是开关语句,用于查询不同职工信息时使用。