今天学完了第二章,指针感觉是很复杂的东西,各种复合类型处理类型让人混乱,明天要对这一块进行复习。
第二章的最后一小节是自定义数据结构,对第一章的书店程序进行自己的重写。因为技术有限,所以在自己写的Sales_data头文件里只定义了数据成员,其余操作是在主函数体里手动完成的。
自写的Sales_data的头文件
#pragma once
#ifndef SALES_DATA_H
#define SALES_DATA_H
#include<iostream>
#include<string>
using namespace std;
struct Sales_data
{
string ibsn{ 0 };
unsigned int number{ 0 };
double price{ 0.00 };
};
#endif
头文件需要注意的细节是:
1.第二行,第三行以及最后一行是头文件保护符,SALES_DATA_H在这里是预处理变量。头文件保护符要在头文件里习惯性加上。
2.在头文件不能习惯性写上int main()主函数体!否则会与cpp文件的int main()重复而报错:
3.结构体最后一个括号后记得加分号!
主函数体的代码为
#include<iostream>
#include<string>
#include"Sales_data.h"
using namespace std;
int main()
{
Sales_data data1, data2;
cout << "请分别输入两条纪录IBSN码、销量以及单价:";
cin >> data1.ibsn >> data1.number >> data1.price;
cin >> data2.ibsn >> data2.number >> data2.price;
if (data1.ibsn == data2.ibsn)
{
unsigned int tnumber = data1.number + data2.number;
double total = data1.number*data1.price + data2.number*data2.price;
cout << "总计结果为:" << endl;
cout << "ISBN码为: " << data1.ibsn << endl
<< "总数量为: " << tnumber << endl
<< "总价:" << total << endl
<< "平均价格为:" << total / tnumber << endl;
return 0;
}
else
{
cerr << "两条记录的ISBN码不同";
return -1;
}
}
经调试可以正常运行,自学党的胜利。