
人事管理程序设计与实现报告.doc
11页班级 计科 082 学号 08125020219 姓名 秦瑞 1课程设计报告文档课程设计报告文档题目: 人事管理系统设计与实现 一.引言1.编写目的: 此报告的编写目的在于对该人事管理程序的设计思路、程序流程以 及实现方法进行详细陈述其中,具体介绍了基类的接口与实现,五个派 生类的继承关系,程序的具体流程;同时包含了在编写代码和调试程序当 中遇到的问题及解决办法 2.定义: vector 向量容器 作为数组的一个泛化推广的 vector 容器,不仅可以数组一样的元素 随机访问,还可以在容器的尾端插入新元素 vector 是一个简单,高效的容器,在尾端插入和删除元素,算法时 间复杂度为 O(1)常数阶,其他元素的插入和删除为 O(n)的线性阶, 其中 n 为容器的元素个数,vector 具有自动的内存管理功能,对于元素的 插入和删除,可动态的调整所占用的内存空间 vector 技术原理 vector 容器是一个线性结构,用 3 个指针存放向量的起始字节位置, 当前最后一个向量元素的末尾字节和整个容器所占用的内存空间的末尾字 节,3 个指针变量分别为 m_start,m_finish 和 m_end_of_storage。
3.参考资料: 孙鑫 《VC++深入详解》 ISBN:7121025302 电子工业出版社, 2006 侯俊杰 《深入浅出 MFC》ISBN:9787900614933 华中理工大学 出版社 2001 王艳平 张峥 《WINDOWS 程序设计》ISBN:9787115172327 人民邮电出版社 2008二.任务的描述1.目标: 设计并实现一个人事管理系统程序,将本学期所学习的面向对象的 思想应用于此程序中其中主要使用的有:类的继承与派生,文件的读写, 重载操作符,虚函数的使用,定义和使用命名空间,ADT 的实现 2.功能描述: 本程序实现了最基本的人事管理程序的功能 分为五个子系统,分别是部门经理管理子系统、销售经理管理子系 统、生产经理管理子系统、生产线员工管理子系统、办公室员工管理子系 统每一个子系统均可实现数据的录入和显示,数据内容包括姓名班级 计科 082 学号 08125020219 姓名 秦瑞 2(string 型) 、性别(char 型) 、出生日期(int 型) 、基本工资(float 型) 和奖金(float 型) ;每个管理子系统还包括各自特有的数据,其中部门经 理管理子系统包含剩余休假时间(int 型) ,销售经理管理子系统包含销售 量(int 型) 、生产经理管理子系统包含负责产品类型(string 型) 、生产线 员工管理子系统包含合同到期时间(string 型) 、办公室员工管理子系统包 含迟到次数(int 型) 。
3.运行环境: 硬件:装有 Windows 操作系统的计算机 软件:Microsoft Visual Studio 2005 或更高版本 三.任务设计1.程序流程图班级 计科 082 学号 08125020219 姓名 秦瑞 3mai()sub_main()Greeting()Menu()Load()Menu_Director Manager()Menu_Sales Manager()Menu_Frontline Manager()Menu_Manufact uringWorker()Menu_Office Worker()Case1:依次 对应类的变 量set函 数 Case2:将 容器中的对 象数据依次 输出给用 户 Case3:返 回 sub_menu()save()sub_menu()End()sub_menu()sub_menu()sub_menu()sub_menu()结束Case1:依次 对应类的变 量set函 数 Case2:将 容器中的对 象数据依次 输出给用 户 Case3:返 回 sub_menu()Case1:依次 对应类的变 量set函 数。
Case2:将 容器中的对 象数据依次 输出给用 户 Case3:返 回 sub_menu()Case1:依次 对应类的变 量set函 数 Case2:将 容器中的对 象数据依次 输出给用 户 Case3:返 回 sub_menu()Case1:依次 对应类的变 量set函 数 Case2:将 容器中的对 象数据依次 输出给用 户 Case3:返 回 sub_menu()开始1.类的划分: 本系统中共有一个基类和五个派生类 本人负责 Staff_base 类和 DirectorManager 类代码的编写 (1) Staff_base 类(基类): 功能说明: Staff_base 类是基类,成员函数以及数据成员都是为五个子类所 共同需要的 成员函数功能说明: ifstream friend ofstream 2 vector v(10); //创建一个具有 10 个元素的 vector 对象,每个元素默认值 为 0.0 3 vector v(10,9.3); //创建一个具有 10 个元素的 vector 对象,每个元素默认 值为 9.3 4 vector v1(5,'k');vector v2(v1); 初始化赋值初始化赋值 vector 提供 push_back 函数,常用来进行 vector 容器的初始化,push_back 函数在容 器的尾端插入新元素 元素的遍历访问元素的遍历访问 vector 的元素可采用数组或者迭代器的访问进行遍历访问 #include #include int main() {using namespace std;vector v;v.push_back(20);v.push_back(26);v.push_back(39);for(int i=0;i #include int main() {using namespace std;vector v;v.push_back(20);v.push_back(26);v.push_back(39);vector::iterator i,iend;iend = v.end();int j;for(i = v.begin(),j = 0;i != iend;i++,j++){cout #include int main {using namespace std;vector v;v.push_back(6);v.push_back(7);v.push_back(8);v.push_back(10);v.insert(v.begin()+3,9); //在元素 10 的前面插入 9v.insert(v.begin(),5); //插入 5 为首元素v.insert(v.end(),11); //插入 11 为末元素for(int i = 0;i int main() {char c = 0;std::ifstream file(“test.txt“);if (!file){std::cout int main() {char c = 0;std::ifstream file(“test.txt“);if (!file){std::cout >”的过程,以除去文件末尾的换行。
(2)问题 2:问题描述: 在程序运行结束时,未将数据保存至文件,直接结束程序解决办法: 通过设置断点进行调试,发现 int save( )并没有被调用原因是,在“6 退出程序”这个 case 下,调用 int end( )之后,直接使用 exit(0)结束整个程序并不会调用在 int sub_menu( ) 内的 int Menu( )下一条 语句 int save( )可以将 int save( )函数直接添加在“6 退出程序”这班级 计科 082 学号 08125020219 姓名 秦瑞 11个 case 中,以确保结束程序前,将所有数据保存至文件 (3)问题 3: 问题描述: ofstream out_file; …… out_fileSM.close(); ofstream out_file; …… out_fileSM.close(); 调试报错 解决办法: ofstream out_fileDM; ofstream out_fileFM; ofstream out_fileMW; ofstream out_fileOW; ofstream out_fileSM;依次声明。
六、感想认识本次课程设计历时两周,完成一个人事管理程序的基本框架通 过代码的编写,加深了对于面向对象思想的认识,尤其是对于函数的继 承与派生、文件的读写有了全面的了解,也第一次尝试了重载操作符 在程序的调试过程中,使用了断点调试, “go to define”等调试工具,提 高了自己对 Visual Studio 操作的熟练程度由于类的使用,使得本程序 在后续完善方面非常方便可以从极端数据处理,功能添加等方面对程 序加以提高 本次课程设计是一学期所学知识的回顾与提升,让我充分意识到只 有亲自动手才能将书本知识转变为自己的知识。





![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)






