摘要: 本案例适合刚刚学习c++语法知识但还未学习STL的朋友,用来巩固基础语法。 已发布的文章大多的内容是来源于讲义,源于转载,侵权即删 具体的课程视频来源于b站 黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 p147-p166 该案例虽说在功能上已经完全实现,但是仍存在较多的漏洞,这里 阅读全文
posted @ 2021-06-24 17:34 清水石头 阅读(137) 评论(0) 推荐(0)
摘要: 15、清空文件 功能描述:将文件中记录数据清空 15.1 清空函数声明 在workerManager.h中添加成员函数 void Clean_File(); //清空文件 void Clean_File(); 15.2 清空函数实现 在workerManager.cpp中实现员函数 void Cle 阅读全文
posted @ 2021-06-24 17:23 清水石头 阅读(111) 评论(0) 推荐(0)
摘要: 14、排序 功能描述:按照职工编号进行排序,排序的顺序由用户指定 14.1 排序函数声明 在workerManager.h中添加成员函数 void Sort_Emp(); //排序职工 void Sort_Emp(); 14.2 排序函数实现 在workerManager.cpp中实现成员函数 vo 阅读全文
posted @ 2021-06-24 17:19 清水石头 阅读(86) 评论(0) 推荐(0)
摘要: 13、查找职工 功能描述:提供两种查找职工方式,一种按照职工编号,一种按照职工姓名 13.1 查找职工函数声明 在workerManager.h中添加成员函数 void Find_Emp(); //查找职工 void Find_Emp(); 13.2 查找职工函数实现 在workerManager. 阅读全文
posted @ 2021-06-24 16:25 清水石头 阅读(139) 评论(0) 推荐(0)
摘要: 12、修改职工 功能描述:能够按照职工的编号对职工信息进行修改并保存 12.1 修改职工函数声明 在workerManager.h中添加成员函数 void Mod_Emp(); //修改职工 void Mod_Emp(); 12.2 修改职工函数实现 在workerManager.cpp中实现成员函 阅读全文
posted @ 2021-06-24 16:08 清水石头 阅读(100) 评论(0) 推荐(0)
摘要: 11、删除职工 功能描述:按照职工的编号进行删除职工操作 11.1 删除职工函数声明 在workerManager.h中添加成员函数 void Del_Emp(); //删除职工 void Del_Emp(); 11.2 职工是否存在函数声明 很多功能都需要用到根据职工是否存在来进行操作如:删除职工 阅读全文
posted @ 2021-06-24 16:02 清水石头 阅读(95) 评论(0) 推荐(0)
摘要: 10、显示职工 功能描述:显示当前所有职工信息 10.1 显示职工函数声明 在workerManager.h中添加成员函数 void Show_Emp(); //显示职工 void Show_Emp(); 10.2 显示职工函数实现 在workerManager.cpp中实现成员函数 void Sh 阅读全文
posted @ 2021-06-24 15:57 清水石头 阅读(73) 评论(0) 推荐(0)
摘要: 9、文件交互 - 读文件 功能描述:将文件中的内容读取到程序中 虽然我们实现了添加职工后保存到文件的操作,但是每次开始运行程序,并没有将文件中数据读取到程序中 而我们的程序功能中还有清空文件的需求 因此构造函数初始化数据的情况分为三种 第一次使用,文件未创建 文件存在,但是数据被用户清空 文件存在, 阅读全文
posted @ 2021-06-24 15:52 清水石头 阅读(143) 评论(0) 推荐(0)
摘要: 8、文件交互 - 写文件 功能描述:对文件进行读写 在上一个添加功能中,我们只是将所有的数据添加到了内存中,一旦程序结束就无法保存了 因此文件管理类中需要一个与文件进行交互的功能,对于文件进行读写操作 8.1 设定文件路径 首先我们将文件路径,在workerManager.h中添加宏常量,并且包含头 阅读全文
posted @ 2021-06-24 15:44 清水石头 阅读(88) 评论(0) 推荐(0)
摘要: 7、添加职工 功能描述:批量添加职工,并且保存到文件中 7.1 功能分析 分析: 用户在批量创建时,可能会创建不同种类的职工 如果想将所有不同种类的员工都放入到一个数组中,可以将所有员工的指针维护到一个数组里 如果想在程序中维护这个不定长度的数组,可以将数组创建到堆区,并利用Worker **的指针 阅读全文
posted @ 2021-06-24 15:39 清水石头 阅读(196) 评论(0) 推荐(0)
摘要: 6、创建职工类 6.1 创建职工抽象类 职工的分类为:普通员工、经理、老板 将三种职工抽象到一个类(worker)中,利用多态管理不同职工种类 职工的属性为:职工编号、职工姓名、职工所在部门编号 职工的行为为:岗位职责信息描述,获取岗位名称 头文件文件夹下 创建文件worker.h 文件并且添加如下 阅读全文
posted @ 2021-06-24 15:34 清水石头 阅读(198) 评论(0) 推荐(0)
摘要: 5、退出功能 5.1 提供功能接口 在main函数中提供分支选择,提供每个功能接口 int main() { WorkerManager wm; int choice = 0; while (true) { //展示菜单 wm.Show_Menu(); cout << "请输入您的选择:" << e 阅读全文
posted @ 2021-06-24 15:25 清水石头 阅读(77) 评论(0) 推荐(0)
摘要: 4、菜单功能 功能描述:与用户的沟通界面 4.1 添加成员函数 在管理类workerManager.h中添加成员函数 void Show_Menu(); 4.2 菜单功能实现 在管理类workerManager.cpp中实现 Show_Menu()函数 void WorkerManager::Sho 阅读全文
posted @ 2021-06-24 11:41 清水石头 阅读(80) 评论(0) 推荐(0)
摘要: 3、创建管理类 管理类负责的内容如下: 与用户的沟通菜单界面 对职工增删改查的操作 与文件的读写交互 3.1创建文件 在头文件和源文件的文件夹下分别创建workerManager.h 和 workerManager.cpp文件 3.2 头文件实现 在workerManager.h中设计管理类 代码如 阅读全文
posted @ 2021-06-24 11:34 清水石头 阅读(64) 评论(0) 推荐(0)
摘要: 2、创建项目 创建项目步骤如下: 创建新项目 添加文件 2.1 创建项目 打开vs2017后,点击 文件--〉新建--〉项目,创建新的C++项目 填写项目名称以及项目路径,点击确定 2.2 添加文件 右键源文件,进行添加文件操作 至此,项目已创建完毕 阅读全文
posted @ 2021-06-24 11:25 清水石头 阅读(63) 评论(0) 推荐(0)
摘要: 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责:完成经理交给的任务 经理职责:完成老板交给的任务,并下发任务给员工 老板职责:管理公 阅读全文
posted @ 2021-06-24 11:16 清水石头 阅读(70) 评论(0) 推荐(0)
摘要: C++中的struct对C中的struct进行了扩充,不再只是一个包含不同数据类型的数据结构 struct可包含成员函数、可继承、可实现多态 那么struct与class有什么区别呢 在C++中 struct和class唯一的区别就在于 默认的访问权限不同 struct 默认权限为公共 class 阅读全文
posted @ 2021-06-24 10:47 清水石头 阅读(277) 评论(0) 推荐(0)
摘要: 概念: 两个派生类继承同一个基类 又有某个类同时继承者两个派生类 这种继承被称为菱形继承,或者钻石继承 class Animal { public: int m_Age; }; //继承前加virtual关键字后,变为虚继承 //此时公共的父类Animal称为虚基类 class Sheep : vi 阅读全文
posted @ 2021-06-24 10:32 清水石头 阅读(114) 评论(0) 推荐(0)
摘要: 默认的拷贝构造函数仅仅是进行数据赋值,并不能为指针开辟内存空间 那么本质上就是两个指针指向同一处空间 当程序结束时,两个对象回收调用自己的析构函数,释放这块内存空间,由于两个对象要调用两次(即delete两次),就会出现错误! 所以,当类中有指针类型时,依靠默认的拷贝构造函数的方法,已经无法满足我们 阅读全文
posted @ 2021-06-24 10:19 清水石头 阅读(193) 评论(0) 推荐(0)
摘要: 构造函数和析构函数 对象的初始化和清理是两个非常重要的安全问题 一个对象或者变量没有初始状态,对其使用后果是未知 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题 c++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。 对象的初始化和清 阅读全文
posted @ 2021-06-24 10:06 清水石头 阅读(87) 评论(0) 推荐(0)