小型公司的工资管理系统._第1页
小型公司的工资管理系统._第2页
小型公司的工资管理系统._第3页
小型公司的工资管理系统._第4页
小型公司的工资管理系统._第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中国石油大学(华东)信息与控制工程学院程序设计实习报告小型公司工资管理系统的设计专业班级:电子信息工程学 号:姓 名:指导教师:时 间: 2013.7.12013.7.62013年7月目录一、实习内容 1二、设计思路 2三、程序调试过程中典型问题及解决方法 4四、运行结果 5五、程序使用说明 12六、 心得体会及课程改进设想 12备注:页码根据目录的实际页码进行标注一、实习内容1.1、课程设计的目的此次课程设计的目的是以程序设计语言(C/C+)为基础,针对具有一定 难度的综合性题目,进行分析、编程、调试和运行,进一步掌握面向对象和面向 过程程序设计的基本方法和编程技巧,巩固所学理论知识,使理论

2、与实践相结合, 提高分析问题、解决问题的能力。通过设计一个简单的小型公司工资管理系统,进一步熟悉C+中类的概 念、类的封装、继承和多态的实现方式。了解系统开发的需要分析,类层次设计, 模块分析,编码测试,模块组装与整体调试的全过程,逐步熟悉程序设计的方法, 并养成良好的编程习惯。1.2、设计题目及要求1题目:小型公司工资关系系统设计2设计说明与要求(1) 公司主要有4类人员:经理、技术员、销售员、销售经理。要求储存 这些人的职工号姓名、月工资、年龄、性别等信息。(2) 工资的计算方法A、经理:固定月薪为8000元;B、技术员:工作时间X小时工资(100元每小时);C、销售员:销售额X 4%提成

3、;D、销售经理:底薪(5000元)+所辖部门销售额总额X 0.5%;(3) 类的层次结构大体如下:(4) 输入员工基本数据,要求每类人员不能少于4人,员工信息输出格式参考运行效果(5)实现功能应用程序中要有菜单,用于选择各种功能,其中 数据输入:输入各种数据; 数据统计:统计各种销售经理下属销售员的销售额及限售额之和;销 售经理按工资进行的冒泡排序; 数据打印:打印各类员工的数据信息; 数据备份:把各类员工的数据星系写入文件中保存; 推出本系统;(6)菜单说明 数据录入指通过键盘输入各类员工的各项数据; 数据统计指统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行冒泡法排序; 数

4、据打印指按照表格的格式在屏幕上输出个员工的信息; 数据备份指将所有员工的信息保存到文件; 退出:结束程序的运行。(7)注意一个销售经理管辖多个销售员。(8) 其他功能可以自己扩充(扩充的功能若比较合理可适当加分)。(9) 要求在控制台下完成(显示内容都在黑屏下显示)o二、设计思路1、程序应实现的功能,有数据输入,数据统计,数据打印,数据备份和退出系 统5个。2、 考虑各种数据类型还有所需的C+内的函数,要引用iostream vstri ng vfstream iomanip这四个头文件。viomanip用其setw (n)设置其后输出数据 的宽度为n位,便于表格的制作。fstream用于数据

5、备份,使用时,先用ofstream outfile(即定义 ofstream 类对象 outfile)。3、outfile.open(”小型公司工资管理系统.txt,ios: : out);打开磁盘流文件,并且 对备份文件进行命名,同时确定存储位置。4、 首先定义一个 employee 的雇员基类,然后得至Utech nician、man age、seller三个分别为技术员类,经理类,销售员类的派生类,再由man ager派生出销售经理类salesmanager每个类中的数据成员都是protected型的,成员函数都是public 型的,所有的继承都是公有继承,基类中定义有数据输入函数,各派

6、生类中有由 基类继承过来的不同的数据输入函数。5、然后定义各功能的函数,如f1()、f2()、beg in ()等。4、数据统计、打印以及备份都以表格形式输出。表格通过制表符进行设计。表头表中表尾还有分隔符均单独定义成void型的函数。女口: void begin()cout |1111n endl;coutvv |职工号 丨 姓名 丨 性别 丨 年龄 丨 工资 丨e ndl;void middle()cout |1111T endl;。6因为类中成员都是保护类型的,所以要定义属于各类的返回成员值的函数,如rshuyu ()、rnum ()等,在后面统计、打印时会用到。7、在进行销售经理的数据

