发信人: gebi (心情不爽,别惹我), 信区: Npsos
标 题: C++描述“梦幻美女”!(转载)
发信站: 哈工大紫丁香 (2002年10月17日19:22:51 星期四), 站内信件
【 以下文字转载自 HITZoneII 讨论区 】
【 原文由 Kermit 所发表 】
earthharp@sina.com)
/* File C++描述“梦幻美女”.h */
/* This file creat at Friday, April 27, 2001 22:29:53 */
#include <iostream.h>
#include <fstream.h>
/*
学习 C++ 深有体会!于是联想到我虽然没有现实中的美眉,但需要一个“梦幻美女”!
!
经过深思熟虑,决定为广大同僚做一件好事,——以 C++ 语言,将此“梦幻美女”形式
化!
首先,要有一个抽象基类,暂且叫做“ 女人”(women)吧!描述如下:
*/
class 女人
{
public:
女人(long double 胸围,long double 腰围,long double 臀围);
// 出于精确性考虑,所有的重要尺寸均用 长浮点型 表示 !
// 这三围,是所有 "女人" 都需要的,并且是最重要的参数
女人 * getThis();
// 这个成员函数,用来得到当前对象的指针
void set生日 (int);
char * get生日();
// 这个成员函数计算生日,并返回表示生日的字符串
void set星座 (int);
char * get星座();
// 这个成员函数计算星座,并返回表示星座的字符串
void set年龄 (int);
int get年龄();
// 这个成员函数返回年龄
void set昵称 (char *)
char * get昵称();
// 这个成员函数返回昵称
int 恶心系数();
// 返回负值表示不但对她不感到恶心,而且有好感
int 好感系数();
// 是恶心系数的相反数
virtual double get温柔系数()=0;
virtual double 魅力系数()=0;
// 之所以要把这个函数作为 纯虚函数 , 是因为
// 丑女(恐龙)的"魅力", 和美眉的"魅力",虽然在表现形式上(接口)相似
// 但在本质上是不同的,
// 所以这里要提供一个公共的接口,又要体现她们各自的特色
// 这个函数的值由多个数据成员计算而成
// 理所当然,恐龙的魅力系数为负数
virtual int get罗索系数();
// 这基本上是所有女人所共有的 , 并且几乎永远不会 为负数
// 一般情况下可以满足大众的需要,
// 你也可以根据自己的需要改写它
virtual 女人 & operator<<(男人 & );
// 这是由于男人的主动进攻而被俘获
// 不过可惜,记这个男人之后,还会有其他男人会掉入陷阱
// 因为这个函数返回 (*this) ;
// 至于为什么要把这个函数作为虚函数,
// 是因为它在一般情况下可以满足大众的需要,
// 只有在这个函数不能满足你的女人的需要时,你才需要改写它
virtual 女人 & operator>>(男人 & );
// 这是由于女人的主动进攻而俘获得男人
// 并且,女人这次得手后还会去攻击其他男人
// 这个函数也返回 (*this) ;
// 作为虚函数的理由同上
friend ostream & operator<<(ostream & , 女人 &);
// 把此女人的各个参数输入一个流文件
friend istream & operator>>(istream & , 女人 &);
// 通过读一个流文件,可以重构一个女人对象
private:
long double 胸围,腰围,臀围;
// 这三个参数 , 是 " class 女人 " 最重要的参数 !!
Graphics 脸型;
// 这个基本上是女人的生命
// 根据分形技术 , 女人的脸型是可以完全用数学描述的
// 本人目前正在努力开发一个女人脸形的分形模型
// 相信不久此模型将会和大家见面
int 生日;
int 星座; // 星座,这是不可少的,取值范围限于’’enum 星座’’之内
// 理论上,星座可以由生日计算出来
int 年龄; // 理论上,年龄也可以由生日计算出来
int 温柔系数;
// 这个数 , 在许多女人身上,往往是负数
int 罗索系数;
// 这基本上是所有女人所共有的 , 并且几乎永远不会 为负数
char 昵称[32]; // 不可少,小猫啦,宝贝啦……不过千万不能叫"小狗"!
LinkList<男人> 她的男人;
// 因为女人的男人是动态获得的,所以不能用静态数组,为了效率,用链表
// 至于这个 " class 男人 " 的实现,还是由感兴趣的女同胞完成
LinkList<女人> 她的情敌;
// 理由和上面的差不多
};// end class women
enum 星座
{
牧羊座 ,
金牛座 ,
双子座 ,
巨蟹座 ,
狮子座 ,
处女座 ,
天秤座 ,
天蝎座 ,
射手座 ,
摩羯座 ,
水瓶座 ,
双鱼座 ,
};// end enum 星座
// 其次,从此抽象基类派生出一个子类!就叫做 : 美女(beauty), 描述如下:
class 美女 : public 女人
{
public:
double 魅力系数();
double get温柔系数();
}; // end class 美女
/*
由于现实世界不只有美女,还有“ 恐龙”,所以还要派生一个子类:恐龙(dinasaur)
由于恐龙不在我们研究的范围之内,所以此派生类暂不实现,所以它仍然是一个抽象类!
此类需要一个成员函数
*/
class 恐龙 : public 女人
{
public:
double 魅力系数();
}; // end class 恐龙
// 现在,我要实现一下“ 美女”类!
int 美女::魅力系数()
{
return exp((胸围 * 臀围)) - (sqr((胸围 + 臀围)/2) -
(0.618 - 腰围/(sqrt(sqr(胸围)+sqr(臀围)))
);
}
int main(int argc,char *argv[])
{
volatile 恐龙 tyrannosaurus(1000.000,1000.000,1000.000);
// 这是典型的食肉巨型恐龙(暴龙) !
// 并且性质既不稳定,其他进程(男人)也可以改变它,
// 所以要标以关键字"volatile"
cout<<"\t\t\t!!!!警告!!!!\n"
<<"这是典型的食肉巨型恐龙(暴龙),请勿靠近 !!\n"
<<"各项参数如下:\n"
<<tyrannosaurus
<<endl;
return 0;
}
--
※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 211.155.255.130]
--
※ 转载:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: 218.7.25.239]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.045毫秒