【源码】C/C++员工信息管理系统 期末课程设计

文章目录

  • 题目介绍
  • 部分代码

题目介绍

使用语言:有两个版本,一个是C语言,一个是C++,自行选择

题目介绍:系统带有文件读写功能,下次启动自动读取数据。

//定义人员信息结构体
struct Employee{
	char empname[10];	// 人员姓名
	char empnum[10];	// 编号
	char tele[20];	// 电话
	char depart[10];	// 部门
	char sex;	// 性别
};

//定义部门信息结构体
struct Department{
	char number[10];	// 编号
	char name[10];	// 部门名字
	char leader[10];	// 部门领导
};

【源码】C/C++员工信息管理系统 期末课程设计_第1张图片
【源码】C/C++员工信息管理系统 期末课程设计_第2张图片查找
【源码】C/C++员工信息管理系统 期末课程设计_第3张图片
条件查找
【源码】C/C++员工信息管理系统 期末课程设计_第4张图片
部门信息【源码】C/C++员工信息管理系统 期末课程设计_第5张图片
删除功能:
【源码】C/C++员工信息管理系统 期末课程设计_第6张图片
删除后:
【源码】C/C++员工信息管理系统 期末课程设计_第7张图片

部分代码


//添加Employee
void addEmployee(Employee* employeeList,Department* deparmentList){
	printf("输入你要录入的人员信息个数:\n"); 
	
	//用户输入要录入的人员信息个数:
	int count;
	scanf("%d",&count); 
	printf("**输入人员信息**\n"); 
	printf("依次输入:人员姓名 编号 电话 部门 性别(w/m) \n"); 

	for(int i = COUNTEmployee ; i < count+COUNTEmployee ;i++){
		scanf("%s %s %s %s %c",
			employeeList[i].empname,
			employeeList[i].empnum,
			employeeList[i].tele,
			employeeList[i].depart,
			&employeeList[i].sex
		);
		//判断部门是否存在; 
		int flag = 0;
		for(int j = 0;j<COUNTDepartment;j++){
			if(strcmp(employeeList[i].depart,deparmentList[j].name)==0 || strcmp(employeeList[i].depart,"无")==0){
				flag = 1; 
				break;
			}
		}
		if(flag == 0){
			i--;
			printf("该部门不存在!请先添加部门或者填‘无’\n");
		}
	}
	
	//COUNTEmployee,是全局变量 
	COUNTEmployee += count;

	printf("\n*****************************\n");
	printf("录入完成\n");
	printf("*****************************\n");
}


//删除Employee
void delEmployee(Employee* employeeList){
	printf("请输入您要删除的人员信息序号(输入-1退出):");
	int index = -1;
	scanf("%d",&index);
	
	//要删除的下标为index  
	index = index - 1;
	delEmp(employeeList,index);
}
void delEmp(Employee* employeeList,int index){
	if(index == -2){
		//不干任何事 
	} 
	else if(index < 0 || index >COUNTEmployee){
		printf("输入有误\n"); 
	} else{
		//开始删除! 
		for(int i = index; i <COUNTEmployee-1 ; i++){
			//元素全部往前移一位。 
			employeeList[i] = employeeList[i+1];
		}
		//最后令栈的长度减一 
		COUNTEmployee = COUNTEmployee - 1;
		printf("删除成功!\n"); 
	}
} 


//修改Employee
void modifyEmployee(Employee* employeeList,Department* departmentList){

	printf("请输入您要修改的人员信息序号(输入-1退出):");
	int i = -1;
	scanf("%d",&i);
	
	//要修改的下标为i  
	i = i - 1;
	if(i == -2){
		//退出 
	}
	else if(i < 0 || i >= COUNTEmployee){
		printf("输入有误\n"); 
	} else{
		int flag = 1;
		while (flag==1){
			//开始修改 
			printf("依次输入:人员姓名 编号 电话 部门 性别(m/w) \n"); 
			scanf("%s %s %s %s %c",
				employeeList[i].empname,
				employeeList[i].empnum,
				employeeList[i].tele,
				employeeList[i].depart,
				&employeeList[i].sex
			); 
			//判断部门是否存在; 
			
			for(int j = 0;j<COUNTDepartment;j++){
				if(strcmp(employeeList[i].depart,departmentList[j].name)==0 || strcmp(employeeList[i].depart,"无")==0){
					flag=0; 
					break;
				}
			}
			if(flag){
				printf("该部门不存在!请先添加部门或者填‘无’\n");
			} 
		}
		printf("修改成功!\n"); 
	}
}

//罗列信息Employee
void queryAllEmployee(Employee* employeeList){
	printf("\n序号 人员姓名 编号 电话 部门 性别(m/w) \n"); 
	int i;
	int count =0;
	if(employeeList){
		for (i = 0;i < COUNTEmployee ; i++) 
		{
			printf("%-5d%-10s%-10s%-20s%-10s%-5c\n",
			i+1,
			employeeList[i].empname,
			employeeList[i].empnum,
			employeeList[i].tele,
			employeeList[i].depart,
			employeeList[i].sex); 
			count++;

		} 
		printf("\n");
	}

	printf("共%d条结果\n\n",count);
}

你可能感兴趣的:(课设-C/C++,c语言,c++,java)