#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是开关语句,用于查询不同职工信息时使用。