收藏 分销(赏)

C++实训报告之仓库管理以及实训题目指导.docx

上传人:二*** 文档编号:4512302 上传时间:2024-09-26 格式:DOCX 页数:37 大小:275KB
下载 相关 举报
C++实训报告之仓库管理以及实训题目指导.docx_第1页
第1页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、昆明理工大学城市学院昆明理工大学城市学院面向对象程序设计实训报告仓库商品检查登记管理系统专业:班级:姓名:学号:指导老师:2021年1月6日目录目录1实训的目的和任务3实训内容指导3仓库商品检查登记管理系统类设计流程图源代码程序运行结果总结一、实训的目的和任务C+语言程序设计的实训,是教学方案中的一个有机组成局部,是培养学生综合应用所学的根底的理论,根本知识和技能,分析解决实际问题能力的重要一环,与其它教学环节紧密配合,相辅相成,是前面教学环节的继续,深入和开展。通过实训过程可在不同程度上提高调查研究,查问文献,实际应用的能力。二、实训内容指导一数据类型和表达式根底实训1、定义一个描述学生的结

2、构体类型student,含有学号num、姓名name、性别sex、成绩score几个分量,再定义属于这个结构体类型的两个变量stu1、stu2。struct studentintnum; /* 学号 */char name20;/* 姓名 */char sex; /* 性别 */floatscore; /* 成绩 */; struct student student1, student2;2、建立一个适于描述碗和勺子的结构体,有关的信息是:两者都有货号、价格、颜色,不同的是碗的大小用口径来表示,勺子的大小用枚举类型表示,分大、中、小三种。现有的勺子的大小是中,将其表示出来。#include u

3、sing namespace std;struct bowl int No; int price; char color; float size;struct spoon int No; int price; char color; struct enum small,medium,bigshaozi; a;b;void main() b.a.shaozi = b.a.medium; coutb.a.shaozi;3、编程实现两个整数相加。#includeint main()int integer1,integer2,sum; coutinteger1; coutinteger2; sum=i

4、nteger1+integer2; coutSum is sum endl; return; 4、编程实现,输入一个三位整数,能够将它反向输出。#include #include using namespace std; void main() int num; coutnum; while(num) coutnum%10; num /=10; coutendl;5、读程序写结果。综合实训数字互换实训。输入一个大于三位的整数,编一个程序,将它的十位数和百位数互换位置。#includeusing namespace std;int main() int x; int a3; cinx; for(

5、int i=0;i3;i+) ai=x%10;x=x/10; x=x*1000+a0+a1*100+a2*10; coutxendl; return 1;二语句和函数根底实训1、根据考试成绩的等级A、B、C和D,输出对应的百分制分数段,A对应85100,B对应7084,C对应6069,D对应060。#define num 100int a=new int num;for(int i=0;i=85)cout=70)cout=60)coutC;elsecoutD;2、用for语句编程求1100之和。#includevoid main()int sum(0);for(int i=1;i=100;i+

6、)sum+=i;coutsum=sumendl;3、用for语句、while语句和递归函数三种方法计算n!。#includemain()int n;int sum=1;cin0;) sum*=n-;while(n0) sum*=n-; int f(int x) if(x1) x*=f(x-1); return x; else return x; 4、用for循环编程打印图形。#include using namespace std;int main() for(int i=1;i=5;i+) for(int j=1;j=i;j+) cout*; coutendl; cout*endl; cou

7、t*endl;5、编写函数,判断一个数是否是质数。# include# includeusing namespace std;int main()int i,j,k;cinj;k=sqrt(j);for(i=2;ik)cout1;else cout0;return 0;9、设计一个函数,求三个数中的最大值。#includeint max(int,int,int);void main()coutmax(35,48,26)endl;int max(int a,int b,int c)int t=max(a,b);return max(t,c);10、编写程序,利用itoa函数实现整数到字符串的转换

8、。#includeintitoa(x)charc;c=x;printf(%c,c);getch();intmain(void)inta;printf(inputanumber:);scanf(%d,&a);itoa(a);11、编写程序,最多读入10个数,读入0表示结束。将读入的非零的数放在一个数组里,按从大到小的顺序排序后输出。#include #include#include#includeusing namespace std;int main()/主函数 vector b; for(int i=0;ix; if( x ) b.push_back( x ); else break; so

