员工绩效管理系统(顺序表极简版)

这次项目使用的是顺序表去完成员工绩效系统,学会这个系统之后,你还可以去做图书管理系统,学生成绩管理系统,这些代码可以作为实验课程作业参考。

这些代码要去慢慢看,去慢慢理解,我的英文不太好,只需要理解其中的逻辑即可。

如果有些语句真的不太会的话可以去搜索一下哈。

定义结构体数组:

id是员工号,name是员工名称,depar是部门,performance是绩效。

gNumber,filepath,temp后面会用到。

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

//定义全局
#define MAXSIZE 1000

//定义结构体数组
struct staff
{
	int id;
	char name[MAXSIZE];
	char depar[MAXSIZE];
	float performance;
 }sta[MAXSIZE];
//定义记录变量
int gNumber; 

//定义全局文件路径filepath
char filepath[50];

//定义替代temp
struct staff temp;

函数的定义:

这里定义了该管理系统的所有功能。

//函数定义
 //连续输入员工信息
 void add (); 
 //检测学号是否存在
 int exist (); 
 //菜单
 void menu(); 
 //插入单个员工信息
 void insert(); 
 //打印所有员工信息
 void printing(); 
 //查看录入员工信息的个数 
 void gnum(); 
 //打印单个员工信息
 void single(); 
 //清空所有员工信息
 void cleaning (); 
 //排序函数
 void pai(); 
 //删除员工信息
 void dis(); 
 //创建一个保存数据的文件
 void keep (); 
 //读取文件信息
 void read(); 
 //版本信息
 void message(); 
 //设置文件保存地址
 void setting(); 
 //更改员工信息
 void updata() ;

主函数:

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	setting();//设置文件路径 
	int k;
		while(1)
	{
		menu();//菜单函数 
		printf("输入功能键0-12:");
		scanf("%d",&k);
		getchar();
		switch(k)
		{
			case 1:
				add();//连续输入员工信息函数 
				break;
			case 2:
				single();//打印单个员工函数 
				break;
			case 3:
				cleaning();//清空所有员工信息 
				break;
			case 4:
				insert();//插入单个员工信息 
				break;
			case 5:
				printing();//打印所有员工信息 
				break;
			case 6:
				gnum();//查看录入员工的个数 
				break;
			case 7:
				dis();//删除员工信息 
				break;
			case 8:
				setting();//设置文件保存地址		
				break;
			case 9:
				pai();//排序函数				
				break;
			case 10:
				read();//读取文件信息 
				break;
			case 11:
				message();//版本信息 
				break;
			case 12:
				updata();//更改员工信息 
				break;
			case 0:
				return 0;				
				break; 
			default:
				printf("输入数字有误或功能未更新!!!\n");
				getch();
				break;	
		}
	}
	return 0;
}

菜单系统:

这是一个菜单系统,到时候根据菜单的数字输出实现管理系统的功能。

这个功能菜单有点乱,希望大家不要介意。

//菜单
void menu ()
{
	system("cls");
	printf("员工绩效管理系统1.1.1\n\n");
	printf("\t\t|============功能列表============|\n");
 	printf("\t\t|----------1插入n个员工信息------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------2打印单个员工信息-----|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------3--清空数据-----------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------4添加n个员工信息------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------5输出所有员工信息-----|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------6查询已录入员工个数---|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------7删除一个员工信息-----|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------8设置文件路径---------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------9排序-----------------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------10读取文件数据--------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------11版本信息------------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------12更改员工信息--------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------0退出系统-------------|\n");
 	printf("\t\t|================================|\n\n\n");
 } 

输入N个员工信息函数:

如果是第一次添加员工信息就可以使用这个函数。

//连续输入员工信息
void add()
{
	system("cls");
	int i,n,k,j,num;
	printf("请输入需要输入员工的个数n:\n");
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		printf("员工ID:");
		scanf("%d",&num);
		for(j=0;j<i;j++)
		{
			if(sta[j].id == num)
			{
				printf("工号已存在......\n");
				printf("请重新输入员工ID:\n"); 
				scanf("%d",&num);
				j = 0;
			}
		}
		sta[i].id = num;
		printf("员工姓名:");
		scanf("%s",sta[i].name);
		printf("员工绩效:");
		scanf("%f",&sta[i].performance);
		printf("员工部门:");
		scanf("%s",sta[i].depar);
//		pai();
		system("cls"); 
		printf("\n一个新职工的信息档案创建完毕!\n\n");
		gNumber++;
	}
	keep();
	return;
}

