C课程设计职工工资管理系统报告内含程序完整清单

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

目录 (i)

1概述 (1)

1.1程序的基本功能 (1)

1.2其它功能 (1)

1.3扩展功能 (1)

2课题的分析 (2)

2.1会员登入系统模块即SYSTEMHEAD静态全局函数模块 (2)

2.2查询功能模块即SEARCH函数模块 (2)

2.3职务信息匹配及处理模块即SYSTEMBODY静态全局函数模块模块4 (2)

2.4循环控制模块即WHILE(1)模块 (2)

3详细设计 (3)

3.1类声明 (3)

3.2系统简略流程图 (4)

3.3会员登入系统模块即SYSTEMHEAD静态全局函数模块 (5)

3.4查询功能模块即SEARCH函数模块 (6)

3.5职务信息匹配及处理模块即SYSTEMBODY静态全局函数模块 (7)

3.6循环控制模块即WHILE(1)模块 (7)

4课程设计总结 (8)

4.1完成情况 (8)

4.2遇到的问题及解决 (8)

参考文献 (10)

附录 (11)

1 概述

本课程设计是《面向对象程序设计》课程的后继教学环节,学好C++语言就必须坚持用面向对象的思维方式分析问题、解决问题,最好的方法是仿照教材编写C++实际应用程序。

此次课程设计的题目及要求:实现一个简单的工资管理系统。

1.1 程序的基本功能

系统的主要功能是计算职工当月工资并存档。公司内有5种不同类型的职工:技术人员、销售人员、文秘、技术经理和销售经理,他们的工资计算方式各不相同。

1.2 其它功能

将工资信息存入salary.txt文件中,工资信息包含雇员编号、姓名、职务、月份、月收入。

Info.txt文件中只存留一些信息及会员最后进入系统时输入的数据,最多含有编号、姓名、职务、月份的信息。

1.3 扩展功能

采用了会员制度,并将登入信息及编号、密码存入number.txt文件中。

2 课题的分析

通过对课题的深入分析,我将这个课题分为以下几个模块,深入详细得剖析它们。

2.1 会员登入系统模块即systemhead静态全局函数模块

程序运行后,先进行会员选择判断。为减少会员重新注册,通过输入两次编号及密码,增加繁琐度。同时在一定的方面上,又方便忘记密码的会员。通过密

码匹配,雇员的工资信息这一隐私得到了很好的保障。

2.2 查询功能模块即search函数模块

首先,从info.txt中提取编号,与salary.txt中的编号进行匹配,匹配成功,输出工资信息,直到文件!indata.eof()==0。.

2.3 职务信息匹配及处理模块即systembody静态全局函数模块模块4

从info.txt中提取职务信息,用switch语句进行匹配,据匹配情况调用不同的函数进行输入、处理、显示并以增加方式记录到salary.txt中。

2.4 循环控制模块即while(1)模块

为了更加方便使用,尽量改善系统,实现search函数及systembody函数功能,在search函数及systembody函数模块的基础上加了一些必要的语句,并增加了

外层循环控制。

3 详细设计

作为一个面向对象程序设计,我们不得不先从类的声明开始设计,而后是一个整体的流程图做框架。最后在从小的模块结构着手。

3.1

3.2 系统简略流程图

图3.2 职工工资管理系统简略流程图

3.3 会员登入系统模块即systemhead静态全局函数模块

3.4 查询功能模块即search函数模块

3.5 职务信息匹配及处理模块即systembody静态全局函数模块

3.6 循环控制模块即while(1)模块

图3.6循环控制模块即while(1)模块

4 课程设计总结

4.1 完成情况

本次面向对象课程设计的所有功能基本完成,并且扩展功能也成功的实现!

可执行文件能正常执行指令并运行!

4.2 遇到的问题及解决

图4.2.1错误

[Error] C:\Users\权\Desktop\main.o(.data$_vt$8Employee+0xc):main.cpp: undefined reference to `Employee::countSalary(void)'

错误:没有定义Employee类中的countSalary函数!

改正:将原先的“virtual void countSalary();”改为” virtual void countSalary(){}”

图4.2.2错误

错误分析:(会员板块中)提示:“数字1表示是!其他键表示否!”,但定义的选择变量为整型。加上我当时输入字符p。

改正:“其他键表示否!”改为”数字0表示否”。输入时按提示进行输入即可!

图4.2.3错误

调试分析:错误发生在systemhead静态全局函数内的文件输入循环模块中!

改正:将以nocreate方式即” ifstream indata("d:\\number.txt",ios::nocreate); “该为默认打开方式即“ifstream indata("d:\\number.txt");”。

图4.2.4错误

调试分析:错误发生在调用systembody静态全局函数前后的while循环模块中,很有可能是数据存取混乱造成的。

改正:systemhead静态全局函数内“ofstream outdata("d:\\info.txt",ios::trunc);”改为先清后在以默认方式输入!且将存取整型编号的变量类型从字符型改为整型。

图4.2.5错误

错误:后面莫名其妙的跟着一个提示语句指令。

分析调试:当语句指令是基类info函数内的语句,很有可能是循环控制出现了一些问题。改正:见程序源代码!

相关文档
最新文档