ISBN碼驗證(類)描述?10位數(shù)的ISBN系統(tǒng)是由組號、出版者號、書序號、校驗號四部分組成的,比如0-901690-54-6,變?yōu)?3位數(shù)的ISBN就是在10位數(shù)的ISBN前面加上3位EAN(歐洲商品編號)的圖書產(chǎn)品代碼978。這樣,上面的ISBN編號就變成了五部分,如978-0-901690-54-6。校驗號的重新計算,也將根據(jù)對前面的12位數(shù)而不是9位數(shù)的計算而得出。13位數(shù)的系統(tǒng)與10位數(shù)的系統(tǒng)是完全兼容的。10位數(shù)ISBN的結(jié)構(gòu)? ? ? 現(xiàn)行的ISBN由10位數(shù)字組成,這10位數(shù)字由4組數(shù)字組成,中間用“-”相連,每組數(shù)字都有不同的含義。? ? ? 第一組號碼是地區(qū)號,又叫組號,最短的只有一位數(shù)字,最長的達(dá)五位數(shù)字,大體上兼顧文種、國別和地區(qū)。0、1代表英語,使用這兩個代碼的國家有:澳大利亞、加拿大、愛爾蘭、新西蘭、波多黎各、南非、英國、美國、津巴布韋等;2代表法語,法國、盧森堡以及比利時、加拿大和瑞士的法語區(qū)使用該代碼;3代表德語,德國、奧地利和瑞士德語區(qū)使用該代碼;4是日本出版物的代碼;5是俄羅斯出版物的代碼;7是中國出版物使用的代碼。? ? ? 第二組: 出版社代碼。由國家或地區(qū)的ISBN中心設(shè)置并分給各個出版社。? ? ? 第三組:書序碼。該出版物代碼,是出版者分配給每一個出版物的編號。? ? ? 第四組:計算機(jī)校驗碼。校驗碼是ISBN號的最后一位數(shù)值,它能夠校驗出ISBN號是否正確。校驗碼只能是1位數(shù),當(dāng)為10時,記為羅馬數(shù)字X?!?校驗碼的計算方法·?1. 假設(shè)某ISBN號碼前11位是:7-309-04547; ? ??2. 計算加權(quán)和S:S=7×10+3×9+0×8+9×7+0×6+4×5+5×4+4×3+7×2 = 226; ? ??3. 計算S÷11的余數(shù)M:M = 226 mod 11 = 6; ? ??4. 計算11-M的差N:N = 11 ? 6 = 5 ? ?· 如果N=10,校驗碼是字母“X”; ? ??· 如果N=11,校驗碼是數(shù)字“0”; ? ??· 如果N為其他數(shù)字,校驗碼是數(shù)字N。 ? ?所以,本書的校驗碼是5。13位ISBN的最后一位校驗位的加權(quán)算法與10位ISBN的算法不同。具體算法是:用1分別乘ISBN的前12位中的奇數(shù)位,用3乘以偶數(shù)位,成績之和以10為模,用10減去此模,即可得到校驗位的值,其值范圍應(yīng)該為0-91. 假設(shè)某13位ISBN號碼前15位(包含‘-’符號)是:987-7-309-04547; ? ??2. 位置為123-4-567-89(10)(11)(12) ? ??3. 計算加權(quán)和S:S=9×1+8×3+7×1+7×3+3×1+0×3+9×1+0×3+4×1+5×3+4×1+7×3 = 117; ? ??4. 計算S÷10的余數(shù)M:M = 117 mod 10 = 7; ? ??5. 計算10-M的差N:N = 10 -7 = 3 ? ? (如果10-M的值為10則校驗碼取0)6. 所以,本書的13位ISBN的校驗碼是3。輸入一個13位ISBN代碼,驗證其代碼的正確性。n如果正確,則輸出“YES”,否則輸出錯誤信息“NO”。程序必須采用類的方法完成,程序中必須含有和使用三個基本類成員函數(shù):input()輸入數(shù)據(jù),computer()計算結(jié)果,show()顯示結(jié)果,函數(shù)的返回值和參數(shù)根據(jù)需要自己可以確定需要與否,如果不用類的方法或沒有使用上面的函數(shù),該題不給分。輸入每行一個測試數(shù)據(jù),表示一個13位ISBN的號碼(包含‘-’符號)。輸出根據(jù)驗證規(guī)則,計算其正確性,如果正確,則輸出“YES”,否則輸出錯誤信息“NO”。樣例輸入978-7-302-08599-7樣例輸出YES
- 1 回答
- 0 關(guān)注
- 1579 瀏覽
添加回答
舉報
0/150
提交
取消