后续添加员工信息的函数:

如果是后续添加员工信息,可以使用这个函数去添加。

//添加n个员工信息
void insert()
{
	system("cls");
	int n,m,i,num,j;
	n = gNumber;
	//printf("n = %d",gNumber);
	printf("请输入要添加的员工数m:");
	scanf("%d",&m);
	for(i=n;i<n+m;i++)
	{
		printf("第%d个员工信息输入: \n", i+1);
		printf("员工ID: ");
		scanf("%d",&num);
		for(j=0;j<i;j++)
		{
			if(sta[j].id == num)
			{
				printf("该工号已存在,请重新输入:");
				scanf("%d",&num);
				j=0;
			}
		}
		sta[i].id = num;
		printf("员工姓名:");
		scanf("%s",sta[i].name);
		printf("员工绩效:");
		scanf("%f",&sta[i].performance);
		printf("员工部门:");
		scanf("%s",sta[i].depar);
//		pai();
		system("cls"); 
		printf("\n一个新职工的信息档案创建完毕!\n\n");
		gNumber++;
	}
	system("cls");
	printf("已保存数据到文件中");
	printf("已成功添加%d个员工信息!\n回车继续",m);
	getch();
	keep();
	return;
 } 

删除员工信息:

//删除员工信息
 void dis()
 {
 	system("cls");
 	int num,g,i,j;
 	printf("请输入要删除的员工ID:\n");
 	scanf("%d",&num);
	for(i=0;i<num;i++)
	{
		if(sta[i].id == num)
		{
			printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
 			printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[num-1].id,sta[num-1].name,sta[num-1].performance,sta[num-1].depar);
			printf("如果输入1表示删除,其他表示取消删除并返回菜单。\n");
			printf("输入数字:");
			scanf("%d",&g);	
			if(g == 1)
			{
				for(j=i;j<gNumber-1;j++)
				{
					sta[j] = sta[j+1];
				}
				gNumber--;
			}
			else
			{
				return;
			}
	 		printf("已成功删除该员工信息,回车继续。\n");
	 		getch();
	 		keep();
	 		return;
		}
	}
  } 

更改员工信息:

//更改员工信息
void updata()
{
	system("cls");
	int i,num,j,g;
	printf("请输入要更改信息的员工ID:\n");
	scanf("%d",&num);
	for(i=0;i<num;i++)
	{
		if(sta[i].id == num)
		{
			printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
 			printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[num-1].id,sta[num-1].name,sta[num-1].performance,sta[num-1].depar);
			printf("如果输入1表示更改,其他表示取消更改并返回菜单。\n");
			printf("输入数字:");	
			scanf("%d",&g);
			if(g == 1)		
			{
				sta[i].id = num;
				printf("员工姓名:");
				scanf("%s",sta[i].name);
				printf("员工绩效:");
				scanf("%f",&sta[i].performance);
				printf("员工部门:");
				scanf("%s",sta[i].depar);				
			}
			else
			{
				return;
			}
			printf("已成功更改该员工信息。(回车继续)\n");
	 		getch();
	 		keep();
	 		return;
		}
	}
	return;
}

打印员工信息:

//打印员工所有信息
 void printing()
 {
 	int i; 
	printf("\n贵公司所有职工信息:\n");
	printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
	for(i=0;i<gNumber;i++)  
	{
		printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[i].id,sta[i].name,sta[i].performance,sta[i].depar);
		printf("\n");
	}
	getch();
	return;
  } 
//打印单个员工信息
  void single()
  {
  	int n;
  	printf("请输入要打印的员工ID:");
  	scanf("%d",&n);
  	printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
  	printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[n-1].id,sta[n-1].name,sta[n-1].performance,sta[n-1].depar);
	printf("\n");
	printf("输入完毕!回车返回菜单");
	getch();
	return;
   } 

