• c++第十天


    《c++ primer, 5E》

    第64页到第68页,笔记:

    1、利用花括号初始化data member。

    2、预处理器是在编译之前执行的一段程序

    3、类似SALES_DATA_H通常称为【预处理变量】,有两种状态:已经定义 和 未定义。

    防止重复包含的实例代码

    #ifndef SALES_DATA_H        //检查结果为真,就执行下面的代码,直到#endif
    #define SALES_DATA_H        //预处理变量变为【已定义】,再次包含不再拷贝#ifndef到#endif之间的代码
    #include<string>
    struct Sales_data{
        std::string bookNo;
        unsigned units_sold = 0;
        double price = 0.0;
        double revenue = 0.0;
    };
    #endif

    遇到的问题:

    课后练习:

    练习2.39

    prog1.cpp:1:12: error: expected ';' after struct definition struct Foo{}

    练习2.40

    struct Sales_data{
        std::string bookNo;
        unsigned units_sold = 0;
        double price = 0.0;
        double revenue = 0.0;
    };

    练习2.41

    1

    #include<iostream>
    #include<string>
    struct Sales_data{
        std::string bookNo;
        unsigned units_sold = 0;
        double price = 0.0;
        double revenue = 0.0;
    };
    int main()
    {
        Sales_data data;
        // std::cin >> data;
        std::cin >> data.bookNo >> data.units_sold >> data.price;
        // std::cout << data;
        std::cout << data.bookNo << " " << data.units_sold << " " << data.price << std::endl;
        return 0;
    }

    2

    #include<iostream>
    #include<string>
    struct Sales_data{
        std::string bookNo;
        unsigned units_sold = 0;
        double price = 0.0;
        double revenue = 0.0;
    };
    int main()
    {
        Sales_data data1, data2;
        // std::cin >> data1 >> data2;
        std::cin >> data1.bookNo >> data1.units_sold >> data1.price;
        std::cin >> data2.bookNo >> data2.units_sold >> data2.price;
        // std::cout << data1 + data2;
        std::cout << data1.bookNo << " " << data1.units_sold + data2.units_sold << " " << data1.price << std::endl;
        return 0;
    }

    3

    #include<iostream>
    #include<string>
    struct Sales_data{
        std::string bookNo;
        unsigned units_sold = 0;
        double price = 0.0;
        double revenue = 0.0;
    };
    int main()
    {
        Sales_data data, sum_data;
        while(std::cin >> data.bookNo >> data.units_sold >> data.price)
            sum_data.units_sold += data.units_sold;
        std::cout << data.bookNo << " " << sum_data.units_sold << " " << data.price << std::endl;
        return 0;
    }

     4写这种代码简直就是。。。

    #include<iostream>
    #include<string>
    struct Sales_data{
        std::string bookNo;
        unsigned units_sold = 0;
        double price = 0.0;
        double revenue = 0.0;
    };
    int main()
    {
        int num = 0;
        std::string last_bookNo;
        Sales_data temp_data;
        // 读取第一个
        // std::cin >> temp_data;
        std::cin >> temp_data.bookNo >> temp_data.units_sold >> temp_data.price;
        last_bookNo = temp_data.bookNo;
        num = 1;
        // while(std::cin >> temp_data){
        while(std::cin >> temp_data.bookNo >> temp_data.units_sold >> temp_data.price){
            if(temp_data.bookNo == last_bookNo){
                ++num;
            }
            else{
                std::cout << last_bookNo << " " << num;
                last_bookNo = temp_data.bookNo;
                num = 1;
            }
        }
        std::cout << last_bookNo << " " << num;
        return 0;
    }

    5

    #include<iostream>
    #include<string>
    struct Sales_data{
        std::string bookNo;
        unsigned units_sold = 0;
        double price = 0.0;
        double revenue = 0.0;
    };
    int main()
    {
        Sales_data total;
        if(std::cin >> total.bookNo >> total.units_sold >> total.price){
            Sales_data trans;
            // while(std::cin >> total)
            while(std::cin >> trans.bookNo >> trans.units_sold >> trans.price){
                if(total.bookNo == trans.bookNo){
                    total.units_sold += trans.units_sold;
                }else{
                    // std::cout << total << std::endl;
                    std::cout << total.bookNo << " " << total.units_sold << " " << total.price << std::endl;
                    // total = trans;
                    total = trans;
                }
            }
            std::cout << total.bookNo << " " << total.units_sold << " " << total.price << std::endl;
        }else{
            std::cerr << "No data?" << std::endl;
            return -1;
        }
        return 0;
    }

    练习2.42

    像这样

  • 相关阅读:
    c++语法(2)
    c++语法(1)
    前端之 BOM和DOM
    JavaScript
    CSS属性相关(续)
    CSS属性相关
    CSS选择器
    前端之CSS
    HTML常用标签
    HTML介绍
  • 原文地址:https://www.cnblogs.com/xkxf/p/6369312.html
Copyright © 2020-2023  润新知