本帖最后由 田帅 于 2017-7-12 09:01 编辑
1、 设计该程序的目的 通过对该工资发放系统的设计可以对C++的各个知识点进行有效的复习总结。
2、 该程序的功能 此工资发放系统的功能是对不同员工的信息进行有效的存储,用户可以对员工的信息进行添加,删除,查找等简单操作。
3、 此项目用到的知识点 (1) 封装性 该程序将定薪雇员,佣金雇员,钟点雇员,定薪佣金雇员分别封装成不同的类,类中有该类的属性和方法,属性(各个雇员的姓名,ID,年龄),方法(对属性的获取以及设置)。 数据库的封装:数据库的方法有:对数据的提取,插入,删除。 链表以及节点的封装:在对节点进行封装时,采用了类模板以及函数模板,使其使用更广泛,对链表封装方法主要是对节点的插入,删除,遍历,销毁。 (2) 继承性 此程序的继承性主要运用在不同雇员的继承关系上,定薪佣金雇员分别继承了用佣金雇员和定薪雇员,而定薪雇员,佣金雇员,钟点雇员同时继承了Person类,由于是多路径继承,所以将Person类设为虚基类。
(3) 多态性 此性质主要体现在运行多态,此程序将Person类中的方法display()设计为虚函数以及setSalary()设计为纯虚函数,所以Person类为抽象类,不能实例化。通过调用不同派生类的同名函数来表现出不同的行为。另外节点类模板的设计体现出了模板多态。
(4) 数据库的设计 为了存储员工的信息以便在程序关闭之后不丢失,程序加入了Sqlite数据库,此数据库可以对员工的信息进行存储,显示,删除,查找。 添加数据库的过程:1.建立数据库 2.打开数据库 3.创建表 4.添加记录 5.选择记录 6.关闭数据库。3~5通过sqlite3_exec()函数以及sql语句来实现。在对记录选择时需要用到回调函数来对数据库数据进行访问。
(5) 异质链表实现 异质链表主要将Person类的派生类的对象的指针动态类型转换为Person类的指针来插入到链表中,使链表可以存放不同员工类型的对象。 (6) 标准输入输出库 程序使用标准输入输出流使用户与程序进行交互,以及文件的输出对员工信息保存。
|