清空所有员工信息:

//清空所有员工信息
  void cleaning()
  {
  	int i;
  	sta[MAXSIZE] = sta[0];
  	sta[0] = sta[MAXSIZE];
	gNumber = 0;
	printf("已清空所有员工信息,回车返回菜单。");
	keep();
	getch();
	return;
   } 

查看已录入的员工信息个数:

//测试函数
 void gnum()
 {
 	system("cls");
 	printf("已录入%d个员工。\n(回车返回菜单)",gNumber);
 	getch();
  } 

设置文件路径函数:

//设置全局文件保存路径
void setting()
{
	system("cls");
//	char filepath[50];
	printf("请设置保存数据的文件路径:(例如:E:\\staff.txt)\n");
	scanf("%s",filepath);
	FILE *fp;
	if((fp = fopen(filepath,"w"))!= NULL)
	{
		printf("文件路径设置完毕!\n(文件路径为: %s )",filepath);
		return;
	}
	else if((fp = fopen(filepath,"w")) == NULL)
	{
		printf("文件创建失败!\n");
		printf("回车返回菜单\n");
		getch();
		return;
	}
	return;
 } 

保存员工信息到文件中:

//保存数据到文件中
void keep()
{
	system("cls");
	int i;
//	char filepath[50];
	FILE *fp;
	if((fp = fopen(filepath,"w")) == NULL)
	{
		printf("创建文本失败!\n");
		return;
	}
	else 
	{   
		for(i=0;i<gNumber;i++)
		{
			fprintf(fp,"%d   %s   %f   %s   \n\n",sta[i].id,sta[i].name,sta[i].performance,sta[i].depar);
		}
		fclose(fp);
		printf("文件保存在==>> %s\n\n",filepath);
		printf("(回车返回菜单)");
		getch();
		return;
	}  
	return;
}

读取文件信息:

//读取文件信息
void read()
{
	system("cls");
//	char filepath[50];
//	printf("请输入文件地址:(例如:  E:\\staff.txt)\n");
//	scanf("%s",filepath);
	FILE *fp;
	if((fp = fopen(filepath,"r")) == NULL)
	{
		printf("无法打开此文件!\n");
		return;
	}
	else
	{
		int i;
		printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
		for(i=0;i<gNumber;i++)
		{
			fscanf(fp,"%d   %s   %f   %s   \n\n",&sta[i].id,sta[i].name,&sta[i].performance,sta[i].depar);
			printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[i].id,sta[i].name,sta[i].performance,sta[i].depar);
		}
		fclose(fp);
		printf("输出了 %d 个员工信息。\n",gNumber);
		printf("(回车返回菜单。)");
		getch();
		return;
	}
 } 

版本信息:

//版本信息
 void message()
 {
 	system("cls");
 	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
 	//SetConsoleTextAttribute(handle,0xf0);
 	printf("\t\t\t|================================|\n");
 	printf("\t\t\t|========软件项目:==============|\n");
 	printf("\t\t\t|========员工绩效管理系统========|\n");
	printf("\t\t\t|========版本:1.1.1=============|\n");
 	printf("\t\t\t|========作者:歌者EX============|\n");
 	printf("\t\t\t|========QQ号:1111111111========|\n");
 	printf("\t\t\t|==============学院==============|\n");
 	printf("\t\t\t|========软件工程================|\n");
 	printf("\t\t\t|================================|\n\n\n");
 	//SetConsoleTextAttribute(handle,0xf0);
 	getch();
 	return;
  } 

总代码:

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

//定义全局
#define MAXSIZE 1000

//定义结构体数组
struct staff
{
	int id;
	char name[MAXSIZE];
	char depar[MAXSIZE];
	float performance;
 }sta[MAXSIZE];
//定义记录变量
int gNumber; 

//定义全局文件路径filepath
char filepath[50];

