员工管理系统(完整版)

转载请注明出处:http://blog.csdn.net/u012860063

#include <stdio.h>
#include <windows.h>
#include <string.h>
struct worker
{
	int num;
	char name[20];
	char zhicheng[10];
	int wages;
	int reward;
	long birth;
	int salary;
}
work[500],work1;
void menu();
void type_in();
void baocun(int);
void scan();
void del();
void search();
void search_zhicheng();
void search_name();
void search_num();
void change();
void order();
void add();
void order_wages();
void order_name();
void order_num();
void menu()
{
    printf("\n");
    printf("                                welcome to                                 \n");
    printf("                             职工信息管理系统                                   ");
    printf("******************************************************************************\n");
    printf("           1.录入职工信息\n");
    printf("           2.浏览职工信息\n");
    printf("           3.查询职工信息\n");
    printf("           4.删除职工信息\n");
    printf("           5.改动职工信息\n");
    printf("           6.职工信息排序\n");
    printf("           7.加入职工信息\n");
    printf("           8.退出\n");
    printf("*******************************************************************************\n");
    printf("\n");
}
void main()
{
	int n,f;
	while(1)
	{
		do   {
			menu();
			printf("请输入你须要操作的序号(1—8):\n");
			scanf("%d",&n);
			if(n>=1&&n<=8)
			{
				f=1;
				break;
			}
			else
			{
				f=0;
				printf("您输入有误,请又一次选择!");
			}
		}
		while(f==0);
		switch(n)
		{
		case 1:printf("               录入职工信息\n");
			printf("\n");
			type_in();
			break;
		case 2:printf("               浏览职工信息\n");
			printf("\n");system("cls");
			scan();
			break;
		case 3:printf("               查询职工信息\n");
			printf("\n");
			system("cls");
			search();
			break;
		case 4:printf("               删除职工信息\n");
			printf("\n");
			system("cls");
			del();
			break;
		case 5:printf("               改动职工信息\n");
			printf("\n");
			system("cls");
			change();
			break;
		case 6:printf("               职工信息排序\n");
			printf("\n");
			system("cls");
			order();
			break;
		case 7:printf("               加入职工信息\n");
			printf("\n");
			system("sls");
			add();
			break;
		case 8:goto loop;
		default :break;
		}
	}
loop:
	system("cls");
	printf("\n\n\n\n\n\n----------谢谢使用!

---------\n\n\n\n\n\n");
}
void type_in()
{
	int i,m;
	printf("请输入须要创建信息的职工人数(1--500):\n");
	scanf("%d",&m);
	for (i=0;i<m;i++)
	{
		printf("请输入职工号: ");
		scanf("%d",&work[i].num);
		printf("\n");
		printf("请输入姓名:  ");
		scanf("%s",work[i].name);
		getchar();
		printf("请输入职称:  ");
		scanf("%s",&work[i].zhicheng);
		printf("请输入基本工资:  ");
		scanf("%d",&work[i].wages);
		printf("请输入奖金:  ");
		scanf("%d",&work[i].reward);
		printf("请输入生日(格式如19900101):  ");
		scanf("%d",&work[i].birth);
		work[i].salary=work[i].wages + work[i].reward;
		getchar();system("cls");
		printf("\n一个职工的信息档案创建完成!

请输入下一个职工的信息\n");
		printf("\n");
	}
	baocun(m);
}
void baocun(int m)
{
	int i;
	FILE *fp;
	if ((fp=fopen("E:\\worker_list.txt","wb"))==NULL)
	{
		printf ("此文件不能打开\n");
		exit(0);
	}
	for (i=0;i<m;i++)
		if (fwrite(&work[i],sizeof(struct worker),1,fp)!=1)
			printf("file write error\n");
		fclose(fp);
}
int load()
{
	FILE*fp;
	int i=0;
	if((fp=fopen("E:\\worker_list.txt","rb"))==NULL)
	{
		printf ("cannot open file\n");
		exit(0);
	}
	else
	{
		do    {
			fread(&work[i],sizeof(struct worker),1,fp);
			i++;
		}
		while(feof(fp)==0);
	}
	fclose(fp);
	return(i-1);
}
void scan()
{
	int i;
	int m=load();
	printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
	for(i=0;i<m;i++)
		printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);
	printf("按随意键继续\n");
	getchar();
	getchar();
	system("cls");
}
void del()
{
	int m=load();
	int i,j,n,t,f;
	char name1[10];
	printf("\n 原来的职工信息:\n");
	scan();
	printf("\n");
	printf("请输入要删除的职工的姓名:\n");
	scanf("%s",name1);
	for(f=1,i=0;f&&i<m;i++)
	{
		if(strcmp(work[i].name,name1)==0)
		{
			printf("\n已找到此人。原始记录为:\n");
			printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
			printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);                                          printf("\n确实要删除此人信息请按1,不删除请按0\n");    scanf("%d",&n);
			if(n==1)
			{
				for(j=i;j<m-1;j++)
				{
					work[j]=work[j+1];
				}
				f=0;
			}
		}
	}
	if(!f) m=m-1;
	else
		printf("\n对不起,查无此人!\n");
	printf("\n 浏览删除后的全部职工信息:\n");
	baocun(m);
	scan();
	printf("\n继续删除请按1。不再删除请按0\n");
	scanf("%d",&t);
	switch(t) {
	case 1:del();break;
	case 0:break;
	default :break;
	}
	system("cls");
}
void search()
{
	int t,f;
	do
	{
		printf("\n按姓名查询请按1  按职称查询请按2  按职工号查询请按3  进入主函数按4\n");
		scanf("%d",&t);
		if(t>=1&&t<=4)
		{
			f=1; break;
		}
		else
		{
			f=0;
			printf("您输入有误,请又一次选择!");
		}
	}
	while(f==0);
	system("cls");
	while(f==1)
	{
		switch(t)
		{
		case 1:printf("按姓名查询\n");
			search_name();break;
		case 2:printf("按职称查询\n");
			search_zhicheng();break;
		case 3:printf("按职工号查询\n");
			search_num();break;
		case 4:main();break;
		default:break;
		}
		system("cls");
	}
}
void search_name()
{
	char name1[10];
	int i,t;
	int m=load();
	printf("请输入要查找的姓名:\n");
	scanf("%s",name1);
	for(i=0;i<m;i++)
		if(strcmp(name1,work[i].name)==0)
		{
			printf("\n已找到此人,其记录为:\n");
			printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
			printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);
			break;
		}
		if(i==m)
			printf("\n对不起,查无此人\n");
		printf("\n");
		printf("返回查询函数请按1,继续查询职工号请按2\n");
		scanf("%d",&t);
		switch(t)
		{
		case 1:search();break;
		case 2: break;
		default:break;
		}
}
void search_zhicheng()
{
	char zhicheng1[10];
	int i,t;
	int m=load();
	printf("请输入要查找的职称:\n");
	scanf("%s",zhicheng1);
	for(i=0;i<m;i++)
		if(strcmp(zhicheng1,work[i].zhicheng)==0)
		{
			printf("\n已找到此人。其记录为:\n");
			printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
			printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);
			break;
		}
		if(i==m)
			printf("\n对不起,查无此人\n");
		printf("\n");
		printf("返回查询函数请按1,继续查询职工号请按2\n");
		scanf("%d",&t);
		switch(t)
		{
		case 1:search();break;
		case 2: break;
		default:break;
		}
}
void search_num()
{
	int num;
	int i,t;
	int m=load();
	printf("请输入要查找的职工号:\n");
	scanf("%d",&num);
	for(i=0;i<m;i++)
		if(num==work[i].num)
		{
			printf("\n已找到此人,其记录为:\n");
			printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
			printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);
			break;
		}
		if(i==m)
			printf("\n对不起,查无此人\n");
		printf("\n");
		printf("返回查询函数请按1,继续查询职工号请按2\n");
		scanf("%d",&t);
		switch(t)
		{
		case 1:search();break;
		case 2: break;
		default:break;
		}
}
void change()
{
	int num;
	char name[20];
	char zhicheng[10];
	int wages;
	int reward;
	int birth;
	int salary;
	int b,c,i,n,t,f;
	int m=load();
	printf("\n 原来的职工信息:\n");
	scan();
	printf("\n");
	printf("请输入要改动的职工的姓名:\n");
	scanf("%s",name);
	for(f=1,i=0;f&&i<m;i++)
	{
		if(strcmp(work[i].name,name)==0)
		{
			printf("\n已找到此人,原始记录为:\n");
			printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
			printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[i].num,work[i].name,   work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);
			printf("\n确实要改动此人信息请按1  不改动请按0\n");
			scanf("%d",&n);
			if(n==1)
			{
				printf("\n须要进行改动的选项\n 1.职工号 2.姓名 3.职称 4.基本工资 5.奖金  6.生日 7.实际工资\n");
				printf("请输入你想改动的那一项序号:\n");
				scanf("%d",&c);
				if(c>7||c<1)
					printf("\n选择错误。请又一次选择!\n");
			}
			f=0;
		}
	}
	if(f==1)
		printf("\n对不起,查无此人!\n");
	do
	{
		switch(c)
		{
		case 1:printf("职工号改为: ");
			scanf("%d",&num);
			work[i-1].num=num;
			break;
		case 2:printf("姓名改为: ");
			scanf("%s",name);
			strcpy(work[i-1].name,name);
			break;
		case 3:printf("职称改为");
			scanf("%s",zhicheng);
			strcpy(work[i-1].zhicheng,zhicheng);
			break;
		case 4:printf("基本工资改为: ");
			scanf("%d",&wages);
			work[i-1].wages=wages;
			break;
		case 5:printf("奖金改为: ");
			scanf("%d",&reward);
			work[i-1].reward=reward;
			break;
		case 6:printf("生日改为: ");
			scanf("%ld",&birth);
			work[i-1].birth=birth;
			break;
		case 7:printf("实际工资改为: ");
			scanf("%d",&salary);
			work[i-1].salary=salary;
			break;
		}
		printf("\n");
		printf("\n是否确定所改动的信息?

\n 是 请按1  \n不,又一次改动 请按2:  \n");
		scanf("%d",&b);
	}
	while(b==2);
	printf("\n浏览改动后的全部职工信息:\n");
	printf("\n");
	baocun(m);
	scan();
	printf("\n继续改动请按1。不再改动请按0\n");
	scanf("%d",&t);
	switch(t)
	{
	case 1:change();break;
	case 0:break;
	default :break;
	}
	system("cls");
}
void order()
{
	int k,f;
	do
	{
		printf("\n按姓名排序请按1  按基本工资排序请按2 按职工号排序请按3 进入主函数按4\n");
		scanf("%d",&k);
		if(k>=1&&k<=4)
		{
			f=1;break;
		}
		else
		{
			f=0;
			printf("您输入有误,请又一次选择!");
		}
	}
	while(f==0);system("cls");
	while(f==1)
	{
		switch(k)
		{
		case 1:printf("\n按姓名排序为(字母由小到大排列):\n");
			order_name();break;
		case 2:printf("\n按基本工资排序为(由高到低排列):\n");
			order_wages();break;
		case 3:printf("\n按职工号排序为(由小到大排列):\n");
			order_num();break;
		case 4:system("cls"); main();break;
		default:break;
		}
		system("cls");
	}
}
void order_name()
{
	int i,j,k;
	int m=load();
	for(i=0;i<m-1;i++)
		for(j=0;j<m-1-i;j++)
			if(strcmp(work[j].name,work[j+1].name)>0)
			{
				work1=work[j];work[j]=work[j+1];work[j+1]=work1;
			}
			baocun(m);
			printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
			for(j=0;j<m;j++)
				printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[j].num,work[j].name,   work[j].zhicheng,work[j].wages,work[j].reward,work[j].salary,work[j].birth);
			printf("返回排序函数请按1,返回主菜单请按2\n");
			scanf("%d",&k);
			switch(k)
			{
			case 1:order();break;
			case 2:system("cls");main();break;
			default:break;
			}
			system("cls");
}
void order_wages()
{
	int i,k,j;
	int m=load();
	for(i=0;i<m-1;i++)
		for(j=0;j<m-1-i;j++)
			if(work[j].wages<work[j+1].wages)
			{
				work1=work[j];work[j]=work[j+1];work[j+1]=work1;
			}
			baocun(m);
			printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
			for(j=0;j<m;j++)
				printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[j].num,work[j].name,   work[j].zhicheng,work[j].wages,work[j].reward,work[j].salary,work[j].birth);
			printf("返回排序函数请按1,返回主菜单请按2\n");
			scanf("%d",&k);
			switch(k)
			{
			case 1:order();break;
			case 2:system("cls"); main();break;
			default:break;
			}
			system("cls");
}
void order_num()
{
	int i,j,k;
	int m=load();
	for(i=0;i<m-1;i++)
		for(j=0;j<m-1-i;j++)
			if(work[j].num<work[j+1].num)
			{
				work1=work[j];work[j]=work[j+1];work[j+1]=work1;
			}
			baocun(m);
			printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日             \n");
			for(j=0;j<m;j++)
				printf("\n %d\t%s\t  %s\t  %d    \t%d\t %d\t      %ld\n",work[j].num,work[j].name,   work[j].zhicheng,work[j].wages,work[j].reward,work[j].salary,work[j].birth);
			printf("返回排序函数请按1,返回主菜单请按2\n");
			scanf("%d",&k);
			switch(k)
			{
			case 1:order();break;
			case 2:system("cls"); main();break;
			default:break;
			}
			system("cls");
}
void add()
{
	int n=load();
	int i,m;
	printf("请输入须要加入信息的职工人数\n");
	scanf("%d",&m);
	for (i=n;i<m+n;i++)
	{
		printf("请输入职工号: ");
		scanf("%d",&work[i].num);
		printf("\n");
		printf("请输入姓名:  ");
		scanf("%s",work[i].name);
		printf("请输入职称:  ");
		scanf("%s",&work[i].zhicheng);
		printf("请输入基本工资:  ");
		scanf("%d",&work[i].wages);
		printf("请输入奖金:  ");
		scanf("%d",&work[i].reward);
		printf("请输入生日(格式如19900101):  ");
		scanf("%d",&work[i].birth);
		getchar();
		system("cls");
		printf("\n一个职工的信息档案加入完成!请输入下一个职工的信息\n");
		work[i].salary=work[i].wages + work[i].reward;   printf("\n");
	}
	baocun(m+n);
	system("cls");
	printf("加入职工档案完成。

\n这时库存信息为:\n");
	scan();
}
时间: 2024-10-13 11:21:40

员工管理系统(完整版)的相关文章

7天撸完KTV点歌系统,含后台管理系统(完整版)

博客园好丑啊,请看掘金文章 7天撸完KTV点歌系统,含后台管理系统(完整版) 最近手有点痒琢磨着做个啥,朝思暮想还是写个KTV点歌系统,模拟了一下KTV开户的思路,7天累死我了,不过技术点还挺多的,希望你可以看完(?^?^)? 用Node(Express)教你写KTV点歌系统,包括前台内容和后台管理系统,整合Express框架和Mongodb数据库服务器开发:教你用Vue.JS,ElementUI和iViewUI写出超漂亮的页面,随心点歌随心听 1 作者原创文章, 转载前请留言或联系作者!!!

计算机组成原理_第四版课后习题答案(完整版)

计算机组成原理_第四版课后习题答案(完整版) ?第一章 1.?比较数字计算机和模拟计算机的特点. 解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的: 数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行. 两者主要区别见P1?表1.1. 2.?数字计算机如何分类?分类的依据是什么? 解:分类: 数字计算机分为专用计算机和通用计算机.通用计算机又分为巨型机.大型机. 中型机.小型机.微型机和单片机六类. 分类依据:专用和通用是根据计算机的效率.速度.价格.运行的经济性和适应性来划

java--css+js做的树形菜单(完整版)

jsp页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":"

基于SSM实现的简易员工管理系统(网站上线篇)

经历无数苦难,好不容易,网站终于上线了.=.=内牛满面ing.chengmingwei.top就是本员工管理系统的主页啦.是的,很简陋,但是毕竟是第一次嘛,所以慢慢来嘛. 如上次所说的(网站简介,见:http://www.cnblogs.com/mingwei-cheng/p/7458269.html),作为一个员工管理系统嘛,还是需要一个登录页面的,所以数据库又加了一张admin表,程序又多了一个login.jsp页面. 主要介绍一下,服务器和域名的配置吧. 这次的网站发布,对服务器发布网站的

常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》

常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop data

Linux学习总结(1)——Linux命令大全完整版

Linux命令大全完整版 目    录I 1. linux系统管理命令1 adduser1 chfn(change finger information)1 chsh(change shell)1 date2 exit3 finger4 free5 fwhois5 gitps(gnu interactive tools process status)5 groupdel(group delete)6 groupmod(group modify)6 halt7 id7 kill8 last8 la

学习响应式设计(Learning Responsive Web Design)完整版PDF

想要为平板.手机.笔记本.大屏幕设备,甚至可穿戴设备提供最优的用户体验?那就学习响应式设计吧.这是一本内容特别全面.讲解非常透彻的入门书.特别地,通过这本书不仅能迅速掌握响应式Web设计的基本原理,还能够从头到尾了解响应式设计的工作流程:从项目启动开始,到项目最终上线为止. 只要你的工作与创建.改造或者升级网站有关系,都应该看看这本书.换句话说,不仅是前端开发人员,设计师.产品经理.项目经理,甚至后端开发人员也可以通过本书掌握响应式设计的精髓所在.这本书基于响应式设计的前沿技术和社区经验写成,汇

关于Unity2018最新杏彩合买源码新增腾讯分分彩完整版带手机端新版ECS框架

关于Unity2018最新杏彩合买源码新增腾讯分分彩完整版带手机端新版ECS框架杏彩源码下载Q212303635 论坛:aqiulian.com先说说和它一同推出的,和ECS没直接关系的新特性:NativeArray<T>按照官方的说法,以后还会有NativeList,NativeHashMap,NativeQueue之类(这些在C#端就能实现). NativeArray内部只能容纳值对象.而且在创建的时候除了指定length外,还需要指定allocator模式: Temp(临时)TempJo

office2016 软件全集 官方下载免费完整版(含破解文件)不含垃圾软件 win10完美激活

office2016官方下载免费完整版是新一代办公软件,office2016官方下载免费完整版已经分享到下面,office2016官方下载免费完整版包括了Word.Excel.PowerPoint.OneNote.Outlook.Skype.Project.Visio以及Publisher等组件和服务.下面分享:office2016软件的下载.安装及激活. 本文来自互联网,按原教程安装结果中招了,因含有垃圾软件,所以决定改写,以免你懂的... 注册文件下载中含有垃圾软件,请按下面的步骤操作会跳过

Hadoop实战视频教程完整版 完整的Hadoop大数据视频教程

分享一套迪伦老师的完整的Hadoop实战视频教程,教程从学习Hadoop需要的数据库.Java和Linux基础讲起,非常适合零基础的学员,课程最后结合了实战项目演练,理论结合实战,深入浅出,绝对是当前最为完整.实战的Hadoop教程. <Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点.十大目标)> 课程讲师:迪伦 课程分类:大数据 适合人群:初级 课时数量:230课时 用到技术:部署Hadoop集群 涉及项目:京东商城.百度.阿里巴巴 咨询QQ:1337192913(小公子)