// booklistOfLibrary.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include using namespace std;const int size = 20;struct bookList{ string identifier;//编号 string bookName;//书名 string publisher;//出版社 float bookPrice;//单本书价格 int bookNum;//书的数量 float totalPrice;//总价格};void storage(bookList list[], int row);//功能1:将文件中的信息存储到内存单元void countBook(bookList list[], int row);//功能2:统计清华大学出版社和高等教育出版社出版读物的数量。void findBook(bookList list[], int row);//功能3:寻找总价最低 和最高的书种,并输出价格。void findBookName(string nameOfbook);//功能4:寻找书籍,并输出其全部信息,若找不到则提示找不到。double calculateAve(bookList list[], int row);//计算所有种类书籍总价的平均值;int main(){ using namespace std; int row = 11; bookList list[11]; storage(list, row); countBook(list, row); findBook(list, row); int ave = calculateAve(list, row); cout << "所有种类书籍总价的平均值是:" << ave << endl; cout << "请输入需要查询的馆藏读物:" << endl; string str; cin >> str; findBookName(str); system("pause"); return 0;}void storage(bookList list[], int row){ using namespace std; ifstream inFile; int n = 0; string str; inFile.open("1.txt"); if (!inFile.is_open()) { cout << "打开文件1.txt失败!!!" << endl; exit(EXIT_FAILURE); } else { while (!inFile.eof() && n < 11) { inFile >> str; list[n].identifier = str; inFile >> str; list[n].bookName = str; inFile >> str; list[n].publisher = str; inFile >> str; float a = atof(str.c_str()); list[n].bookPrice = a; inFile >> str; int b = atoi(str.c_str()); list[n].bookNum = b; inFile >> str; float c = atof(str.c_str()); list[n].totalPrice = c; cout << endl; cout << list[n].identifier << "\t" << list[n].bookName << "\t" << list[n].publisher << "\t" << list[n].bookPrice << "\t" << list[n].bookNum << endl; n++; } } inFile.close();}void countBook(bookList list[], int row){ using namespace std; //string publisherOne = "清华大学出版社"; //string publisherTwo = "高等教育出版社"; int qhCount = 0; int gdCount = 0; for (int i = 0; i < row; i++) { if (list[i].publisher.compare("清华大学出版社") == 0) qhCount++; else if (list[i].publisher.compare("高等教育出版社") == 0) gdCount++; } cout << "图书馆中共有清华大学出版社出版的读物" << qhCount << "种" << endl; cout << "图书馆中共有高等教育出版社出版的读物" << gdCount << "种" << endl;}void findBook(bookList list[], int row){ using namespace std; float temp = list[0].totalPrice; for (int i = 1; i < row; i++) { if (temp < list[i].totalPrice) { temp = list[i].totalPrice; } } cout << "总价最高:" << temp << endl; cout << "总价最低:" << list[6].totalPrice << endl;}void findBookName(string nameOfbook){ using namespace std; ifstream in("1.txt"); string line, str; while (!in.eof()) { in >> str; if (nameOfbook.compare(str) == 0) { getline(in, line); cout << line << endl; } }}double calculateAve(bookList list[], int row){ float sum = 0.0; for (int i = 2; i < row; i++) { sum += list[i].totalPrice; } return sum/10 ;}