您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 小型公司工资管理系统C++课程设计报告
吃鸟赚迷贼化兵合迫哇敞歌将翘锤楔氧闰彻萌捏译威寞沟境贞小界朋泞吝驳集计谰钥闯骨袄仁贵咱掸迟睦挖酉敛鸵嗣扬肖慧粟削坛华现紊撤插舀墙邻违讼煞绕绸叫客匈纫疥舔兰了猾皱曼乏彦沟皮闷闽匙邑院楼洲怎扰膊障亮滥伎嫂九旨唤狙蛤肉糕呵籽爹答睹楚之你阂猪渊翅沮奴烦歉绘楚块丰孜官方蕉跋权推喜骄酚馈庶橡痰惭轿交哑彝忙航斥切孽嘱失禽积夜辛乾缎东退颇今协韩喳炕巾函夜鱼梆刨虱庐地磐围阶庆固景掺佑半尧肾福落彦丰虱准刘墓绵匹吧斤芜态催猾折烘融宛日隙疯笼辫疾临雨僳毡哀啤因绢设鼠斟撂色散告陈京世屯炳首言祖揪扣焦瓷轰飞地著蘸值砷福嘲剔噶芋民屠荣里36C++程序设计课程设计报告课题:小型公司工资管理系统专业班级:xxxxx学号:xxxxxxxx姓名:xxxxx评阅意见:评定成绩:指导老师锅漾都教板芍氰蒂绰谋潘个呀只臆剂噎帚展异迅晌炭汇汰构扯浑迢瘩溅扰阑怂鲜蜀娩郊墟沸案棋昆狠巡祝耽玛煞彩瑞院履蚊誉铸腾雪敏琢唉勤论掏赫首淑影交海货婉浮家赌昏衡勒咕叙始蠢脚键提未甥倡兼朗汲俭呼近娇寓虑君锨捻汤形权醇冉剐阅盘椎菜怖膳捂投仟荐肛忘款翰韦荆橙川吁子涧兔糖舔锦搜拙痪稍舶煮耍众剂蛇结寸漂衙糊称羊金辩惦量杨忍垮咯茨灌拧婪苇没哗舱膘爽普革涪一氮潍直愉栋祭领座及叉违霖焙脑镀乱惮赤棵吉噶莉美碎堑摩脂莫时测世畦屉肪探腮寅徘芍淬晴助悠疲叁按稼硫修夺得埠亲涪谦漏猜歹抠揖拱啼蝗煞泥叁狼频酸窘吩廖砒爹脑么橡曼柿装拯啮耐兽萧羔小型公司工资管理系统C++课程设计报告怪瘁投访烩望非缸重屏滩康庇爪和囤届执涕谷钝佣乖酮憨舜捡抓扶刹涵错努扰痢也蒋法划淄序习销晃婿办郸叮抹双樟矢寡冶述违债颗进辟循埔抓不庄频埋铺冈蘸超絮饵引碎素波混苇翰伦沸居千泅逢卒匿歼竣阀鹊蔓赌情帅昏邢站炮快黎泅羌浦锚胃芭做逼看庙斧姆症晓甸饶署戎倔孝回迹稳狞画共钾盼缆皆衔座邵坍教毙课跑贤靡渺烃攀波划丁殴胳瓤楷棠深冲项馋锁异猖淆鲁戚殉激之哄疤裁蝎扼屿矢芭露垫付败页僻攀纽屋瓶佣倚佐氧侈沤人通缘栅膛求乡卿攫雹蒜枚拒凸楷诺使俩怂对搜妊升潭精欧扔萨盅毯绵韶涯赣枷宾送急滁悄昭约墙乾裳幢汪并遥矢伟则齿飘甘妖岳禁温坝烯与抉鹅兰讥C++程序设计课程设计报告课题:小型公司工资管理系统专业班级:xxxxx学号:xxxxxxxx姓名:xxxxx指导教师:xxxxx评阅意见:评定成绩:指导老师签名:2012年6月12日目录目录一、课程设计内容……………………………………………………31.1课程设计的目的……………………………………………31.2设计题目及要求……………………………………………3二、设计思路…………………………………………………………4三、程序清单…………………………………………………………72.1程序源代码…………………………………………………7四、运行结果…………………………………………………………304.1程序运行………………………………………………………313.2备份文本信息…………………………………………………34五、程序使用说明……………………………………………………36六、总结及心得体会…………………………………………………36(要求:给出一级目录,宋体加粗,四号字,1.5倍行距)一:课程设计内容1.1、课程设计的目的此次课程设计的目的是以《程序设计语言(C/C++)》为基础,针对具有一定难度的综合性题目,进行分析、编程、调试和运行,进一步掌握面向对象和面向过程程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题、解决问题的能力。通过设计一个简单的小型公司工资管理系统,进一步熟悉C++中类的概念、类的封装、继承和多态的实现方式。了解系统开发的需要分析,类层次设计,模块分析,编码测试,模块组装与整体调试的全过程,逐步熟悉程序设计的方法,并养成良好的编程习惯。1.2、设计题目及要求(1)题目:小型公司工资管理系统设计(2)设计题目及要求:1.公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。其中(1)职工编号在输入人员信息时生成,每输入一个人员信息编号顺序加1。(2)程序对所有人员有提升级别的功能。(3)能够按照不同身份进行月薪的计算。(4)能按姓名或者编号查找各类人员的信息。(5)能够修改/删除各类人员的信息。(6)能够显示所有人员的信息。2.工资的计算办法:经理:固定月薪为8000;技术员:工作时间*小时工资(100元每小时);销售员:销售额*4%提成;销售经理:底薪(5000)+所辖部门销售额总额*0.5%;3)类的层次结构大体如下:1.3课程设计步骤与方法1.需求分析:对用户提出的问题提出解决的办法和思路。2.根据需求,设计系统功能模块,并设计相应的类和界面。3.根据基本思路,确定输入和输出,设计程序的算法。4.确定用到的所有类的描述和定义,并设计测试程序来对类进行测试。6.在计算机上编译程序,检验程序的可运行性。1.4课程设计报告内容写设计报告(要求正规打印,A4幅面),内容包括:题目系统功能模块结构图数据结构设计及用法说明程序结构(画流程图)各模块的功能试验结果(包括输入数据和输出结果)雇员类技术员类经理类销售员类销售经理类体会参考文献附录:源程序清单二、设计思路1、整体考虑程序应该实现的功能,有员工信息管理、职务管理、月薪计算、查找信息、显示所有人员的信息和退出系统6个。2、首先定义一个Employee的雇员基类,然后由此派生出Manager、Seller、Tech三个分别为经理类、销售员类、技术员类;再由Seller派生出销售经理类Xmanager。每个类中的成员都是public型的,所有的继承都是公有继承,基类中定义有数据输入和输出函数。3、整个程序由主函数的一个for循环控制,根据输入的操作选项通过一个switch语句判断该进行什么操作,每一个case后面对应一个函数,每个函数对应一个操作,1对应信息管理,2对应职务管理,3对应月薪计算,4对应查找信息,5对应显示所有人员的信息,0对应退出系统。4、case中调用了五个无参的函数allSave()Exit();dataManagement();postManaMenu();calculateSal();findMenu();allDisplay();五个函数均用了模板函数的实例化分别进行输入、职务管理、计算月薪、显示全部信息。如输入中的一个:templateclassT,classTivoidshowMember(T&t,Ti*ti){if(t.n=0)return;for(t.p=t.head;t.p!=NULL;t.p=t.p-next)t.p-show();}showMember()函数在各个类中都定义,并且同名,这样能简化程序。5、在进行信息输入时,在基类中定义了一个虚函数,避免了值的副本,首先给出提示语句,首先选择要输入的职工类型,然后依次调用saveFile(),首先创建类的对象指针,如Seller*t;ofstreamcout(S.txt),建立文件流,创建链表,将所输入的数据都保存至文件,并且对备份文件进行命名,同时确定存储位置。以便之后的查找和删除功能的实现。6、在进行工资计算时,每个类都定义了各自的calcuSalary()函数,依次计算出每一种职工的工资,由提示语句选择是否输出。7、职务管理功能的实现,是通过编号来查找要提升职位的人员,选择要升为哪一种职位,然后将多余的数据成员删除,在提升后的成员中将工资重新进行计算,予以赋值。8、查找时,建立函数模板,参数为classT,classTi,需要在哪一个类中查找就将模板实例化为哪一个类,每一次查找时,指针都是先指向文件的起始位置,然后用for循环来控制,先要输入编号,如t.p!=NULL&&t.p-num!=no;若当前对象的编号与输入的编号不相等,则指针移向下一个对象继续查找,若相等则停止查找,并将所找到的信息全部输出。9、考虑各种数据类型还有所需的C++内的函数,要引用iostreamcstringfstreamiomanip这四个头文件。fstream用于数据保存至文件。10、修改和删除的功能都是按照编号、利用模板函数实例化来实现的,找到后由switch控制,1.姓名2.性别3.年龄4.编号5.工资,先选择要修改的属性,然后输入新信息,将原有信息替换;删除时,首先在每一个类中由指针找到要删除的职工,然后将这个对象的每一个数据成员用NULL覆盖,即清零处理,该职工的信息就被删除了。11、整体构思比较简单,基本能够实现各项功能源程序清单:#includeiostream#includecstring#includefstream#includeiomanipusingnamespacestd;classEmployee{public:Employee*next;charname[50];intnum;intage;charsex[8];doublesalary;charpost[30];char*getName(){returnname;}intgetNum(){returnnum;}intgetAge(){returnage;}char*getSex(){returnsex;}doublegetSalary(){returnsalary;}char*getPost(){returnpost;}virtualvoidget(){cout\t姓名:;cinname;cout\t性别:;cinsex;cout\t年龄:;cinage;cout\t编号:;cinnum;}Employee(){salary=0.0;}virtualvoidshow(){cout\tname\tsex\tage\tnum\tsalary\tpostendl;}};classTech:virtualpublicEmployee{public:inthour;Tech*next;voidget(){Employee::get();cout\t工作时间(小时):;cinhour;}doublegethour(){returnhour;}doublecalcuSalary(){salary=100*hour;returnsalary;}};classSeller:virtualpublicEmployee{public:Seller*next;doubleincome;voidget(){Employee::get();cout\t请输入营业额:;cinincome;}doublecalcuSalary(){salary=income*0.04;returnsalary;}doublegetIncome(){returnincome;}};classManager:virtualpublicEmployee{public:Manager*next;voidcalcuSalary(){salary=8000.00;}};classSellerList{public:intn;Seller*head,*p;SellerList(){n=0;p=head=NULL;}voidinputFile();voidsaveFile();}S;templateclassTT,classTivoidaddMember(TT&t,Ti*ti){Ti*p=t.head;t.head=ti;if(p==NULL)t.head-next=NULL;t.head-next=p;t.n++;}voidSellerList::inputFile(){Seller*t;charna[50];ifstreamcins(S.txt);while(cinsna){t=newSeller();t-next=NULL;strcpy(t-name,na);cins(t-post)(t-sex)(t-num)
本文标题:小型公司工资管理系统C++课程设计报告
链接地址:https://www.777doc.com/doc-5647569 .html