软件基础训练-公司职员信息管理_第1页
软件基础训练-公司职员信息管理_第2页
软件基础训练-公司职员信息管理_第3页
软件基础训练-公司职员信息管理_第4页
软件基础训练-公司职员信息管理_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

暑假实习公司职员信息管理面向对象程序设计公司职员信息管理系统一、系统概要公司职员的信息管理程序主要实现以下功能输入员工的姓名,输出该员工的基本信息、级别以及当月工资信息。需求如下。1、某小型公司,主要由总经理、技术经理和技术人员、销售经理和销售人员。要求存储所有人员的一下信息姓名、性别、出生年月、技术特长、血型、星座、参加工作时间、接入本公司时间、联系电话、编号、级别、当月薪,计算月薪总额并显示全部信息。2、人员的编号从开始,依次递增。3、程序对所有人员有提升级别的功能。假设所有人员的初始级别均为级,然后进行升级,总经理升为级,技术经理和销售经理升为级,技术人员升为级,销售人员为级。4、月工资计算办法如下总经理拿固定月薪10000元技术经理拿固定月薪6000元加奖金技术人员拿固定月薪3000元加奖金销售经理既拿固定月薪也领取销售提成,固定月薪为4000元,销售提成为所辖部门的当月销售总额的(05);销售人员的月薪按当月销售额的提成。5、考核结果作为升级和工资提成的依据,考核结果按百分制计算。二、基本功能要求设计一个基类EMPLOYEE,然后派生出TECHNICIAN技术人员类、MANAGER经理类和SALESMAN(销售人员)类共3类,在此基础上通过继承和派生实现其它类。职员信息要求保存到文件。对部分数据应设置有操作权限。三、功能描述1、新进入公司员工基本信息的输入。2、公司员工基本信息的查询、修改。3、离开公司员工信息的处理。4、与员工级别有关的操作。5、与月薪有关的操作。6、与人员考核有关的操作。四、主要知识点1、C语言程序设计技术,特别是数组和指针的应用。2、面向对象程序设计技术,特别是继承和派生以及文件的操作。5、总体设计思路在最初拿到程序设计的要求时,我便有个明确的思路由大化小。不管是多么复杂,多么冗长的程序,都是有一个个小功能或者说是函数,指针组合而成的,当我把这个大程序分解成其所需要的各个小功能进行编程时,这个公司职工管理系统就会明显地简单多了。正如上图所示,在反复看了几遍要求之后,我把几个重要的信息或者对象用红色的字体标出,这有助于我在编程时时刻提醒我还有哪些需要注意的,也助我理清了编程的思路。变成之前,应注意到本职工信息管理系统以C语言知识为基础,运用各种函数、文件等方式实现录入职工信息并保存,显示所有职工信息,查询职工信息,职工信息修改并保存,删除职工信息,月薪总额管理,退出的功能。程序主要以函数调用及友元类的方式工作,菜单功能在主函数中由SWITCH语句实现。该程序一共用了8个函数,可以说函数是该程序的核心与灵魂。这些函数分别是1INPUT/输入函数,可以实现员工信息的输入及存入文件;2ENLARGE/ADD/增加员工函数;3DELETE/删除员工函数;4ALTER/CHANGE/修改员工函数;5CHECKPERSON/FIND/查询个人信息函数;6SAVE/保存函数;7PROMOTE/升级函数;8TEST/设定考核成绩函数;而,在编写功能函数之前,我先是将整个程序的对象做了个梳理6、主程序基类EMPLOYEE销售人员类SALESMAN技术人员类TECHNICIAN销售经理类TMANAGER技术经理类SMANAGER总经理类MANAGER派生职工基本信息姓名,性别,出生年月,技术特长,血型,星座,参加工作的时间,接入本公司的时间,联系电话,级别,编号,月薪总合1首先,加上头文件INCLUDEINCLUDEINCLUDEUSINGNAMESPACESTD/全局数据,对象DOUBLEMANAGERSALARY10000/总经理固定月薪DOUBLETMANAGERSALARY6000/技术经理固定月薪DOUBLESMANAGERSALARY4000/销售经理固定月薪DOUBLETECHNICIANSALARY3000/技术人员固定月薪INTID0/员工编号/整个程序操作对象的基类,最初编写的部分CLASSEMPLOYEE/基类PROTECTED/以下为所需的职员基本信息的定义INTNO/编号CHARNAME20/姓名CHARSEX2/性别CHARBLOOD3/血型CHARBIRTH10/出生年月CHARTEL20/联系电话CHARTECHNICIAL20/技术特长CHARCONSTELLATION20/星座INTDUTYCHARTIMEOFBEGIN10/参加工作时间CHARTIMEOFCOME10/接入本公司时间INTGRADE/级别DOUBLEEARNING/工资/月薪EMPLOYEENEXT/基类的指针PUBLICEMPLOYEECHARID,INTGRADE,CHARNAME,CHARSEX,CHARBIRTH,CHARBLOOD,CHARTEL,CHARTECHNICIAL,CHARCONSTELLATION,CHARTIMEOFBEGIN,CHARTIMEOFCOME,INTDUTYTHISDUTYDUTYTHISGRADEGRADESTRCPYTHISNAME,NAMETHISNOIDSTRCPYTHISSEX,SEXSTRCPYTHISBIRTH,BIRTHSTRCPYTHISBLOOD,BLOODSTRCPYTHISTEL,TELSTRCPYTHISTECHNICIAL,TECHNICIALSTRCPYTHISCONSTELLATION,CONSTELLATIONSTRCPYTHISTIMEOFBEGIN,TIMEOFBEGINSTRCPYTHISTIMEOFCOME,TIMEOFCOME/指针的指向VIRTUALVOIDSALARY0VIRTUALVOIDOUTPUT0VIRTUALVOIDOUTPUT10VIRTUALVOIDOUTPUT20FRIENDCLASSCOMPANY/需基类,之后可能用到的/以下是五个派生类,也是公司已有的五个级别职员称谓CLASSMANAGERPUBLICEMPLOYEE/1派生经理类PUBLICMANAGERCHARID,INTGRADE,CHARNAME,CHARSEX,CHARBIRTH,CHARBLOOD,CHARTEL,CHARTECHNICIAL,CHARCONSTELLATION,CHARTIMEOFBEGIN,CHARTIMEOFCOME,INTDUTYEMPLOYEEID,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTYVOIDSALARYEARNINGMANAGERSALARYVOIDOUTPUTSALARYCOUTWORKLOADWORKLOADDOUBLEGETWORKLOADRETURNWORKLOADVOIDSETWORKLOADDOUBLEAMOUNTTHISWORKLOADAMOUNTVOIDSALARYEARNINGSMANAGERSALARYWORKLOAD0005VOIDOUTPUTSALARYCOUTWORKLOADWORKLOADDOUBLEGETWORKLOADRETURNWORKLOADVOIDSETWORKLOADDOUBLEAMOUNTTHISWORKLOADAMOUNTVOIDSALARYEARNINGWORKLOAD001VOIDOUTPUTSALARYCOUTAWARDAWARDDOUBLEGETAWARDRETURNAWARDVOIDSETAWARDDOUBLEAMOUNTTHISAWARDAMOUNTVOIDSALARYEARNINGTECHNICIANSALARYAWARDVOIDOUTPUTSALARYCOUTAWARDAWARDDOUBLEGETAWARDRETURNAWARDVOIDSETAWARDDOUBLEAMOUNTTHISAWARDAMOUNTVOIDSALARYEARNINGTMANAGERSALARYAWARDVOIDOUTPUTSALARYCOUTNEXTDELETEWORKERWORKERPWORKER0VOIDFINDCHARNAME20/按姓名查找VOIDFINDINTID/按编号查找VOIDADD/增加人员VOIDDELETE/删除人员VOIDCHANGE/修改人员VOIDSEARCH/查询人员VOIDSAVE/数据存盘包括基础数据,人员数据VOIDMONEY/月薪计算/VOIDCOMPANYFINDCHARNAME20/查询人员的函数/VOIDCOMPANYADD/增加员工函数EMPLOYEEP/新结点指针INTDUTYCHARNAME20CHARSEX2/性别CHARBIRTH10CHARTEL20/联系方式CHARTECHNICIAL20CHARCONSTELLATION20/星座CHARBLOOD3/血型CHARTIMEOFBEGIN10CHARTIMEOFCOME10INTGRADEDOUBLEWORKLOAD0COUTDUTYIFDUTY1GRADE4ELSEIFDUTY2|DUTY3GRADE3ELSEIFDUTY4GRADE2ELSEGRADE1COUTNAMECOUTSEXCOUTBIRTHCOUTTELCOUTTECHNICIALCOUTCONSTELLATIONCOUTBLOODCOUTTIMEOFBEGINCOUTTIMEOFCOMESWITCHDUTYCASE1PNEWMANAGERID,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTYBREAKCASE2PNEWTECHNICIANMANAGERID,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTY,WORKLOADBREAKCASE3PNEWSALESMANAGERID,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTY,WORKLOADBREAKCASE4PNEWTECHNICIANID,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTY,WORKLOADBREAKCASE5PNEWSALESMANID,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTY,WORKLOADBREAKPNEXT0/员工结点加入链表IFWORKER/若已经存在结点EMPLOYEEP2P2WORKERWHILEP2NEXT/查找尾结点P2P2NEXTP2NEXTP/连接ELSE/若不存在结点表空WORKERP/连接COUTNO/查找要删除的结点EMPLOYEEP1,P2P1WORKERWHILEP1IFP1NONOBREAKELSEP2P1P1P1NEXT/删除结点IFP1NULL/若找到结点,则删除IFP1WORKER/若要删除的结点是第一个结点WORKERP1NEXTDELETEP1ELSE/若要删除的结点是后续结点P2NEXTP1NEXTDELETEP1COUTNO/查找要修改的结点EMPLOYEEP1,P2P1WORKERWHILEP1IFP1NONOBREAKELSEP2P1P1P1NEXT/修改IFP1NULL/若找到结点P1OUTPUTCOUTDUTYIFP1DUTYDUTY/若职位发生变动/修改其它数据COUTNAMECOUTSEXCOUTBIRTHCOUTTELCOUTTECHNICIALCOUTCONSTELLATIONCOUTBLOODCOUTTIMEOFBEGINCOUTTIMEOFCOMEIFDUTY1GRADE4ELSEIFDUTY2|DUTY3GRADE3ELSEIFDUTY4GRADE2ELSEGRADE1IFDUTY2IFDUTY3/创建新员工结点EMPLOYEEP3SWITCHDUTYCASE1P3NEWMANAGERP1NO,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTYBREAKCASE2P3NEWTECHNICIANMANAGERP1NO,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTY,WORKLOADBREAKCASE3P3NEWSALESMANAGERP1NO,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTY,WORKLOADBREAKCASE4P3NEWTECHNICIANP1NO,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTY,WORKLOADBREAKCASE5P3NEWSALESMANP1NO,GRADE,NAME,SEX,BIRTH,BLOOD,TEL,TECHNICIAL,CONSTELLATION,TIMEOFBEGIN,TIMEOFCOME,DUTY,WORKLOADBREAK/员工结点替换到链表P3NEXTP1NEXTIFP1WORKER/若要替换的结点是第一个结点WORKERP3ELSEP2NEXTP3/若要删除的结点是后续结点DELETEP1/删除原来的员工结点ELSE/若职位没有变动COUTP1NAMEIFDUTY2COUTWORKLOADTECHNICIANMANAGERP1SETAWARDWORKLOADELSEIFDUTY3COUTWORKLOADSALESMANAGERP1SETWORKLOADWORKLOADELSEIFDUTY4COUTWORKLOADTECHNICIANP1SETAWARDWORKLOADELSEIFDUTY5COUTWORKLOADSALESMANP1SETWORKLOADWORKLOADCOUTOUTPUT1SUM2PEARNINGPPNEXTCOUTCHOOSEDOCOUTXINGMINGEMPLOYEEP4WORKERWHILEP4IFSTRCMPP4NAME,XINGMING0IFP4DUTY1MANAGERP4OUTPUTCOUNTBREAKELSEIFP4DUTY2TECHNICIANMANAGERP4OUTPUTCOUNTBREAKELSEIFP4DUTY3SALESMANAGERP4OUTPUTCOUNTBREAKELSEIFP4DUTY4TECHNICIANP4OUTPUTCOUNTBREAKELSEIFP4DUTY5SALESMANP4OUTPUTCOUNTBREAKELSEP4P4NEXTIFCOUNT0COUTCHOOSEWHILECHOOSEY|CHOOSEY/VOIDCOMPANYSAVE/数据存盘(采用文本文件)OFSTREAMFEMPLOYEECHARCCOUTCIFTOUPPERCYRETURN/保存人员编号、姓名、职位等信息FEMPLOYEEOPEN“EMPLOYEETXT“,IOSOUTEMPLOYEEPWORKERWHILEPFEMPLOYEENONAMEDUTYDUTY2FEMPLOYEEGETAWARDDUTY3FEMPLOYEEGETWORKLOADDUTY4FEMPLOYEEGETAWARDDUTY5FEMPLOYEEGETWORKLOADNEXTFEMPLOYEECLOSECOUTOUTPUT1DUTYP1DUTYIFDUTY1COUTNEXTELSEIFDUTY2COUTWORKLOADTECHNICIANMANAGERP1SETAWARDWORKLOADCOUTNEXTELSEIFDUTY3COUTWORKLOADSALESMANAGERP1SETWORKLOADWORKLOADCOUTNEXTELSEIFDUTY4COUTWORKLOADTECHNICIANP1SETAW

温馨提示

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

评论

0/150

提交评论