程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> ZOJ 2727List the Books

ZOJ 2727List the Books

編輯:C++入門知識

[cpp] 
#include<fstream> 
#include<iostream> 
#include<vector> 
#include<algorithm> 
#include<string> 
using namespace std; 
struct Book 

    string Name; 
    int Year; 
    int Price; 
}; 
 
bool CompName(const Book &b1,const Book &b2) 

    if(b1.Name!=b2.Name) 
        return b1.Name<b2.Name; 
    else if(b1.Year!=b2.Year) 
        return b1.Year<b2.Year; 
    else 
        return b1.Price<b2.Price; 

bool CompYear(const Book &b1,const Book &b2) 

    if(b1.Year!=b2.Year) 
        return b1.Year<b2.Year; 
    else if(b1.Name!=b2.Name) 
        return b1.Name<b2.Name; 
    else 
        return b1.Price<b2.Price; 

bool CompPrice(const Book &b1,const Book &b2) 

    if(b1.Price!=b2.Price) 
        return b1.Price<b2.Price; 
    else if(b1.Name!=b2.Name) 
        return b1.Name<b2.Name; 
    else 
        return b1.Year<b2.Year; 

int main() 

    //ifstream cin("acmilan.txt"); 
    vector<Book> v; 
    Book book; 
    string sorting; 
    int n; 
    int i; 
    int line=0; 
    while(cin>>n) 
    { 
        if(n==0) 
            break; 
        line++; 
        v.clear(); 
        for(i=0;i<n;i++) 
        { 
            cin>>book.Name>>book.Year>>book.Price; 
            v.push_back(book); 
        } 
        cin>>sorting; 
        if(sorting=="Name") 
            sort(v.begin(),v.end(),CompName); 
        else if(sorting=="Year") 
            sort(v.begin(),v.end(),CompYear); 
        else if(sorting=="Price") 
            sort(v.begin(),v.end(),CompPrice); 
        if(line!=1) 
            cout<<endl; 
        for(i=0;i<v.size();i++) 
        { 
            cout<<v[i].Name<<" "<<v[i].Year<<" "<<v[i].Price<<endl; 
        } 
             
    } 
    //system("pause"); 
    return 0; 

作者:teibin

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved