14.12 修改职工信息

2023-11-06

14.12 修改职工信息

1、按照编号修改职工信息

先声明

	//修改职工
	void mod_Emp();

再实现
就是把查到的职工删除,再在那个位置输入一个新职工。
所以跟添加职工的代码很多地方一样。

//修改职工
void WorkerManager::mod_Emp()
{
	if (this->m_FileIsEmpty)
	{
		cout << "文件不存在或记录为空!" << endl;
	}
	else
	{
		cout << "请输入修改的职工编号:";
		int id = 0;
		cin >> id;
		int index = this->isExit(id);
		if (index != -1)
		{
			//找到了
			cout << "找到了一个职工:" << endl;
			this->m_EmpArray[index]->showInfo();

			delete this->m_EmpArray[index];

			int newId = 0;
			string newName = "";
			int newDId = 0;

			while (true)
			{
				cout << "请输入新编号:";
				cin >> id;
				int index = this->isExit(id);
				if (index != -1)
				{
					cout << "该编号已被占用,请重新输入编号" << endl;
				}
				else
				{
					break;
				}
			}
			cout << "请输入新姓名:";
			cin >> newName;

			Worker* worker = NULL;
			while (true)
			{
				cout << "请输入新岗位:" << endl;;
				cout << "1、普通职工" << endl;
				cout << "2、经理" << endl;
				cout << "3、老板" << endl;
				cin >> newDId;

				switch (newDId)
				{
				case 1:
					worker = new Employee(id, newName, newDId);
					break;
				case 2:
					worker = new Manager(id, newName, newDId);
					break;
				case 3:
					worker = new Boss(id, newName, newDId);
					break;
				default:
					cout << "输入的数据有误,请重新选择" << endl;
					break;
				}
				if (worker != NULL)
				{
					break;
				}
			}
			this->m_EmpArray[index] = worker;
			cout << "修改成功!" << endl;
			this->Save();
		}
		else
		{
			cout << "修改失败,查无此人!";
		}
	}
}
2、在main里添加选择
		case 4:	//修改职工
			wm.mod_Emp();
			break;
3、测试:

先显示一下信息
在这里插入图片描述
把2号改一下
在这里插入图片描述
再显示一下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

