课本上的一道C++题目。 题目问如果把if(validBeverage == true)改成if(validBeverage)有什么变化?为什么

#include<iostream>#include<iomanip>usingnamespacestd;intmain(){intnumber;floatcost;ch... #include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int number;
float cost;
char beverage;

bool validBeverage;

cout << fixed << showpoint << setprecision(2);

do
{
cout << endl << endl;
cout << "Hot Beverage Menu" << endl << endl;
cout << "A: Coffee $1.00" << endl;
cout << "B: Tea $ .75" << endl;
cout << "C: Hot Chocolate $1.25" << endl;
cout << "D: Cappuccino $2.50" << endl <<endl << endl;

cout << "Enter the beverage A,B,C, or D you desire" << endl;
cout << "Enter E to exit the program" << endl << endl;
cin>>beverage;

switch(beverage)
{
case 'a':
case 'A':
case 'b':
case 'B':
case 'c':
case 'C':
case 'd':
case 'D': validBeverage = true;
break;
default: validBeverage = false;
}

if (validBeverage == true)
{
cout << "How many cups would you like?" << endl;
cin>>number;
}
switch(beverage)
{
case 'a':
case 'A': cost = number * 1.0;
cout << "The total cost is $ " << cost << endl;
break;
case 'b':
case 'B': cost = number * .75;
cout << "The total cost is $ " << cost << endl;
break;
case 'c':
case 'C': cost = number * 1.25;
cout << "The total cost is $ " << cost << endl;
break;
case 'd':
case 'D': cost = number * 2.5;
cout << "The total cost is $ " << cost << endl;
break;
case 'e':
case 'E': cout << "Please come again" << endl;
break;
default:cout << " You have made a wrong selection";
cout << " Try again please" << endl;
}

} while (beverage != 'e' || beverage != 'E');

return 0;
}

我试着改过了,感觉没有变化。。。
那个==true到底有什么用啊?
展开
 我来答
死后是好人
2011-09-21 · TA获得超过2638个赞
知道小有建树答主
回答量:628
采纳率:0%
帮助的人:1035万
展开全部
没有变化
validBeverage是布尔型变量,本身if()括号里的判断语句就是需要运算后得到布尔型值
而validBeverage是布尔型变量,其值本身就是布尔型的
而validBeverage==true是将validBeverage的值是不是true这么一个逻辑判断语句的值作为if的判断标准,对于此程序的运行没有任何影响
用法不同而已
华华地发春秋5121
2011-09-22 · TA获得超过636个赞
知道小有建树答主
回答量:741
采纳率:100%
帮助的人:451万
展开全部
楼主你好,你要的程序如下:
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class School{
private:
int id;//学校编号
string name;//学校名称
int total;//学校总分
int male;//男子总分
int female;//女子总分
public:
School(){//初始化
id=0;
male=0;
female=0;
total=0;
}
void setName(string s){
name=s;
}
string getName(){
return name;
}
void setId(int i){
id=i;
}
int getId(){
return id;
}
void setTotal(int a){
total=a;
}
int getTotal(){
return total;
}
void setMale(int a){
male=a;
}
void setFemale(int a){
female=a;
}
int getMale(){
return male;
}
int getFemale(){
return female;
}

};
class Item{
private:
School sc[20];
string name;
public:
School getSchool(int i){
return sc[i];
}
School* getSchools(){
return sc;
}
void setSchool(School sch,int i){
sc[i]=sch;
}
void setName(string s){
name=s;
}
string getName(){
return name;
}
};
class Count{
private:
School sc[20];
Item item[20];
int integral[5];
int n;
public:
Count(){
n=0;
integral[0]=7;
integral[1]=5;
integral[2]=3;
integral[3]=2;
integral[4]=1;
}
void input();//输入
void print(int);//打印
void statisticsForTotal();//按总分排序
void statisticsForId();//按编号排序
void statisticsForMale();//按男子总分排序
void statisticsForFemale();//按女子总分排序
void schoolInfo();//显示学校信息
void itemInfo();//显示项目信息
void menu();//显示菜单
void sort(School*,string,int);//排序操作
};