7、输出时,考虑其与销售员之间所属关系,定义全局数组double wagen4单独存放销售经理的工资,排序时通过if语句先判断所属关系,再进行冒泡法排序,这是要用到双重循环。8、main 函数里定义了四个对象数组,technician tn 1、manager mn2 seller sn3、 salesmanager man4其中n1、n2、n3、n4都是全局常变量,分别代表技术员、 经理、销售员、销售经理的人数,便于程序修改。9、 整个程序由主函数的一个for循环控制,根据输入的操作选项通过一个 switch 语句判断该进行什么操作,每一个case后面对应一个函数,每个函数对应一个 操作,1对应

8、数据输入,2对应数据统计,3对应数据打印,4对应数据备份,5 对应退出系统。10、 case 中调用四个带参数的函数 f3(t,m,s,ma)、statistics(t,m, s,ma)、 print(t, m, s, ma)、beifen(t, m, s, ma)。四个函数均用了四个循环语句分别进行输入、统计、打印、备份。如输入中的一个:for(i=0;i n1;i+)ti.i nput();in put()这类函数在各个类中定义,并且同名,这样能简化程序。三、程序调试过程中典型问题及解决方法1、第一天和第二天是完成总体设计及数据输入功能及调试。共有三个问题需要 注意:第一是,成员函数要设计

9、成protected。第二,销售经理是经理的派生类, 而不是雇员类的派生,要注意。第三,f 3(tech nician t,ma nager m,seller s,salesma nager ma)是一个带有参数的函数,后面调用时也要给参数,女口 f3(t,m,s,ma)。2、第三天要求完成数据统计及排序功能。这次问题比较多:第一,要在基类及派生类中加入具有返回值的函数,如返回姓名、性别等,数据打印的时候也会用到。第二,计算销售经理的工资时要先找到与其对应的销售员才可计算,还有, 销售经理的工资要求用冒泡法进行排序,也要熟练掌握冒泡法。第三,intmoney4=0,0,0,0是对四个经理所对应

10、的总销售额惊醒初始化为0,若不进行初始化,得到的是随机值。要用 setw( n)控制宽度,使表格对齐。3、第四天完成程序输出显示及退出系统等操作,退出系统之前还要进行数据备份。ofstream outfile;和outfile.open(”小型公司工资管理系统.txt,ios:out);两句是完成备份的 关键,第一句是定义ofstream类对象outfile ,第二句是打开磁盘流文件。备份时不能用cout,要用outfile,才能将文件备份成功。因为循环设定的次数为100 次,所以判断玩是否退出系统后,如果是退出系统,要用exit(0)结束。4、总体的问题就是要注意符号的运用,不要把分好达成冒

11、号,也不要漏加大括号,做到各方面的细心,才可以变出最好的程序。四、运行结果经理的编号;203 套症名 el 性别 s w 年齡;23经晅的编号204 套姓名:e2 性别 Cn/w? : pi 年亂34Ei013 3:9-号an0*扁h劭Z的人员名5 额管贝名5 额笹贝名5 . 隹理别龄空圈坯别龄隹别龄401二W7W 2/ 300理 tllpnlW4 KH 扁 a : ;隹隔;知35编03勺3401冒密售经理的编号: 盲囚的编号血4 姓名:waj2 别 5iAj= hi热26 售额:80000厲f胃经理的编号 肯贝的编号:阴5 占土 Tti : rl 别Cn/u * w瓠23 售额:56000销

