• 写段代码沉淀一下


    
    // booklistOfLibrary.cpp: 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <stdlib.h>
    #include<iostream>
    #include<fstream>
    #include<cstdlib>
    #include<string>
    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 << "	" << list[n].bookName << "	" << list[n].publisher << "	" << list[n].bookPrice << "	" << 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 ;
    }
    
  • 相关阅读:
    项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】
    项目管理实践教程二、源代码控制【Source Control Using VisualSVN Server and TortoiseSVN】
    javascript 容易忽略或者误用的七个基础知识点
    未来的路还很长
    Nodejs
    CSS浏览器兼容性相关
    HTML5
    一些正则
    Sublime 使用
    Array.prototype.slice.call(arguments,1)
  • 原文地址:https://www.cnblogs.com/hpl20155329/p/9092957.html
Copyright © 2020-2023  润新知