ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:17.69KB ,
资源ID:10626267      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10626267.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验二+++类程序设计实验.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验二+++类程序设计实验.docx

1、实验二+类程序设计实验实验二 类程序设计实验【实验目的】1掌握类和对象的概念、定义和使用方法。2学习数据成员与成员函数的访问方式。3掌握构造函数、拷贝构造函数和析构函数的使用方法。【实验内容】1阅读下列程序,写出执行结果:(1) #includeclass Circlepublic: Circle(float radius) Radius=radius; cout构造函数被调用endl; Circle() cout析构函数被调用!endl; float GetArea()return 3.14*Radius*Radius;private: float Radius;int main() flo

2、at radius; coutradius; Circle obj(radius); cout半径为radius圆的面积为:obj.GetArea()endl; return(0); (2) #includeclass Circlepublic: Circle(float radius) Radius=radius; cout构造函数被调用endl; Circle(Circle& p) Radius=p.Radius; cout拷贝构造函数被调用endl; Circle() cout析构函数被调用!endl; float GetArea()return 3.14*Radius*Radius;p

3、rivate: float Radius;int main() float radius; coutradius; Circle obj1(radius); Circle obj2(obj1); cout对象1的面积为:obj1.GetArea()endl; cout对象2的面积为:obj2.GetArea()endl; return(0);2 设计一个银行账户(Account)类,包含户名、帐号以及当前余额属性,可完成开户、存款、取款和查询余额等行为。银行账户类的定义如下:class Accountprivate: char mName20; /银行账户的户名 long mSN; /本账户的

4、帐号 float mBalance; /本账户当前的余额public: Account(char name,long num,float amount); /类的构造函数 Account(); /类的析构函数 void deposit(float amount); /往账户中存款 int withdraw(float amount); /从账户中取款 float getBalance(); /查询余额;请根据上述给定的类,完善其相应的构造函数及成员函数的定义,并编写主函数实现测试。3设计一个股票(Stock)类,包含股票名称、股票代码、股票的数量、每股的价格、股票的总值等属性,可完成获得股票(

5、用构造函数完成)、增持、卖出股票、更新股票价格、显示所持股票的信息等行为。(附加题)4定义一个复数类。要求有构造函数、拷贝构造函数和析构函数,并能实现复数的加、减、乘、除等基本运算。5改进实验内容2,用类模板形式定义一个复数类,并实现复数的加、减、乘、除等基本运算。(附加题)6设计一个用于学生管理的Student类,属性有:学号、年龄、性别、出生日期、身份证号等。其中“出生日期”声明为一个“日期”类的内嵌子对象。用成员函数实现对学生信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、组合。【思考题】1C+语言中类和结构体类型有何异同?2什么时候程序会调用其构造函数?3什么时候程序会自

6、动调用析构函数?4什么时候程序会自动调用拷贝构造函数?5类的组合在什么情况下使用?#include#includeclass Accountprivate: char mName20; /银行账户的户名 long mSN; /本账户的帐号 float mBalance; /本账户当前的余额public: Account(char name,long num,float amount); /类的构造函数 Account(); /类的析构函数 void deposit(float amount); /往账户中存款 void withdraw(float amount); /从账户中取款 float

7、 getBalance(); /查询余额;Account:Account(char name,long num,float amount) strcpy(mName,name); mSN=num; mBalance=amount; cout构造函数被调用endl;Account:Account() cout析构函数被调用endl;void Account:deposit(float amount) mBalance+=amount;void Account:withdraw(float amount) mBalance-=amount;float Account:getBalance() re

8、turn(mBalance);void main() /char a20; /long b; /float c; float a1,a2; Account s(abc,123,0); cout请输入存款金额:a1; s.deposit(a1); cout请输入取款金额:a2; s.withdraw(a2); cout卡上余额为:s.getBalance()endl;#include#includeclass Stockpublic: Stock(char a,int b,int c,float d,float e);/获得股票 void increase(int a);/股票增持 void s

9、ale(int a);/卖出股票 void update(float a);/更新股票价格 void display();/显示private: char name20;/股票名称 int num;/股票代码 int number;/股票数量 float price;/每股价格 float sum;/股票总值;/获得股票Stock:Stock(char a,int b,int c,float d,float e) strcpy(name,a); num=b; number=c; price=d; sum=e; cout构造函数被调用endl;/股票增持void Stock:increase(i

10、nt a) number+=a; sum=number*price;/更新股票价格void Stock:update(float a) price=a; sum=number*price;/卖出股票void Stock:sale(int a) number-=a; sum=number*price;/显示void Stock:display() cout股票名称 股票代码 股票数量 每股价格 股票总值endl; coutname num number price sumendl;int main() Stock s(jihb,3435252,3,5.0,15.0); s.display();