9、rt( b.begin(),b.end() ); copy( b.begin(),b.end() , ostream_iterator(cout, ) ); return 0;12、将一个代表整型数的字符串转换为一个整型的数字。#include #include #include using namespace std;int main(int argc, char* argv) stringstream a; string b; int i; cinb; a.str(b); ai; couti*2endl; return 0;综合实训职工信息处理函数实训职工的信息有姓名、年龄、工龄、性别、婚

10、姻状况、级别、工资、在职否。现在要进行工资的调整,规定但凡退休职工一律增加工资50元,在职15级职工的工资分别增加20、40、60、80、100元。编程实现上述工资调整。要求如下:1分析要存放的信息,设计适宜的数据结构;2分析要对信息进行的操作,进行处理;3打印程序执行前后的工资状况和级别。三面向对象根本概念与类实训根底实训1、读程序写结果;2、设计一个表示猫的类,包括猫的颜色、体重、年龄等数据,具有设置猫的颜色,修改和显示猫的体重、年龄等操作。设猫类的类名为Cat,猫类Cat有3个数据成员,颜色用字符串color7,可以存放3个汉字,体重用实型数weight表示,年龄用整型数age表示,为了

11、数据的平安性,Cat的3个数据成员全部为私有的。对猫的属性数据的设置和修改,PutColor为设置和修改颜色,PutWeight为设置和修改体重,PutAge为设置和修改年龄,它们都设置为公有函数,还要有一个1个3个参数的函数 SetCat。设计Display函数输出猫的信息。#include class Catprivate String colour;private int weight;private int age;.int getWeight() return weight;int getAge() return age;void setClolur(String xClolour)

12、 colour=xCloour;void setWeight(int xWeight) weight=xWeight;void setAge(int xAge) age=xAge; 3、 设计一个表示学习成绩的类,至少包括三门课程的成绩,可以设置、显示每门课程的成绩,可以计算、显示平均成绩。 class Gradesprivate: int Math,English,Chinese;public: Grades() Math = English = Chinese = 0; Grades(int a,int b,int c) Math = a; English = b; Chinese = c

13、; int getM() return Math; int getE() return English; int GetC() return Chinese; void Setvalue(int a,int b,int c) Math = a; English = b; Chinese = c; void Display(); float Average() return (Math+English+Chinese)/3.0; 4、设计成绩类,成绩类的数据成员,应该包括学生的学号Number10和姓名Name9,假设有3门课,分别为C+程序设计语言,用整型变量Cpp表示;计算机原理,用整型变量

14、Computer表示;数据库,用整型变量DataBase表示。平均成绩用实型变量Average表示。为了Grade类数据的平安性,数据成员全部为私有成员,对成绩类的属性数据用一些函数进行设置和修改,PutNo为设置和修改学号,PutName为设置和修改姓名,PutCpp为设置和修改C+程序设计语言的成绩,PutCom为设置和修改计算机原理的成绩,PutData为设置和修改数据库的成绩,还有一个同时设置所有5个参数的函数SetGrade,它们都设置为公有函数。计算平均成绩的函数为Calc,设计函数Display输出成绩。有时可能要查看某个学生的成绩,所以设计比拟学号的函数为ComNo,设计比拟姓

15、名的函数为ComName,GetCpp为读取C+程序设计语言的成绩,GetCom为读取计算机原理的成绩,GetData为读取数据库的成绩,设计读取平均成绩的函数为GetAvg。计算平均成绩只是在类的内部实现,所以设计为私有函数,其它都为公有函数。综合实训设计一个表示整型数据的集合类,可以对集合中的数据进行添加、删除,可以判断一个整数是否在这个集合里,可以求出集合数据的多少,可以判断集合的空与满,空集合就是没有数据元素,满集合就是数据元素已经占满给出的存储单元。两个集合可以做交运算,就是将两个集合的公共数据组成一个新的集合。两个集合可以做并运算,就是将两个集合的所有数据组成一个新的集合。要求如下

16、:1分析集合类的数据属性要求;2分析集合类的操作属性要求;3编制集合类的接口定义;4实现集合类的属性函数。#include/form the datastruct Data long num; Data *next;/the set classclass Gather public: Gather(int =5); /Gather(); void form(int); void del(); void setGather(); void print(); void add(int); Data *getptr()return ptr; Gather& operator=(Gather &);

