班 级
学号(最后两位)
姓 名
成 绩
一、实验目的
1. 掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 2. 掌握类对象的定义,对象的初始化;
3. 理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4. 掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和
重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 二、实验内容
1.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。
#include { int a1,a2; public: one(int x1=0, x2=0); }; void main() {one data(2,3); cout< #include float invol,outvol; public: Amplifier(float vin,float vout) {invol=vin;outvol=vout;} float gain(); }; Amplifier::float gain() { return outvol/invol; } void main() { Amplifier amp(5.0,10.0); cout<<\"\\n\\nThe gain is =>\"< 5.编写一个程序计算两个给定的长方形的周长和面积。 6.编写一个程序,采用一个类求n!,并输出10!的值。 7.编写一个程序,设计一个Cdate类,它应该满足下面的条件: 1)用这样的格式输出日期:日-月-年; 2)输出在当前日期上加两天后的日期; 3)设置日期。 三、实验源程序、测试与结论 1.分析:出错原因: 在构造函数参数表的时候语法用错了,定义的时候语句不需用分号,并且构造函数没有函数体,同时类的对象不能访问类的私有成员变量. 修改方案: one(int x1=0, int x2=0) {a1=x1;a2=x2;} int geta1() { return a1; } int geta2() { return a2; } cout< 成员函数在类体外定义格式是:函数返回类型类名::成员函数名(参数表),这个程序没有给出函数返回的类型;成员函数调用格式是:对象名.成员函数名(参数表)这个程序中调用的方法不对. 修改方案: float Amplifier::gain(){ return outvol/invol;} cout<<\"\\n\\nThe gain is =>\"< box():x(0),y(0),z(0) {} box(int a,int b,int c):x(a),y(b),z(c){} void setx(int a) {x=a;} void sety(int a) {y=a;} void setz(int a) {z=a;} double acea(); double volume (); }; double box::acea() { return 2*(x*y+y*z+z*x); } double box::volume() { return x*y*z; } void main() { box box_1(6,8,10); cout<<\"acea=\"< void de_Counter() {n--;} int get_Counter () {return n;} void show() {cout< 5 #include private: float wides,lengths; public : oblong(float wide,float length) { wides=wide; lengths=length; } ~oblong() { cout<<\"长方形的周长:\"<<2*(wides+lengths)< cin>>a>>b; oblong::oblong(a,b); i++; cout< . 6.#include long double facts; int numbers; fact(int number) { } ~fact() { cout< facts=facts*i; public: } int a; cin>>a; fact::fact(a); cout<<\"请输入阶乘的级数:\"; 7.#include public: Cdate ( int year1 ,int month1 ,int date1); Cdate (); void Getnumber(int date2); void Show (); private: int year , month , date ; }; Cdate::Cdate (int year1 ,int month1 ,int date1) {year = year1 ; month = month1 ; date = date1 ;} void Cdate::Getnumber(int date2) { if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11&&month!=12) { if(date+date2>31) { month+=1; date=date+2-31; } else date+=date2; return; } if(month==2) { if(year/4!=0) { if(date+date2>28) { month+=1; date=date+date2-28; } else date+=date2; } else { if(date+date2>29) { month+=1; date=date+date2-29; } else date+=date2; return; } } if(month==12) { if(date+date2>31) { year+=1; month=1; date=date+date2-31; } else date+=date2; return; } else { if(date+date2>30) { month+=1; date=date+date2-30; } else date+=date2; return; } } void Cdate::Show() { cout< Cdate DATE(a,b,c); DATE.Getnumber(2); cout<<\"两日后的日期为:\"<<\"\\n\"; DATE.Show(); system(\"pause\"); } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务