⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isbn-2.cpp

📁 审核ISBN的另一算法
💻 CPP
字号:
#include<iostream>
#include<string>
using namespace std;

class ISBN{
     public:
           void set_isbn(string s){
                   isbnNum=s;}
           string get_isbn()const{return isbnNum;}    
           bool check_isbn(string s);
     private:
           string isbnNum;      
    };
 
bool ISBN::check_isbn(string s){
     int a[10];
     int sum=0;
     for(int i=0,j=0;s[i]!='\0';i++)      
        {
         if(s[i]>='0'&&s[i]<='9'||s[i]=='x')
           {a[j]=s[i]-'0';j++;}        //注意!!! j 和 i 不一样:i 是在string s中从头变到尾(i=0 to \0) 
        }                              //而 j 是在数组 a 中从开始变到结尾(j=0 to 9)    
     if(a[9]=='x'-'0') a[9]=10;
     for(int i=0;i<9;i++)
        {
         sum+=(1+i)*a[i];
        }
     if(a[9]==sum%11) return true;
     else             return false;     
    }       
    
int main(){
    string str;
    ISBN num;
    bool tag;
    
    for(char response='y';response=='y';)
    {
    cout<<"输入ISBN(包括\"-\"):\n\t";
    cin >>str;
    num.set_isbn(str);
    cout<<"当前输入ISBN为:\n\t"
        <<num.get_isbn()<<endl; 
    tag=num.check_isbn(str);
    if(tag)cout<<"\t有此ISBN"<<endl;
    else   cout<<"\t\a\a无此ISBN,当心!"<<endl;
    cout<<"再来一次?<y/n> ";
    cin >>response;
    //response=tolower(response);  //转换为可判断类型 
    }    
    system("PAUSE");
    return 0;    
    }    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -