问答题

[说明]
为实现图书的国际统一编码,便于实现计算机化的图书管理,每本正式出版的图书都印有国际标准书号。标准书号由“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. [问题1]
请根据标准书号校验码的说明,将图3-16和图3-17程序流程图中(1)-(4)空缺处的内容填补完整。

【参考答案】

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

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

问答题
在Visual Basic应用程序中显示磁盘驱动器、目录和文件的有关信息(如设计资源管理器),除了使用对话框外,VB提供了文件系统内部控件:驱动器列表框(DriveListBox)、目录列表框(DirListBox)和文件列表框(FileListBox)。 驱动器列表框用于显示系统中所有的有效驱动器,它可以自动填写驱动器的名称和卷标。 目录列表框以目录树形式(分层缩进)显示当前目录的所有上级目录及下一级子目录。 文件列表框是一个特殊的ListBox控件,它以列表形式显示当前目录中的所有文件名,并可选择按文件名、扩展名或属性排列内容。 这些控件通常在一个窗体中工作,程序设计时必须保持三者之间的同步关系。当用户在驱动器列表框 (DriveListBox)中选择一个驱动器时,DirListBox控件就更新显示该驱动器上的目录树。当用户在目录列表框(DirListBox)中选择一条路径时,文件列表框(FileListBox)控件中的内容为该目录下的文件列表。这些活动自动地触发Change事件。但这些活动不能自动完成,需要为Change事件编写代码。 本案例程序中,改变当前驱动器时将触发drvFile_Change()事件,改变当前目录时将触发 dirFile_Change()事件。在drvFile_Change()事件过程中,需要通过代码将驱动器列表框的Drive属性(指明当前驱动器)赋值给目录列表框的Path属性,即(2)空缺处所选择的语句是选项B的“dirFile.Path= drvFile.Drive”,使目录列表框中显示当前驱动器上所有的一级目录。在dirFile_Change()事件过程中,需要将目录列表框的Path属性(指明当前路径)赋值给文件列表框的Path属性,即(3)空缺处所选择的语句是选项E的“filFile.Path=dirFile.Path”,从而使驱动器列表框、目录列表框和文件列表框的显示内容保持一致(同步)。 由于本案例程序是一个图片浏览器,应限制用户只能选择图形文件,因此需要通过组合框指定所要浏览的图片类型,使得文件列表框中只显示出所指定类型的相应文件。当用户更改文件类型组合框中的文件类型值时将触发cboFile Click()事件。 根据图3-19的显示结果可知,该图片浏览器支持包含*.bmp、*.ico、*.wmf、*.jpg及*.gif等多种文件类型。要将同一个表达式与不同的值进行比较,则需要用到“Select...Case”条件选择语句,即在 cboFile_Click()事件中,需要通过Select Case语句为文件列表框指定相应的filFile.Pattern属性值。其中, filFile.Pattern属性用于指定文件列表框中所显示的义件类型。因此(4)空缺处所选择的语句是选项G的“Select Case cboFile.Listlndex”。 由于在窗体Form_Load()过程中,通过语句“cboFile.Listlndex=0”间接要求在文件列表框中只显示出后缀为*.bmp的文件名,即(1)空缺处所选择的语句是选项D的filFile.Pattern= *.bmp 。 在filFile_Click()事件过程中,应判断文件所在目录是否为根目录,即(5)空缺处所选择的语句是选项C的Right(filFile.Path,1)= 。其中,filFile.Path属性用于说明所选文件的路径(目录)。如果文件所在目录是根目录,则直接通过语句“imgShow.Picture=LoadPicture(filFile.Path+filFile.FileName)”,在图像框中显示出相应的图片。其中,filFile.FileName属性用于说明所选文件的文件名。如果文件所在目录不是根目录,则需要通过语句“imgShow.Picture=LoadPicture(filFile.Path+ +filFile.FileName)”在图像框中显示出相应的图片。因此(6)空缺处所选择的语句是选项A的“filFile.Path”,(7)空缺处所选择的语句是选项F的 filFile.FileName 。
问答题
[说明] 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]; 没有越界提示