void Count::input(){
int i,j,num,m,f,id;
School *sch;
Item *it;
string s;
cout<<"输入学校数目:";
cin>>n;
for(i=0;i<n;i++){
sch=new School;
cout<<"请输入第"<<i+1<<"学校的名称:";
cin>>s;
sch->setName(s);
sch->setId(i+1);
sc[i]=*sch;
}
cout<<"输入男子和女子项目的数目:";
cin>>m;
cin>>f;
while(m>20||m<1||f>20||f<1){
cout<<"输入数据有误,请重新输入:"<<endl;
cin>>m;
cin>>f;
}
for(i=0;i<m+f;i++){
cout<<"输入第"<<i+1<<"个项目的名称:";
cin>>s;
it=new Item;
it->setName(s);
item[i]=*it;
cout<<"输入第"<<i+1<<"个项目的前5名学校的编号:"<<endl;
for(j=0;j<5;j++){
cin>>id;
if(i<m)
sc[id-1].setMale(sc[id-1].getMale()+integral[j]);
else if(i<m+f)
sc[id-1].setFemale(sc[id-1].getFemale()+integral[j]);
sc[id-1].setTotal(sc[id-1].getTotal()+integral[j]);
item[i].setSchool(sc[id-1],j);
}
}
}
void Count::print(int i){
cout<<" "<<sc[i].getId()<<setw(10)<<sc[i].getName()<<setw(8)<<sc[i].getTotal()
<<setw(9)<<sc[i].getMale()<<setw(10)<<sc[i].getFemale()<<endl;
}
void Count::sort(School* sch,string mode,int num){//排序函数
int i,j,exchange;
School t;
if(mode=="total"){
exchange=0;
for(i=0;i<num-1;i++){
for(j=num-2;j>=0;j--)
if(sch[j+1].getTotal()>sch[j].getTotal()){
exchange=1;
t=sc[j+1];
sch[j+1]=sch[j];
sch[j]=t;
}
if(!exchange)
return;
}
return;
}
if(mode=="id"){
for(i=0;i<num;i++){
for(j=i+1;j<num;j++)
if(sch[i].getId()>sch[j].getId()){
t=sch[i];
sch[i]=sch[j];
sch[j]=t;
}
}
return;
}
if(mode=="male"){
exchange=0;
for(i=0;i<num-1;i++){
for(j=num-2;j>=0;j--)
if(sch[j+1].getMale()>sch[j].getMale()){
exchange=1;
t=sc[j+1];
sch[j+1]=sch[j];
sch[j]=t;
}
if(!exchange)
return;
}
return;
}
if(mode=="female"){
exchange=0;
for(i=0;i<num-1;i++){
for(j=num-2;j>=0;j--)
if(sch[j+1].getFemale()>sch[j].getFemale()){
exchange=1;
t=sc[j+1];
sch[j+1]=sch[j];
sch[j]=t;
}
if(!exchange)
return;
}
return;
}
}
void Count::statisticsForTotal(){
int i;
sort(sc,"total",n);
cout<<"按总分排序:"<<endl;
cout<<"学校编号 学校名称 总分 男子总分 女子总分"<<endl;
for(i=0;i<n;i++)
print(i);
}
void Count::statisticsForId(){
int i;
sort(sc,"id",n);
cout<<"按编号排序为:"<<endl;
cout<<"学校编号 学校名称 总分 男子总分 女子总分"<<endl;
for(i=0;i<n;i++)
print(i);
}
void Count::statisticsForMale(){
int i;
sort(sc,"male",n);
cout<<"按男子项目积分排序:"<<endl;
cout<<"学校编号 学校名称 总分 男子总分 女子总分"<<endl;
for(i=0;i<n;i++)
print(i);
}
void Count::statisticsForFemale(){
int i;
sort(sc,"female",n);
cout<<"按女子项目积分排序:"<<endl;
cout<<"学校编号 学校名称 总分 男子总分 女子总分"<<endl;
for(i=0;i<n;i++)
print(i);
}
void Count::schoolInfo(){ //查询学校的情况
int i,s;
cout<<"输入需要查询的学校编号:";
while(1){
cin>>s;
if(s<1||s>n){
cout<<"输入数据有误,请重新输入:";
continue;
}
break;
}
printf("该学校的信息信息:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i=0;i<n;i++){
if(sc[i].getId()==s){
print(i);
break;
}
}
cout<<endl;
}
void Count::itemInfo(){ //查询项目的情况
int i,s;
cout<<"输入需要查询的项目的编号:";
while(1){
cin>>s;
if(s<1||s>n){
cout<<"输入数据有误,请重新输入:";
continue;
}
break;
}
cout<<item[s-1].getName()<<"前5名学校编号及名称为:"<<endl;
sort(item[s-1].getSchools(),"total",5);
cout<<"名次 学校编号 学校名称"<<endl;
for(i=0;i<5;i++)
cout<<" "<<i+1<<"\t"<<item[s-1].getSchool(i).getId()
<<"\t"<<item[s-1].getSchool(i).getName()<<endl;
}
void Count::menu(){ //程序菜单
int i,flag=1;
while(flag){
cout<<"选择您需要的操作:"<<endl;
cout<<"1.按学校编号排序输出"<<endl;
cout<<"2.按学校总分排序输出"<<endl;
cout<<"3.按学校男总分排序输出"<<endl;
cout<<"4.按学校女总分排序输出"<<endl;
cout<<"5.查询某个学校成绩"<<endl;
cout<<"6.查询某个项目成绩"<<endl;
cout<<"7.结束"<<endl;
cin>>i;
while(i<1||i>7){
cout<<"你的输入有误,请重新输入:";
cin>>i;
}
switch(i){
case 1:
statisticsForId();
break;
case 2:
statisticsForTotal();
break;
case 3:
statisticsForMale();
break;
case 4:
statisticsForFemale();
break;
case 5:
schoolInfo();
break;
case 6:
itemInfo();
break;
case 7:
flag=0;
break;
}
}
}
void main(){
Count c;
c.input();
c.menu();
}
程序运行截图:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8333f71
2011-09-21
知道答主
回答量:15
采纳率:0%
帮助的人:8.4万
展开全部
是一样的,==true表示bool(逻辑)变量validBeverage 是真实的,而if(validBeverage)表示如果括号里的变量或表达式非零,在c++中true=1,也是非零
以后经常会遇到if(变量)和if(变量==1)或if(bool变量==true)其实都是一样的,if(变量)较简洁
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gouyun0922
2011-09-21 · TA获得超过151个赞
知道小有建树答主
回答量:246
采纳率:100%
帮助的人:128万
展开全部
两者都一样.if(validBeverage)表示如果validBeverage的值为真,则....;if中的条件的结果为布尔值类型,只有真和假两种情况.所以if(validBeverage == true)相当于if(validBeverage).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wh6816
2011-09-22
知道答主
回答量:32
采纳率:0%
帮助的人:22.7万
展开全部
是一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式