12、售经理的编号4024024034034044041=14914Q2403404Ei/ 3W 55/3号编07I彷30 Jp :胸理号7KH 扁 号R扁 :的ZW45各5 .额gpo;名5 :额spc;名5 :额销 .别龄住臺显别龄隹皐显别龄号 编88 击的3 0- IKUJ 邮理号鶴(5KH 扁15-4 z ;隹隔:ZW售经理的编号| 姓名j SIU1 别5/制;w36 肓经理的编号! 娃名;liu 别5人J人7 亂29 曹经理的编号; 堆名:zliou 别 C(i/w * u 检34 售经理的编号: 名;aheng : r:45小型公司管理系统*六股辛尊為権鈿里仙下属销售员的业绩为:只工号为

13、4血销售经理丄讪下属销售员的业绩为:职工号销售额I303want60300304wan280000销售额总计140000只工号为4盟销售经理胡阿下属销售员的业绩为:职工号姓名销售额30556000306d67000销售额总计123000职工号为钮4销售经理功芒凹下属销售员的业绩为:职工号姓名性别年龄工资402liu403zllDU401sun404zheng293457005615552854S3小型公司管理系JailJhlJHr- - hec-bEi- 窃窃0 车车车车车 作回回回回回 操按套校挨 需:所I*nd f frv ftfr就入计畧统退12 3 4 5讎評青况-览表如下职工号姓名性

14、别年龄工资10127102wanglfl275800103qlw233400104q2tn233500经理职工号姓名性别年龄工资201hang2348000202m368000203el238000204e2n348000销售经理职工号姓名性别年龄工资402liu1J295700403zhou345615401ww365520484?hen|fl4S54吕0艄售员职工号姓名性别年龄工资所属部门经理编号3B1zhan3m282000401302wanw鮭2160401303ManiW352400402394uan2m麵3200402385rlVJi232240403306p2VTl4$26804

15、03397r3R35180040445W1800434小型公司管理系统*E小型公同工赛管餐系编tn -记事本文件址1编辑 格式 查看 帮助Q0 舉霜 本情况_览表如下职工号姓名性别年龄工资1B1zhanglw275600102uanglm275800103qi训233400104q2m233SOO经理职工号姓名惕g年龄工资201zhang2348 0002 02uang2m36eeoe2 03e!Ul238 080204e2m348 080销售经理职工号姓名性别年龄工资402LiuUf295700403zhouu3U5615*nsunw36404zhengm销售员职工号姓名性别年龄工资所属部门

16、经理编号361zhangSm282 0QS401302u3?21601101303wan1w3530Uvan2in2632004 B2r1w232240H03306m晒26801103307r3m3518003SSUSu3418004QU五、程序使用说明1、看到菜单后,屏幕上有提示“请选择一个操作:”用户首先输入1进行数据输 入;2、输入1后,会逐项显示所要输入的成员信息,按顺序输入即可;3、数据输入完以后,会返回菜单由用户重新选择其他操作,包括数据统计,数 据打印和数据备份,最后还有退出系统的选项;4、如果输入2,则进行数据统计,会在屏幕显示各个销售经理下属销售员的业绩,还有对销售经理按工资

17、从高到低进行排序;5、如果输入3,则进行数据打印,屏幕会显示各类成员的基本信息,包括编号、 姓名、性别、年龄、工资,销售员的还有其所属部门经理的编号;6如果输入4,则进行数据备份,将打印出来的信息备份到系统指定的文件夹 中;7、输入5就是退出系统,退出前可以循环操作,但有一定的次数限制,最好不 要超过100次,一般情况够用;8、由于人数固定,所以数据输入时只能输入确定人数的信息,四名技术员,四 名经理,八名销售员,四名销售经理;六、心得体会及课程改进设想通过对小型公司工资管理系统的 C+程序编写,加强了我对C+功能的了解, 对象与类之间关系的理解,同时也提高了上机实践能力,自主学习能力,错误分

18、 析能力从实习前开始对实习进行构思,如老师所言,要全局考虑,而我也正因为编 写前考虑不周全,在定义完类以后,很快把输入数据的函数编写出来了, 上机操 作也很成功。可是到统计部分还有打印和备份部分就开始发现原写的程序有许多 地方需要改动,或者增添新的成员或函数,比如统计数据时需要计算销售经理的 工资并且排序,这就需要定义新的数组,新的函数来判断哪些销售员属于哪位销 售经理,并按其工资从高到低排序。还有打印数据时需要计算各类对象的工资, 就得回头重新定义一些成员函数,而且由于成员都是保护类型的,类外不能直接 访问,所以需要在类中定义具有返回类中各数据功能的函数。这些都是数据输入时没有考虑到的。所以

19、说,全局统筹规划,有缜密的构思很重要。当然,快速接受新事物的能 力也是必备的,因为备份数据在课堂上未曾提及,就得自己通过网络查找相关信 息,百度后才知道要添加fstream这个头文件,用outfile 来进行数据备份, 并用outfile.open( “”,ios:out) 打开磁盘流文件。还有如果需要退出系统, 除了我用break跳出循环的方法外,也可以用exit(O)函数退出,只需增加一个 stblib.h头文件。这些知识都是自己查找相关信息分析才知道的,所以自学能力也很重要。再者,由于程序编写过程中出现错误是常有的事,那么,分析错误的能力也就需要慢慢提高,因为错误提示都是英文,所以学好英语也很有必要。错误往往 是粗心或者语法不对,比如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论