收藏 分销(赏)

C++课程设计-职工工资管理系统(报告内含程序完整清单).doc

上传人:人****来 文档编号:4364213 上传时间:2024-09-13 格式:DOC 页数:21 大小:497KB
下载 相关 举报
C++课程设计-职工工资管理系统(报告内含程序完整清单).doc_第1页
第1页 / 共21页
C++课程设计-职工工资管理系统(报告内含程序完整清单).doc_第2页
第2页 / 共21页
C++课程设计-职工工资管理系统(报告内含程序完整清单).doc_第3页
第3页 / 共21页
C++课程设计-职工工资管理系统(报告内含程序完整清单).doc_第4页
第4页 / 共21页
C++课程设计-职工工资管理系统(报告内含程序完整清单).doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、目录目录1概述11、程序得基本功能11.其它功能1。扩展功能12课题得分析22。会员登入系统模块即ystemead静态全局函数模块2。2查询功能模块即searc函数模块22.3职务信息匹配及处理模块即sysembod静态全局函数模块模块422.4循环控制模块即whil(1)模块23详细设计33、类声明3.2系统简略流程图43.会员登入系统模块即systemhea静态全局函数模块53、4查询功能模块即sarc函数模块63.5职务信息匹配及处理模块即ysemody静态全局函数模块73。6循环控制模块即hile(1)模块74课程设计总结84。完成情况84。2遇到得问题及解决8参考文献11附录121

2、概述本课程设计就是面向对象程序设计课程得后继教学环节,学好+语言就必须坚持用面向对象得思维方式分析问题、解决问题,最好得方法就是仿照教材编写C+实际应用程序。此次课程设计得题目及要求:实现一个简单得工资管理系统。1.1 程序得基本功能系统得主要功能就是计算职工当月工资并存档。公司内有5种不同类型得职工:技术人员、销售人员、文秘、技术经理与销售经理,她们得工资计算方式各不相同。1.2 其它功能将工资信息存入alar、txt文件中,工资信息包含雇员编号、姓名、职务、月份、月收入。f。xt文件中只存留一些信息及会员最后进入系统时输入得数据,最多含有编号、姓名、职务、月份得信息。1.3 扩展功能采用了

3、会员制度,并将登入信息及编号、密码存入umber、txt文件中、2 课题得分析通过对课题得深入分析,我将这个课题分为以下几个模块,深入详细得剖析它们。2.1 会员登入系统模块即ystehea静态全局函数模块程序运行后,先进行会员选择判断。为减少会员重新注册,通过输入两次编号及密码,增加繁琐度、同时在一定得方面上,又方便忘记密码得会员。通过密码匹配,雇员得工资信息这一隐私得到了很好得保障。2.2 查询功能模块即sear函数模块首先,从fo。tx中提取编号,与saary。xt中得编号进行匹配,匹配成功,输出工资信息,直到文件!ndata、eof()=0。.2.3 职务信息匹配及处理模块即sytbo

4、d静态全局函数模块模块4从ino。tt中提取职务信息,用sich语句进行匹配,据匹配情况调用不同得函数进行输入、处理、显示并以增加方式记录到aary。tx中。2.4 循环控制模块即while(1)模块为了更加方便使用,尽量改善系统,实现er函数及syemboy函数功能,在sarc函数及ystemod函数模块得基础上加了一些必要得语句,并增加了外层循环控制。3 详细设计作为一个面向对象程序设计,我们不得不先从类得声明开始设计,而后就是一个整体得流程图做框架、最后在从小得模块结构着手、class TechManager:public Technician, public Managerprivat

5、e:float gradeBonus;int grade;public:TechManager(float x=1000);void setgrade(float x);void countSalary( );图3、1 类声明3.1 类声明图3、2 职工工资管理系统简略流程图3.2 系统简略流程图开始优点:一个入口,一个出口!处理5输入5输入4输入3输入2输入1处理4处理3处理2处理1工资记录在salary、txt职务代码分析显示真10查询信息选择?就是否会员否注册就是输入编号及密码假检验?真输入姓名、职务、月份记录编码姓名职务月份至info、txt从info、txt提取职务代码再次输入假结束

