总是不出结果-求大神帮我看看 这c++程序问题出在哪里

问题描述

求大神帮我看看 这c++程序问题出在哪里
// BaseShape.h文件
#include
using namespace std;

class BaseShape {

public:    BaseShape() {};    virtual ~BaseShape() {};    virtual void DrawShape() = 0;

};

//*********************************
//ShapeFactory.h文件

#include
#include

#include "" Echelon.h""
#include ""Line.h""
#include ""EquilateralTriangle.h""
#include ""RightTriangle.h""
#include ""Rectangle.h""
#include ""Square.h""
#include ""Diamond.h""

#include ""BaseShape.h""

//定义工厂类
class ShapeFactory {

public:    ShapeFactory();    ~ShapeFactory();    //BaseShape* SelectShape(string);BaseShape* SelectShape(string shape) {    if(shape==""Line"" || shape==""线"")               return new Line();    if(shape==""RightTriangle"" || shape==""直角三角形"")      return new RightTriangle();    if(shape==""EquilateralTriangle"" || shape==""等边三角形"") return new EquilateralTriangle();    if(shape==""Rectangle"" || shape==""矩形"")           return new Rectangle();    if(shape==""Square"" || shape==""正方形"")           return new Square();    if(shape==""Diamond"" || shape==""菱形"")         return new Diamond();    if(shape=="" Echelon "" ||shape==""梯形"")            return new Echelon ();    else cout<< ""输入的图形名称错误!"" <<endl; }

};

// ShapeFactory.cpp文件
#include ""ShapeFactory.h""

ShapeFactory::ShapeFactory(void)
{ }

ShapeFactory::~ShapeFactory(void)
{ }
//********************************************
// Line.h文件
///////////////////直线Line/////////////////////

#include ""BaseShape.h""

class Line : public BaseShape {

private:        int n;        static int L;public:        Line() {};        virtual ~Line() {};        //构造函数成员初始化列表,构造函数之后,函数体之前。        Line ( int n)   : n(n)  { }        //覆盖抽象类的纯虚函数        virtual void DrawShape();

};

// Line.cpp文件
#include ""Line.h""
//绘制直线
void Line ::DrawShape() {

    int n;    static int L;    cout<< ""请选择直线长度: "" <<endl;    cin>> n;    for(int i=0; i<n; i++) {        cout<< ""*"" ;        }    L++;    cout<<endl<< ""^_^ 您已经绘制""<< L << ""条直线^_^ ""<<endl;}

//********************************************
//Echelon.h文件
///////////////////梯形Echelon/////////////////////

#include ""BaseShape.h""

class Echelon : public BaseShape {

private:        int upside downside;        static int E;public:        Echelon() {};        virtual ~Echelon() {};        Echelon ( int upside int downside)                 : upside(upside) downside(downside)  { }        virtual void DrawShape();

};
//Echelon.cpp文件
//绘制梯形
void Echelon::DrawShape() {

int upside downside;static int E;cout<< ""请选择输入要组成梯形的上底、下底:"";cin>> upside >> downside;    for (int i=upside; i<downside; i++) {        for(int j=downside-i; j>0; j--)        {   cout<<"" ""; }        for(int k=1; k<=i+2; k++)        {   cout<< ""* ""; }            cout<<endl;     }E++;cout<<endl<< ""^_^ 您已经绘制""<< E << ""个梯形^_^ "" <<endl;

}
//*********************************************

// Diamond.h文件
///////////////////菱形Diamond/////////////////////
#include ""BaseShape.h""

class Diamond :public BaseShape {

private:            int n;        static int D;public:    Diamond(){};    virtual ~Diamond() {};    //构造函数成员初始化列表,构造函数之后,函数体之前。    Diamond ( int n)  : n(n)  { }    //覆盖抽象类的纯虚函数                virtual void DrawShape();

};

// Diamond.cpp文件
#include ""Diamond.h""
//绘制菱形

