1、C+程序设计课程设计报告课 题: 小型公司工资管理系统专业班级: 学 号: 姓 名: 指导教师: 评阅意见:评定成绩: 指导老师签名: 年 月 日目录设计系统的目的意义第1页2.系统需求、功能分析第2页3数据结构表第3页4。 数据测试表第页. 运行和调试第7页6.课程心得体会第6页参考书目第17页附录第8页课程设计报告内容: 1、设计系统的目的意义本次课程设计所编辑的C程序是为了建立“小型公司工资管理系统”通过对该系统的建立进一步掌握面向过程和面面相对象程序的设计的几本方法和编程技巧,巩固所学理论知识,是理论与实践相结合,提高分析问题、解决问题的能力。具体一点主要是为了进一步熟悉C+中类的概念
2、、类的继承、抽象类、虚函数、虚基类、多态和文件的输入输出等内容的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程;逐步熟悉程序设计的方法,并养成良好的编程习惯。2、系统需求、功能分析A、公司主要有四类雇员:经理、技术人员、销售人员、销售经理。要求储存雇员的编号、姓名、性别、所在部门、级别等信息,并进行工资计算.B、工资的计算方法(1)经理:领取固定月薪,固定月薪50元;(2)技术人员:按小时领取月薪,工作时间*小时工资(0元小时); (3)销售人员:按巩固销售额领取月薪,0。3*销售额;(4) 销售经理:既拿固定月薪也领取销售提成,0。*销售额+固定
3、月薪(5000元)。C、功能分析(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要
4、删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存.(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息(7)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。() 退出功能:退出程序.、数据结构表1.添加功能2.查询功能3.显示功能4.查询功能5删除功能打开程序6.统计功能7.读取功能8.退出功能雇员经理技术人员销售人员销售经理4、数据测试表添加后的数据:编号姓名性别部门等级工资1张三男经理A500元2李四男经理A000元3王五男
5、经理5000元李白男技术B43元杜甫男技术4元6洋洋女销售C52元7丽丽女销售C15元武凯旋男销售D755元9刘玲女销售759元编辑后的数据:编号姓名性别部门等级工资1张三男经理A000元李四男经理5元王五男经理5元4李白男技术B42元5杜甫男技术B4元6洋洋女销售C2525元7丽丽女销售C2159元8武凯旋男销售7525元9李平男销售59元按编号删除后的数据:编号姓名性别部门等级工资2李四男经理000元3王五男经理000元李白男技术B元5杜甫男技术B344元6洋洋女销售25元丽丽女销售C2元武凯旋男销售D7525元李平男销售5元按姓名删除后的数据:编号姓名性别部门等级工资李四男经理A5元王五
6、男经理A00元5杜甫男技术B340元洋洋女销售C2525元7丽丽女销售C159元8武凯旋男销售D755元9李平男销售D5元5、运行和调试()添加功能说明:输入,选择添加功能说明:输入1,选择添加经理说明:输入,添加技术人员说明:输入3,添加销售人员说明:输入,添加销售经理(2)查询功能说明:输入2,选择查询功能说明:输入1,编号查询说明:输入2,姓名查询()显示功能说明:输入3,选择显示功能()编辑功能说明:输入4,选择编辑功能说明:编辑后读取数据(5)删除功能说明:输入,选择删除功能说明:输入1,编号删除说明:输入,姓名删除(6)统计功能说明:输入6,选择统计功能(7)读取功能说明:输入,选
7、择读取功能()退出功能说明:输入,选择退出功能、课程设计的心得通过这次课程设计,加深了对类与派生的理解类与派生类之间的关系,通过上机实践得到了进一步的深化。从数据成员的继承到派生类对象对基类成员函数的调用。 对于类的保护成员只能被本身的成员函数使用,而不能直接从类外通过对象直接调用,所以如果想单独调用对象内的被保护的数据成员或私有的数据成员时,应该通过友元函数来实现。 在编辑程序是应该多敲回车将花括号单列一行,一行只写一条语句如此可使程序看起来非常有层次感,检查错误的时候也会非常方便,最大可能的减轻了单个花括号不易检查的问题的难度。解决花括号不配对问题更好的方法是将程序分装打包成函数,放于主函
8、数外,不过要注意定义在调用前的话,可以直接进行函数的调用,否则要先声明该函数,然后才能调用该函数。虽然有了一年的上机课,但在课程设计这一段时间,使我收获了很多在上机课上无法学习到的知识,尤其是C+的流类库与输入输出。因为这一部分知识的不熟练,在程序设计过程中遇到了不少困难,但通过老师的指导和一次又一次的改写、调试,将这些困难都解决了,心中的喜悦感油然而生。为了能使程序更加的完善,我也利用了不少的课余时间,查找了各方面的资料,当看到程序从一个头文件名到一个9多行的程序,到最后的成功运行,感觉自己这段时间的付出是非常值得的,也使我对C+产生了更浓厚的兴趣,对自己的学习以及将来的工作都是有很大的帮助
9、的。整个实习过程让我的C+知识得到了应用,体验了程序员编程时的喜怒哀乐,知识、心智,得到全方位提升,收获颇丰.参考书目1林小茶、陈维兴,C面向对象课程设计教程,清华大学出版社,0年谭浩强,C语言程序设计,清华大学出版社,2008年附录inclueicldestra#icludeb。mb。sxob。dpartnt;rturn inpu;fie stemopertor(srem &tt,elyee &) /运算符”重载为友元函数tputob.umbrto。nameo。sxtob。departmento。geta;ma.gt();raA;os。write(ch*)&a,sieof(char);o.w
10、ite((ca)ma,sizof(mger));ofs.lose();out是否还要添加数据:?Y :n”;cin;if(chY) cntin;lscout”添加成功!”d;systm(”paus);brea;css atisan:publiemploe/技术人员类按小时领月薪 pblic:id get()iper,ho;ct”请输入工作时间,按回车键完成输入:”edl;cinour;e=0; /每小时工资8grae=B;p=pr*our;nbe=getnumer();vod tan_tisa()/技术人员数据添加 i() osra ofs(”d:file1。txt”,ios:app);art
11、isan ar;argra,; cout请根据提示依次输入该技术人员的姓名,性别,部门,并按下回车确认完成输入:a; r。et();gr=B;f。write(a*)&ga,sef(ha);of.wrte(har),sio(artisan);of.cloe();u”是否还要添加数据:? OR N:n”;nch;i(ch=)ontiue;le t”添加成功!”sce; rad=C;p0.3*soe;megetnuber();;void tianjiasesman()/销售人员数据添加 while() ostream of(”d:ile1。xt,ios:app);alsman sa;car gr,c
12、; u请根据提示依次输入该销售人员的姓名,性别,部门,并按下回车确认完成输入:”enl;cins;.get();graC;f。rite(cha)&gra,sizeo(chr);s.rit((char*)&sa,szof(saeman);o.cose();ut”是否还要添加数据:?O:n”;cinch;if(ch=Y)contine;else out添加成功!”nd;sem(pe”);reak;lasssalesger:ublic manager,puic salesman/销售经理类 当月销售提成+固定工资publi:od get()in coe;c请输入员工当月销售额,按回车键完成输入:”;
13、inor;grae=;pa=.3*o500;number=tnmbr();vod ianjiasaesmage()/销售经理数据添加 while() ostemof(”d:fle1。tx,io:pp);sles_aaer sam;cha gr,ch; ot;if(=Y)inue;ele ou”添加成功!el;ystem(pase);ba;t getumber()istrea ifs(”d:ile1。txt”);ca gra;in n,max0;fs。re((car*)&gr,1);il(!is。ef() if(gra=) manaerma; fs。rea(chr*)&a,sif(anaer);
14、n=a.nmr;l f(=B) san a; i。a((char*)a,sizeof(arisan);n=ar。ubr;elseif(ga=C) sala sa;ifs。ead(car*)a,izeof(salesan);n=a。number;ele f(ga=D) als_anager sm;ifsrd(cha)sa,izf(alanager);=sam.number;f(maxn) max=n;fsrea(char)&gra,);fs。os();retu mx+1;viija()/添加功能函数定义 syse(cls); ct”t-”l;uttt-小型公司工资管理系统-|endl;out|-
15、1.经理数据添加-”nd;co”t-2.技术人员添加-|”en;ot”-3。销售人员添加-”endl;uttt|-4.销售经理添加-endl;cout”tt|-5.返回上一层-|endl;out-”e;swich(s) ase1:tinji_aner(); rea;cae 2:njaran(); bra;cse3:iisalsn();rea; case :tiniasaes_maag();beak;ae :rurn; vo chaun_uber() nu;cou请输入编号:nu;tream s(d:letxt);i(!is)ou”文件打开失败!;sysm(s”);ur;hargra;i lag
16、0;ifs.r(chr*)ga,1);whie(!if.ef()f(ra=A)aage m;ifsead((ch*)ma,of(manger);i(mbern)cout编号t”姓名”t性别t”部门级别”t”工资endl;outa;fg=1;elseif(gr=)tin r;ifs.e((cr)&ar,szo(artsa));i(ar。ume=)cout”编号”t”姓名性别t”部门”t级别”工资”ndl;coutar;lag=1;ese if(gr=C)seman sa;.ed(ca*)sa,sizof(slean));(s.uber=nu)cot”编号t”姓名t”性别”t”部门t”级别”工资”
17、en;coutsa;=;else i(gr=D)sales_managr sam;.d(char*)&sam,izeof(sleanagr));if(sm。numer=n)cu编号t姓名t性别t”部门t”级别t工资enl;cotam;flag=;ifread(chr)&a,1);if(!flag) u”没有找到要查询的编号endl;ifs。cose();yem(”se);vd chxun_nm() chaa0;cut请输入姓名:edl; cnn;ifsre ifs(d:ile1。x”);f(!is)cout”文件打开失败!”;yt(ase);reun;hr gra;t g;if.ad((car
18、*)&gr,);hile(!fs。ef())f(graA)maaera;is。rea(chr)&ma,ieo(manager);i(stcp(ma。am,)=)cout”编号t”姓名”t性别t部门”级别”t”工资nl;cua;flag=;eleif(gra=B)atiar;is。read((ha*)&ar,izo(arsa));(tcmp(a.name,a)=)ut”编号”姓名t”性别”部门级别”工资el;ctar;fag=;ese if(gr=C)salmn a;ifs.ed((cha)&,sizef(salsan));if(srmp(sa.nam,na)=0)cut”编号t”姓名t性别”部
19、门”级别”工资”enl;couts;fag=1;es i(a=)saesmaaer sm;if。red(chr*)&sam,sof(sa_mnager));if(strcm(sa.name,n)=0)cou编号t姓名”t”性别”部门级别工资”dl;cta;fg=;ifs。ad((ha*)&ga,1);i(!flg) out没有找到要查询的姓名”enl;if。lse();stm(ause);voi can()/查询功能函数定义sstem(c);cut”t-en;ct”t|-小型公司工资管理系统-”enl;cot|-.编号查找-|”el;cott|-2。姓名查找-”endl;co”t-。返回上层-
20、|;ut”tt-”en;cout请输入1-3选择相应查询:; in s;inse; with(s) cs1: chanumbe(); brk; ce:chaxu_m();rek; a 3:return; void ins()/显示功能函数定义 ystem(cs);o”t-ndl;t”|-小型公司工资管理系统-|”enl;coutt|-1.添加功能-|e;cu”tt|-。查询功能-|”enl;ot”t-。显示功能-|”ndl;ott-4.编辑功能-|”nl;cout”-.删除功能-|enl;cutt|-统计功能-”en;out”|-7.读取功能-”edl;co-。退出功能-|edl; cout”
21、t-end;cout请输入-8选择相应功能:”;intse;cinse;whle(s|s1)coute;couenl;swt(se)cas 1:tinja();brk;cae 2:chn();reak;case3:xiansi();re;:ian();rk;ca:sh();bek;cse :tongji();bek;case7:d();eak;se8:exit();vid biaji()/编辑功能函数定义ch na10;it z0;u”请输入需编辑者的姓名:na;trmystream(:fil。t,o::inio:o);i(!msram)out文件打开失败!;sstem(”paus);eurn
22、;chagra;t a0;mstram。read((r*)&a,1);wh(!mysrea.o())i(ra=)mnage a;mytream。rad((har)&a,izeo(mar);f(strmp(ma。am,a)=0) coum;co”请根据提示依次输入该经理的姓名,性别,部门,并按下回车确认完成输入:”end;inma; ystrm。sek(sizeof(mang),i::ur);mystra。rt((har*)&,sizef(manager);flag=1;mystram.seekg(sio(mange),os:cur);else f(gra=B)atisan;mysteam。re
23、ad((char*)&ar,sizf(arin);if(stcmp(r.na,)=) otr;u请根据提示依次输入该技术人员的姓名,性别,部门,并按下回车确认完成输入:”dl;ci; ytream。seekp(szef(artis),ios:);ystre。wie((h*)&,szo(aria));flg=1;ystrm.sekg(sizof(artisa),io::r);lsif(gra=)se s;mste。ead((har*)&a,izof(slesmn));f(scm(sa。n,n)=0)cus;”请根据提示依次输入该销售人员的姓名,性别,部门,并按下回车确认完成输入:ndl;cinsa; mystrea.ekp(-zof(salesm),o:cur);tream。rite(cha*)sa,ieo(sesma);fla=1;ysream。ek(sizeof(sean),i::cur);else if(ga=)ses_mnagersa;mysrmread((a)&sam,seof(aleange);f(
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100