6、3.3 会员登入系统模块即systmead静态全局函数模块清空info、txt并将编号存入到info、txt中图3、3 登入系统模块详细流程图否就是否会员输入编号及密码打开name、txt并输出编号及密码匹配?关闭name、txt否就是以增加方式打开name、txt并输入编号及密码关闭name、txt、输入编号及密码3.4 查询功能模块即searc函数模块10否就是输出info、txt中得职务信息将info、txt得编号与salary、txt中得编号进行匹配就是否打开info、txt!indata、eof() ?图3、4 查询功能模块以默认方式打开info、txt以默认方式打开salary、t

7、xt从文件info、txt中提取编号并关闭文件输出“以上就是您得工资信息!”关闭salary、txt3.5 职务信息匹配及处理模块即ystembdy静态全局函数模块图3、5 systembody函数模块以默认方式打开info、txt提取info、txt中得职务信息switch语句进行职务匹配调用不同函数进行数据处理及显示3.6 循环控制模块即whil(1)模块图3、6循环控制模块即while(1)模块102输入选择操作查询功能模块Info及recordinfo调用systembody调用选择?结束4 课程设计总结4.1 完成情况本次面向对象课程设计得所有功能基本完成,并且扩展功能也成功得实现!

8、可执行文件能正常执行指令并运行!4.2 遇到得问题及解决图.2.错误ErroC:Usrs权Desktopi、o(.t$_vt8mplyee+0xc):main.pp: undfid referen t Elye:countSlr(void)错误:没有定义Employee类中得cuntSalary函数!改正:将原先得“itual oid countSary();”改为vrtual vod countSaay()”图4.2.2错误错误分析:(会员板块中)提示:“数字1表示就是!其她键表示否!,但定义得选择变量为整型。加上我当时输入字符p、改正:“其她键表示否!”改为数字0表示否”。输入时按提示进行

9、输入即可!图.2.错误调试分析:错误发生在systeead静态全局函数内得文件输入循环模块中!改正:将以ort方式即 isteaindata(”d:nuber、tx,io:nreat); “ 该为默认打开方式即“istrea indata(d:umr、xt);”。图2。4错误调试分析:错误发生在调用ssembody静态全局函数前后得while循环模块中,很有可能就是数据存取混乱造成得。改正: ysemhead静态全局函数内“ofstea outdata(d:f。txt”,ios:trunc);”改为先清后在以默认方式输入!且将存取整型编号得变量类型从字符型改为整型、图4。25错误错误:后面莫名

10、其妙得跟着一个提示语句指令。分析调试:当语句指令就是基类nfo函数内得语句,很有可能就是循环控制出现了一些问题。改正:见程序源代码!参考文献1 下面给出几个参考文献得格式参考2 匿名,不知道,非常多.计算机实用教程.北京:XX大学出版社,20,1232343 美 Dos mehing。sal X 2008技术内幕、北京:YY大学出版社,007,5784 Jhmth,JamsNothing。 Prgramming i C+or Ayting a Smethin、 、world。ic。ac。k/lbcplslus/nohigindex.tml 05 Anms。 Soething Say。 206

11、面向对象程序设计 ,郑莉,清华大学出版社,7 面向对象程序设计C+语言,朱战立等编 西安电子科技大学出版社8 面向对象程序设计-Visul C+,刘斌等编, 清华大学出版社 9 面向对象程序设计C+语言描述, RicharJohnonbaugh(美)等著,蔡宇辉等译,机械工业出版社,200附录本系统有三个源程序文件构成,分别为tem、, ssem、cpp及min。cpp。同时含有三个系统文件,分别为if、tt, me。txt及saly、tt,且全部存放在D盘根目录下,请勿随意移动或修改系统文件。当会员正式进入系统, info、txt就是先清空后用来存储会员输入得信息,最多含有编号、姓名、职务及

