设为首页 加入收藏

TOP

C++项目实战之职工管理系统(七)
2023-08-06 07:49:40 】 浏览:413
Tags:项目实 管理系
e == 1) { int id; std::cout << "请输入你要查找的员工编号: "; std::cin >> id; int result = isExist(id); if (result != -1) { std::cout << "查找成功,员工信息如下:" << std::endl; this->m_EmpArray[result]->showInfo(); } else { std::cout << "没有找到职工编号为[" << id << "]的员工" << std::endl; } } else if (choise == 2) { std::string name; std::cout << "请输入你要查找的员工姓名: "; std::cin >> name; bool flag = false; for (int i = 0; i < this->m_EmpNum; i++) { if (this->m_EmpArray[i]->m_Name == name) { std::cout << "查找成功,员工信息如下:" << std::endl; this->m_EmpArray[i]->showInfo(); flag = true; } } if (flag == false) { std::cout << "没有找到职工姓名为[" << name << "]的员工" << std::endl; } } else { std::cout << "输入有误,请重新输入" << std::endl; } system("pause"); system("cls"); }

13. 职工排序

功能描述:按照职工编号进行排序,排序的顺序由用户指定

13.1 排序函数声明

workerManager.h 中添加成员函数 void sort_Emp();

	//排序职工
	void sort_Emp();

13.2 排序函数实现

workerManager.cpp 中实现成员函数 void sort_Emp();

void WorkerManager::sort_Emp()
{
	if (this->m_FileIsEmpty)
	{
		std::cout << "文件不存在或记录为空" << std::endl;
		system("pause");
		system("cls");
	}
	else
	{
		std::cout << "请输入排序的方式:" << std::endl;
		std::cout << "1.按员工编号升序" << std::endl;
		std::cout << "2.按员工编号降序" << std::endl;
		
		int choise = 0;
		std::cin >> choise;
		
		//升序
		for (int i = 0; i < this->m_EmpNum; i++)
		{
			int Min_Or_Max = i;
			for (int j = i + 1; j < this->m_EmpNum; j++)
			{
				if (choise == 1)
				{
					//前一个大于后一个,就移动min指针
					if (this->m_EmpArray[Min_Or_Max]->m_Id > this->m_EmpArray[j]->m_Id)
					{
						Min_Or_Max = j;
					}
					//前一个小于后一个,继续往后比较
				}
				else if (choise == 2)
				{
					//前一个小于后一个,就移动max指针
					if (this->m_EmpArray[Min_Or_Max]->m_Id < this->m_EmpArray[j]->m_Id)
					{
						Min_Or_Max = j;
					}
					//前一个大于后一个,继续往后比较
				}
			}
			//一轮比较后,如果标记位置变了,交换位置
			if (Min_Or_Max != i)
			{
				Worker* tempWorker = this->m_EmpArray[i];
				this->m_EmpArray[i] = this->m_EmpArray[Min_Or_Max];
				this->m_EmpArray[Min_Or_Max] = tempWorker;
			}
		}
		this->save();
		std::cout << "排序完成,排序后的结果如下:" << std::endl;
		this->show_Emp();
	}
}

该排序算法选用 选择排序 难度不大,如果没有算法基础可以去看算法可视化动画,没有基础的人看完一般在1个小时内能够写出来大致的思路

14. 清空文件

功能描述:将文件中记录数据清空

14.1 清空函数声明

workerManager.h 中声明函数 void clean_File();

	//清空文件
	void clean_File();

14.2 清空函数实现

workerManager.cpp 中实现成员函数 void clean_File();

void WorkerManager::clean_Emp()
{
	if (this->m_FileIsEmpty)
	{
		std::cout << "文件不存在或记录为空" << std::endl;
	}
	else
	{
		std::cout << "请确认是否需要清空?" << std::endl;
		std::cout << "1.清空" << std::endl;
		std::cout << "2.返回" << std::endl;

		int choise = 0;
		std::cin >> choise;

		if (choise == 1)
		{
			std::o
首页 上一页 4 5 6 7 8 9 10 下一页 尾页 7/12/12
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇01、spdlog源码阅读——registry.. 下一篇暑假刷题记 B

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目