14.12 修改职工信息 的相关文章

  • 检查空参数的最佳方法(保护子句)

    例如 您通常不希望构造函数中的参数为空 因此看到类似的内容是很正常的 if someArg null throw new ArgumentNullException nameof someArg if otherArg null throw
  • Windows 上使用 g++ 的 Makefile,链接库

    我已经厌倦了 MSVC 6 以及每个人总是告诉我它是一个蹩脚的编译器等等 所以现在我决定尝试使用 vim 加 g 和 makefile 这是我的问题 我有以下 makefile This is supposed to be a commen
  • 扫描文本文件时如何跳过行?

    我想扫描一个文件并在阅读之前跳过一行文本 我试过 fscanf pointer n struct test i j 但这个语法只是从第一行开始 我可以使用 scanf 使用以下指令跳过行 fscanf config file n n 格式字
  • 更快的算法来计算有多少数字可以被范围内的特定整数整除

    int a b c d 0 cin gt gt a gt gt b gt gt c for int i a i lt b i if i c 0 d cout lt
  • 必须打开存储才能执行此操作 - System.IO.Packaging.Package

    我正在使用 System IO Packaing Package 类来压缩文件 我的应用程序的多个实例可以同时运行 并读取和保存文件 当处理小文件时 一切似乎都很好 但是当涉及大文件时 如果应用程序的两个实例同时保存 我会收到一个异常 消息
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • 如何将pdf页面设置设置为打印属性对话框?

    大家好 我想知道如何设置 pdf 页面设置到打印属性对话框 例如 如果我的 PDF 页面设置为横向 则布局会自动显示横向而不是纵向 如果我的 PDF 页面设置为纵向 则布局会自动显示纵向 我在这个主题上做了很多研发 但没有找到任何满意的链接
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 在通过网络发送之前压缩位图

    我正在尝试通过网络发送位图屏幕截图 因此我需要在发送之前对其进行压缩 有一个库或方法可以做到这一点吗 当您将图像保存到流时 您have选择一种格式 几乎所有位图格式 bmp gif jpg png 都使用一种或多种压缩形式 因此 只需选择适
  • 用 C# 制作 Vista 风格的应用程序

    我正在运行 Windows Vista 并且希望外观看起来像常规 Vista 程序 有没有关于如何构建 Vista 风格应用程序的真正好的教程 文章 我还想学习如何使用本机代码并将其转换为 C 如this http bartdesmet n
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • 使用scanf()时如何区分整数和字符

    我只是使用该功能scanf 代码如下 scanf d a printf d a 当我输入1时 它会像我想要的那样打印1 但即使我输入 1a 它也会像以前一样打印 1 当用户输入非整数时 例如 2 3 12ab 1 a 我想向用户显示 输入整
  • 线程安全的 C++ 堆栈

    我是 C 新手 正在编写一个多线程应用程序 不同的编写者将对象推入堆栈 读者将它们从堆栈中拉出 或至少将指针推入对象 C 中是否有任何内置结构可以在不添加锁定代码等的情况下处理此问题 如果没有 那么 Boost 库呢 EDIT 你好 感谢您
  • 不要声明只读可变引用类型 - 为什么不呢?

    我一直在阅读这个问题 https stackoverflow com questions 2274412 immutable readonly reference types fxcop violation do not declare r
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • 无法通过 LINQ to Entities 使用某些功能?

    我正在尝试使用 LINQ 查询在项目上实现搜索功能 由于数据有时包含带有重音符号和其他符号的字符 因此我创建了一种方法来删除这些字符以进行搜索 这是我的代码 var addresses from a in db Addresses join
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也
  • 如何将 CSV 文件读入 .NET 数据表

    如何将 CSV 文件加载到System Data DataTable 根据CSV文件创建数据表 常规 ADO net 功能是否允许这样做 我一直在使用OleDb提供者 但是 如果您正在读取具有数值的行 但希望将它们视为文本 则会出现问题 但
  • 程序退出后,TcpListener Socket 仍处于活动状态

    当我的程序退出时 我试图停止 TCP 侦听器 我不关心套接字或任何活动客户端套接字上当前活动的任何数据 套接字清理代码本质上是 try myServer Server Shutdown SocketShutdown Both catch E