12、月份。当仅会员注册时,会将编码及密码存储到nae.x中。当仅会员登入得编号及密码进行匹配时,会打开输入文件name、txt,提取编号及密码,进行匹配。当仅当输入工资数据时,会将工资、编号、姓名、职务、月份存储到sala.t中。当仅当查询工资信息时,会打开alry.tx,提取编号、姓名、职务、月份及工资。该系统就是一个只适合种及5种职务得工资管理系统。并将职务分为技术人员、销售人员、文秘、技术经理与销售经理,其代号分别为1,2,3,5。雇员编号以整型变量存储,编号所取范围在6556至5535之内(包括边界值),首位数字表示相应得职务代码。该系统能力有限,请根据指示严格输入相应字符!程序清单Mai

13、n 函数#icldesysem.pp#nclud csringta oid ystemhed();tic id sstembody(); sttcoid chnican();statc oid salsmn();staic void sectary();tatic void chmanaer();stcvoidaleanage();usngnaespace d;vid main()ssteead(); /调用ystemhead静态全局函数coutnn: 查询工资”;cotn2: 输入工资数据”;cuxuaze; if(xuanz=1) emloe ; cutdlendl; .earch();

14、cou”n输入工资数据请按数字2,退出系统请按数字0!n; 查询工资信息 if(xuanz=2) empoye a; a、nf(); a.rerif(); /输入处理工资数据并暂时记录 ytemody(); /调用syemboy静态全局函数 cu查询工资请按数字,退出系统请按数字0!n”; i(xunz=)exi(0);tic idalesaagr()lsMer a;at sum;cout请输入整个月得总营业额:;nsum;a5、stsalenm(sum);a5、couSalar();a5。rcordSal();saicid techmane()Techanagr 4;nt gra;cug;a

15、.setgde(gra);a4、utlary();a4、recordSaary();stic void scretary()Secreta 3;flot bo;cout请输入这个月得额外奖励:;inon;a3.setbonu(bn);a3、coutSalary();a3。recrdSalary();sttc vid alesman()Salesn2;float s;cot请输入整个月得营业额:”;insum;a2.setslesnum(s);a2、countSalary();2.ecorSaay();stativoid techician()Techniciana;foator;couthou

16、r;a、setr(hor);a。cuntSalay();1、rcodalay();static voi sysmbody()istrem inat(if。txt);f(indata=NULL) xi(0);in num;har na2;its;ndtaunasa; /职务代号分别为1,2, wt(sa)ase :techcan();break;case2:salsmn();r;ca 3:scear();ak; ase4:tecmnager();brak; cs :alsmanager();break;dfult:co职务代号错误!n请重新输入!”;tic vid sysmhead()ch ,y

