1、课程设计说明书 No 26工资管理系统一、 开发背景说明随着社会的进步和计算机技术的发展,特别是微型计算机的大范围普及,现在应用在大中型企业的信息管理系统中,几乎都包括了工资管理模块。有些环境中是有大型ERP软件中的一个模块引进的,有些作为企业的财务系统的一部分。 计算机处理的数据量不断增加。文件管理系统采用的一次最多存取一个记录的访问方式,以及在不同文件之间缺乏相互联系的结构,越来越不能适应管理大量数据的需要,于是数据库管理系统便应运而生。有了数据库我们便能方便快捷的对数据进行读取、存取,并维护数据库的数据。但,西方管理制度设计的工资管理软件,在很多时候还不能完成解决中国特色中小企业的问题,
2、本文介绍的毕业设计的研究工作就是要为这些具有中国特色的中小企业解决他们在工资管理方面的问题。今天,数据库管理已成为计算机信息管理的主要方式。数据库的应用非常广泛,可应用于各行各业,只要是稍复杂的数据,都可制作成数据库,交由电脑来管理。用电脑管理数据,运算速度快,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低且不易出错等,这些优点能够极大地提高工资管理的效率,也是科学化、正规化管理的重要条件,尤其是现在的中小型企业正需要这种对口的工资管理系统,并且是现行的财务管理系统所代替不了的。二、可行性分析2.1、经济上可行性开发成本要低廉。效益:大幅度地提高工资管理信息系统的工作质量和效
3、率,让企业掌握整个工资管理系统的全面情况,为管理人员提供了准确的工资管理信息,促进工资管理工作的规范化及各项管理制度与指标体系的建立和健全;提供各种加工处理了的工资管理信息,以满足工资管理的特殊要求,适应新形势对职工队伍提出的新要求。效益/投资比:暂时无法估算。投资回收期内: (1) 企业有能力承担系统开发费用。 (2) 新系统将为企业带来经济效益。管理系统是一个信息化、智能化和先进。理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。其最主要的表现就是减少了企业管理费用和人力开支。2.2、 技术可行性(1) 软件需求:操作系统WINDOWS 2000 Advance Serv
4、er以上。硬件需求:赛扬1.7G CPU、512M内存 80G硬盘的计算机。(2) 本系统采用VC+实现,依靠其强大的面向对象系统,与数据库管理系统相结合。(3) 要求掌握计算机技术,熟悉系统的功能和使用方法使系统能够顺利运行。2.3、法律可行性本系统的开发与应用不涉及侵犯专利权、侵犯版权等方面的问题。三、需求分析3.1、系统功能需求分析工资管理系统涉及到员工基本信息的录入、修改和删除,工资标准的设定、查询和结算等。典型的工资管理系统主要有以下基本功能:(1) 系统数据初始化(2) 员工基本信息的录入、修改、删除等功能(3) 工资标准的设定功能,集体包括职务工资、职称工资、其他工资标准和福利的
5、设定。(4) 工资信息的浏览(5) 员工工资信息表的创建及查询(6) 工资调整管理(7) 工资计算(8) 工资报表打印3.2、系统性能需求分析3.2.1、 需求分析总体目标需求分析的目的在于与开发人员与用户之间达成系统开发的共识,使开发人员所考虑的系统在功能(系统能做什么)、简单操作,良好界面,个人信息保密性,系统安全与稳定,良好帐户管理,友好信息返回模式(如报表及打印功能)。3.2.2、性能需求此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。但在用户使用过程中,能自行根据实际情况进行小数计算精度的设定,最大能允许保留小数点后5位的精度。在时间特性
6、上,当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间不会超过0.5秒时间。系统支持多种操作系统的运行环境,多不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互通,及共享。当服务器移植到其他的系统平台,如:Linux平台下时,同样能和其他的系统进行数据存取同步,不会出现系统之间互不兼容的情况,系统支持多系统之间的互连互通,系统有巨大的强健性。3.3、系统运行需求系统在进行数据的录入、计算、统计的时候,能将数据精确到小数点后三位小数。系统接收到用户的操作命令后(如:计算处理、查询等),能迅速的响应其操作请求,响应时间不超过1秒。在同一时间,
7、系统还提供支持至少10个客户端进行同一个操作请求的响应。系统可移植较强,在不同的平台下运行,均不会影响系统的稳定性。同时,支持在客户端安装不同操作系统、浏览器版本,均不会影响系统的运行。3.5、系统安全需求为保障系统数据的安全性,系统采用访问控制策略,未授权者不能进入系统。同时,对不同级别的用户授予不同的使用权限。在系统运行期间,如发生掉电尚未保存数据,或由于操作不当等原因导致系统重启等,为保证数据的易恢复性,系统提供每隔30秒自动保存数据的机制,让用户的数据在发生意外时能最大程度上得到恢复。同时,系统提供强大的容错性能,当一台服务器发生故障时,系统能自动切换到另外一台服务器上,从而保障服务器
8、能长时间的提供系统的运行支持。在输入数据时,如果用户输入的数据不符合系统的要求,则系统自动提示错误信息,并要求用户重新输入,直到输入完全正确时才允许进行下一步的操作。3.6、系统界面需求系统开发基于B/S的开发模式,界面直观、简洁,人机交互性强。基于表单和弹出式窗口的数据录入方式,菜单电击的方式操作。用户使用时,只要是按照格式和要求填入信息,系统在后台响应用户操作过程。让用户在最短时间里,不需要经过专门培训,就可以轻松上手使用。3.7、 其他需求数据不管是在企业内部之间传输,还是公司与分公司之间进行远程数据传输时,防止数据被不法分析任意的修改和破坏,对所有的敏感数据均进行基于SSL协议 的加密
9、操作,只有对信息解密的人员才能最终读取数据信息。这样,能 最大程度的防止数据在传输过程的安全保密性。四、总体设计缺勤籍贯4.1、系统ER图性别职务拥有满勤出勤职工管理职工编号民族工资设置管理员查询实发工资工资技能工资职工信息报表基本工资职务工资金额月份4.2系统框图系统框图五、详细设计5.1、模块分析根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。通过对用户
10、需求的分析,我们可以分析出该工资管理系统大致可以分为五个模块:登录管理模块、用户管理模块、职工管理模块、工资管理模块、查询管理模块。现在对这五个模块些说明:(1)录管理模块:用户切换,密码修改,退出系统。(2)用户管理模块:新增用户,更新用户,删除用户。(3)职工管理模块: 新增职工,更新或删除职工。(4)工资管理模块:工资信息管理,个人所得税的计算。(5)查询管理模块:工资信息查询,普通工资信息查询,高级工资查询。设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS 无关的、面向现实世界的、易如理解的数据模型,其独立于计算机的数据模型,独
11、立于计算机的软硬件系统,与用户进行交流十分方便。概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的直观的数据库结构模式。同时也是一种相对稳定统一的数据模式,一般情况下很少变动。概念性数据在用户和设计者之间建立了桥梁。是设计数据库结构的基础。概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R 模型),对具体数据进行抽象加工,将实体集合抽象成实体类型。用实体间联系反映现实世界事物间的内在联系。E-R 模型是建立概念性数据模型的有力工具。5.2系统数据库逻辑结构设计逻辑结构设计的任务是将
12、概念结构设计阶段设计的E-R 图,转化为选用所支持数据模型相符的逻辑结构,形成逻辑模型。基于关系数据模型的逻辑结构的设计一般分为三个步骤:(1)概念模型转换为关系数据模型。(2)关系模型的优化。(3)设计用户子模式书号。5.3概念模型转换为关系数据模型一般转换原则如下:(1)一个实体转换为一个表(Table),则实体的属性转换为表的列(Column),实体的码转换为表的主键(Primary Key)。(2)实体间的联系根据联系的类型,转换如下:1) 1:n 的联系: 1:n 的联系是比较普遍的联系,其转换比较直观。转换规律是在n 端的实体对应的表中增加属性,该属性是1 端实体对应表的主码。如:
13、岗位和员工的关系是1:n 的联系。2) m:n 的联系:通过引进一个新表来表达两个实体间多对多的联系,新表的主码由联系两端实体的主码组合而成,同时增加相关的联系属性。如:部门与员工的联系是n:m 联系。5.4、登陆管理模块根据系统总体结构可以得出登录管理模块实现用户登录、密码修改和退出系统三个功能。其中,退出系统实现流程很容易,只需要一行代码即可;用户登录的实现流程是用户在登录窗口输入用户名称和密码,如果没有用户名和密码可以进行注册后再登录,选择了用户角色后,单击【登录】按钮进行提交,系统开始验证用户提交的登录信息是否正确。如果正确,则打开工资管理系统,并根据用户角色赋于相应的操作权限;否则给
14、出错误信息。5.4.1、登陆管理程序流图注册账号设置密码 没有账户工资管理系统验证登录信息用户 注册结束 验证错误 跳转登陆 有账户 验证六、运行与测试6.1、登陆界面6.1.1、登录界面如下:6.1.2、修改密码模块:6.1.3、成功登录主界面:6.2、用户管理用户管理模块用于实现用户的添加、删除、更新功能。6.2.1、新增用户模块:6.2.2更新用户信息模块:6.2.3删除用户信息模块:6.3、职工管理6.3.1新增职工:6.3.2更新或删除职工信息:6.4、工资管理6.5、查询管理6.5.1职工信息查询:6.5.2工资信息查询:6.6、测试6.6.1测试内容1) 软件的正常运行、关闭及退
15、出时保存记录的提示。2) 用户登录界面友好,可操作性及安全性能较好,能对不同管理级别者进行限制,以保证数据库的安全。3) 数据库的可维护性好,数据的录入、删除及更改均能顺利完成,并能实现动态更新。4) 数据查询便捷,能对各种不同的查询条件搜索,以找到最合适的答案。5) 数据溢出、越界均能进行非法提示,以警告用户正确使用。对用户的正常操作方式也提出警告。6) 数据类型填写错误时,系统能够报错。7) 软件对操作系统的兼容性良好,可移植性完好。6.6.2、测试结果本系统有提示消息!用户更新前:更新后:更新成功!用户删除前:删除后:李四用户被删除,删除成功!录入数据: 结果如下:数据录入成功!该系统有
16、报错功能!查询职工工资信息:查询职工信息成功!6.6.3测试结果分析(1)软件在运行、关闭及退出时保存记录的提示功能基本完成,在软件的不断启动关闭过程中没有出现死机、程序执行效率降低等各种不良现象,功能的实现较为完善。(2)用户登录界面较友好,但软件界面的色彩选择、搭配上对于长期工作者而言仍然不会产生眼部不适感。可操作性及安全性能较好,能完成对不同管理级别者的限制工作,对软件涉及到的机密数据能进行良好的保护。(3)数据库的可维护性良好,数据的录入能顺利完成,并能实现动态更新,删除和修改也能顺利完成。(4) 数据查询不够全面,只能按系统设定的少数查询条件进行搜索,以找到合适的答案。(5)数据溢出
17、、越界基本不能进行非法提示,以警告用户正确使用。对用户的非正常操作方式能提出警告。(6)数据类型填写错误时,系统有报错功能,在数据输入错误时,使用者能够获知错误所在。(7) 软件兼容性有待提高,在Dreamweaver版本较低的机子上测试不断出现错误提示。七、总结随着我国成功加入WTO及信息化浪潮的日益临近,企业在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势。因此,如何使企业及时掌握本企业人才的各种信息、第一时间处理好随时变化的工资管理问题,建立一套符合企业实际的工资管理系统就显得尤为重要。在本项目的软件开发的过程中,我全面实践一个面向对象应用系统的开发过程,学习很
18、多有关的知识。这样的项目对我们学过的数据结构、程序设计、数据库、软件工程等课程是一个综合性很高的实践。一些以前没有学得很扎实的课程内容,由于需要在实践中运行,刚开始我也感到头痛。但回过头来再去看教课书,经历着一段时间的实践,对于这些知识点有关的背景,概念和解决方案理解得更透彻了,学习起来也越来越有兴趣,越来越轻松。另外我还充分体会了从事软件开发工作需要特别谨慎认真地态度和作风,一点都不能马虎。每个细微的小节都必须十分注意,如果不认真思考虑决策,就会出现或大或小的错误。如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作重来。有时候,觉得自己写的程序非常正确,但是就是
19、编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间没有一点进展。这时候,一般是自己先通过书本,手册和资料找解决办法,实在没辙才向他人请教。在开始编写程序的时候,我看到别人的软件功能非常的详细,而且界面非常漂亮,总希望自己的也可以非常的完美,但是,经过两个月的学习,发现编一个优秀软件不是一蹴而就的事情,需要长时间的积累和经验。我认清自己的能力后,特别注意在工作的过程中不贪图大而全,而是根据集资的能力制订适当的目标。在反反复复的学习和不耻下问之下,我的辛勤努力有了回报,虽然这个软件功能非常简单,在实际运
20、用中,还有些不足,涉及到的仅仅是工资管理一部分简单的内容,离实际的客户需求还有一定差距,但我仍感觉着很大的成就感。由于知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比如功能过少,界面不醒目等问题,往后还要不断的修改、完善,争取使该系统慢慢趋于完美。八、参考文献1 软件工程理论,方法与实践 孙家广 主编 高等教育出版社2 UML系统建模与分析设计课程设计 刁成嘉 刁奕等编著 机械工业出版社3 UML面向对象建模基础 徐锋 陈暄等编著 国水利水电出版社4 C+程序设计教程 钱能 著 清华大学出版社5 软件工程(第五版) 张海藩 清华大学出版社6 面向对象程序设计使用教程(第二
21、版)张海藩 牟永敏 清华大学出版社九、附录9.1、登陆界面部分核心代码设计:void CZHUCE:OnButton1() UpdateData(TRUE);if(m_username.IsEmpty()|m_password.IsEmpty()|m_password2.IsEmpty()AfxMessageBox(请将资料填写完整!);m_password2.Empty();m_password.Empty();UpdateData(FALSE);return;OnInitADOConn();if (m_password2=m_password)CString str;str.Format(
22、insert into 用户表(用户名,密码) values (%s,%s),m_username,m_password);_variant_t var;int fieldrow;try/捕捉表的主键存在重复值的异常m_pConnection-Execute(_bstr_t)str,&var,adCmdText);fieldrow=(int)V_I2(&var);catch(.)AfxMessageBox(用户名已存在,注册失败);m_username.Empty();m_password.Empty();m_password2.Empty();UpdateData(FALSE);return
23、;AfxMessageBox(注册成功,请返回登录!);m_pConnection-Close();Clogin clg;clg.DoModal();elseAfxMessageBox(两次密码输入不一样,注册失败!);m_username.Empty();m_password.Empty();m_password2.Empty();UpdateData(FALSE);return;void CZHUCE:OnInitADOConn()try/创建连接对象实例m_pConnection.CreateInstance(ADODB.Connection);/设置连接字符串Cstring strCo
24、nnect=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=salary.mdb;Persist Security Info=False;/使用Open方法连接数据库m_pConnection-Open(_bstr_t)strConnect,adModeUnknown);catch(_com_error e)AfxMessageBox(e.Description(); _RecordsetPtr& CZHUCE:GetRecordSet(_bstr_t sqlstr)tryif (m_pConnection=NULL)OnInitADOConn();m
25、_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset-Open(sqlstr,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);catch (_com_error e) e.Description();return m_pRecordset;9.2职工管理部分核心代码代码如下:void CGXZHG:OnButton2() / TODO: Add your control notification handler code hereU
26、pdateData(TRUE);if(m_Bianhao.IsEmpty()|m_Name.IsEmpty()AfxMessageBox(not null);return;OnInitADOConn();CString str;str.Format(update 职工表 set 性别=%s,年龄=%d,电话=%s,住址=%s,职位=%s,备注=%s where 职工编号=%s,m_Sex,m_Age,m_Telphone,m_Address,m_Zhiwei,m_Beizhu,m_Bianhao);m_pConnection-Execute(_bstr_t)str,NULL,adCmdText
27、);m_pConnection-Close();m_zhglist.DeleteAllItems();AddToGrid();ClearAll();void CGXZHG:OnButton1() / TODO: Add your control notification handler code hereClearAll();UpdateData(FALSE);void CGXZHG:OnButton3() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_tiaojian.IsEmpty(
28、)AfxMessageBox(请选择删除的职工!);return;OnInitADOConn();CString bstrSQL;bstrSQL.Format(delete from 职工表 where 职工编号=%s,m_tiaojian);CMAKESURE cmake;if(cmake.DoModal()!=IDOK)return ;m_pConnection-Execute(_bstr_t)bstrSQL,NULL,adCmdText);m_pConnection-Close();m_zhglist.DeleteAllItems();AddToGrid();ClearAll();Afx
29、MessageBox(删除成功!);UpdateData(FALSE);void CGXZHG:OnButton4() UpdateData(TRUE);m_type.GetWindowText(m_Type);if(m_Type.IsEmpty()AfxMessageBox(请选择查询的方式!);return;if(m_tiaojian.IsEmpty()AfxMessageBox(请输入查询的职工编号!);return;OnInitADOConn();CString sql;sql+=select * from 职工表 where ;sql+=m_Type+=+m_tiaojian+;m_
30、pConnection-Execute(_bstr_t)sql,NULL,adCmdText);m_pConnection-Close();m_zhglist.DeleteAllItems();UpdateGrid();ClearAll();UpdateData(FALSE);9.3、工资管理部分核心代码如下:void CTXGZ:OnButton2() / TODO: Add your control notification handler code hereUpdateData(TRUE);m_yuefen.SetCurSel(0);/AfxMessageBox(该编号的职工不存在,请先
31、到职工管理添加职工信息!);if(m_Bianhao.IsEmpty()|m_Jibengz=NULL|m_Yuefen.IsEmpty()AfxMessageBox(编号不允许空值,请重新填写!);ClearALL();return;OnInitADOConn();float f1=m_Jibengz+m_Jintie+m_Gangtie+m_Butie+m_Fangtie+m_Jiaotongbt;CString cstr1;cstr1.Format(%.2f,f1);m_yfsh.SetWindowText(cstr1);float f2=m_Fangzu+m_Chuxu+m_Huife
32、i;CString cstr2;cstr2.Format(%.2f,f2);m_yksh.SetWindowText(cstr2);float f4;f4=calculator(f1-f2);float f3=f1-f2-f4;CString cstr3;cstr3.Format(%.2f,f3);m_shfsh.SetWindowText(cstr3);CString cstr4;cstr4.Format(%.2f,f4);m_grsdsh.SetWindowText(cstr4);CString str;str.Format(insert into 工资表 values (%s,%s,%.
33、2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f),m_Bianhao,m_Yuefen,m_Jibengz,m_Jintie,m_Gangtie,m_Butie,m_Fangtie,m_Jiaotongbt,f1,m_Fangzu,m_Chuxu,m_Huifei,f4,f2,f3);_variant_t var;int fieldrow;try/捕捉表的主键存在重复值的异常m_pConnection-Execute(_bstr_t)str,&var,adCmdText);fieldrow=(int)V_I2(&va
34、r);catch(.)AfxMessageBox(该编号记录已存在,新增失败);ClearALL();return;m_pConnection-Close();m_gzlist.DeleteAllItems();AddToGrid();void CTXGZ:OnButton3() UpdateData(TRUE);if(m_Bianhao.IsEmpty()|m_Yuefen.IsEmpty()AfxMessageBox(请填写要更新的职工的信息!);ClearALL();return;OnInitADOConn();CString str;str.Format(update 工资表 set
35、基本工资=%.2f,月份=%s,津贴=%.2f,岗贴=%.2f,补贴=%.2f,房贴=%.2f,交通补贴=%.2f, 房租=%.2f,储蓄=%.2f,会费=%.2f where 职工编号=%s,m_Jibengz,m_Yuefen,m_Jintie,m_Gangtie,m_Butie,m_Fangtie,m_Jiaotongbt,m_Fangzu,m_Chuxu,m_Huifei,m_Bianhao);m_pConnection-Execute(_bstr_t)str,NULL,adCmdText);m_pConnection-Close();m_gzlist.DeleteAllItems()
36、;AddToGrid();ClearALL();m_yuefen.SetCurSel(0);void CTXGZ:ClearALL()m_Jibengz=NULL;m_Jintie=NULL;m_Shfsh.Empty();m_Yfsh.Empty();m_Yksh.Empty();m_Yuefen.Empty();m_Chaxun.Empty();m_Jiaotongbt=NULL;m_Huifei=NULL;m_Grsdsh.Empty();m_Fangzu=NULL;m_Fangtie=NULL;m_Chuxu=NULL;m_Bianhao=;m_Gangtie=NULL;UpdateD
37、ata(FALSE);void CTXGZ:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereint position=m_gzlist.GetSelectionMark();m_Bianhao=m_gzlist.GetItemText(position,0);m_Chaxun=m_gzlist.GetItemText(position,0);m_Yuefen=m_gzlist.GetItemText(position,1);m_Jibengz
38、=atof(m_gzlist.GetItemText(position,2);m_Jintie=atof(m_gzlist.GetItemText(position,3);m_Gangtie=atof(m_gzlist.GetItemText(position,4);m_Butie=atof(m_gzlist.GetItemText(position,5);m_Fangtie=atof(m_gzlist.GetItemText(position,6);m_Jiaotongbt=atof(m_gzlist.GetItemText(position,7);m_Yfsh=m_gzlist.GetIt
39、emText(position,8);m_Fangzu=atof(m_gzlist.GetItemText(position,9);m_Chuxu=atof(m_gzlist.GetItemText(position,10);m_Huifei=atof(m_gzlist.GetItemText(position,11);m_Grsdsh=m_gzlist.GetItemText(position,12);m_Yksh=m_gzlist.GetItemText(position,13);m_Shfsh=m_gzlist.GetItemText(position,14);UpdateData(FA
40、LSE);*pResult = 0;void CTXGZ:OnButton4() UpdateData(TRUE);if(m_Chaxun.IsEmpty()AfxMessageBox(请输入删除的职工编号!);return;OnInitADOConn();CString sql;sql.Format(delete from 工资表 where 职工编号=%s,m_Chaxun);CMAKESURE cmake;if(cmake.DoModal()!=IDOK)return ;m_pConnection-Execute(_bstr_t)sql,NULL,adCmdText);m_pConnec
41、tion-Close();m_gzlist.DeleteAllItems();AddToGrid();ClearALL();AfxMessageBox(删除成功!);m_yuefen.SetCurSel(0);UpdateData(FALSE);void CTXGZ:OnButton5() UpdateData(TRUE);if(m_Chaxun.IsEmpty()AfxMessageBox(请输入查询的职工编号!);return;OnInitADOConn();CString sql;sql.Format(select * from 工资表 where 职工编号=%s,m_Chaxun);m
42、_pConnection-Execute(_bstr_t)sql,NULL,adCmdText);m_pConnection-Close();m_gzlist.DeleteAllItems();ClearALL();m_Chaxun=m_Chaxun;m_yuefen.SetCurSel(0);UpdateData(FALSE);float CTXGZ:calculator(float a)float b=a-2000;if(b0)b=0;if(0b&b=500&b=2000&b=5000&b=20000&b=40000&b=60000&b=80000&b=100000) return b=b*45/100-15375;9.4、查询管理部分核心代码如下:void CGXGZ:OnButton1() UpdateData(TRUE);if(m_Chaxun.IsEmpty()AfxMessageBox(请输入查询的职工编号!);return;OnInitADOConn();CString sql;sql