void Diamond::DrawShape () {

int n;static int D;cout<<""要得到的菱形的边长大小:""<<endl;cin>> n;

////////////上三角//////////
for(int i=1;i<=n;++i) {
for(int j=1;j<=n-i;++j)

cout<<"" "";

    for(j=1;j<=i;++j)        cout<<""* "";        cout<<endl;}

//////////下三角///////////
for( i=n;i>=1;--i) {
for(int j=1;j<=n-i;++j)

cout<<"" "";

    for(j=1;j<=i;++j)        cout<<""* "";        cout<<endl;     }    D++;    cout<<endl<< ""^_^ 您已经绘制""<< D << ""个菱形^_^ ""<<endl;

}

//*********************************************
// EquilateralTriangle.h文件
////////////////等边三角形EquilateralTriangle//////////////////
#include ""BaseShape.h""
class EquilateralTriangle : public BaseShape {

private:        int n;        static int ET;public:        EquilateralTriangle() {};        virtual ~EquilateralTriangle() {};        //构造函数成员初始化列表,构造函数之后,函数体之前。        EquilateralTriangle ( int n)    : n(n)  { }        //覆盖抽象类的纯虚函数        virtual void DrawShape();};

// EquilateralTriangle.cpp文件.
#include ""EquilateralTriangle.h""

//绘制等边三角形
void EquilateralTriangle::DrawShape() {

int n;static int ET;cout<< ""请选择输入要组成等边三角形的行数n(n>2):"";cin>>n;for(int i=1; i<n+1; i++) {    //控制行数//控制每行星号个数      for(int j=n-i; j>=0; j--)         { cout<< ""  ""; }    for(int k=1; k<=2*i-1; k++)         { cout<< ""* "";  }        cout<<endl;}ET++;        cout<<endl<< ""^_^ 您已经绘制""<< ET << ""个等边三角形^_^ ""<<endl;

}
//*********************************************
// Rectangle.h文件
///////////////////矩形Rectangle/////////////////////

#include ""BaseShape.h""

class Rectangle:public BaseShape {

private:        int width height;        static int R;public:    Rectangle() {};    virtual ~Rectangle() {};    Rectangle( int width int height)   : width(width)  height(height){ }    virtual void DrawShape();

};

// Rectangle.cpp文件
#include ""Rectangle.h""

//绘制矩形
void Rectangle::DrawShape() {

        int width height;        static int R;        cout<< ""请选择输入矩形的长和宽: "";        cin>> width >> height;        cout<<endl;        for (int i=1; i<=height; i++) {        if (i==1 || i==height) {//输出长,即第一行和最后一行星号            for(int j=1; j<=width; j++)                cout<< ""* "";            cout<<endl;            }        else {                  cout<< ""*"";                for(int j=2; j<=2*(width-2)+2; j++)//其中2*(side-2)+2为宽除星号外的空格数                    cout<< "" "";                cout<< ""*"" <<endl;        }    }        R++;        cout<<endl<< ""^_^ 您已经绘制""<< R << ""个矩形^_^ ""<<endl;}

//*********************************************
// RightTriangle.h文件
///////////////////直角三角形RightTriangle /////////////////////

#include ""BaseShape.h""
class RightTriangle : public BaseShape {

private:        int n;        static int RT;public:        RightTriangle() {};        virtual ~RightTriangle() {};        //构造函数成员初始化列表,构造函数之后,函数体之前。        RightTriangle ( int n)  : n(n)  { }        //覆盖抽象类的纯虚函数        virtual void DrawShape();

};

// RightTriangle.cpp文件
#include ""RightTriangle.h""

//绘制直角三角形
void RightTriangle::DrawShape() {

        int n;         static int RT;        cout<< ""请选择输入要组成直角三角形的行数n(n>2):"";        cin>>n;        for(int i=0; i<n; i++) { //控制行数            for(int j=1; j<=i+1; j++)//控制每行星号个数            { cout<< ""* ""; }            cout<<endl;        }        RT++;        cout<<endl<< ""^_^ 您已经绘制""<< RT << ""个直角三角形^_^ ""<<endl;}

//*********************************************
// Square.h文件
///////////////////正方形Square/////////////////////

#include ""BaseShape.h""

class Square : public BaseShape {

private:        int side;        static int s;public:        Square() {};        virtual ~Square() {};        Square ( int side)  : side(side)  { }        virtual void DrawShape();

};

// Square.cpp文件
#include ""Square.h""
//绘制正方形
void Square::DrawShape() {

    static int s;    int side;       cout<< ""请选择输入正方形的边长: "";    cin>> side;    cout<<endl;    for (int i=1; i<=side; i++) {        if (i==1 || i==side) {//输出长,即第一行和最后一行星号            for(int j=1; j<=side; j++)                cout<< ""* "";            cout<<endl;            }        else {                  cout<< ""*"";                for(int j=2;j<=2*(side-2)+2;j++)//其中2*(side-2)+2为宽除星号外的空格数                    cout<< "" "";                cout<< ""*"" <<endl;            }    }        s++;        cout<<endl<< ""^_^ 您已经绘制""<< s << ""个正方形^_^ ""<<endl;}

//*********************************************
/*

设计一个使用空格和星号绘制图形的工厂该工厂可以根据用户选择绘制不同的图形(如矩形?三角形?菱形?平行四边形?梯形等)?
具体要求:
(1)至少能够绘制6种以上的图形?
(2)可以绘制的图形名称保存在文本文件中?
(3)根据用户选择设置图形参数绘制图形并记录绘制了的图形的个数?
(4)显示已经绘制的图形的总数?

*/

#include
#include
#include

#include "" Echelon.h""
#include ""Line.h""
#include ""EquilateralTriangle.h""
#include ""RightTriangle.h""
#include ""Rectangle.h""
#include ""Square.h""
#include ""Diamond.h""

#include ""BaseShape.h""
#include ""ShapeFactory.h""

#include
using namespace std;

int main() {

/*    读infile类 的文件ShapeFactoryFile.txt中可绘制的图形并为每行加上""行号-"",输出到运行屏幕上。*/ifstream infile(""ShapeFactoryFile.txt"");if(!infile) {//检验文件是否成功打开    cout<< ""sorry! Unable to open ShapeFactoryFile. "" <<endl;    return -1;}string line;vector<string> text;    while (getline(infileline)) {    text.push_back(line);}  for(int j=0; j<text.size(); j++)cout<< j+1 << "" - "" << text[j] <<endl;cout<<endl << ""*************以上是可以绘制的图形名***************"" <<endl<<endl;//定义工厂对象、基类指针ShapeFactory factory;BaseShape * pBaseShape;string shape;int t=0;while(true) {    cout<<""请输入图形(英文或中文)名称(以#为结束程序): "";    cin>>shape;    if(shape==""#"") break;    BaseShape* pBaseShape=factory.SelectShape(shape);//选择具体类    pBaseShape->DrawShape();//调用具体类的画法    delete pBaseShape;    t++;    cout<< ""您总共已经输出""<< t <<""个图形。"" <<endl;                  }return 0;

}

解决方案

求数据结构大神帮我看看程序!!谢谢!!!

解决方案二:
ShapeFactory.h文件中,类声明中不能用new直接创建其他类的对象吧!

时间: 2024-10-23 09:49:53

总是不出结果-求大神帮我看看 这c++程序问题出在哪里的相关文章

android http POST请求方式向服务其发送数据不成功 贴出代码求大神帮解决一下

问题描述 android http POST请求方式向服务其发送数据不成功 贴出代码求大神帮解决一下 new Thread(new Runnable() { @Override public void run() { String szSrc = ""abcdefghijkl123456789123"" ; byte[] encoded = ThreeDes.encryptMode(keyBytes szSrc.getBytes()); try { /* Strin

求大神帮我解释几句程序,图书管理系统读者部分的。

问题描述 求大神帮我解释几句程序,图书管理系统读者部分的. int Reader::select_Library(Chaxun & se)//图书馆在册书查询{ MYSQL_RES * point; int bb[7]={14145141244}; string aa=""select book_name as '书名'ISBNwriter as '作者'publish as '出版社'publish_time as '出版日期' price as '价格'maxbook-nu

求大神帮小女子指导一下程序,遥控按键按下 1602 无法显示按键值

问题描述 求大神帮小女子指导一下程序,遥控按键按下 1602 无法显示按键值 /*----------------------------------------------- 名称:遥控器红外解码数液晶显示 ------------------------------------------------*/ #include #include #define uchar unsigned char #define uint unsigned int uchar i,a,b,c,d; uint

javascript正则式表单验证,求大神帮看看问题出在那。

问题描述 javascript正则式表单验证,求大神帮看看问题出在那. 为什么我function show函数组为什么不起作用,输入错了也能跳转到2.html.提示也没有. 解决方案 show函数怎么写的,一行都看不到.哪有你这样提问的. 解决方案二: 你用的什么浏览器?这个问题改正了么有?http://ask.csdn.net/questions/231266 解决方案三: 你确定提交成功了?你打个断点看看 解决方案四: 因为你把js写在下面了,你把js放在 的上方应该就可以了,祝你好运 解决

数据库出问题了,不会弄了,求大神帮帮忙,下午就要交作业了

问题描述 数据库出问题了,不会弄了,求大神帮帮忙,下午就要交作业了 解决方案 参考Management Data Warehouse Data Collection fails due to login failure 错误信息提到了可能是访问权限不足,你的SQL服务器代理的账户对MDW数据库需要有mdw_admin, mdw_reader, mdw_writer角色,对msdb有e dc_admin, dc_operator, dc_pro角色 SQL Server Agent with an

新生 求大神帮帮忙!

问题描述 新生 求大神帮帮忙! 解决方案 求大神帮帮忙 解决方案二: 先看看你的数据库启动了没 解决方案三: 试试: 打开'程序'-'所有程序'-'Microsoft SQL Server 2012 '-'配置工具'-'SQL Server 配置管理器',在弹出的窗体中,找到'SQL Server 2012 网络配置',把'MSSQLSERVER的协议'下的"Named Pipes"和"TCP/IP"启动,然后重新启动Microsoft SQL Server 201

用java开发一个安卓客户端在线交流APP,是怎么实现添加好友的?求大神帮我看看这段代码。

问题描述 用java开发一个安卓客户端在线交流APP,是怎么实现添加好友的?求大神帮我看看这段代码. private void submit() { dialog = ProgressDialog.show(this, "提示", "处理中.."); new AsyncTask() { @Override protected String doInBackground(String... params) { String urlString = AppConstan

算法-c++的一个简单的实现 求大神帮帮忙

问题描述 c++的一个简单的实现 求大神帮帮忙 1. 定义一个普通帐户类Account,成员变量包括:string型的m_acctNo(账号)和m_acctPass(取款密码),double型的m_balance(余额).成员函数包括构造函数,取款WithDraw(double m).存款Deposit(double m).修改密码ChangePass()和显示帐户信息Display(). 以Account类做基类,派生出信用卡类Credit,新增成员变量m_overDraft,表示信用卡透支额

求大神帮做一个小程序~~~

问题描述 要求:1.以往账单保存下来2.输出电表上上个月数据和本月数据,算出结果----------------求大神~~~~· 解决方案 解决方案二:需求一点也不明确,怎么帮你弄.解决方案三:就是这个,随便用什么做,我伯伯用,一度多少钱也要,做成个窗体,谢谢大神了解决方案四:大神呢?!!!!!!解决方案五:以往账单就这种说明--只能说增删改查解决方案六:标准CRUD请用gridview大法解决方案七:要保留以往账单数据的话,只能手动录入每月的账单数据了.然后就是各种textbox的取值增删改查