发信人: 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)
页面执行时间:2.110毫秒