标题:各位大神我是新人啦,帮个忙看看这个程序好不好,小女子不胜感激
只看楼主
yukeyyo
Rank: 2
等 级:论坛游民
帖 子:22
专家分:14
注 册:2011-11-18
结帖率:100%
已结贴  问题点数:0 回复次数:6 
各位大神我是新人啦,帮个忙看看这个程序好不好,小女子不胜感激
#include<iostream>
#include<cstring>
using namespace std;
////////////////////////////////////////////////
// Window 类,父类
///////////////////////////////////////////////
class Window
{
public:
    int ID;
    int X;
    int Y;
    int width,hight;
    Window(void)
    {
        X=0;Y=0;width=30;hight=4;
    }
    void paraWindow(void);
    void drawWindow(void);
    void setWindow(int i,int x,int y,int w,int h);
};
void Window::setWindow(int id,int x,int y,int w,int h)
{
   X=x;
   Y=y;
   width=w;
   hight=h;
   ID=id;
}
void Window::paraWindow(void)
{
    cout<<"\n当前窗口"<<ID<<"的参数为:";
    cout<<"位置x="<<X<<"  y="<<Y;
    cout<<"宽度:"<<width<<" 高度:"<<hight<<endl;
}
void Window::drawWindow(void)
{
    int i,j;
    cout<<"----------------------------窗口绘制起始行标识---------------------------\n";
    for(i=0;i<Y;i++) cout<<"\n";
    for(i=0;i<X;i++) cout<<" ";
    for(i=0;i<width;i++) cout<<"*";
    cout<<"\n";
    for(i=0;i<hight-2;i++)
    {
        for(j=0;j<X;j++) cout<<" ";
        cout<<"*";
        for(j=0;j=width-2;j++) cout<<" ";
        cout<<"*\n";
    }
    for(j=0;j<X;j++) cout<<" ";
    for(i=0;i<width;i++) cout<<"*";
    cout<<"\n";
    cout<<"----------------------------窗口绘制结束行标识---------------------------\n";
}
/////////////////////////////////////////////
// 消息窗口类,子类
////////////////////////////////////////////
class MsgWindow:public Window
{
private:
    char txt[30];
public:
    MsgWindow(char *c)
    {
        setWindow(1,0,0,40,5);
        strcpy(txt,c);
    }
    void drawWindow(void);
};
void MsgWindow::drawWindow(void)
{   
    int i,j;
    cout<<"----------------------------窗口绘制起始行标识---------------------------\n";
    for(i=0;i<Y;i++) cout<<"\n";
    for(i=0;i<X;i++) cout<<" ";
    for(i=0;i<width;i++) cout<<"*";
    cout<<"/n";
    for(i=0;i<hight-2;i++)
    {
        for(j=0;j<X;j++) cout<<" ";
        cout<<"*";
        if(i==1){
            cout<<"    "<<txt;
            for(j=4+strlen(txt);j<width-2;j++)  cout<<" ";
        }
        cout<<"*\n";
    }
    for(j=0;j<X;j++) cout<<" ";
    for(i=0;i<width;i++) cout<<"*";
    cout<<"\n";
    cout<<"----------------------------窗口绘制结束行标识---------------------------\n";
   
}
///////////////////////////////////////////////////////
//主函数
//////////////////////////////////////////////////////
int main()
{
cout<<"---------------------------窗口模拟1-------------------------------------\n";
Window W1;
W1.paraWindow();
W1.drawWindow();
cout<<"---------------------------窗口模拟2-------------------------------------\n";
MsgWindow W2("This is a text." );
W2.drawWindow();
return 0;
}
这是一个窗口模拟程序,我找不到错在哪里,虽然程序又长又臭但是希望大神们帮哈小女子啦~~~
搜索更多相关主题的帖子: 不胜感激 include public 小女子 
2011-11-18 22:36
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
得分:10 
程序代码:
void Window::drawWindow(void)
{......

 for(j=0;j<width-2;j++) cout<<" ";

 ......
}

void MsgWindow::drawWindow(void)
{   
    int i,j;
    cout<<"----------------------------窗口绘制起始行标识---------------------------\n";
    for(i=0;i<Y;i++) cout<<"\n";
    for(i=0;i<X;i++) cout<<" ";
    for(i=0;i<width;i++) cout<<"*";
    cout<<"\n";
    for(i=0;i<hight-2;i++)
    {
        for(j=0;j<X;j++) cout<<" ";
        cout<<"*";
        if(i==1)
        {
            cout<<"    "<<txt;
            for(j=4+strlen(txt);j<width-2;j++)  cout<<" ";
            cout<<"*\n";
        }
        else
        {
            for(j=0;j<width-2;j++) cout<<" ";
            cout<<"*\n";
        }
    }
    for(j=0;j<X;j++) cout<<" ";
    for(i=0;i<width;i++) cout<<"*";
    cout<<"\n";
    cout<<"----------------------------窗口绘制结束行标识---------------------------\n";
   
}
2011-11-19 01:43
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
得分:10 
能把编译错误贴出来么
2011-11-19 09:56
yukeyyo
Rank: 2
等 级:论坛游民
帖 子:22
专家分:14
注 册:2011-11-18
得分:0 
回复 2楼 Toomj
我找到原因了,W1的值没有定义,就是没调用W1.setWindow(`````);
不过还是谢谢了
2011-11-19 10:38
yukeyyo
Rank: 2
等 级:论坛游民
帖 子:22
专家分:14
注 册:2011-11-18
得分:0 
回复 3楼 lucky563591
编程没出错,但是执行的时候一直输出换行,我已经找到错误的地方了
2011-11-19 10:40
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
得分:0 
回复 4楼 yukeyyo
孩子,你有构造函数,定义W1时调用了无参数构造函数,所以没错
2011-11-19 11:06
yukeyyo
Rank: 2
等 级:论坛游民
帖 子:22
专家分:14
注 册:2011-11-18
得分:0 
回复 6楼 Toomj
你是不是没运行过,运行过的话就知道错哪里了,没有赋值给setWindow一直输出endl
2011-11-19 22:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-355630-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.194855 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved