|
|
发表于 2007-5-27 17:01:45
|
显示全部楼层
// 给个代码瞧瞧
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define YES true
#define NO false
#define VALENTINE_DAY 31 + 14 // 情人节
#define ROSE 1 // 玫瑰
#define NOTHING
#define OTHER_BOY // 其他男生
#define ENOUGH_BUY_HOUSE 400000 // 买房钱
#define ENOUGH_BUY_CAR 120000 // 买车钱
#define BASE_PAY 1000 // 男生每天最多收入
/* class boy */
class Boy
{
public:
Boy (bool car, bool house, unsigned long money):
Car(car), House(house), Money(money), HaveGirl(false)
{
cout << "男生基本情况:" << '\n'
<< "车: " << Car << '\n'
<< "房子: " << House << '\n'
<< "钱: " << Money << '\n'
<< "女朋友:" << HaveGirl << '\n'
<< endl;
}
bool HaveCar() { return Car; } // 是否有车
bool HaveHouse() { return House; } // 是否有房
unsigned long GetMoney() { return Money;} // 挣钱数量
void MakeMoney () // 挣命挣钱
{
srand( time(0) );
Money += rand() % BASE_PAY;
if (Money >= ENOUGH_BUY_HOUSE && !House) // 有钱买房
{
House = YES;
Money -= ENOUGH_BUY_HOUSE;
cout << "钱够买房了!" << '\n'
<< "买完房还剩: " << Money << '\n'
<< endl;
}
if (Money >= ENOUGH_BUY_CAR && !Car) // 有钱买车
{
Car = YES;
Money -= ENOUGH_BUY_CAR;
cout << "钱够买车了!" << '\n'
<< "买完车还剩: " << Money << '\n'
<< endl;
}
}
bool GiveGirl(int SomeThing) // 送女孩子东西
{
cout << "男生送玫瑰花给女孩!\n" << endl;
return (SomeThing == ROSE);
}
void Set() { }
friend class Girl;
private:
bool Car; // 是否有车
bool House; // 是否有房
unsigned long Money; // 钱
bool HaveGirl; // 有女孩子
};
/* class Girl */
class Girl
{
public:
Girl (int birthday, int emothion, bool argeewait, int age):
Birthday(birthday), Emotion(emothion), ArgeeWait(argeewait), Age(age)
{
cout << "女生基本情况:" << '\n'
<< "生日: " << Birthday << '\n'
<< "感情: " << Emotion << '\n'
<< "愿意等: " << ArgeeWait << '\n'
<< "年龄:" << Age << '\n'
<< endl;
}
friend bool Love(Boy & boy, Girl & girl);
bool Marry(Boy & boy) // 嫁给
{
cout << "女孩愿嫁给男生!" << endl;
boy.HaveGirl = YES;
return true;
}
int GetEmotion() { return Emotion; } // 感情
bool Goto ( OTHER_BOY ) // 跟了别人
{
cout << "女孩跟了别男生!" << endl;
return true;
}
private:
int Birthday; // 生日
int Emotion; // 情感
bool ArgeeWait; // 愿意等
int Age; // 年龄
};
bool Love(Boy & boy, Girl & girl)
{
if (boy.HaveCar() && boy.HaveHouse())
{
boy.Set(NOTHING);
return girl.Marry(boy);
}
if (girl.ArgeeWait)
{
while ( !(boy.GetMoney() > 100000 && girl.GetEmotion() > 8))
{
for (int day = 1; day <= 365; day++)
{
if (day == VALENTINE_DAY) // 情人节
{
cout << "情人节到了!" << endl;
if ( boy.GiveGirl(ROSE) ) // 是否送玫瑰
{
girl.Emotion++;
}
else
{
girl.Emotion--;
}
}
if (day == girl.Birthday) // Girl's 生日
{
cout << "女孩生日到了!" << endl;
if ( boy.GiveGirl(ROSE) ) // 是否送玫瑰
{
girl.Emotion++;
}
else
{
girl.Emotion--;
}
}
boy.MakeMoney(); // 拼命拼钱
}
if (boy.HaveCar() && boy.HaveHouse())
{
boy.Set(NOTHING);
return girl.Marry(boy);
}
girl.Age++;
girl.Emotion--;
}
}
return girl.Goto( OTHER_BOY );
}
void main()
{
// Boy (bool car, bool house, unsigned long money)
// Girl (int birthday, int emothion, bool argeewait, int age)
Boy boy(NO, NO, 500);
Girl girl(48, 3, YES, 21);
Love(boy, girl);
} |
|