Calc c; double x,y; int z;
cout<<\请输入贷款总额、年利率、还贷月数:\cin>>x>>y>>z; c.setData(x,y,z); while(c.left>0){ c.print(); }
return 0;}
三、 实验输出:
四、实验心得
进一步了解类的设计,提高抽象问题的能力,积累更多的类设计的技巧和编程经验,对面向对象程序设计有更清晰的理解。
实验四 类的设计和对象的创建
【实验 2-3】 积分返券
(见《C++面向对象程序设计习题解析与实验教程》第39页。)
一、问题描述:
某商场年终举行“积分返券”活动,其规则为:每张会员卡积满1000分返礼券10元,积满3000分返礼券30元,积满5000分返礼券100元,返券的同时,消除礼券对应的积分。编程帮助商场实现返券活动。
二、程序代码:
(1)类的声明:
class card{ char *id; char *name; double s,r; public: card(char* pid,char* pname,double ps):id(pid),name(pname),s(ps),r(0){} void reward(); void print(); };
(2)主要成员函数:
void card::reward(){ if(s>=1000 &&s<3000){r=10;s-=1000;} else if(s>=3000 &&s<5000){r=30;s-=3000;} else if(s>=5000){r=100;s-=5000;} }
(3) 主函数main()的实现:
void main(){
card m(\刘明\
cout<<\返券前***********\ m.print(); m.reward();
cout<<\返券后***********\ m.print(); }
三、实验输出:
【实验 2-4】 设计实时更新的时间类Time
(见《C++面向对象程序设计习题解析与实验教程》第42页。)
一、 问题描述:
设计能按照系统时间实时更新的Time类。
二、 程序代码:
(1) Time类的声明
class Time{
int hour,minute,second; public: Time(); Time(int h,int m,int s); void tick(); void printU(); void printS(); int getH(){return hour;} int getM(){return minute;} int getS(){return second;} void setTime(int h,int m,int s){hour=h;minute=m;second=s;} void setH(int h){hour=h;} void setM(int m){minute=m;} void setS(int s){second=s;} };
(2) 缺省构造函数
Time::Time(){ const time_t now=time(NULL); tm local=*localtime(&now); hour=local.tm_hour; minute=local.tm_min; second=local.tm_sec; }
(3) 关键成员函数
void Time::tick(){ second++; if(second/60){ minute++; setS(0); if(minute/60){ hour++; setM(0);
}
}
}
if(hour/24){ setTime(0,0,0); }
(4) 主函数main()的实现
void main(){ Time now;
long t1=time(NULL),t2; now.printU(); while(!-kbhit()){ t2=time(NULL); if(t2-t1==1){ system(\ t1=t2; now.tick(); now.printU(); } } }
三、 实验输出:
实验四 对象指针和对象引用
【实验 3-1】比较两个分数的大小 一、 问题描述:
设计分数类Fraction,它具有分子和分母两个数据成员,具有构造函数和读
取分子、分母值的成员函数。定义全局函数compare(),其功能是比较两个分数大小,若相等,返回0;若第一个分数大于第二个,返回1;小于则返回-1。为简单起见,暂不考虑约分问题。
二、 程序代码: 三、
Fraction类:
class Fraction{ public:
Fraction(int n,int d);
int getNum(){return numerator;} int getDenom(){return denominator;} private:
int numerator; //分子 int denominator; //分母 };
全局compare()函数:
int compare(Fraction f1,Fraction f2){ int f1n=f1.getNum(); //f1的分子 int f1d=f1.getDenom(); //f1的分母 int f2n=f2.getNum(); int f2d=f2.getDenom(); int com=f1n*f2d-f2n*f1d; if(com>0) return 1; else if(com<0) return -1; else return 0; }
【实验 3-2】 模拟存钱罐
(见《C++面向对象程序设计习题解析与实验教程》第70页。) 一、问题描述:
可以将币值为1角、5角、1元、5元、10元的零钱存入钱罐中,最多能存放100张。
编程模拟存钱罐功能:用户按一次回车键代表存入一个零钱,币值随机。当用户按除回车键外的任意键后,程序打印出存钱总额,并分类统计出各类币值的零钱分别是多少。
二、程序代码:
(1) Money类的声明
class Money{ double value; public: Money(); double getV() {return value;} };
(2) Savebox类的声明
class Savebox{
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库重庆邮电大学C++实验报告(2)在线全文阅读。
相关推荐: