问答题


阅读以下标准书号校验码的技术说明和程序流程图,根据要求回答问题1至问题3。
[说明]
为实现图书的国际统一编码,便于实现计算机化的图书管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”、10个数字(0-9)组成,其格式如下。
ISBN 组号-出版者号-书名号-校验码
其中,校验码是根据前面9个数字计算得到的,用于计算机自动校验。假设标准书号的10个数字依次是a(1),a(2),…,a(10),则校验码a(10)的设置应使S=1O*a(1)+9*a(2)+8*a(3)+…+1*a(10)能被11整除。如果校验码a(10)应设置成10,则规定以“X”表示之。
例如,《软件设计师考试考前冲刺预测卷及考点解析》的标准书号为:ISBN 7-121-05027-5。第1段上的数字“7”是国际ISBN中心分配给中国ISBN中心管理的组号;第2段上的“121”表示电子工业出版社。标准书号的校验过程如图3-16所示,计算校验码的过程如图3-17所示。其中,Mod(S,11)表示S除以 11得到的余数。


图3-16 标准书号的校验过程


图3-17 计算校验码的过程
[问题1]
请根据标准书号校验码的说明,将图3-16和图3-17程序流程图中(1)-(4)空缺处的内容填补完整。

【参考答案】

制订标准书号的目的是实现图书的国际统一编码,以便于实现计算机化的图书管理,使出版社内的医书管理、书库中的图书管理及书店的......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
[说明]C++语言本身不提供对数组下标越界的判断。为了解决这一问题,在以下[C++程序]中定义了相应的类模板,使得对于任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提示信息。[C++程序]#include <iostream.h>template <class T> class Array;template <Class T> class ArrayBody {friend (1) ;T* tpBody;int iRows,iColumns, iCurrentRow;ArrayBody(int IRsz, int iCsz) {tpBody = (2) ;iRows = iRsz;iColumns = iCsz;iCurrentRow = -1;}Public:T& operator[] (int j) {bool row_error, column_error;row_error = column_error =false;try {if (iCurrentRow < 0 || iCurrentRow >= iRows)row_error = true;if (j<0 || j>= iColumns)column_error = true;if (row_error == true || column_error == true)(3) ;}catch(char){if (row_error == true)cerr << 行下标越界[ << iCurrentRow << ] ;if (column_error = true)cerr << 列下标越界[ << j << ] ;cout << n ;}return tpBody[iCurrentRow * iColumns + j];}~Arraygody(){delete[]tpBody;}};template <class T> class Array {ArrayBody<T> tBody;Public;ArrayBody<T> & operator[] (int i) {(4) ;return tBody;}Array(int iRsz, int iCsz) : (5) { }};void main(){Array<int> a1(10,20);Array<double> a2(3,5);int b1;double b2;b1 = a1[-5][10]; 有越界提示:行下标越界[-5]b1 = a1[10][15]; 有越界提示:行下标越界[10]b1 = a1[1][4]; 没有越界提示b2 = a2[2][6]; 有越界提示:列下标越界[6]b2 = a2[10][20]; 有越界提示:行下标越界[10]列下标越界[20]b2 = a2[1][4]; 没有越界提示}