大学生c++实训之职工管理系统设计

大学生c++实训之职工管理系统设计

大家好,我是码农七哥,每到到期末身边学习计算机有好多小伙伴都为c++实训头疼,作为一位刚刚入门的小白,斗胆在这里想跟大家分享一下我的源代码,希望那里不足的地方,大佬多多指教。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>

struct worker   //结构体
{
   
	char num[20];//工号
	char name[20];//姓名
	char sex[3];//性别
	char age[3];//年龄
	char salary[6];//工资
	char xueli[6]; //学历
	char add[20]; //家庭地址
	char call[15];//电话号
}w[100];

void vsa();//录入功能
void vsb();//增加功能
void Delete();//删除功能
void vsd();//姓名搜索
void vse();//工号搜索
void change();//修改功能
void vsg();//排序功能
void save(int current);//保存功能
int load();//写入功能
void serach();//搜索功能
void menu();//菜单功能
void vsk();//统计功能

void main()  //主函数
{
   	menu();}

int load()  //导入函数
{
   
	FILE*fp;
	int i=0;
	if((fp=fopen("worker_list.txt","rb"))==NULL)  //打开输出文件  
	{
   
		printf("cannot open file\n");  //如果打开时出错,就输出打不开信息
		exit(0);    //终止程序
	}

	else{
   
		do{
   
			fread(&w[i],sizeof(struct worker),1,fp); //fread从指定文件中读取数据块
			i++;
		}while(!feof(fp)); //feof若到函数末尾,函数值为真,
	}
	fclose(fp); //fclose 关闭文件
	return(i-1);
}
void save(int current)  //保存函数
{
   
	int i;
	FILE*fp;
	if((fp=fopen("worker_list.txt","wb"))==NULL)
	{
   
		printf("cannot open file\n");
		exit(0);
	}

	for(i=0;i<current;i++)
		if(fwrite(&w[i],sizeof(struct worker),1,fp)!=1)
			printf("file write error\n");
		fclose(fp);
}
void vsg()  //排序函数
{
   
	int i,j,t,a;
	char c;
	struct worker wor;
    int current=load();
	printf("请选择查看方式:\n");
	printf("1.按年龄查看。\n");
	printf("2.按工资查看。\n");
	printf("\n");
	printf("\n");
	scanf("%d",&a);
	while(a==1)
	{
   
		system("cls");
printf ("工号    姓名    性别   年龄   工资    学历   住址         电话\n");
		for(i=0;i<current;i++)
		{
   
			t=i;
			for(j=i+1;j<current;j++)
			{
   
				if(strcmp(w[t].age,w[j].age)<0)   //选择法年龄排序
				{
   wor=w[t];
				w[t]=w[j];
				w[j]=wor;
				}
			};
        printf ("%2s%10s%7s%8s%8s%5s%8s%20s\n",w[i].num ,w[i].name ,w[i].sex ,w[i].age ,w[i].salary ,w[i].xueli ,w[i].add,w[i].call );
			};

    printf("是否继续?(y or n)\n"); 
    scanf("%s",&c);                 
    if(c='n')                  
	{
     system("cls");menu();};   //是否继续执行
	
}
	while(a==2)
	{
   
		system("cls");
	printf ("工号    姓名    性别   年龄   工资    学历   住址         电话\n");
	    for(i=0;i<current;i++)
		{
   
			t=i;
			for(j=i+1;j<current;j++)
			{
   
				if(strcmp(w[t].salary,w[j].salary)<0)    //选择法薪水排序
				{
   wor=w[t];
				w[t]=w[j];
				w[j]=wor;
				}
			};	
printf ("%2s%10s%7s%8s%8s%5s%8s%20s\n",w[i].num ,w[i].name ,w[i].sex ,w[i].age ,w[i].salary ,w[i].xueli ,w[i].add,w[i].call );
			}
    printf("是否继续?(y or n)\n");
    scanf("%s",&c);
    if(c='n')
	{
     system("cls");menu();};  //是否继续执行

}
	while(a!=1&&a!=2)    //不输入指定数字将会出现错误
	{
   
		system("cls");
		printf("*****输入错误,请重新选择***********\n");
		printf("\n");
		scanf("%d",&a);
	};
}

void serach()   //查看函数
	{
   
		int t,flag;
		do{
   
			printf("\n1.按工号查询;2.按姓名查询;\n");
			scanf("%d",&t);
			if(t>=1&&t<=2)
			{
   
				flag=1;
				break;
			}
			else{
   
				flag=0;
				printf("你输入有误,请重新选择!");
			}
		}while(flag==0);
		while(flag==1){
   
			switch(t){
   
			case 1:vse();break;
			case 2:vsd();break;
			default:break;
			};
		}
	}

void vsd()   //姓名搜索
	{
   
		char name[20];
		char c;
		int i;
		int current
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值