//定义替代temp
struct staff temp;


 //函数定义
 //连续输入员工信息
 void add (); 
 //检测学号是否存在
 int exist (); 
 //菜单
 void menu(); 
 //插入单个员工信息
 void insert(); 
 //打印所有员工信息
 void printing(); 
 //查看录入员工信息的个数 
 void gnum(); 
 //打印单个员工信息
 void single(); 
 //清空所有员工信息
 void cleaning (); 
 //排序函数
 void pai(); 
 //删除员工信息
 void dis(); 
 //创建一个保存数据的文件
 void keep (); 
 //读取文件信息
 void read(); 
 //版本信息
 void message(); 
 //设置文件保存地址
 void setting(); 
 //更改员工信息
 void updata() ;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	setting();//设置文件路径 
	int k;
		while(1)
	{
		menu();//菜单函数 
		printf("输入功能键0-12:");
		scanf("%d",&k);
		getchar();
		switch(k)
		{
			case 1:
				add();//连续输入员工信息函数 
				break;
			case 2:
				single();//打印单个员工函数 
				break;
			case 3:
				cleaning();//清空所有员工信息 
				break;
			case 4:
				insert();//插入单个员工信息 
				break;
			case 5:
				printing();//打印所有员工信息 
				break;
			case 6:
				gnum();//查看录入员工的个数 
				break;
			case 7:
				dis();//删除员工信息 
				break;
			case 8:
				setting();//设置文件保存地址		
				break;
			case 9:
				pai();//排序函数				
				break;
			case 10:
				read();//读取文件信息 
				break;
			case 11:
				message();//版本信息 
				break;
			case 12:
				updata();//更改员工信息 
				break;
			case 0:
				return 0;				
				break; 
			default:
				printf("输入数字有误或功能未更新!!!\n");
				getch();
				break;	
		}
	}
	return 0;
}
//设置全局文件保存路径
void setting()
{
	system("cls");
//	char filepath[50];
	printf("请设置保存数据的文件路径:(例如:E:\\staff.txt)\n");
	scanf("%s",filepath);
	FILE *fp;
	if((fp = fopen(filepath,"w"))!= NULL)
	{
		printf("文件路径设置完毕!\n(文件路径为: %s )",filepath);
		return;
	}
	else if((fp = fopen(filepath,"w")) == NULL)
	{
		printf("文件创建失败!\n");
		printf("回车返回菜单\n");
		getch();
		return;
	}
	return;
 } 
//保存数据到文件中
void keep()
{
	system("cls");
	int i;
//	char filepath[50];
	FILE *fp;
	if((fp = fopen(filepath,"w")) == NULL)
	{
		printf("创建文本失败!\n");
		return;
	}
	else 
	{   
		for(i=0;i<gNumber;i++)
		{
			fprintf(fp,"%d   %s   %f   %s   \n\n",sta[i].id,sta[i].name,sta[i].performance,sta[i].depar);
		}
		fclose(fp);
		printf("文件保存在==>> %s\n\n",filepath);
		printf("(回车返回菜单)");
		getch();
		return;
	}  
	return;
}
//读取文件信息
void read()
{
	system("cls");
//	char filepath[50];
//	printf("请输入文件地址:(例如:  E:\\staff.txt)\n");
//	scanf("%s",filepath);
	FILE *fp;
	if((fp = fopen(filepath,"r")) == NULL)
	{
		printf("无法打开此文件!\n");
		return;
	}
	else
	{
		int i;
		printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
		for(i=0;i<gNumber;i++)
		{
			fscanf(fp,"%d   %s   %f   %s   \n\n",&sta[i].id,sta[i].name,&sta[i].performance,sta[i].depar);
			printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[i].id,sta[i].name,sta[i].performance,sta[i].depar);
		}
		fclose(fp);
		printf("输出了 %d 个员工信息。\n",gNumber);
		printf("(回车返回菜单。)");
		getch();
		return;
	}
 } 
