Fractal Tree C++ Logo Output

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <string>

usingnamespace std;

class ifstree
{
public:
    float minfactor;
    float maxfactor;
    float bend;
    float angle;
    float initlen;
    int fdim;
    ifstree();
    void turnleft(float ang)
    {
        printf("lt %4.2f\n", ang);
    };
    void turnright(float ang)
    {
        printf("rt %4.2f\n", ang);
    };
    void movefw(float value)
    {
        printf("fw %4.2f\n", value);
    };
    void movebw(float value)
    {
        printf("bw %4.2f\n", value);
    };
    float randfactor();
    void draw();
    void draw(float linelen,int depth);
};

ifstree::ifstree()
{
    minfactor =(float)1/3;
    maxfactor =(float)2/3;
    bend =8.0;
    angle =40.0;
    fdim =8;
    srand( time(NULL));
    initlen =100.0;
}

void ifstree::draw()
{
    draw(initlen, fdim);
}

float ifstree::randfactor()
{
    float rnd =(float) rand()/RAND_MAX;
    return(float) rnd;
}

void ifstree::draw(float linelen,int depth)
{
    if(depth>0)
    {
       float minlength = linelen * minfactor;
       float maxlength = linelen * maxfactor;
       float difflength = maxlength - minlength;
       movefw(linelen);
       turnleft(angle+bend);
       draw(minlength+(randfactor()*difflength), depth-1);
       turnright(angle);
       draw(minlength+(randfactor()*difflength), depth-1);
       turnright(angle);
       draw(minlength+(randfactor()*difflength), depth-1);
       turnleft(angle-bend);
       movebw(linelen);
    }
}

int main(int argc,char*argv[])
{
    ifstree T;
    if(argc>1)
    {
        string svalue(argv[1]);
        float fv =(float)atof(svalue.c_str());
        T.initlen = fv;
    }
    T.draw();
    return0;
}