精华内容
下载资源
问答
  • 6/10/2020 算法与数据结构 算法与数据结构 课程设计 课程设计 题 目企业员工信息管理系统 题 目 企业员工信息管理系统 设计与实现 设计与实现 院 系
  • 数据结构课程设计 课 程 设 计 报 告 课程名称 数据结构 课题名称 员工管理系统 专 业 计算机科学与技术 班 级 1120542 学 号 19 姓 名 杨天骄 指导教师 周晓青 2013年 06 4713 目录 TOC \o "1-3" \h \z \u 目录 2 1...
  • 员工管理数据结 构员工管理系统设计题目 [问题描述] 每个员工的信息包括编号姓名性别出生年月学历职务 电话住址等系统能够完成员工信息的查询更新插 入删除排序等功能 [基本要求] 1 排序按不同关键字对所有员工的...
  • 系统能够完成员工信息的查询、更新、插入、删除、排序等功能。 要求:  (1) 排序:按不同关键字,对所有员工的信息进行排序。  (2) 查询:按特定条件查找员工。  (3) 更新:按编号对某个员工的某项信息进行...
  • 包括企业员工管理系统数据库设计的需求分析设计,概念结构设计,逻辑结构设计以及物理结构设计
  • 算法与数据结构 课程设计 题目企业员工信息管理系统 设计与实现 院 系 计算机信息与技术系 学科专业 软件工程 学 号 B10060XXX 学生姓名 XX 指导教师 X X 2012 年 9 月 16 日 目 录 第 一 章 设 计 要 求 .2 1.1 问 ...
  • 数据结构设计员工管理系统以C语言写成,采用构造链表的方法
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 这是用C语言编写的企业员工信息管理系统,本系统是我们《数据结构》课程的课程设计题目
  • 员工管理系统,c语言的同学,数据结构的同学都可以用,改下名字,最好理解了,这样对你有好处
  • 仲恺农业工程学院 仲 恺 农 业 工 程 学 院 课 程 设 计 报 告 题目员工管理系统 课程名称 数据结构与算法 信息科学与技术学院 院 系 专业班级 学 号 名 姓 3 仲恺农业工程学院 目 录 综合设计题目. 5 一问题所需要...
  • 单位员工通讯录管理系统线性表的应用 .3 1.1 需求分析和算法设计. . 3 1.2 调试分析和测试结果. . 4 2.停车场管理栈和队列的应用 6 2.1 需求分析和算法设计 7 2.2 调试分析和测试结果 8 3.哈夫曼编码/译码系统树应用...
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 数据结构 课程设计 员工管理系统(C语言)

    千次阅读 多人点赞 2018-04-26 22:13:55
    1、添加员工模块:输入员工的姓名、年龄、职位、工龄以,通过自己定义的void add()函数来实现。将录入的信息写入到“data.dat”中。2、删除员工模块:删除需要删除的员工的所有信息,通过自己定义的void del( )...

    1、添加员工模块:输入员工的姓名、年龄、职位、工龄以,通过自己定义的void  add()函数来实现。将录入的信息写入到“data.dat”中。

    2、删除员工模块:删除需要删除的员工的所有信息,通过自己定义的void del( )函数来实现。先通过查找找到需要删除的信息,将文件中除要删除的信息之外全部读入内存,删除原文件,将创建一个同名文件。

    3、修改模块:可以修改该员工的部分信息,通过自己定义的void change()。根据选择修改具体部分。

    4、查询员工信息模块:可以按员工职务来查询员工的相关信息,通过自己定义的void search( )函数来实现。根据名字查询。

    5、员工信息排序模块:可以按照规定要求对员工信息排序,通过自己定义的void sort()函数来实现。分为按工龄和按专业降序排列,排序后将写入文件。

    6、员工信息输出模块:可以输出所有员工的信息,通过自己定义的void  display()函数实现。

    #include<stdio.h>
    #include<stdlib.h>
    #include<windows.h>
    #include<string.h>
    #define len sizeof(worker)
    typedef struct
    {
    	char name[20];//姓名
    	char sex;
    	int age;//年龄
    	int work_age;//工龄
    	char duty[20];
    	char education[20];
    	char address[40];
    	char phone[20];
    } worker;
    
    static int total;
    void add()    //添加
    {
    	FILE *fp;
    	worker b,b1;
    	fp=fopen("data.dat","ab+");
    	printf(" \n请输入职工姓名:   ");
    	scanf("%s",&b.name);
    	fflush(stdin);
    	printf(" \n请输入职工性别(f或m):    ");
    	scanf("%c",&b.sex);
    	while((b.sex!='f'&&b.sex!='m')||(b.sex!='m'&&b.sex!='f'))
    		{
    			fflush(stdin);
    			printf(" \n输入有误,请重新输入员工性别(f或m)注意f 或 m :    ");
    			scanf("%c",&b.sex);
    		}
    	printf(" \n请输入职工的年龄:   ");
    	scanf("%ld",&b.age);
    
    	printf(" \n请输入职工的工龄:   ");
    	scanf("%ld",&b.work_age);
    	printf(" \n请输入职工的职务 :   ");
    	scanf("%s",b.duty);
    	printf(" \n 请输入职工的学历(博士、硕士、本科、大专、高中、初中及以下)  : ");
    	scanf("%s",b.education);
    	printf(" \n请输入职工的居住地址 :   ");
    	scanf("%s",b.address);
    	printf(" \n请输入职工的电话:   ");
    	scanf("%s",b.phone);
    	fseek(fp,0,SEEK_SET);
    	while (fread(&b1,len,1,fp))
    		{
    			if((strcmp(b.name,b1.name)==0)&&(strcmp(b.address,b1.address)==0))
    				{
    					fclose(fp);
    					printf("\n信息库中已有同的信息,无法加入");
    					Sleep(2000);
    					system("cls");
    					return;
    				}
    		}
    	fseek(fp,0,SEEK_END);
    	fwrite(&b,len,1,fp);
    	fclose(fp);
    	printf("\t\t\t 添加成功!\n");
    	system("pause");
    
    }
    int record()
    {
    	worker b;
    	FILE *fp;
    	int i = -1;
    	if((fp=fopen("data.dat","rb+"))==NULL)
    		{
    			printf("文件打开错误");
    			exit(0);
    		}
    	fseek(fp,0,SEEK_SET);
    	while(!feof(fp))
    		{
    			i++;
    			fread(&b,len,1,fp);
    		}
    	return  i;
    }
    void display()
    {
    	if(record()==0)
    		{
    			printf("文件没有信息,去添加吧");
    		     system("pause");
    		}
    	else
    		{
    			worker sta;
    			FILE *fp;
    			fp=fopen("data.dat","rb");
    			fseek(fp,0,SEEK_SET);
    			fread(&sta,len,1,fp);
    			printf("姓名    性别  年龄   工龄    学历   职务   地址              电话\n");
    			printf("-----------------------------------------------------------------------------\n");
    			while(!feof(fp))
    				{
    					printf("%-10s %-4c %-4ld %-4ld   %-6s %-6s %-20s%-s\n",
    					       sta.name,sta.sex,sta.age, sta.work_age,sta.education,sta.duty,
    					       sta.address,sta.phone);
    					fread(&sta,len,1,fp);
    				}
    			system("pause");
    			fclose(fp);
    		}
    }
    void del()
    
    {
    	worker b,b1;
    	int flag=0,i=0;   //flag用于判断职工是否存在
    	total= record();
    	worker temp[total];
    	FILE *fp,*fp1;
    	char a[20];
    	if ((fp=fopen("data.dat","rb+"))==NULL)
    
    		{
    			printf("打开文件错误!!!\n");
    			Sleep(1000);
    			exit(1);
    		}
    	printf("\n请输入职工名字:");
    	scanf("%s",a);
    	system("cls");
    	fseek(fp,0,SEEK_SET);
    	while (fread(&b,len,1,fp))   //遍历文件所有结构体
    		{
    			if(!strcmp(a,b.name))
    				flag=1;           //判断有无此职工
    		}
    
    	if(flag==0)   //没有此职工退出函数
    
    		{
    			printf("\n\t\t\t没这人");
    			Sleep(2000);
    			system("cls");
    			return;
    		}
    
    	fseek(fp,0,SEEK_SET);
    	while((!feof(fp))&&(i<total))
    		{
    			fread(&b,len,1,fp);   //将除了要删除的信息之外的所有信息保存进结构体 book temp[total],写进内存
    			if (strcmp(a,b.name))
    				{
    					temp[i]=b;
    					i=i+1;
    				}
    		}
    	fclose(fp);
    	fp1=fopen("data.dat","wb");
    	fclose(fp1);
    	fp1=fopen("data.dat","ab");   //以覆盖原有的文件信息 的方式建立同名文件
    	for(i=0; i<total-1; i++)      //将 除了要删除的信息之外的所有信息保存进的结构体 book temp[total]赋值给b1,写入文件
    		{
    			b1=temp[i];
    			fseek(fp1,0,SEEK_END);
    			fwrite(&b1,len,1,fp1);
    		}
    	fclose(fp1);
    }
    void change()                        //修改职工信息
    
    {
    	int flag = 0;
    	worker b,b1;
    	FILE *fp;
    	char a[20];
    	if ((fp=fopen("data.dat","rb+"))==NULL)
    		{
    			printf("打开文件错误!!!\n");
    			Sleep(1000);
    			exit(1);
    		}
    	printf("请输入要修改信息的职工的姓名  :");
    	scanf("%s",a);
    	system("cls");
    	fseek(fp,0,SEEK_SET);
    	while (fread(&b,len,1,fp))             //遍历文件所有结构体
    		{
    			if (!strcmp(b.name,a))
    
    				{
    					printf("            【1】 修改姓名               【2】修改学性别\n");
    					printf("            【3】 修改年龄               【4】修改职务\n");
    					printf("            【5】 修改学历               【6】修改居住地址\n");
    					printf("            【7】 修改电话                            \n");
    					printf("请输入以上数字,选择相应的功能: ");
    					int  choice;
    					scanf("%d",&choice);
    					fflush(stdin);
    					switch(choice)
    						{
    							case 1 :
    							{
    								printf(" \n请输入职工姓名:   ");
    								scanf("%s",&b.name);
    								break;
    							}
    
    							case 2 :
    							{
    								printf(" \n请输入职工性别(f或m):    ");
    								scanf("%c",&b.sex);
    								break;
    							}
    							case 3 :
    							{
    								printf(" \n请输入职工的年龄:   ");
    								scanf("%ld",&b.age);
    								break;
    							}
    							case 4 :
    							{
    								printf(" \n请输入职工的职务 :   ");
    								scanf("%s",b.duty);
    								break;
    							}
    							case 5 :
    							{
    								printf(" \n 请输入职工的学历(博士、硕士、本科、大专、高中、初中及以下)  : ");
    								scanf("%s",b.education);
    								break;
    							}
    							case 6 :
    							{
    								printf(" \n请输入职工的居住地址 :   ");
    								scanf("%s",b.address);
    								break;
    							}
    							case 7 :
    							{
    								printf(" \n请输入职工的电话:   ");
    								scanf("%s",b.phone);
    								break;
    							}
    							default :
    								printf("\n输入错误");
    								system("pause");
    								break;
    						}
    					if(flag!=1)
    						{
    							fseek(fp,-len,SEEK_CUR);   /*位置指针移动到该数据块首位*/
    							fwrite(&b,len,1,fp);
    							printf("\n        修改成功!!!");
    							system("pause");
    							fclose(fp);
    							if (feof(fp))
    
    								{
    									printf("没有这个职工信息\n");
    									system("pause");
    
    								}
    						}
    				}
    		}
    }
    void search()                     //查询
    {
    	worker b;
    	int flag = 0;
    	char ch,a[20];
    	char name[20];
    	FILE *fp;
    	fp=fopen("data.dat","rb");
    	fseek(fp,0,SEEK_SET);
    	ch=fgetc(fp);
    	if((fp=fopen("data.dat","r"))==NULL)
    		{
    			printf("\t\t\t错误,请先添加!\n");
    			return ;
    		}
    	else if(ch==EOF)
    		{
    			printf("\t\t\t没信息!");
    			return;
    
    		}
    	else
    		{
    			printf("请输入查询信息的职工的姓名  :");
    			scanf("%s",a);
    			fseek(fp,0,SEEK_SET);
    			while (fread(&b,len,1,fp))             //遍历文件所有结构体
    				{
    					if (!strcmp(b.name,a))
    						{
    							printf("姓名    性别   年龄 工龄 学历   职务   地址              电话\n");
    							printf("-----------------------------------------------------------------------------\n");
    							printf("%-10s %-4c %-4ld %-4ld   %-6s %-6s %-20s%-s\n",
    							       b.name,b.sex,b.age, b.work_age,b.education,b.duty,
    							       b.address,b.phone);
    							flag = 1;
    							system("pause");
    						}
    				}
    			if (flag = 0)
    
    				{
    					printf("没有这个职工信息\n");
    					system("pause");
    				}
    		}
    }
    void work_age(int n)
    {
    	total = n;
    	int i=0,j;
    	char ch;
    	worker b,temp;
    	worker a[total];
    	FILE *fp;
    	fp=fopen("data.dat","rb+");
    	fseek(fp,0,SEEK_SET);
    	ch=fgetc(fp);
    	if(fp==NULL)
    		{
    			printf("\t\t\t错误,请先添加!\n");
    			return ;
    		}
    	else if(ch==EOF)
    		{
    			printf("\t\t\t文件没有信息!");
    			return;
    
    		}
    	else
    		{
    			fseek(fp,0,SEEK_SET);
    			while (fread(&b,len,1,fp))
    				{
    					a[i] = b;
    					i++;
    				}
    			for(i=1; i<total; i++)
    				{
    					temp= a[i];
    					j=i-1;
    					while(j>=0&&temp.work_age>a[j].work_age)
    						{
    							a[j+1] = a[j];
    							j--;
    						}
    					a[j+1]=temp;
    				}
    
    			fseek(fp,0,SEEK_SET);
    			for(i=0; i<total; i++)
    				fwrite(&a[i],len,1,fp);
    			fclose(fp);
    			display();
    		}
    }
    void education(int n)
    {
    	int i=0;
    	total = n;
    	char ch;
    	worker b,temp;
    	worker a[total];
    	FILE *fp;
    	fp=fopen("data.dat","rb+");
    	fseek(fp,0,SEEK_SET);
    	ch=fgetc(fp);
    	if(fp==NULL)
    		{
    			printf("\t\t\t错误,\n");
    			return ;
    		}
    	else if(ch==EOF)
    		{
    			printf("\t\t\t文件没有信息!");
    			return;
    		}
    	else
    		{
    			fseek(fp,0,SEEK_SET);
    			while (fread(&b,len,1,fp))
    				{
    					if(strcmp(b.education,"博士")==0)
    						{
    							a[i]=b;
    							i++;
    						}
    				}
    			fseek(fp,0,SEEK_SET);
    			while (fread(&b,len,1,fp))
    				{
    					if(strcmp(b.education,"硕士")==0)
    						{
    							a[i]=b;
    							i++;
    						}
    				}
    			fseek(fp,0,SEEK_SET);
    			while (fread(&b,len,1,fp))
    				{
    					if(strcmp(b.education,"硕士")==0)
    						{
    							a[i]=b;
    							i++;
    						}
    				}
    			fseek(fp,0,SEEK_SET);
    			while (fread(&b,len,1,fp))
    				{
    					if(strcmp(b.education,"本科")==0)
    						{
    							a[i]=b;
    							i++;
    						}
    				}
    			fseek(fp,0,SEEK_SET);
    			while (fread(&b,len,1,fp))
    				{
    					if(strcmp(b.education,"大专")==0)
    						{
    							a[i]=b;
    							i++;
    						}
    				}
    			fseek(fp,0,SEEK_SET);
    			while (fread(&b,len,1,fp))
    				{
    					if(strcmp(b.education,"初中及以下")==0)
    						{
    							a[i]=b;
    							i++;
    						}
    				}
    			for(i=0; i<total; i++)
    				{
    					printf("%10s",a[i].name);
    				}
    			printf("   \n");
    			fseek(fp,0,SEEK_SET);
    			for(i=0; i<total; i++)
    				fwrite(&a[i],len,1,fp);
    			fclose(fp);
    			display();
    		}
    }
    void sort()
    {
    	int j;
    	getchar();                         /*接收回车*/
    	j=record();
    	printf("            【1】 按工龄降排序               【2】按学历降排序\n");
    	printf("请输入以上数字,选择相应的功能: ");
    	switch (getchar())
    		{
    			case '1':
    				work_age(j);
    				break;
    			case '2':
    				education(j);
    				break;
    		}
    	getchar();                                /*接收回车*/
    	system("cls");
    	printf("            【1】 回到主界面               【2】退出系统\n");
    	printf("请输入以上数字,选择相应的功能: ");
    	switch(getchar())
    		{
    			case '1':
    				getchar();
    				system("cls");
    				break;
    			default:
    				exit(1);
    		}
    }
    
    
    int main()
    {
    	int flag=1;
    	while(flag)
    		{
    			fflush(stdin);
    			system("cls");             /*清屏*/
    			printf("                         欢迎登陆职工信息管理系统!\n");
    			printf("            【1】 输入职工信息            【2】 输出职工信息\n");
    			printf("            【3】 信息查询排序            【4】 删除职工信息\n");
    			printf("            【5】 修改职工信息            【6】 查询职工信息\n");
    			printf("请输入以上数字,选择相应的功能: ");
    			switch (getchar())
    				{
    					case '1':
    						add();
    						break;        /*调用输入信息的函数*/
    					case '2':
    						display();
    						break;       /*调用输出信息的函数*/
    					case '3':
    						sort();
    						break;       /*调用排序的函数*/
    					case '4':
    						del();
    						break;         /*调用删除职工信息函数*/
    					case '5':
    						change();
    						break;     /*调用修改职工信息的函数*/
    					case '6':
    						search();
    						break;       //查询员工信息
    					default:
    						flag=0;
    						break;       /*跳出循环体,结束程序*/
    				}
    		}
    	return 0;
    }
    
    
    
    
    
    

    展开全文
  • 24、员工管理系统 问题描述: 每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。 实现要求: (1) 排序:按不同关键字,对...

    《数据结构与算法》课程设计

    24、员工管理系统

    问题描述:
    每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
    实现要求:
    (1) 排序:按不同关键字,对所有员工的信息进行排序。
    (2) 查询:按特定条件查找员工。
    (3) 更新:按编号对某个员工的某项信息进行修改。
    (4) 插入:加入新员工的信息。
    (5) 删除:按编号删除已离职的员工的信息。

    #include <cstdio>
    #include <iostream>
    #include <map>
    #include <iomanip>
    #include <algorithm>
    
    using namespace std;
    struct employee {          //存储结构
        string num;             //编号
        string name;            //姓名
        string gender;          //性别
        string birth;           //出生日期
        string education;       //学历
        string position;        //职务
        string phone;           //电话
        string address;         //住址
    };
    
    employee em[1024];
    int len = 0;        //员工数量
    int flag = 0;       //控制系统是否退出
    
    //初始化员工信息
    void init(employee t[]) {
        len++, t[1].num = "1", t[1].name = "张三", t[1].gender = "男", t[1].birth = "2001-01-01", t[1].education = "本科", t[1].position = "经理", t[1].phone = "13970959821", t[1].address = "北京";
        len++, t[2].num = "2", t[2].name = "李四", t[2].gender = "女", t[2].birth = "2002-02-02", t[2].education = "大专", t[2].position = "策划", t[2].phone = "16846541231", t[2].address = "上海";
        len++, t[3].num = "3", t[3].name = "王五", t[3].gender = "男", t[3].birth = "2003-03-03", t[3].education = "中专", t[3].position = "职工", t[3].phone = "18174085740", t[3].address = "广州";
        len++, t[4].num = "4", t[4].name = "赵六", t[4].gender = "女", t[4].birth = "2004-04-04", t[4].education = "本科", t[4].position = "秘书", t[4].phone = "18670569826", t[4].address = "深圳";
    }
    
    //打印表头
    void emOutTitle() {
        cout << setiosflags(ios::left) << setw(8) << "编号" << setw(8) << "姓名" << setw(8) << "性别" << setw(17) << "出生年月"
             << setw(9) << "学历" << setw(10) << "职务" << setw(18) << "电话" << setw(8) << "住址" << endl;
    }
    
    //打印员工信息
    void emInfo(employee t[], int i) {
        cout << setiosflags(ios::left) << setw(5) << t[i].num << setw(9) << t[i].name << setw(6) << t[i].gender
             << setw(12) << t[i].birth << setw(9) << t[i].education << setw(10) << t[i].position << setw(15)
             << t[i].phone << setw(8) << t[i].address << endl;
    }
    
    //显示所有员工的信息
    void emOut() {
        emOutTitle();
        for (int i = 1; i <= len; i++)
            emInfo(em, i);
    }
    
    //按编号降序排序
    bool cmpNum(employee o, employee t) { return o.num < t.num; }
    
    //按出生日期降序排序
    bool cmpBirth(employee o, employee t) { return o.birth < t.birth; }
    
    //按学历从高到低降序排序
    bool cmpEdu(employee o, employee t) {
        map<string, int> m_edu;
        m_edu["本科"] = 1;
        m_edu["大专"] = 2;
        m_edu["中专"] = 3;
        return m_edu[o.education] < m_edu[t.education];
    }
    
    //按职务从高到低排序
    bool cmpPosition(employee o, employee t) {
        map<string, int> m_po;
        m_po["经理"] = 1;
        m_po["策划"] = 2;
        m_po["秘书"] = 3;
        m_po["司机"] = 4;
        m_po["职工"] = 5;
        return m_po[o.position] < m_po[t.position];
    }
    
    //按照编号排序
    void emSortNum() { sort(em + 1, em + 1 + len, cmpNum); }
    
    //按照出生日期排序
    void emSortBirth() { sort(em + 1, em + 1 + len, cmpBirth); }
    
    //按照学历排序
    void emSortEdu() { sort(em + 1, em + 1 + len, cmpEdu); }
    
    //按照职务排序
    void emSortPosition() { sort(em + 1, em + 1 + len, cmpPosition); }
    
    //排序操作
    void emSort() {
        string key;
        printf("请输入关键词(编号/出生日期/学历/职务):");
        cin >> key;
        if (key == "编号") {
            emSortNum();        //按编号排序
            emOut();
        } else if (key == "出生日期") {
            emSortBirth();      //按出生日期排序
            emOut();
        } else if (key == "学历") {
            emSortEdu();        //按学历排序
            emOut();
        } else if (key == "职务") {
            emSortPosition();   //按职务排序
            emOut();
        } else {
            printf("关键词不正确!\n");
        }
    }
    
    //为新建员工的信息赋值
    void emGet(int i, string num, string name, string gender, string birth, string education, string position, string phone,
               string address) {
        em[i].num = num;
        em[i].name = name;
        em[i].gender = gender;
        em[i].birth = birth;
        em[i].education = education;
        em[i].position = position;
        em[i].phone = phone;
        em[i].address = address;
    }
    
    //加入新员工的信息
    void emInsert() {
        string num;
        string name;
        string gender;
        string birth;
        string education;
        string position;
        string phone;
        string address;
        printf("请输入编号:");
        cin >> num;
        printf("请输入姓名:");
        cin >> name;
        printf("请输入性别:");
        cin >> gender;
        printf("请输入出生日期:");
        cin >> birth;
        printf("请输入学历:");
        cin >> education;
        printf("请输入职务:");
        cin >> position;
        printf("请输入电话:");
        cin >> phone;
        printf("请输入住址:");
        cin >> address;
        len++;
        emGet(len, num, name, gender, birth, education, position, phone, address);      //插入新建的员工信息
        printf("插入成功!\n");
    }
    
    //按编号删除已离职的员工信息
    void emDelete() {
        string num;
        printf("请输入要删除员工信息的编号:");
        cin >> num;
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {     //查询到对应编号的员工
                for (int j = i; j <= len; j++) {
                    em[j] = em[j + 1];      //将后续元素前移一位
                }
                flag = 1;
                break;
            }
        }
        if (flag == 1) {
            printf("删除成功!\n");
            len--;      //员工数量减 1
        } else printf("删除失败!未查找到该员工!\n");
    }
    
    //按编号查询员工信息
    void emQueryNum(string num) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {
                flag++;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
            }
        }
        if (flag == 0) {
            printf("不存在符合条件的员工!\n");
        } else {
            printf("查找成功\n");
        }
    }
    
    //按姓名查询员工信息
    void emQueryName(string name) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].name == name) {
                flag++;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
            }
        }
        if (flag == 0) {
            printf("不存在符合条件的员工!\n");
        } else {
            printf("查找成功\n");
        }
    }
    
    //按职务查询员工信息
    void emQueryPosition(string position) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].position == position) {
                flag++;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
            }
        }
        if (flag == 0) {
            printf("不存在符合条件的员工!\n");
        } else {
            printf("查找成功\n");
        }
    }
    
    //按学历查询员工信息
    void emQueryEdu(string education) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].education == education) {
                flag++;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
            }
        }
        if (flag == 0) {
            printf("不存在符合条件的员工!\n");
        } else {
            printf("查找成功\n");
        }
    }
    
    //查询操作
    void emQuery() {
        string key;
        string s;
        printf("请输入查询信息:");
        cin >> key;
        printf("请输入查询内容:");
        cin >> s;
        if (key == "学历") {
            emQueryEdu(s);
        } else if (key == "姓名") {
            emQueryName(s);
        } else if (key == "编号") {
            emQueryNum(s);
        } else if (key == "职务") {
            emQueryPosition(s);
        } else {
            printf("查询条件输入错误!\n");
        }
    }
    
    //按编号修改员工姓名
    void emUpdateName(string num, string name) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {
                flag = 1;
                em[i].name = name;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
                break;
            }
        }
        if (flag == 0) {
            printf("更新失败!\n");
        } else { printf("更新成功!\n"); }
    }
    
    //按编号修改员工性别
    void emUpdateGender(string num, string gender) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {
                flag = 1;
                em[i].gender = gender;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
                break;
            }
        }
        if (flag == 0) {
            printf("更新失败!\n");
        } else { printf("更新成功!\n"); }
    }
    
    //按编号修改员工出生日期
    void emUpdateBirth(string num, string birth) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {
                flag = 1;
                em[i].birth = birth;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
                break;
            }
        }
        if (flag == 0) {
            printf("更新失败!\n");
        } else { printf("更新成功!\n"); }
    }
    
    //按编号修改员工学历
    void emUpdateEducation(string num, string education) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {
                flag = 1;
                em[i].education = education;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
                break;
            }
        }
        if (flag == 0) {
            printf("更新失败!\n");
        } else { printf("更新成功!\n"); }
    }
    
    //按编号修改员工职务
    void emUpdatePosition(string num, string position) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {
                flag = 1;
                em[i].position = position;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
                break;
            }
        }
        if (flag == 0) {
            printf("更新失败!\n");
        } else { printf("更新成功!\n"); }
    }
    
    //按编号修改员工电话
    void emUpdatePhone(string num, string phone) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {
                flag = 1;
                em[i].phone = phone;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
                break;
            }
        }
        if (flag == 0) {
            printf("更新失败!\n");
        } else { printf("更新成功!\n"); }
    }
    
    //按编号修改员工住址
    void emUpdateAddress(string num, string address) {
        int flag = 0;
        for (int i = 1; i <= len; i++) {
            if (em[i].num == num) {
                flag = 1;
                em[i].address = address;
                if (flag == 1) emOutTitle();
                emInfo(em, i);
                break;
            }
        }
        if (flag == 0) {
            printf("更新失败!\n");
        } else { printf("更新成功!\n"); }
    }
    
    //更新操作
    void emUpdate() {
        string num;
        string key;
        string s;
        printf("请输入要更新员工的编号:");
        cin >> num;
        printf("请输入要更新员工的信息:");
        cin >> key;
        printf("请输入要更新的内容:");
        cin >> s;
        if (key == "姓名") {
            emUpdateName(num, s);
        } else if (key == "性别") {
            emUpdateGender(num, s);
        } else if (key == "出生年月") {
            emUpdateBirth(num, s);
        } else if (key == "学历") {
            emUpdateEducation(num, s);
        } else if (key == "职务") {
            emUpdatePosition(num, s);
        } else if (key == "电话") {
            emUpdatePhone(num, s);
        } else if (key == "住址") {
            emUpdateAddress(num, s);
        } else {
            printf("更新内容有误!\n");
        }
    }
    
    void interface(int order) {
        if (order == 1) {
            emSort();
        } else if (order == 2) {
            emQuery();
        } else if (order == 3) {
            emUpdate();
        } else if (order == 4) {
            emInsert();
        } else if (order == 5) {
            emDelete();
        } else if (order == 6) {
            emOut();
        } else if (order == 0) {
            flag = 1;
        } else {
            printf("指令不正确!请重新输入指令!\n");
        }
    }
    
    int main() {
        init(em);
        while (!flag) {
            printf("===================================================================================================\n");
            printf("                   **********   员     工     管     理     系     统   **********                   \n");
            printf("             1.排序     2.查询     3.更新     4.插入     5.删除     6.显示当前员工     0.退出            \n");
            printf("===================================================================================================\n");
            printf("请输入指令:");
            int order;
            cin >> order;
            interface(order);
            printf("\n");
        }
        return 0;
    }
    
    展开全文
  • 数据结构课程设计,一个简单的基于二叉排序树的员工信息管理系统
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 数据结构员工信息管理系统,课程设计用,用MFC和C++实现
  • 课程设计报告 同组姓名 课 题: 学生信息管理系统 姓 学 名 号 指导教师设计时间 指导教师 设计时间 评阅意见 目 录 一系统描述 2 1需要实现的功能 3 2设计目的 3 二分析与设计 3 1功能模块划分 3 2数据库结构描述 ...
  • 6/10/2020 成 绩 成 绩 信计 一 12信计2013-2014 一 12 2013-2014 数 据 结 构 课 程 设 计 数 据 结 构 课 程 设 计
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 862
精华内容 344
关键字:

员工管理系统结构设计