//连续输入员工信息
void add()
{
	system("cls");
	int i,n,k,j,num;
	printf("请输入需要输入员工的个数n:\n");
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		printf("员工ID:");
		scanf("%d",&num);
		for(j=0;j<i;j++)
		{
			if(sta[j].id == num)
			{
				printf("工号已存在......\n");
				printf("请重新输入员工ID:\n"); 
				scanf("%d",&num);
				j = 0;
			}
		}
		sta[i].id = num;
		printf("员工姓名:");
		scanf("%s",sta[i].name);
		printf("员工绩效:");
		scanf("%f",&sta[i].performance);
		printf("员工部门:");
		scanf("%s",sta[i].depar);
//		pai();
		system("cls"); 
		printf("\n一个新职工的信息档案创建完毕!\n\n");
		gNumber++;
	}
	keep();
	return;
}
//添加n个员工信息
void insert()
{
	system("cls");
	int n,m,i,num,j;
	n = gNumber;
	//printf("n = %d",gNumber);
	printf("请输入要添加的员工数m:");
	scanf("%d",&m);
	for(i=n;i<n+m;i++)
	{
		printf("第%d个员工信息输入: \n", i+1);
		printf("员工ID: ");
		scanf("%d",&num);
		for(j=0;j<i;j++)
		{
			if(sta[j].id == num)
			{
				printf("该工号已存在,请重新输入:");
				scanf("%d",&num);
				j=0;
			}
		}
		sta[i].id = num;
		printf("员工姓名:");
		scanf("%s",sta[i].name);
		printf("员工绩效:");
		scanf("%f",&sta[i].performance);
		printf("员工部门:");
		scanf("%s",sta[i].depar);
//		pai();
		system("cls"); 
		printf("\n一个新职工的信息档案创建完毕!\n\n");
		gNumber++;
	}
	system("cls");
	printf("已保存数据到文件中");
	printf("已成功添加%d个员工信息!\n回车继续",m);
	getch();
	keep();
	return;
 } 
 //删除员工信息
 void dis()
 {
 	system("cls");
 	int num,g,i,j;
 	printf("请输入要删除的员工ID:\n");
 	scanf("%d",&num);
	for(i=0;i<num;i++)
	{
		if(sta[i].id == num)
		{
			printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
 			printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[num-1].id,sta[num-1].name,sta[num-1].performance,sta[num-1].depar);
			printf("如果输入1表示删除,其他表示取消删除并返回菜单。\n");
			printf("输入数字:");
			scanf("%d",&g);	
			if(g == 1)
			{
				for(j=i;j<gNumber-1;j++)
				{
					sta[j] = sta[j+1];
				}
				gNumber--;
			}
			else
			{
				return;
			}
	 		printf("已成功删除该员工信息,回车继续。\n");
	 		getch();
	 		keep();
	 		return;
		}
	}
  } 
//更改员工信息
void updata()
{
	system("cls");
	int i,num,j,g;
	printf("请输入要更改信息的员工ID:\n");
	scanf("%d",&num);
	for(i=0;i<num;i++)
	{
		if(sta[i].id == num)
		{
			printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
 			printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[num-1].id,sta[num-1].name,sta[num-1].performance,sta[num-1].depar);
			printf("如果输入1表示更改,其他表示取消更改并返回菜单。\n");
			printf("输入数字:");	
			scanf("%d",&g);
			if(g == 1)		
			{
				sta[i].id = num;
				printf("员工姓名:");
				scanf("%s",sta[i].name);
				printf("员工绩效:");
				scanf("%f",&sta[i].performance);
				printf("员工部门:");
				scanf("%s",sta[i].depar);				
			}
			else
			{
				return;
			}
			printf("已成功更改该员工信息。(回车继续)\n");
	 		getch();
	 		keep();
	 		return;
		}
	}
	return;
}
   
//排序函数
 void pai()
 {
 	system("cls");
 	int m,k;
 	for(m=0;m<gNumber-1;m++)
 	{
 		for(k=0;k<gNumber-1-m;k++)
 		{
 			if(sta[k].performance > sta[k+1].performance)
 			{
 				temp = sta[k+1];
 				sta[k+1] = sta[k];
 				sta[k] = temp;
		 
		 	}
		 }
	 }
	printf("排序完毕!(回车返回菜单)");
	keep();
	getch();
	return;
  } 
 //打印员工所有信息
 void printing()
 {
 	int i; 
	printf("\n贵公司所有职工信息:\n");
	printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
	for(i=0;i<gNumber;i++)  
	{
		printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[i].id,sta[i].name,sta[i].performance,sta[i].depar);
		printf("\n");
	}
	getch();
	return;
  } 
