欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    天津理工大学C实验三.docx

    • 资源ID:30327252       资源大小:369.85KB        全文页数:22页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    天津理工大学C实验三.docx

    1、天津理工大学C实验三天津理工大学C+实验三天津理工大学计算机科学与技术学院实验报告 至 学年 第 学期课程名称C+程序设计学号学生姓名年级专业教学班号实验地点实验时间 年 月 日 第 节 至 第 节主讲教师辅导教师实验( 三 )实验名称派生与继承软件环境C+visual硬件环境无实验目的(1)理解继承的含义,掌握派生类的定义方法和实现;(2)理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;(3)理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员;实验内容(应包括实验题目、实验要求、实验任务等)1.

    2、#include #define PI 3.14159class Point / 定义“点”类 int x, y;public: Point(int a=0, int b=0) x=a; y=b; void ShowPoint( ) coutPoint:(x,y)n; int Getx( ) return x; int Gety( ) return y; void Setxy(int a, int b) x=a; y=b; ;class Circle: public Point / 定义“圆”类,公有继承 int r; / “圆”的半径 public:Circle(int x, int y,

    3、int ra) : Point(x, y) / B r = ra; void Setr(int ra) r = ra; double Area( ) /求圆的面积 return PI*r*r; void Move(int x_offset, int y_offset) /将圆心坐标平移 int x1=Getx( ); /存取基类的私有成员 int y1=Gety( ); / D x1 += x_offset; y1 += y_offset; Setxy(x1, y1); / E void ShowCircle( ) ShowPoint( ); / F cout Radius: rt; cout

    4、Area: Area( )endl; /G ;void main( ) Circle c(1, 1, 1); c.ShowCircle( ); c.Move(1, 2); c.ShowCircle( ); c.Setxy(4, 5); /重新置圆心坐标 c.Setr(2); /重新置半径值 c.ShowCircle( );实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)(1)记录程序的运行结果Point(1, 1)Radius: 1 Area: 3.14159Point(2, 3)Radius: 1 Area: 3.14159Point(4, 5)Radius: 2 Area

    5、: 12.5664(2)测试能否将move函数体改写为x=x+x_offset;y=y+y_offset;不可以,因为x和y是Point类的私有(private)成员。2.#include #define PI 3.14159class Point protected: /A int x, y;public: Point(int a=0, int b=0) x=a; y=b; void ShowPoint( ) coutPoint:(x,y)n; int Getx( ) return x; int Gety( ) return y; void Setxy(int a, int b) x=a;

    6、y=b; ;class Radius protected: int r;public: Radius(int ra=0) r = ra; void Setr(int ra) r = ra; int Getr( ) return r; ;class Circle : public Point, public Radius public: Circle(int x, int y, int ra) : Point(x, y), Radius(ra) /D double Area( ) return PI*r*r; /直接访问基类的保护成员 void Move(int x_offset, int y_

    7、offset) x += x_offset; y += y_offset; void ShowCircle( ) ShowPoint( ); coutRadius: rt; coutArea: Area( )endl; ;void main( ) Circle c(1, 1, 1); c.ShowCircle( ); c.Move(1, 2); c.ShowCircle( ); c.Setxy(4, 5); c.Setr(2); c.ShowCircle( );(1)记录程序的运行结果Point:(1,1)Radius: 1 Area: 3.14159Point:(2,3)Radius: 1

    8、Area: 3.14159Point:(4,5)Radius: 2 Area: 12.5664(2)为什么可以直接使用x,y,x和y是Point类的保护(protected)成员(3)如果x,y在基类中是私有的行吗?不行#include class Base1protected: int data1;public: Base1(int a=0) data1 = a; coutBase Constructor1n; Base1( ) coutBase Destructor1n; ;class Base2protected: int data2;public:Base2(int a=0) data

    9、2 = a; coutBase Constructor2n;Base2( ) coutBase Destructor2n; ;class Derived: public Base1, public Base2 int d;public: Derived(int x, int y, int z):Base1(x), Base2(y) d=z; coutDerived Constructorn; Derived( ) coutDerived Destructorn; void Show( ) coutdata1,data2,dendl; ;void main( ) Derived c(1, 2,

    10、3); c.Show( );(1)记录程序的运行结果Base Constructor1Base Constructor2Derived Constructor1,2,3Derived DestructorBase Destructor2Base Destructor1#include class Base1protected: int data1; public: Base1(int a=8) data1 = a; coutdata1, Base Constructor1n; Base1( ) coutdata1, Base Destructor1n; ;class Base2protecte

    11、d: int data2;public: Base2(int a=9) data2 = a; coutdata2, Base Constructor2n; Base2( ) coutdata2, Base Destructor2n; ;class Derived:public Base1, public Base2 int d; Base1 b1, b2; public: Derived(int x, int y, int z) : Base1(x), Base2(y), b1(x+y), b2(x+z) d=z; coutDerived Constructorn; Derived( ) co

    12、utDerived Destructorn; void Show( ) coutdata1,data2,dendl; ;void main( ) Derived c(1, 2, 3); c.Show( );(1)记录程序的运行结果1, Base Constructor12, Base Constructor23, Base Constructor14, Base Constructor1Derived Constructor1,2,3Derived Destructor4, Base Destructor13, Base Destructor12, Base Destructor21, Bas

    13、e Destructor15.#include#includeusing namespace std;class baseprotected: float price; /单价 string place; /产地 int count; /库存量 public: base(float &p,int &c,string &pl) price=p; count=c; place=pl; void in_something(int add_cnt) count+=add_cnt; void out_something(int del_cnt) if(del_cntcount)count=0; /变0保

    14、护 小于0的按0计算 else count-=del_cnt; double total_price() return price*count; int r_count() return count; ;class shirt:public baseprotected: string material;public: shirt(float &p ,int &c ,string &pl ,string &m):base( p , c, pl) material=m; void print() coutn衬衣t产地:placet材料:material n库存量:countt单价:pricet总价

    15、格total_price()endl; ;class wardrobe:public baseprotected: string wood; string color;public: wardrobe(float &p ,int &c ,string &pl ,string &w ,string &co ):base(p,c,pl) wood=w; color=co; void print() coutn立柜t产地:placet颜色:colort木料:woodn库存量: countt单价:pricet总价格total_price()endl; ;class cap:public shirtpr

    16、otected: string style;public: cap(float &p ,int &c ,string &pl ,string &m,string &st ):shirt(p,c,pl,m) style=st; void print() coutn帽子t产地:placet材料:material 样式:stylen库存量:countt单价: pricet总价格total_price()endl; ;int choose(string a) /用于判断下一步执行的命令 0.结束1.衬衣2.帽子3.立柜4.查询5.入库6.出库7.出错重输 if(a=0)return 0; /结束 el

    17、se if(a=衬衣|a=shirt)return 1; else if(a=帽子|a=cap)return 2; else if(a=立柜|a=wardrobe)return 3; else if(a=查询|a=?|a=about)return 4; else if(a=入库|a=+|a=in)return 5; else if(a=出库|a=-|a=out)return 6; else if(a=帮助|a=?|a=help)return 8; else return 7;int total_count(cap &a,shirt &b,wardrobe &c) return a.r_coun

    18、t()+b.r_count()+c.r_count(); /Powered by X.Duke int main(void)/=输入部分 int cho=1,i; /cho为选择计数器 接收choose函数的返回值 通过if语句判断要执行的语句 int ci=0,wi=0,si=0; /标记 角标 float pci5=0.00,pwi5=0.00,psi5=0.00; /单价 int cou_cap5=0,0,0,0,0,cou_shi5=0,0,0,0,0,cou_war5=0,0,0,0,0; /依次记录帽子 衬衣 立柜的库存量 string pla_cap5=0,0,0,0,0; /保

    19、存帽子产地信息 string pla_war5=0,0,0,0,0; /保存立柜产地信息 string pla_shi5=0,0,0,0,0; /保存衬衣产地信息 string col5=0,0,0,0,0; /保存颜色信息 string s_mat5=0,0,0,0,0; /保存衬衣_布料信息 string c_mat5=0,0,0,0,0; /保存帽子_布料信息 string woo5=0,0,0,0,0; /保存木料信息 string sty5=0,0,0,0,0; /保存样式信息 string temp,temp1=0,temp2=0,temp3=0; /临时寄存字符 int cou_

    20、temp;float p_temp; /临时记录初始值 int loop_sw=0; /事件标记点 为0时不跳过 非0时跳过 /提示性语句 cout现在对3种商品 n衬衣(shirt),帽子(cap),立柜(wardrobe) n实现基本管理功能endln=首先进行初始化工作=endl; cout即将录入商品名称(也可以是括号中的英文)输入0结束endl; while(cho!=0) /分类输入 couttemp; cho=choose(temp); if(cho=1) /shirt -place material if(si=5)cout超过最大数量输入限制,跳出;continue; /溢出

    21、保护 coutp_temp; /设置帽子单价 cout输入产地 布料 初始数量 并以空格隔开temp1temp2cou_temp; for(i=0;i=si;i+) /用于判断是否与之前输入的有冲突 if(temp1=pla_shii&temp2=s_mati) if(p_temp!=psisi)coutpsisi; cout与之前输入的商品重复,将数量叠加place material style if(ci=5)cout超过最大数量输入限制,跳出;continue; coutp_temp; / cout输入产地 布料 样式 初始数量 并以空格隔开temp1temp2temp3cou_temp

    22、; for(i=0;i=ci;i+) if(temp1=pla_capi&temp2=c_mati&temp3=styi) if(p_temp!=pcici)coutpcici; cout与之前输入的商品重复,将数量叠加place wood color if(wi=5)cout超过最大数量输入限制,跳出;continue; coutp_temp; cout输入产地 木料 颜色 初始数量 并以空格隔开temp1temp2temp3cou_temp; for(i=0;i=wi;i+) if(temp1=pla_wari&temp2=wooi&temp3=coli) if(p_temp!=pwiwi

    23、)coutpwiwi; cout与之前输入的商品重复,将数量叠加endl;cou_wari+=cou_temp; loop_sw=1; if(loop_sw=0) pwiwi=p_temp; pla_warwi=temp1; woowi=temp2; colwi=temp3; cou_warwi+=cou_temp; cou_temp=0; loop_sw=0; if(cho=7)cout输入有误 重新; cho=1; /选择计数器重新设置 /开始初始化工作 shirt s_5= shirt(psi0,cou_shi0,pla_shi0,s_mat0), shirt(psi1,cou_shi1

    24、,pla_shi1,s_mat1), shirt(psi2,cou_shi2,pla_shi2,s_mat2), shirt(psi3,cou_shi3,pla_shi3,s_mat3), shirt(psi4,cou_shi4,pla_shi4,s_mat4) ; cap c_5= cap(pci0,cou_cap0,pla_cap0,c_mat0,sty0), cap(pci1,cou_cap1,pla_cap1,c_mat1,sty1), cap(pci2,cou_cap2,pla_cap2,c_mat2,sty2), cap(pci3,cou_cap3,pla_cap3,c_mat3,sty3), cap(pci4,cou_cap4,pla_cap4,c_mat4,sty4) ; wardrobe


    注意事项

    本文(天津理工大学C实验三.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开