17、Gather& operator+(Gather &); Gather& operator*(Gather &); private: int LEN; Data *ptr;Gather inside;Gather:Gather(int a)form(a);void Gather:form(int a) LEN=a; Data *p; for (int i=0;inext=new Data; p=p-next; p-next=NULL;/Gather:Gather()del();void Gather:del() Data *p; Data *q; p=ptr; for(int i=0;inex

18、t; delete q; LEN=0;void Gather:setGather() Data *p; p=ptr; for (int i=0;iLEN;i+) coutEnter item i+1p-num; p=p-next; void Gather:print() if (LEN=0) coutIts an empty set!endl; Data *p; p=ptr; for(int i=0;iLEN;i+) coutnumnext; if (i!=0&i%10=0) coutendl; void Gather:add(int t) bool y=true; Data *p; p=pt

19、r; for(int i=0;inum=t) y=false; break; if(i!=LEN-1)p=p-next; if(y) p-next=new Data; p=p-next; p-num=t; p-next=NULL; LEN+; Gather& Gather:operator =(Gather &x) if (ptr=x.ptr) return *this; else del(); form(x.LEN); Data *p,*q; p=ptr; q=x.ptr; for(int i=0;inum=q-num; p=p-next; q=q-next; return *this; G

20、ather& Gather:operator +(Gather &x) inside.del(); inside.form(LEN); Data *q; Data *p; q=ptr; p=inside.getptr(); for(int i=0;inum=q-num; p=p-next; q=q-next; q=x.ptr; for(i=0;inum); q=q-next; return inside;Gather& Gather:operator *(Gather &x) int z=0; long g100; bool y=true; Data *p; Data *q; p=ptr; q

21、=x.ptr; for(int i=0;iLEN;i+) q=x.ptr; for(int j=0;jnum=q-num) for(int t=0;tnum=gt) y=false; break; if(y) gz=p-num; z+; break; y=true; break; else q=q-next; p=p-next; inside.del(); inside.form(z); Data *pre; pre=inside.getptr(); for (i=0;inum=gi; pre=pre-next; return inside;/the mainint main() Gather

22、 x(6); Gather y; Gather result; coutEnter the item of set x:endl; x.setGather(); coutThe items of x is:endl; x.print(); coutendl; coutEnter the item of set y:endl; y.setGather(); coutThe items of y is:endl; y.print(); coutendl; coutThe result of x+y is:endl; result=x+y; result.print(); coutendl; cou

23、tThe result of x*y is:endl; result=x*y; result.print(); coutendl; couta; x.add(a); coutNow x is : ; x.print(); coutendl; inside.del(); result.del(); x.del(); y.del(); return 0;四对象实训根底实训1、读程序写结果;2、设计计算图形面积的程序,图形有圆和长方形,计算半径为15、23、37的圆和长宽分别为32,56、21,45的长方形等五个图形的面积。class rect private: float length; floa

24、t width; public: rect(float l,float w); void putwidth(float w); void putlength(float l); float getwidth()const; float getlength()const; float Area()const; float Total()const; ; rect:rect(float l=0 ,float w=0) length=l; width=w; void rect:putwidth(float w) width=w; void rect:putlength(float l) length

25、=l; float rect:getlength()const return length; float rect:getwidth()const return width; float rect:Area ()const return length*width; float rect:Total ()const return 2*(length+width); /rect.cpp #include #include #include rect.h #include using namespace std; void main() cout 求长方形的面积与周长 endl; int str=0

26、; float rw,rl; rect a(0,0); ttt: cout rl rw;/此处输入字符时就会错误 a.putlength (rl); a.putwidth (rw); do cout 输入0为退出,输入1求面积,输入2求周长,3是输入长和宽 str; switch (str) case 1: cout 面积是: a.Area () endl; break; case 2: cout 周长是: a.Total () endl; break; case 3: goto ttt; break; case 0: cout ByeBye! endl; break; default: co

27、ut 错误!输入1求面积,输入2求周长! endl; break; while(str);/*/ getch(); 3、设计一个日期类Date,可以求昨天的日期和明天的日期,输出格式为:年/月/日,编写主程序设置当前日期为2003年9月10日,显示昨天的日期和明天的日期,将日期改为2004年5月4日,显示修改后的日期。综合实训设计一个最多可以存放100个整数的类,要求这些整数按从小到大的顺序存放在类中的数组里,可以删除数组中的数据,也可以向数组中插入数据,但是要保持从小到大的顺序,可以求出数据的多少,可以判断数组的空和满,可以显示数组中的整数。当然刚生成对象时,对象中的数组没有数据,只有一个一

28、个地向对象中插入数据。要求如下:1分析数组类的数据属性要求;2分析数组类的操作属性要求;3编制数组类的接口定义;4生成数组类对象;5编制程序实现数组对象的插入和删除操作;#includeclass Dateprivate:int year,month,day;public:Date(int y=1900,int m=1,int d=1):year(y),month(m),day(d)/构造函数void setDate(int y,int m,int d)/设置日期 year=y; month=m; day=d;void showDate()/输出日期格式 coutyear/month/daye

29、ndl;int leap()/判断是否为润年 if(year%400=0|(year%100!=0&year%4=0) return 1; else return 0;int Days()/判断当月天数 int d; switch(month) case 2: if(leap() d=29; else d=28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12:d=31;break; case 4: case 6: case 9: case 11:d=30;break; return d;int isRight()

30、/判断日期数是否合理if(year0|month12|dayDays() coutthe date data is wrong!endl;return 0;else return 1;Date Yesterday()/求昨天Date dt(year,month,day);int y1=dt.year,m1=dt.month,d1=dt.day;switch(month) case 2: case 4: case 6: case 8: case 9: case 11: if(day=1)y1=year;m1=month-1;d1=31; else y1=year;m1=month;d1=day-

31、1; break; case 5: case 7: case 10: case 12: if(day=1)y1=year;m1=month-1;d1=30; else y1=year;m1=month;d1=day-1; break; case 3: if(day=1) y1=year;m1=month-1; if(leap() d1=29; else d1=28; else y1=year;m1=month;d1=day-1; break; case 1: if(day=1)y1=year-1;m1=12;d1=31; else y1=year;m1=month;d1=day-1; brea

32、k; dt.setDate(y1,m1,d1);return dt;Date Tomorrow()/求明天日期 Date dt(year,month,day);int y1=dt.year,m1=dt.month,d1=dt.day;switch(month) case 1: case 3: case 5: case 7: case 8: case 10: if(day=31)y1=year;m1=month+1;d1=1; else y1=year;m1=month;d1=day+1; break; case 4: case 6: case 9: case 11: if(day=30)y1=

33、year;m1=month+1;d1=1; else y1=year;m1=month;d1=day+1; break; case 2: if(leap()&day=29)|(!leap()&day=28) y1=year;m1=month+1;d1=1; else y1=year;m1=month;d1=day+1; break; case 12: if(day=31)y1=year+1;m1=1;d1=1; else y1=year;m1=month;d1=day+1; break; dt.setDate(y1,m1,d1);return dt; ;/data类结束int main()Da

34、te date1;int y,m,d,tr=1;while(tr)coutt请输入当天日期endl;couty;coutm;coutd; date1.setDate(y,m,d);if(date1.isRight()cout当日日期; date1.showDate(); cout明日日期; date1.Tomorrow().showDate(); cout昨日日期; date1.Yesterday().showDate(); cout继续下一次测试1或者结束2tr; if(tr!=1) break;return 0;五指针与引用实训根底实训1、读程序写结果;2、设有一个整型数组A,有10个元素

35、,输出各个元素,要求使用数组名和指针运算来实现。3、设计一个函数,以参数方式输入一个字符串,返回该字符串的长度。#includeint mystrlen(char *str)int cnt = 0;while(cnt+,*str+);return cnt-1;int main()char str100;int length;cout输入字符串:str;length = mystrlen(str);coutstr长度为:lengthendl;return 0;4、设计一个函数,比拟两个字符串是否相同。#include #include void main()char str1100,str2100;cout输入两个字符串(str1,str2):str1str2;int ret=strcmp(str1,s

展开阅读全文
相似文档                                   自信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 

客服