//菜单
void menu ()
{
	system("cls");
	printf("员工绩效管理系统1.1.1\n\n");
	printf("\t\t|============功能列表============|\n");
 	printf("\t\t|----------1插入n个员工信息------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------2打印单个员工信息-----|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------3--清空数据-----------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------4添加n个员工信息------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------5输出所有员工信息-----|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------6查询已录入员工个数---|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------7删除一个员工信息-----|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------8设置文件路径---------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------9排序-----------------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------10读取文件数据--------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------11版本信息------------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------12更改员工信息--------|\n");
 	printf("\t\t|--------------------------------|\n");
 	printf("\t\t|----------0退出系统-------------|\n");
 	printf("\t\t|================================|\n\n\n");
 } 
 //版本信息
 void message()
 {
 	system("cls");
 	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
 	//SetConsoleTextAttribute(handle,0xf0);
 	printf("\t\t\t|================================|\n");
 	printf("\t\t\t|========软件项目:==============|\n");
 	printf("\t\t\t|========员工绩效管理系统========|\n");
	printf("\t\t\t|========版本:1.1.1=============|\n");
 	printf("\t\t\t|========作者:歌者EX============|\n");
 	printf("\t\t\t|========QQ号:1111111111========|\n");
 	printf("\t\t\t|==============学院==============|\n");
 	printf("\t\t\t|========软件工程================|\n");
 	printf("\t\t\t|================================|\n\n\n");
 	//SetConsoleTextAttribute(handle,0xf0);
 	getch();
 	return;
  } 
 //测试函数
 void gnum()
 {
 	system("cls");
 	printf("已录入%d个员工。\n(回车返回菜单)",gNumber);
 	getch();
  } 
  //打印单个员工信息
  void single()
  {
  	int n;
  	printf("请输入要打印的员工ID:");
  	scanf("%d",&n);
  	printf("\n职工号\t姓名\t绩效\t     部门\t\n\n\n"); 
  	printf("\n  %d\t%s\t%f\t%s\t\n\n\n",sta[n-1].id,sta[n-1].name,sta[n-1].performance,sta[n-1].depar);
	printf("\n");
	printf("输入完毕!回车返回菜单");
	getch();
	return;
   } 
  //清空所有员工信息
  void cleaning()
  {
  	int i;
  	sta[MAXSIZE] = sta[0];
  	sta[0] = sta[MAXSIZE];
	gNumber = 0;
	printf("已清空所有员工信息,回车返回菜单。");
	keep();
	getch();
	return;
   } 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
(1)系统分三种身份:员工、部门负责人、管理员,登陆时根据选择的角色进入不同的功能界面。 (2)员工登陆系统后可以查看当天的工作任务,可以上传文件资料,下班前可以写当天的工作日志,查看部门负责人对自己每日工作的评价。 (3)部门负责人登陆系统后可以给该部门的每个员工分配当天的任务,可以对员工当天的工作做评价,查看管理员给本部门制定的月度计划任务和季度计划任务。 (4)员工信息管理:管理员登陆系统后可以添加新的员工信息,可以对现有员工的信息进行修改和查询!可以删除某些员工信息,当删除员工信息时同时将删除他们的任务和日志信息! (5)部门负责人信息管理:管理员可以设置部门的负责人信息,可以对部门的负责人信息进行维护。 (6)部门信息管理:管理员可以添加和删除部门信息,当部门下面存在员工信息时不执行删除操作! (7)月度和季度计划管理:管理员登陆系统后可以给每个部门分配每个月和每个季度的任务。 (8)文件管理:部门负责人登陆系统后可以管理本部门员工上传的文件,管理员登陆系统后可以管理所以的文件信息。 (9)新闻管理:管理员可以添加公司新闻信息,员工和部门负责人可以查询和查看新闻信息。 (10)系统管理:管理员和员工登陆系统后可以修改自己的登陆密码。 (11)系统特点:采用三层设计模式,完全采用面向对象的设计思想。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值