随机推荐

  • 在CUDA如何使用二维数组(**[M][N])

    总有些童鞋想知道怎么在CUDA中使用二维数组 M N 这种类型 其实这个很简单 不过你要完全弄明白 必须对指针 地址等概念非常清楚才行 写这篇博客解决下大家这个问题 1 首先讲述一下在一般C语言中如何使用二维数组 int r c int a
  • python的类相关知识总结

    下面位一段类代码块 class Car def init self make model year self make make self model model self year year self odometer reading 4
  • 语音交互有哪些优势与劣势?

    转载自公众号 谈人工智能 转载请联系授权 语音交互是指人与人 人与设备之间 通过自然语音进行信息传递的过程 人与人之间通过语音来传递信息 交流感情等等 其实就是一种最基本的人与人之间的语音交互 为什么VUI这个概念 Voice User I
  • matlab欧拉法截断误差,一阶常微分方程欧拉法与梯形公式局部截断误差与p阶精度Range.PPT...

    一阶常微分方程欧拉法与梯形公式局部截断误差与p阶精度Range 一阶常微分方程 欧拉法与梯形公式 局部截断误差与p阶精度 Range Kutta公式 常微分方程MATLAB求解 数值分析 23 例1 一阶常微分方程 求解区域 0 x 1 5
  • (译)神经网络基础(1):Logistic 回归

    点击阅读原文 翻译 huangyongye 前言 本文在翻译过程中 为了便于理解 某些句子可能和原文有一定的出入 但是整体上没有太大的改动 由于本人水平有限 翻译或者理解不对的地方 欢迎指正 不胜感激 Logistic 回归 本例子包括以下
  • ThreadPoolTaskScheduler 简单的记录

    initializeBean方法 protected Object initializeBean final String beanName final Object bean Nullable RootBeanDefinition mbd
  • 关于OkGo中由于响应码不同返回的错误提示无法获取解决方案

    使用okgo过程中发现原有的callBack无法再onError方法中返回错误信息内容 所以可以通过自定义callBack 方法来获取响应的内容 eg package com lide mygit public class MainActi
  • java怎么校验字符串为正数或者两位小数

    可以使用正则表达式来校验字符串是否为正数或两位小数 下面是一个例子 public static boolean isPositiveNumberOrTwoDecimalPlaces String str String pattern 0 9
  • 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败“常见问题的解决方案

    问题 服务器突然显示连接失败 通过端口 1433 连接到主机 localhost 的 TCP IP 连接失败 错误 Connection refused connect 请验证连接属性 并检查 SQL Server 的实例正在主机上运行 且
  • Kubernetes 基本概念

    Kubernetes 是什么 Kubernetes 是一个可移植 可扩展的开源平台 用于管理容器化的工作负载和服务 可促进声明式配 置和自动化 是谷歌保密了十几年的秘密武器Borg的开源版本 谷歌一直通过Borg系统管理着数量庞大 的应用程
  • 2023华为OD机试备考攻略 以及题库目录分值说明 考点说明

    刷题库 刷题库 刷题库 重要的事情说三遍 要刷有多种语言的实现的题库 一种语言看不懂可以换另一种语言 而且可以结合起来去重 类似下面这种的题库 华为OD机试备考攻略 以及题库目录分值说明 考点说明 blog csdn net banxia
  • copy of an AVPacket structure

    a copy of an AVPacket structure 参考 https stackoverflow com questions 12929330 create a copy of an avpacket structure ok
  • 回调函数的作用详解

    回调函数的作用 原文地址 回调函数的作用 加菲的日志 网易博客 一直不太理解回调函数的作用 下面是找到的一些关于回调函数的作用的解答 1 回调函数是一个很有用 也很重要的概念 当发生某种事件时 系统或其他函数将会自动调用你定义的一段函数 2
  • STM32的DMA输出DAC的正弦波与三角波 幅度与周期可调可调(原创篇);

    废话不多说 因为激光振镜驱动需要正弦波与三角波 为了省事 直接通过STM32F407实现DAC的DMA输出 省CPU资源 经过调试 在0 NkHZ之内都可以实现 目前采样点为500个 上数据吧 其中三角波自动生成500个数据 在初始化的时候
  • 自己的Anaconda管理多个虚拟环境,这样就可以在不同的环境下安装互不干扰的库

    项目场景 Anaconda可以安装多个虚拟解释器 每个解释器可以安装自己独有的库 从而每个解释器之间起到互不干扰的作用 这点Anaconda就非常强大了 查看Anaconda的解释环境 在电脑开始中选择Anaconda Prompt set
  • 搭建一个vue3+ts项目(超祥/必看)

    一 创建vite项目 1 在一个文件夹下通过cmd打开 输入命令 npm create vite latest 2 接着选择ts 3 创建好之后 结构目录如下 二 启动vite项目 1 安装依赖 启动项目前需要先 npm i 从上图可以发现
  • C++智能指针知识总结

    智能指针 智能指针是为了避免内存泄漏的技术 智能指针采用了RAII特性 利用对象生命周期来控制程序资源 在对象构造时获取资源 接着控制对资源的访问使之在对象的生命周期内始终保持有效 最后在对象析构的时候释放资源 借此 我们实际上把管理一份资
  • Python 四五事

    介绍 Python 相关工具 工作流程和测试框架 最后更新 2014 1 19 引言 接续着之前的文章 虽然隔得比较久 本文继续介绍以 Windows 平台为背景的 Python 开发相关的工具 希望能对你有所帮助 另外很多东西本文都是延续
  • html+css+javascript知识点总结

    一 html css 基础 1 1 Html 和 CSS 的关系 学习 web 前端开发基础技术需要掌握 HTML CSS JavaScript 语言 下面我们就来了解下这三门技术都是用来实现什么的 1 HTML 是网页内容的载体 内容就是
  • 14.12 修改职工信息

    14 12 修改职工信息 1 按照编号修改职工信息 先声明 修改职工 void mod Emp 再实现 就是把查到的职工删除 再在那个位置输入一个新职工 所以跟添加职工的代码很多地方一样 修改职工 void WorkerManager mo