| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3660 人关注过本帖
标题:请帮忙看一下怎么加一个判断 在未初始化时其他操作不能进行
只看楼主 加入收藏
yang999
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-8-26
结帖率:75%
收藏
 问题点数:0 回复次数:1 
请帮忙看一下怎么加一个判断 在未初始化时其他操作不能进行
程序代码:
#include<iostream>
using namespace std;
const int n=20;
class aa
{
    int *a;
    int i,j;//是A,B的长度; 
    public:
        void chuangjian();
        void xiaohui();
        void qingkong();
        void changdu();
        void weizhi();
        void qianqu();
        void houji();
        void charu();
        void shanchu();
};
void aa::chuangjian()
{
    i=j=0;
    a=new int[n];
    cout<<"请输入表1中的数据(以负数结束)"<<endl;
    while(cin>>a[i]&&a[i]>0)
    {
        i++;
    }
}
void aa::xiaohui()
{
    if(a=NULL)
    i=0;
    delete(a);
    cout<<"销毁成功"<<endl; 
    
}
void aa::qingkong()
{
    if(a=NULL)
    {
        cout<<"error!"<<endl;
        exit(-1);
    }
    i=j=0;
    cout<<"已经清空!"<<endl;
}
void aa::changdu()
{
    cout<<"表A的长度为:"<<i<<endl;
}
void aa::weizhi()
{
    int s;
    int k;//用于检索 
    cout<<"请输入需要查找的数:"<<endl;
    cin>>s;
    for(k=0;k<=i;k++)
    {
        if(s==a[k])
        {
            cout<<"概数的位置为"<<k+1<<""<<endl; 
        }
    }
}
void aa::qianqu()
{
        int s;
    int k;//用于检索 
    cout<<"请输入需要查找的数:"<<endl;
    cin>>s;
    for(k=0;k<=i;k++)
    {
        if(s==a[k])
        {
            cout<<"该数的前驱为:  "<<a[k-1]<<endl; 
        }
    }
}
void aa::houji()
{
        int s;
    int k;//用于检索 
    cout<<"请输入需要查找的数:"<<endl;
    cin>>s;
    for(k=0;k<=i;k++)
    {
        if(s==a[k])
        {
            cout<<"该数的后继为:  "<<a[k+1]<<endl; 
        }
    }
}
void aa::charu()
{
    int s;//插入的数据 
    int r;//插入的位置 
    int k;//用于检索
    cout<<"请输入需要插入的数:"<<endl;
    cin>>s;
    cout<<"请输入需要插入数的位置"<<endl;
    cin>>r;
    if(r<0||r>i)
    cout<<"插入位置错误!"<<endl; 
    for(k=i;k>=r;k--)
    {
        a[k+1]=a[k];
    }
    a[r]=s;
    cout<<"插入之后的数据:"<<endl; 
    for(k=0;k<i+1;k++)
    cout<<" "<<a[k];
}
void aa::shanchu()
{
    int s;
    int fl;
    int k;//用于检索
    int r;//用于删除 
    cout<<"请输入需要删除的数字:"<<endl;
    cin>>s;
    for(k=0;k<=i;k++)
    {
        fl=0;
        if(s==a[k])
        {
            fl=1; 
            break;
        }
        else fl=0; 
    }
    if(fl==1)
    {
        for(r=k;r<i;r++)
        {
            a[r]=a[r+1];
        }
    }
    else if(fl==0)
        cout<<"该元素不存在,无法删除!"<<endl;
        for(r=0;r<i-1;r++)
        cout<<" "<<a[r]; 
}

void show()
{
    cout<<" 请选择 :"<<endl;
    cout<<" 1.创建 "<<endl;
    cout<<" 2.销毁 "<<endl;
    cout<<" 3.清空 "<<endl;
    cout<<" 4.长度 "<<endl;
    cout<<" 5.位置 "<<endl;
    cout<<" 6.前驱 "<<endl;
    cout<<" 7.后继 "<<endl;
    cout<<" 8.插入 "<<endl;
    cout<<" 9.删除 "<<endl;
}

int main()
{
    int leap;
    aa *p;
    p=new aa;
    show();
    while(cin>>leap&&leap<12&&leap>0)
    {
        system("cls");
        switch(leap)
        {
        case 1:p->chuangjian();break;
        case 2:p->xiaohui();break;
        case 3:p->qingkong();break;
        case 4:p->changdu();break;
        case 5:p->weizhi();break;
        case 6:p->qianqu();break;
        case 7:p->houji();break;
        case 8:p->charu();break;
        case 9:p->shanchu();break;
        }
        show();
    }
    return 0;
    
}
搜索更多相关主题的帖子: chuan 
2016-10-20 17:20
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
加一个bool flag; 构造中赋0,初始化中赋1. 其他操作之前对此做判断
2017-02-11 15:19
快速回复:请帮忙看一下怎么加一个判断 在未初始化时其他操作不能进行
数据加载中...
 
   



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

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