| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 652 人关注过本帖
标题:为什么输入一个书名后,输不了数字,而且不停循环?
只看楼主 加入收藏
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
结帖率:100%
收藏
已结贴  问题点数:2 回复次数:7 
为什么输入一个书名后,输不了数字,而且不停循环?
#include<iostream.h>
#define N 100
class Book
{
private:
    char* bkName;
    int bkNum;
public:
    Book()
    {
        bkName=NULL;
        bkNum=0;
    }

    void bkCreat()
    {
        cout<<"请输入图书名:";
        cin>>bkName;
        cout<<"销售数目:";
        cin>>bkNum;
    }
    int GetbkNum()
    {
        return bkNum;
    }
    void display()
    {
        cout<<bkName<<"        销售:"<<bkNum<<endl;
    }

};

/////////////////////////////////
class Magazine
{
private:
    char* zzName;
    int zzNum;
public:
    Magazine()
    {
        zzName=NULL;
        zzNum=0;
    }
    void zzCreat()
    {
        cout<<"请输入杂志名:"<<endl;
        cin>>zzName;
        cout<<"销售数目:"<<endl;
        cin>>zzNum;
    }
    int GetzzNum()
    {
        return zzNum;
    }
    void display()
    {
        cout<<zzName<<"        销售:"<<zzNum<<endl;
    }

};

//////////////////////////////////
void main()
{
    int i_1=0,j_1,t_1=0,i_2=0,j_2,t_2=0,flag=1;
    Book book[N];
    Magazine magazine[N];
    while(flag!=0)
    {
        cout<<"选择销售书籍的类型:"<<endl;
        cout<<"1.表示图书,"<<endl;
        cout<<"2.表示杂志,"<<endl;
        cout<<"0.结束输入。"<<endl;
        cin>>flag;
        if(flag==1)
        {
            cout<<"您选择的是图书的输入。"<<endl;
            book[i_1].bkCreat();
            i_1++;
        }
        else if(flag==2)
        {
            cout<<"您选择的是杂志的输入。"<<endl;
            magazine[i_2].zzCreat();
            i_2++;
        }
        else if(flag==0)
        {
            cout<<"已结束输入。"<<endl;
            break;
        }
        else
        {
            cout<<"选择有误!!!请重新选择!"<<endl;
        }
    }
    j_1=i_1;
    j_2=i_2;
    cout<<"销售良好的图书:"<<endl;
    for(i_1=0;i_1<=j_1;i_1++)
    {
        if(book[i_1].GetbkNum()>=500)
        {
            book[i_1].display();
            t_1=1;
        }
    }
    if(t_1==0)
    {
        cout<<"没有销售良好的图书。"<<endl;
    }
    cout<<"销售良好的杂志:"<<endl;
    /////////////////////
    for(i_2=0;i_2<=j_2;i_2++)
    {
        if(magazine[i_2].GetzzNum()>=2500)
        {
            magazine[i_2].display();
            t_2=1;
        }
    }
    if(t_2==0)
    {
        cout<<"没有销售良好的杂志。"<<endl;
    }
我输入1,按回车,
再输入一个书名,如:huangshikun
就得到下面结果



}
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: private return 
2011-05-24 10:10
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
单步可会?
2011-05-24 16:44
sadwjf222
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2010-10-4
收藏
得分:0 
给你个提示野指针问题,好好想想为什么!
2011-05-25 09:05
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:0 
回复 3楼 sadwjf222
什么叫“野指针”?
2011-05-26 21:46
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:0 
回复 2楼 zhoufeng1988
一步步输入??
2011-05-26 21:47
calm_hard
Rank: 2
等 级:论坛游民
帖 子:3
专家分:22
注 册:2011-5-26
收藏
得分:2 
char* bkName;
........
 cin>>bkName;
这样不可以,把上面的改成char bkName[N]就可以了。。。
2011-05-26 23:25
记叙、继续
Rank: 4
等 级:业余侠客
帖 子:56
专家分:226
注 册:2011-5-17
收藏
得分:0 
等楼下高人回答
2011-05-27 00:56
快速回复:为什么输入一个书名后,输不了数字,而且不停循环?
数据加载中...
 
   



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

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