c++Primer 练习2.41

来源:互联网 发布:win10的java环境配置 编辑:程序博客网 时间:2024/05/29 06:49

无法添加.h头文件------没有把.h文件放在project文件夹下


5.19 12:40



#include"Sales_data.h"//要包含在本project里
#include<iostream>


int main()
{   
//输入打印
Sales_data book;//定义一个类类型的对象
std::cout << "请输入销售记录" << std::endl;
while(std::cin >> book)//why?????????   因为不用while时是std::cin>>book;std::cout<<book;
std::cout << book << std::endl;
}

   //两条相同相加
Sales_data trans1, trans 2;
std::cout << "请输入两条相同ISBN的数据" << std::endl;
std::cin >> trans1 >> trans2;
if (compareIsbn(trans1, trans2))//不用=!0????????参数怎么传的
std::cout << "它们的和是" << trans1 + trans2 << std::endl;
else
std::cout << "ISBN不同" << std::endl;


//几条相同,相加
Sale_data total, trans;
std::cout << "请输入相几条相同ISBN的数据" << std::endl;
if(std::cin>>total)//因为不知道输入几条,所以没办法 cin。。。;cin。。。;的写  这个if是防止没有数据输入
{
while(std::cin >> trans)
{
if (compareIsbn(total,trans))
{
total = total + trans;
//std::cout << "它们的和是" << total<< std::endl;   在这里输入时错误的 因为不能每有相同的就输出一次  应该在循环结束后   即输入不相同的数据时再输出,后面会用到break
}
else
{
std::cout << "ISBN不同" << std::endl;
break;//学会break的用法
}
std::cout << "它们的和是" << total << std::endl;
}
}
else
{
std::cout << "no data!" << std::endl;
return -1;//出错时是return-1 ???会发生什么   
}


//输入几条,统计每个ISBN相同的有几条,注意本题的前提:相同的ISBN记录是放在一起的
int num = 1;//不是0,因为本身自己就是一本了
std::wcout << "请输入若干条记录" << std::endl;
if (std::cin >> trans1)
{
while (std::cin >> trans2)
{
if (compareIsbn(trans1, trans2))
{
num++;
//std::cout << "该" << trans1.isbn() << "共有" << num << "条记录" << std::endl;  此句不是这里输出,应该是出现不相同的时候再输出的
}
else
{
std::cout << "该" << trans1.isbn() << "共有" << num << "条记录" << std::endl;
num = 1;
trans1 = trans2;
//注意没有break,这时候如果还有trans2,就会继续while里面的内容
}


}
std::cout << "该" << trans1.isbn() << "共有" << num << "条记录" << std::endl;//保证在输出一些列相同的ISBN个数之后没有输入之后还会有输出,不要忘记这句
}
else
{
std::cout << "no data!" << std::endl;
return -1;   
}
return 0;
}


14:20   用时一个小时40分钟


原创粉丝点击