《C++实训报告之仓库管理以及实训题目指导3238.docx》由会员分享,可在线阅读,更多相关《C++实训报告之仓库管理以及实训题目指导3238.docx(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、昆明理工大学城市学院昆明理工工大学城城市学院院面向对对象程序序设计实实训报告告仓库商品品检查登登记管理理系统专业:班级:姓名:学号:指导老师师:20122年1月月6日目录目录1实训的目目的和任任务3实训内容容指导3仓库商品品检查登登记管理理系统类设计流程图源代码程序运行行结果总结一、实训训的目的的和任务务C+语语言程序序设计的的实训,是是教学计计划中的的一个有有机组成成部分,是是培养学学生综合合应用所所学的基基础的理理论,基基本知识识和技能能,分析析解决实实际问题题能力的的重要一一环,与与其它教教学环节节紧密配配合,相相辅相成成,是前前面教学学环节的的继续,深深入和发发展。通通过实训训过程可可
2、在不同同程度上上提高调调查研究究,查问问文献,实实际应用用的能力力。二、实训训内容指指导(一)数数据类型型和表达达式基础实训训1、定义义一个描描述学生生的结构构体类型型stuudennt,含含有学号号numm、姓名名namme、性性别seex、成成绩sccoree几个分分量,再再定义属属于这个个结构体体类型的的两个变变量sttu1、sstu22。struuct stuudenntiintnuum; /* 学号 */chhar naame20;/* 姓姓名 */chaar sexx; /* 性性别 */flooatscoore; /* 成绩 */; struuct stuudennt sstud
3、dentt1, stuudennt2;2、建立立一个适适于描述述碗和勺勺子的结结构体,有有关的信信息是:两者都都有货号号、价格格、颜色色,不同同的是碗碗的大小小用口径径来表示示,勺子子的大小小用枚举举类型表表示,分分大、中中、小三三种。现现有的勺勺子的大大小是中中,将其其表示出出来。#inccludde usinng nnameespaace stdd;struuct bowwl intt Noo; intt prricee; chaar ccoloor; flooat sizze;struuct spooon intt Noo; intt prricee; chaar ccoloor; st
4、rructt enuum smaall,meddiumm,biigsshaoozi; a;b;voidd maain() b.aa.shhaozzi = b.a.mmediium; couutb.aa.shhaozzi;3、编程程实现两两个整数数相加。#inccluddeint maiin()intt inntegger11,inntegger22,suum; couutiinteegerr1; couutiinteegerr2; summ=inntegger11+inntegger22; couutSuum iis summ enddl; retturnn; 4、编程程实现,输输入一个个三位
5、整整数,能能够将它它反向输输出。#inccludde #inccludde usinng nnameespaace stdd; voidd maain() intt nuum; couutnnum; whiile(numm) cooutnuum%110; nuum /=100; couutenddl;5、读程程序写结结果。综合实训训数字互换换实训。输输入一个个大于三三位的整整数,编编一个程程序,将将它的十十位数和和百位数数互换位位置。#inccluddeusinng nnameespaace stdd;int maiin() intt x; intt a3; cinnxx; forr(innt
6、 ii=0;i33;i+) ai=x%110;xx=x/10; x=xx*10000+a00+aa1*1000+aa2*100; couutxenddl; retturnn 1;(二)语语句和函函数基础实训训1、根据据考试成成绩的等等级A、BB、C和和D,输输出对应应的百分分制分数数段,AA对应8851100,BB对应770884,CC对应660669,DD对应00600。#deffinee nuum 1100int a=neew iint nuum;for(intt i=0;ii=885)coutt=70)coutt=600)couttC;elseecouttD;2、用ffor语语句编程程求
7、11000之和。#inccluddevoidd maain()intt suum(00);forr(innt ii=1;i=1000;i+)suum+=i;couutsuum=ssumenndl;3、用ffor语语句、wwhille语句句和递归归函数三三种方法法计算nn!。#inccluddemainn()int n;int summ=1;cin0;) summ*=nn-;whille(nn0) ssum*=n-; int f(iint x) if(x11) x*=f(x-11); reeturrn xx; elsse reeturrn xx; 4、用ffor循循环编程程打印图图形。#incc
8、ludde usinng nnameespaace stdd;int maiin() forr(innt ii=1;i=5;ii+) foor(iint j=11;j=i;j+) ccoutt*; cooutenndl; coout*enndl; coout*enddl;5、编写写函数,判判断一个个数是否否是质数数。# inncluude# iinclludeeussingg naamesspacce sstd;intt maain()iint i,jj,k;cinnjj;k=sqrrt(jj);ffor(i=22;ik)couut1;eelsee coout0;retturnn 0;9、设计
9、计一个函函数,求求三个数数中的最最大值。#inccluddeint maxx(innt,iint,intt);voidd maain()couutmaxx(355,488,266)enddl;int maxx(innt aa,innt bb,innt cc)intt t=maxx(a,b);retturnn maax(tt,c);10、编编写程序序,利用用itooa函数数实现整整数到字字符串的的转换。#inccluddeinntiitoaa(x)chharc;c=xx;pprinntf(%cc,cc);gettch();inttmaain(voiid)intta;priintff(iinpuu
10、taanuumbeer:);sscannf(%d,&aa);iitoaa(a);11、编编写程序序,最多多读入110个数数,读入入0表示示结束。将将读入的的非零的的数放在在一个数数组里,按按从大到到小的顺顺序排序序后输出出。#inccludde #inccludde#inccludde#inccluddeusinng nnameespaace stdd;int maiin()/主主函数 vecctorr b; forr(innt ii=0;ix; iff( xx ) bb.puush_bacck( x ); ellse bbreaak; sorrt( b.bbegiin(),b.endd()
11、); coppy( b.bbegiin(),b.endd() , oostrreamm_itteraatorr(couut, ) ); retturnn 0;12、将将一个代代表整型型数的字字符串转转换为一一个整型型的数字字。#inccludde #inccludde #inccludde usinng nnameespaace stdd;int maiin(iint arggc, chaar* arggv) strringgstrreamm a; strringg b; intt i; cinnbb; a.sstr(b); ai; couuti*22eendll; retturnn 0;综合
12、实训训(职工工信息处处理函数数实训)职工的信信息有姓姓名、年年龄、工工龄、性性别、婚婚姻状况况、级别别、工资资、在职职否。现现在要进进行工资资的调整整,规定定凡是退退休职工工一律增增加工资资50元元,在职职155级职工工的工资资分别增增加200、400、600、800、1000元。编编程实现现上述工工资调整整。要求求如下:(1)分分析要存存放的信信息,设设计合适适的数据据结构;(2)分分析要对对信息进进行的操操作,进进行处理理;(3)打打印程序序执行前前后的工工资状况况和级别别。(三)面面向对象象基本概概念与类类实训基础实训训1、读程程序写结结果;2、设计计一个表表示猫的的类,包包括猫的的颜色
13、、体体重、年年龄等数数据,具具有设置置猫的颜颜色,修修改和显显示猫的的体重、年年龄等操操作。设猫类的的类名为为Catt,猫类类Catt有3个个数据成成员,颜颜色用字字符串ccoloor77,可可以存放放3个汉汉字,体体重用实实型数wweigght表表示,年年龄用整整型数aage表表示,为为了数据据的安全全性,CCat的的3个数数据成员员全部为为私有的的。对猫猫的属性性数据的的设置和和修改,PPutCColoor为设设置和修修改颜色色,PuutWeeighht为设设置和修修改体重重,PuutAgge为设设置和修修改年龄龄,它们们都设置置为公有有函数,还还要有一一个1个个3个参参数的函函数 Set
14、tCatt。设计计Dissplaay函数数输出猫猫的信息息。#inccludde classs CCatprivvatee Sttrinng ccoloour;privvatee innt wweigght;privvatee innt aage;.int gettWeiightt() reeturrn wweigght;int gettAgee() reeturrn aage;voidd seetClloluur(SStriing xClloloour) ccoloour=xClloouur;voidd seetWeeighht(iint xWeeighht) weeighht=xxWeii
15、ghtt;voidd seetAgge(iint xAgge) aage=xAgge;3、 设计一个个表示学学习成绩绩的类,至至少包括括三门课课程的成成绩,可可以设置置、显示示每门课课程的成成绩,可可以计算算、显示示平均成成绩。classs GGraddesprivvatee: intt Maath,Engglissh,CChinnesee;publlic: Graadess() MMathh = Engglissh = Chhineese = 00; Graadess(innt aa,innt bb,innt cc) Maath = aa; Enngliish = bb; Chiinesse
16、 = c; intt geetM() retturnn Maath; intt geetE() retturnn Enngliish; intt GeetC() retturnn Chhineese; voiid SSetvvaluue(iint a,iint b,iint c) Maath = aa; Enngliish = bb; Chhineese = cc; voiid DDispplayy(); flooat Aveeragge() rretuurn (Maath+Engglissh+CChinnesee)/33.0; 4、设计计成绩类类,成绩绩类的数数据成员员,应该该包括学学生的学
17、学号Nuumbeer110和和姓名NNamee9,假设设有3门门课,分分别为CC+程程序设计计语言,用用整型变变量Cppp表示示;计算算机原理理,用整整型变量量Commputter表表示;数数据库,用用整型变变量DaataBBasee表示。平平均成绩绩用实型型变量AAverragee表示。为了Grradee类数据据的安全全性,数数据成员员全部为为私有成成员,对对成绩类类的属性性数据用用一些函函数进行行设置和和修改,PPutNNo为设设置和修修改学号号,PuutNaame为为设置和和修改姓姓名,PPutCCpp为为设置和和修改CC+程程序设计计语言的的成绩,PPutCCom为为设置和和修改计计算
18、机原原理的成成绩,PPutDDataa为设置置和修改改数据库库的成绩绩,还有有一个同同时设置置所有55个参数数的函数数SettGraade,它它们都设设置为公公有函数数。计算算平均成成绩的函函数为CCalcc,设计计函数DDispplayy输出成成绩。有有时可能能要查看看某个学学生的成成绩,所所以设计计比较学学号的函函数为CComNNo,设设计比较较姓名的的函数为为CommNamme,GGetCCpp为为读取CC+程程序设计计语言的的成绩,GGetCCom为为读取计计算机原原理的成成绩,GGetDDataa为读取取数据库库的成绩绩,设计计读取平平均成绩绩的函数数为GeetAvvg。计计算平均均
19、成绩只只是在类类的内部部实现,所所以设计计为私有有函数,其其它都为为公有函函数。综合实训训设计一个个表示整整型数据据的集合合类,可可以对集集合中的的数据进进行添加加、删除除,可以以判断一一个整数数是否在在这个集集合里,可可以求出出集合数数据的多多少,可可以判断断集合的的空与满满,空集集合就是是没有数数据元素素,满集集合就是是数据元元素已经经占满给给出的存存储单元元。两个个集合可可以做交交运算,就就是将两两个集合合的公共共数据组组成一个个新的集集合。两两个集合合可以做做并运算算,就是是将两个个集合的的所有数数据组成成一个新新的集合合。要求求如下:(1)分分析集合合类的数数据属性性要求;(2)分分
20、析集合合类的操操作属性性要求;(3)编编制集合合类的接接口定义义;(4)实实现集合合类的属属性函数数。#inccludde/foorm thee daatastruuct Datta lonng nnum; Datta *nexxt;/thhe sset claassclasss GGathher pubblicc: Gaatheer(iint =5); /Gaatheer(); vooid forrm(iint); vooidddel(); vooid settGattherr(); vooid priint(); vooid addd(innt); Daata *geetpttr()ree
21、turrn pptr; Gaatheer& opeerattor=(Gaatheer &); Gaatheer& opeerattor+(Gaatheer &); Gaatheer& opeerattor*(Gaatheer &); priivatte: innt LLEN; Daata *pttr;Gathher inssidee;Gathher:Gaatheer(iint a)forrm(aa);voidd Gaatheer:forrm(iint a) LENN=a; Datta *p; forr (iint i=00;innextt=neew DDataa; pp=p-neext; p-
22、nexxt=NNULLL;/Gaatheer:Gaatheer()deel();voidd Gaatheer:dell() Datta *p; Datta *q; p=pptr; forr(innt ii=0;inexxt; deelette qq; LENN=0;voidd Gaatheer:settGattherr() Datta *p; p=pptr; forr (iint i=00;iLENN;i+) cooutEEnteer iitemm i+1p-numm; p=p-nexxt; voidd Gaatheer:priint() if (LEEN=0) cooutIItss ann
23、emmptyy seet!eendll; Datta *p; p=pptr; forr(innt ii=0;iLLEN;i+) cooutnuumnexxt; iff (ii!=00&ii%100=00) ccoutteendll; voidd Gaatheer:addd(innt tt) boool yy=trrue; Datta *p; p=pptr; forr(innt ii=0;innum=t) yy=faalsee; bbreaak; iff(i!=LEEN-11)p=p-nexxt; if(y) p-neext=neww Daata; p=p-nexxt; p-nuum=tt; p
24、-neext=NULLL; LEEN+; Gathher& Gaatheer:opeerattor =(GGathher &x) if (pttr=x.pptr) reeturrn *thiis; elsse del(); foorm(x.LLEN); Daata *p,*q; p=ptrr; q=x.pptr; foor(iint i=00;innum=q-numm; pp=p-neext; qq=q-neext; reeturrn *thiis; Gathher& Gaatheer:opeerattor +(GGathher &x) inssidee.deel(); inssidee.fo
25、orm(LENN); Datta *q; Datta *p; q=pptr; p=iinsiide.gettptrr(); forr(innt ii=0;inuum=qq-nnum; p=p-nexxt; q=q-nexxt; q=xx.pttr; forr(i=0;iinumm); q=q-nexxt; retturnn innsidde;Gathher& Gaatheer:opeerattor *(GGathher &x) intt z=0; lonng gg1000; boool yy=trrue; Datta *p; Datta *q; p=pptr; q=xx.pttr; forr(
26、innt ii=0;iLLEN;i+) q=x.pptr; foor(iint j=00;jnumm=qq-nnum) forr(innt tt=0;tnnum=gt) yy=faalsee; bbreaak; if(y) gz=p-numm; z+; brreakk; y=ttruee; breeak; eelsee q=q-nexxt; p=p-nexxt; inssidee.deel(); inssidee.foorm(z); Datta *pree; pree=innsidde.ggetpptr(); forr (ii=0;inumm=gi; prre=ppre-neext; rett
27、urnn innsidde;/thhe mmainnint maiin() Gattherr x(6); Gattherr y; Gattherr reesullt; couutEnnterr thhe iitemm off seet xx:enndl; x.ssetGGathher(); couutThhe iitemms oof xx iss:enndl; x.pprinnt(); couutenddl; couutEnnterr thhe iitemm off seet yy:enndl; y.ssetGGathher(); couutThhe iitemms oof yy iss:en
28、ndl; y.pprinnt(); couutenddl; couutThhe rresuult of x+yy iss:enndl; ressultt=x+y; ressultt.prrintt(); couutenddl; couutThhe rresuult of x*yy iss:enndl; ressultt=x*y; ressultt.prrintt(); couutenddl; couutaa; x.aadd(a); couutNoow xx iss : ; x.pprinnt(); couutenddl; inssidee.deel(); ressultt.deel(); x.
29、ddel(); y.ddel(); retturnn 0;(四)对对象实训训基础实训训1、读读程序写写结果;2、设设计计算算图形面面积的程程序,图图形有圆圆和长方方形,计计算半径径为155、233、377的圆和和长宽分分别为(332,556)、(221,445)的的长方形形等五个个图形的的面积。classs rrectt priivatte: flooat lenngthh; ffloaat wwidtth; pubblicc: rrectt(flloatt l,flooat w); vooid puttwiddth(flooat w); vooid puttlenngthh(flloatt
30、l); ffloaat ggetwwidtth()connst; flloatt geetleengtth()connst; flloatt Arrea()coonstt; ffloaat TTotaal()connst; ; reect:reect(flooat l=00 ,ffloaat ww=0) lenngthh=l; wiidthh=w; voiid rrectt:pputwwidtth(ffloaat ww) wiidthh=w; voiid rrectt:pputllenggth(flooat l) leengtth=ll; flloatt reect:geetleengtth(
31、)connst reeturrn llenggth; flooat recct:gettwiddth()coonstt retturnn wiidthh; flloatt reect:Arrea ()cconsst reeturrn llenggth*widdth; flooat recct:Tottal ()cconsst reeturrn 22*(llenggth+widdth); /recct.ccpp #inncluude #inccludde #inncluude reect.h #iinclludee ussingg naamesspacce sstd; vooid maiin()
32、 couut 求长长方形的的面积与与周长 eendll; iint strr=0; flloatt rww,rll; rrectt a(0,00); tttt: ccoutt rll rww;/此处输输入字符符时就会会错误 a.pputllenggth (rll); a.pputwwidtth (rw); ddo coout 输输入0为为退出,输入11求面积积,输入入2求周周长,33是输入入长和宽宽 sttr; swiitchh (sstr) casse 11: ccoutt 面积是是: a.Areea () eendll; bbreaak; casse 22: ccoutt 周长是是: a.
33、Tottal () enddl; breeak; caase 3: gotto tttt; brreakk; ccasee 0: coout BByeBBye! enddl; breeak; deefauult: coout 错错误!输输入1求求面积,输输入2求求周长! enddl; breeak; whhilee(sttr);/*/ ggetcch(); 3、设设计一个个日期类类Datte,可可以求昨昨天的日日期和明明天的日日期,输输出格式式为:年年/月/日,编编写主程程序设置置当前日日期为220033年9月月10日日,显示示昨天的的日期和和明天的的日期,将将日期改改为20004年年5月44
34、日,显显示修改改后的日日期。综合实训训设计一个个最多可可以存放放1000个整数数的类,要要求这些些整数按按从小到到大的顺顺序存放放在类中中的数组组里,可可以删除除数组中中的数据据,也可可以向数数组中插插入数据据,但是是要保持持从小到到大的顺顺序,可可以求出出数据的的多少,可可以判断断数组的的空和满满,可以以显示数数组中的的整数。当当然刚生生成对象象时,对对象中的的数组没没有数据据,只有有一个一一个地向向对象中中插入数数据。要要求如下下:(1)分分析数组组类的数数据属性性要求;(2)分分析数组组类的操操作属性性要求;(3)编编制数组组类的接接口定义义;(4)生生成数组组类对象象;(5)编编制程序
35、序实现数数组对象象的插入入和删除除操作;#inccluddeclasss DDateeprivvatee:int yeaar,mmontth,dday;publlic:Datee(innt yy=19900,intt m=1,iint d=11):yyearr(y),moonthh(m),daay(dd)/构构造函数数voidd seetDaate(intt y,intt m,intt d)/设设置日期期 yyearr=y; mmontth=mm; dday=d;voidd shhowDDatee()/输出出日期格格式 ccouttyyearr/moonthh/daayenddl;int leaap()/判判断是否否为润年年 iif(yyearr%4000=0|(yeear%1000!=00&yyearr%4=0) retturnn 1; eelsee re