📄 sao3c.h
字号:
/*
* Copyright (c) 2005,Zhao Yanglei
* All rights reserved.
* File name:sao3c.h
* Version: 0.4.1
* Author:sao3
* Date: 2005-12-8
* Description:A header includes classes reusable written by sao3.
Definitions are in sao3c.cpp
* Class(es) included: Time
Date
Complex
Vector3D
*/
#ifndef _SAO3C_H
#define _SAO3C_H
#include <iostream>
#include <cmath>
#include "sao3f.h"
using namespace std;
const double PI = 3.1415926535897932384626433832795;
class Time{
friend ostream &operator<<(ostream &, const Time &);
public:
// constructor
Time(int = 0, int = 0, int = 0);
Time(const Time &);
// set member(s)
void setTime(int, int, int);
Time &incHour(int = 1);
Time &incMinute(int = 1);
Time &incSecond(int = 1);
Time &decHour();
Time &decMinute();
Time &decSecond();
// get member(s)
int Hour() const;
int Minute() const;
int Second() const;
// operator(s)
bool operator==(const Time &) const;
bool operator!=(const Time &) const;
private:
int hour;
int minute;
int second;
};
class Date{
friend ostream &operator<<(ostream &, const Date &);
public:
// constructor
Date(int = 2000, int = 1, int = 1);
Date(const Date &);
// set member(s)
void setDate(int, int, int);
Date &incYear(int = 1);
Date &incMonth(int = 1);
Date &incDay(int = 1);
// get member(s)
inline int Year() const;
inline int Month() const;
inline int Day() const;
bool leapyear() const;
bool leapyear(int) const;
int endofmonth() const;
// operator(s)
bool operator==(const Date &) const;
bool operator!=(const Date &) const;
private:
static const int days[];
int year;
int month;
int day;
};
class Complex{
friend ostream &operator<<(ostream &, const Complex &);
// double & Complex
friend inline Complex operator+(double, const Complex &);
friend inline Complex operator-(double, const Complex &);
friend Complex operator*(double, const Complex &);
friend Complex operator/(double, const Complex &);
public:
// constructor
Complex(double = 0, double = 0);
Complex(const Complex &);
// set member(s)
void setComplex(double, double);
// get member(s)
double Real() const;
double Image() const;
double Modules() const;
double Arg() const;
// operator(s)
// Complex & Complex
bool operator==(const Complex &) const;
bool operator!=(const Complex &) const;
Complex operator+(const Complex &) const;
Complex operator-(const Complex &) const;
Complex operator*(const Complex &) const;
Complex operator/(const Complex &) const;
void operator+=(const Complex &);
void operator-=(const Complex &);
void operator*=(const Complex &);
void operator/=(const Complex &);
// Complex & double
Complex operator+(double) const;
Complex operator-(double) const;
Complex operator*(double) const;
Complex operator/(double) const;
void operator+=(double);
void operator-=(double);
void operator*=(double);
void operator/=(double);
private:
double a; // real part
double b; // image part
};
class Vector3D{
friend ostream &operator<<(ostream &, const Vector3D &);
// double & Vector3D
friend Vector3D operator*(double, const Vector3D &);
friend double MixP(const Vector3D &, const Vector3D &, const Vector3D &);
friend double Cosine(const Vector3D &, const Vector3D &);
public:
// constructor
Vector3D(double = 0, double = 0, double = 0);
Vector3D(const Vector3D &);
// set member(s)
void setVector3D(double, double, double);
// get member(s)
double X() const;
double Y() const;
double Z() const;
double Modules() const;
// operator(s)
// Vector3D & Vector3D
bool operator==(const Vector3D &) const;
bool operator!=(const Vector3D &) const;
Vector3D operator+(const Vector3D &) const;
Vector3D operator-(const Vector3D &) const;
Vector3D operator*(const Vector3D &) const; // vector product
double operator%(const Vector3D &) const; // scalar product
void operator+=(const Vector3D &);
void operator-=(const Vector3D &);
void operator*=(const Vector3D &);
// Vector3D & double
Vector3D operator*(double) const;
Vector3D operator/(double) const;
void operator*=(double);
void operator/=(double);
private:
double x;
double y;
double z;
};
class Rational{
friend ostream &operator<<(ostream &, const Rational &);
public:
// constructor
Rational(long = 0, long = 1);
Rational(const Rational &);
// set member(s)
void setRational(long, long);
// get member(s)
long Numerator() const;
long Denominator() const;
double Value() const;
void Reduct();
// operator(s)
// Rational & Rational
bool operator==(const Rational &);
bool operator!=(const Rational &) const;
Rational operator+(const Rational &) const;
Rational operator-(const Rational &) const;
Rational operator*(const Rational &) const;
Rational operator/(const Rational &) const;
void operator+=(const Rational &);
void operator-=(const Rational &);
void operator*=(const Rational &);
void operator/=(const Rational &);
// Rational & long
Rational operator+(long) const;
Rational operator-(long) const;
Rational operator*(long) const;
Rational operator/(long) const;
void operator+=(long);
void operator-=(long);
void operator*=(long);
void operator/=(long);
private:
int num;
int de;
};
#endif // _SAO3C_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -