首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这是小弟我写的第一个有自己想发的程序,就是写个和手机上的电话本的功能差不多的程序,但是有个有关问题小弟我不知道如何解决,请大家帮忙并支持小弟我

2012-03-05 
这是我写的第一个有自己想发的程序,就是写个和手机上的电话本的功能差不多的程序,但是有个问题我不知道怎

这是我写的第一个有自己想发的程序,就是写个和手机上的电话本的功能差不多的程序,但是有个问题我不知道怎么解决,请大家帮忙并支持我。
#include <iostream>
#include <vector>
#include <map>
#include <string>

using   namespace   std;

void   main()
{
cout < < "1:   添加电话号码 " < <endl;
cout < < "2:   显示所有电话号码 " < <endl;
cout < < "3:   搜索电话号码 " < <endl;
cout < < "4:   修改电话号码 " < <endl;
cout < < "5:   删除电话号码 " < <endl;
cout < < "6:   删除所有 " < <endl;
typedef   map <string   ,string> ::value_type   valType;
map   <string,string>   trans_map;
       
        cout < < "       请选择   1--6   :   "   ;
        int   number;
cin> > number;
 
    while(number)
{
if(number==1)
{
cout < < "\t1:添加电话 ";
cout < < "\t0:退出 ";
int   num;
cout < < "\t   请选择 ";
cin> > num;
while(num)
{
if(num==1)
{
        cout < < "\t请输入名字:   "   ;

                        string   name   ;
                        cin> > name;                                                      
                                        cout < < "\t请输入电话号码:     ";
                                        string   a   ;                                
cin> > a;
                trans_map[name]=a;  
cout < < "\t1:添加电话 ";
                cout < < "\t0:退出 ";
                                        cout < < "\t   请选择 ";
cin> > num;
                                                                                   
}
 
                           
            if(num==0)
    {
                    cout < < "       请选择   1--6   :   "   ;          
                        cin> > number;
    }      


}
}

else  
if(number==2)
{
int   num   ;
                                cout < < "   1:搜索     ";
cout < < "   2:退出     ";
cout < < "请选择   ";
while(num   )
{
if(num   ==1)
{
            cout < < "         输入要搜索的人名: ";
            string   name;
            cin> > name;
            cout < < "\n\t电话: ";
            cout < <trans_map[name] < <endl;
                                            cout < < "   1:搜索     ";
            cout < < "   2:退出     ";
                    cout < < "请选择   ";
    cin> > num   ;
}
if(num   ==0)
{
                    cout < < "       请选择   1--6   :   "   ;          
                        cin> > number;
}
}

}

}
}

这是我写的第一个有自己想发的程序,就是写个和手机上的电话本的功能差不多的程序,但是有个问题我不知道怎么解决,请大家帮忙并支持我。谢谢

问题是:     当运行输入1时,
      输出是:     1:添加电话       0:退出     请选择    
        然后再输入     0时
                  问题就出来了。为什么不回到             请选择   1--6  
      而输出的还是       1:添加电话       0:退出     请选择

这是为什么啊???

[解决办法]
没法和你说,你继续学习。
[解决办法]
你的cout < < " 请选择 1--6 : "在两处出现,一处在最外层,一处在while(num)里面。
最外层的只会执行一次。while(num)里的只有当num!=0时才会执行。
当用户输完1再输入0时,num是0,所以不会再执行 cout < < " 请选择 1--6 : "。

简单来说,你的程序有逻辑错误。
[解决办法]
鼓励新人
另外 你第一个while把前面的括起来就行了
[解决办法]

只来接分
[解决办法]
没有算法可言,继续努力哦!

热点排行