17、=y;it m;charsecret6;while(y)ou”nn系统会员请输入y,非系统会员请输入nn; cn; (x) utnum; outsecret; /输入编号及密码 seaminata(”numer.tt); (indata=ULL) outm1; wile(!inata.eof() indaseret1;if(um=num)&(strcmp(seet,scet)=0)=0; /改变判断变量得值,停止外层循环 bre; /终止内层循环 indanu1; idaa、clos(); / 检验登入信息 els cot”请输入编号(首位为职务代号且为不超过5位数得整数):”; iu; co

18、secrt; /注册输入编号及密码ofstreamutdata(umb、txt”,os:pp);outdatnumtecrett;outdata、cloe(); 将编号及密码保存到ube、xt中cuteendl; oream outaa(info。t,i:rnc); oudata。cle(); /清空文件内容ofstream outdat1(”info.t);utatnum#ind fsram#clude syste、h”using namepace td;id Eplee:ino()char na5;int sa,mn;outnastmo;nme=n;tats=sa;on=m; /存储姓名、

19、职务、月份 vo mploye:sech()i um;fstram inta0(”fo.xt);if(inata0=N) exit(0);indt0um;ndta0。le(); /从文件info。txt中提取编号 in m;hrn25;insta;i mon1;flt al;int mon0;ifstrm idta(alary、tx);if(inata=ULL) exit();whe(!inat、eo()indatanum1na1sa1mon1al;if(nu=num)coutnumn1tstatmonsan; /依次输出该雇员得工资信息 i(indata。eof() cout”n以上就是您得

20、工资信息!n”; ndaa。close();vod Emplyee:recdnfo()ofstemoutda(nfo、t,ios:pp);outdaanametsatnuenamstusmonth;indat、coe(); /依次输出该雇员得工资信息 int num1;chrna125;nt sta1;in mon;flat sl;ifstam idata(”salr、txt);if(idata1=NUL)ei();hile(!idta1、eof()ida1num1a1tamonsal;f(mn!=on1)ctumtna1tsta1tmo1tsaln;ls exit(0); /依次输出该雇员得

21、工资信息 otumertnamstatsmonthalary; /显示工资信息fstm utda(aly.x,os:app);utdatannmbrtnmetstatustmonhtslay;outdta、cose(); voidTechniian:etor(floa x)worHour=x;Tehniian:Tchician(fatx)hourSaar=x;voi Technan:coSary()sar=workHour*houralar;void aesan:setsaesum(otx) saenum=;mn:Sasan(float x)geRat=x;odlsmn:cntlry( )la

22、ry=slenugetRat;voiecretar:stbonus(lo ) ons=x;Sectary:ecear(float )fixedSlary;void Secetary:cutSaary( )slary=fixSala+bonu;aaer:Manager(float x)ieSalary=;voi echManage:stgrd(nt x)ge=x;TechMnage:TcMaagr(floa )radeBus=x;voidTechMnger:outSalary()ly=fiedSalay+gradegaeBons;SalesManag:Salenager(float )gette

23、=x;vialesManger:countalar()slay=fixedlry+saesnum*tate;voi Techian:seHour(float )workHour=x;Techician:echniin(loa )huSalar=;vo Technicia:cuntSay()sarywro*hSlary;vidSlsmn:setsalenu(fot x) slsnum=x;Saleman:Ssmn(floa )gtRte=x;voidSasma:cunary()salary=sales*gRa;v Secetry:etbons(loat )bonus=x;Secrry:ectr(

24、floatx)fixeSlary=;oid crar:contary()slr=fiedSlar+nus;ange:Manar(loat )xeSlar=x;voidTchMnager:grade(nt x)rade=;echanage:TchManger(fatx)gadeBous=x;od TehManer:untSala()salary=fixery+grd*radeBous;SalMager:alesMnaer(oax)geRte=x;oi SaleManager:countSalary()ala=fixedSalrlsnum*getRate;Syte。hlass Emploeeprt

25、ce:int number; char nae25; int status;it month; fla sar;public:vid in(); vid sech();vitual void cuntSalar()vod recrdinfo(); voi recdinfo();vod ecdSalar();cls alsman:public peeprted:fat salesnum;doe geR;public:Salsman(flt x0、05);void setsaesn(flat x);void countSlay( );sTechicn:public Eloyeepri:float

26、orHou; fot hSal;pulic:Tehician(flat x=35。0); vid etHou(float x);void untSala( );clssScey:ubcEmployeeprivat:fot xedSalar;flabonus;public:Sereary(flot x=000);vo stbonu(floatx);void countSlary( );ca Maagerrotecte:foaiedSalay;ubic:Managr(loatx600);oid cuntaay();las Slesnager:plc Salesman,uic anarpuc:SalManger(foat x=0.02);vid cuntSalary( );class TechMaagr:pubc Technii, pbc Merprvae:float gradenus;in ;public:TchManaer(float x=10);void etgrade(int x);oidcouSalary( );

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服