中国地质大学c++编程,其中有3个类CBank、BBank、GBank实习报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“中国地质大学c语言”。
《面向对象与程序设计》
C++实习报告
老师:曹弘 班级:052126 姓名:方日忠
学号:20121002220 中国地质大学(武汉)
工程学院
实习题目:
一、(类的声明和友元函数)编写一个程序,其中有3个类CBank、BBank、GBank,分别为中国银行类、工商银行类、和农业银行类。每个类都包含一个私有数据balance用于存放储户在该银行的存款数据,另有一个友元函数max用于显示三家银行之中存款最多的银行和存款数据。
程序源代码:
#include #include cla CBank;cla BBank;
cla GBank;
cla CBank
//定义中国银行类CBank {
long int balance;public: CBank()
{balance=0;}
CBank(long int b)
{ balance=b;}
void getbalance()
{cout
cin >> balance;}
//输入存款金额
friend void total(CBank,BBank,GBank);
friend void max(CBank,BBank,GBank);};
cla BBank
//定义工商银行类BBank {long int balance;public: BBank()
{balance=0;}
//默认构造函数
BBank(long int b)
{balance=b;}
//构造函数
void getbalance()
{
cout
cin >> balance;}
//输入存款金额
friend void total(CBank,BBank,GBank);friend void max(CBank,BBank,GBank);};
cla GBank
//定义农业银行类GBank {
long int balance;public: GBank()
{balance=0;}
//默认构造函数
GBank(long int b)
{balance=b;}
//构造函数
void getbalance()
{
cout
cin >> balance;}
//输入存款金额
friend void total(CBank,BBank,GBank);friend void max(CBank,BBank,GBank);};
void total(CBank A,BBank B,GBank C)//定义求总的存款函数total {cout
void max(CBank A, BBank B, GBank C)//定义求存款最多银行的函数 {
long int max;char str[20];if(A.balance>B.balance)
{if(A.balance>C.balance)
{max=A.balance;
strcpy(str,“中国银行”);}
else
{max=C.balance;
strcpy(str,“农业银行”);} } else {if(B.balance>C.balance){max=B.balance;strcpy(str,“工商银行”);} else {max=C.balance;strcpy(str,“农业银行”);} } cout
void main(){
“
//定义CBank类的对象X //定义BBank类的对象Y //定义GBank类的对象Z
BBank Y;
GBank Z;X.getbalance();
Y.getbalance();
Z.getbalance();
total(X,Y,Z);} 运行截图: max(X,Y,Z);
二、(类的声明和运算符重载)设计一个日期类Date,要求:
(1)可以建立具有指定日期(年月日)的Date对象,默认日期为2014.6.6;
(2)可以从输出流输出一个格式为“年-月-日”的日期,其中年占4位数据,月日可以是1位或2位数据;
(3)可以动态设置年月日;
(4)可以用运算符==对两个日期进行是否相等的比较;
(5)主函数中测试该类;
程序源代码:
#include static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31};
cla date {public: int yr,mo,da;date(int y,int m,int d)
//构造函数的声明
{yr=y;mo=m;da=d;} date(){}
//不带参数的构造函数 void disp(){cout
friend date operator +(int,date&);//加法运算符函数
date operator +(int day){
date dt=*this;
day+=dt.da;
while(day>dys[dt.mo-1])
{
day-=dys[dt.mo-1];
dt.mo++;
if(dt.mo==13)
{
dt.mo=1;
dt.yr++;
} }
dt.da=day;
return dt;} date operator-(int day)
//减法运算符函数
{
date dt=*this;
day=dt.da-day;
while(day
{
day+=dys[dt.mo-1];
dt.mo--;
if(dt.mo==0)
{dt.mo=12;
dt.yr--;}
}
dt.da=day;return dt;}};
void main(){ int y,m,d,a,b;cout
cout>y>>m>>d;date d1(y,m,d),d2,d3;d1.disp();if(olddate.yr==y&&olddate.mo==m&&olddate.da==d)//与默认日期比较是否相等
cout
//进行时间的加法 cout>a;d2=d1+a;d2.disp();cout>b;d3=d1-b;d3.disp();
//进行时间的加法
if(olddate.yr==d2.yr&&olddate.mo==d2.mo&&olddate.da==d2.da)//与计算后日期比较是否相等
} 运行截图:
cout
cout
实验总结:我的感受是:C++实习和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。在这次实训中,我对对C++有了一个更深的了解认识,也对这个学期学的知识得到巩固,运行程序的成功,让我对实习充满信心。这次的实习,也使我们发现了许多问题。
在实习中,我们认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索。而且遇到一些小错误运行不出来,就会烦躁不安,以后要克服,尽量保持一颗良好的心态,学好C++,也学好用C++编写一个按要求的系统,我觉得我还有许多方面需要提高。