员工管理系统(完整版)

摘要:
---------“);}void type_in(){inti,m;printf;scanf;for{printf;scanf;printf(”“);printf,scanf;getchar();printf;scanf宝春;}void baochun{int i;FILE*fp;if{printf;exit;}forif(fwrite(&work[i],sizeof(structworker),1,fp)!

转载请注明出处: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("
");
    printf("                                welcome to                                 
");
    printf("                             职工信息管理系统                                   "); 
    printf("******************************************************************************
"); 
    printf("           1.录入职工信息
"); 
    printf("           2.浏览职工信息
");
    printf("           3.查询职工信息
"); 
    printf("           4.删除职工信息
");  
    printf("           5.改动职工信息
");
    printf("           6.职工信息排序
");
    printf("           7.加入职工信息
"); 
    printf("           8.退出
"); 
    printf("*******************************************************************************
"); 
    printf("
"); 
} 
void main()
{ 
	int n,f;
	while(1)
	{
		do   {        
			menu();
			printf("请输入你须要操作的序号(1—8):
"); 
			scanf("%d",&n);   
			if(n>=1&&n<=8)        
			{
				f=1;      
				break; 
			} 
			else
			{ 
				f=0;
				printf("您输入有误,请又一次选择!");
			}
		}
		while(f==0);     
		switch(n)  
		{ 
		case 1:printf("               录入职工信息
");
			printf("
");
			type_in();
			break;       
		case 2:printf("               浏览职工信息
");
			printf("
");system("cls");
			scan();
			break;  
		case 3:printf("               查询职工信息
");
			printf("
");
			system("cls");
			search();
			break;       
		case 4:printf("               删除职工信息
");
			printf("
");
			system("cls");
			del();
			break; 
		case 5:printf("               改动职工信息
");
			printf("
");
			system("cls");
			change();
			break;
		case 6:printf("               职工信息排序
");
			printf("
");
			system("cls");
			order();
			break; 
		case 7:printf("               加入职工信息
");
			printf("
");
			system("sls");
			add();
			break;
		case 8:goto loop;     
		default :break;
		}
	} 
loop:
	system("cls"); 
	printf("





----------谢谢使用!

--------- "); } void type_in() { int i,m; printf("请输入须要创建信息的职工人数(1--500): "); scanf("%d",&m); for (i=0;i<m;i++) { printf("请输入职工号: "); scanf("%d",&work[i].num); printf(" "); 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(" 一个职工的信息档案创建完成!

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

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

这时库存信息为: "); scan(); }




免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇博客园自定义背景图片原生JS实现九宫格拼图下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

扫雷思想及主函数

1.建雷盘(9*9雷盘) 2.初始化雷盘,雷盘1每个位置初始化为字符0,雷盘2每个位置初始化为字符*。 3.为了检验,输出我们初始化好的雷盘。 4.向棋盘放雷,这块我们可以以雷数设计难度。摆雷是以随机数放入的,下面会附上代码,详见代码 5.扫雷。 详细说明一下扫雷的思想: 5.1.先定义int win = 0(用来判断结束的条件)当我们向控制台输入坐标后,...

scanf函数的使用

函数原型编辑 1 intscanf( constchar*format, ... ); scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。 其调用格式为: scanf("<格式化字符串>",<地址表>); 函数 scanf() 是从标准输入流 stdio 中读内容的通用子程序,可以读入全部固...

2.1 Linux中wait、system 分析

wait与waitpid: 当子进程退出的时候,内核会向父进程发送SIGCHID信号,子进程的退出是一个异步事件(子进程可以在父进程运行的任何时刻终止)。 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态。 父进程查询子进程的退出状态可以用wait/waitpid函数。 当我们用f...

智能指针处理---bo

//sdltest1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h"#include <stdio.h>#include <stdlib.h> extern "C"{ #include <SDL.h>#include "libavutil/opt.h"#include "l...

Linux内核结构体--kfifo 环状缓冲区

转载链接:http://blog.csdn.net/yusiguyuan/article/details/41985907 1、前言   最近项目中用到一个环形缓冲区(ring buffer),代码是由Linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程...

HTML一片空白, 无法渲染: Empty tag doesn't work in some browsers

html 文件直接引入一个script, 如下 <html> <head> <script type="application/javascript" src="ajax/jquery-1.10.2.min.js"/> </head> 结果导致了 对应的页面在浏览器显示不了,一片空白, F12...