11、s.increase(3); s.display(); s.update(15); s.display(); s.sale(1); s.display(); return(0);#include#include#include class fractionpublic : fraction(float x=0,float y=0);/构造函数 fraction(fraction &p);/拷贝构造函数 fraction ();/析构函数 float geta(void);/得到实部的值 float getb(void);/得到虚部的值 void display(void);/显示 fracti

12、on add(fraction& c);/计算复数之和 fraction sub(fraction& c);/计算复数之差 fraction mul(fraction& c);/计算复数之积 fraction div(fraction& c);/计算复数之商private: float a;/实部 float b;/虚部;fraction:fraction(float x,float y) b=y; a=x; cout构造函数被调用endl;fraction:fraction(fraction &p) a=p.a; b=p.b; cout拷贝函数被调用endl;fraction:fractio

13、n() cout析构函数被调用endl;float fraction:geta(void) return(a);float fraction:getb(void) return(b);/显示void fraction:display() couta+bia+c.a; temp.b=this-b+c.b;/ temp.b=b+c.b; return(temp);/复数之差fraction fraction:sub(fraction& c) fraction temp; temp.a=this-a-c.a; temp.b=this-b-c.b; return(temp);/复数之积fraction

14、 fraction:mul(fraction& c) fraction temp; temp.a=this-a*c.a-this-b*c.b; temp.b=this-a*c.b+this-b*c.a; return(temp);/复数之商fraction fraction:div(fraction& c) fraction temp; if(c.a=0&c.b=0) cout输入错误a*c.a+this-b*c.b)/(c.a*c.a+c.b*c.b); temp.b=(this-b*c.a-this-a*c.b)/(c.a*c.a+c.b*c.b); return(temp);int ma

15、in() fraction x(3,4),y(1,2),z; z=x.add(y); z.display(); z=x.sub(y); z.display(); z=x.mul(y); z.display(); z=x.div(y); z.display(); return(0);#include#include#include templateclass fractionpublic : fraction(T x=1,T y=1);/构造函数 fraction(fraction &p);/拷贝构造函数 fraction ();/析构函数 T geta(void);/得到实部的值 T getb

16、(void);/得到虚部的值 void add(fraction c);/计算复数之和 void sub(fraction c);/计算复数之差 void mul(fraction c);/计算复数之积 void div(fraction c);/计算复数之商private: T a;/实部 T b;/虚部;templatefraction :fraction(T x,T y) b=y; a=x; cout构造函数被调用endl;templatefraction:fraction(fraction &p) a=p.a; b=p.b; cout拷贝函数被调用endl;templatefracti

17、on:fraction() cout析构函数被调用endl;templateT fraction:geta(void) return(a);templateT fraction:getb(void) return(b);/复数之和templatevoid fraction:add(fraction c) T a,b; b=this-b+c.getb(); a=this-a+c.geta(); couta+biendl;/复数之差templatevoid fraction:sub(fraction c) T a,b; b=this-b-c.getb(); a=this-a-c.geta(); c

18、outa+biendl;/复数之积templatevoid fraction:mul(fraction c) T a,b; b=this-b*c.geta()+this-a*c.getb(); a=this-a*c.geta()-this-b*c.getb(); couta+biendl;/复数之商templatevoid fraction:div(fraction c) T a,b; if (c.geta()=0&c.getb()=0) cout输入错误b*c.geta()-this-a*c.getb()/(c.geta()*c.geta()+c.getb()*c.getb(); a=(th

19、is-a*c.geta()+this-b*c.getb()/(c.geta()*c.geta()+c.getb()*c.getb(); couta+biendl;int main() fraction x(3,4),y(0,0); x.add(y); x.sub(y); x.mul(y); x.div(y); return(0);#include#includeclass datepublic: date(int a,int b,int c); int year; int month; int day;class Studentpublic: Student(int a,int b,char

20、c,int year,int month,int day,int e);/构造函数 Student(Student &p); /拷贝构造函数 Student();/析构函数 void get();/信息录入 void display(void);/显示private: int num;/学号 int age;/年龄 char sex;/性别 date birth;/年 int s;/身份证号 ;date:date(int a,int b,int c) year=a; month=b; day=c;Student:Student(int a,int b,char c,int year,int m

21、onth,int day,int e):birth(year,month,day) num=a; age=b; sex=c; s=e; cout构造函数被调用endlendl;Student:Student(Student &p):birth(p.birth) num=p.num; age=p.age; sex=p.sex; s=p.s; cout拷贝函数被调用endlendl;Student:Student() cout析构函数被调用endlendl;void Student:get() cout请输入学生信息endl; coutnum; coutage; coutsex; cout出生日期:; cinbirth.yearbirth.monthbirth.day; void Student:display() coutn学生基本信息endl; cout学号:numendl; cout年龄:ageendl; cout性别:sexendl; cout出生日期:birth.year-birth.month-birth.dayendlendl;int main() Student z(345,15,f,1994,8,6,767868); z.display(); z.get(); z.display(); return(0);

copyright@ 2008-2022 冰豆网网站版权所有

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