用电脑实现著者号的自动区号

时间:2022-09-14 09:18:18

用电脑实现著者号的自动区号

【摘要】由于延续至今的著者号查号法有严格的编制规则,故使用上相对繁琐,编制效率不高。针对这一问题,提出了一种利用计算机来自动完成这项工作的方法,从而使这一编制工作变得简单快捷,准确而高效。

【关键词】著者号 查号法 自动取号

一、系统设计构思

(一)总体设计思路。将系统主要按三大模块来设计,它们分别是:著者号码,即著者号自动生成模块,其中包括生成的著者号的显示输出,清除(复位),打印等功能;著者号码表,即为对《通用汉语著者号码表》数据库记录可进行修改,删除,添加,查阅等功能模块;著者复分表,是向习惯于使用人工方式编制著者号的人员提供复分表查阅功能的模块。

(二)系统创新功能。为使软件具有特色,使用方便,著者号的生成效率高,本系统做一些特色功能方面的设计,其创新主要有以下三大方面:

1.灵活的汉语拼音输入。根据通用汉语著者号码表生成著者号规则,为方便用户操作使用,系统应提供了汉语拼音键盘,借助鼠标输入汉语拼音。该键盘主要作用是提供英文键盘中无法直接输入的拼音字符,和方便多拼音字符组合的声、韵母一次性输入,即保证了拼音输入的正确性,又可提高输入效率。

2.高效的多形式输入法。为提高输入效率,系统提供了一些常见的个人著者名称和团体机关著者名称。需要时,可以直接在相应的下拉列表框中通过选择得到,系统会自动将其填入相应的输入框中,完成著者名称的输入。与此同时,系统还提供了输入法选项设置功能,通过不同的设置,可分别实现“键盘输入”、“鼠标输入”和“自动输入”这三种方式,这些方法各有所长。如:“自动输入”,可配合语音输入软件实现著者名称的语音汉字输入,可以借助系统搭建的平台,调用用户建立的汉字—拼音数据库,省略汉语拼音的输入步骤,简化操作。

3.动态的帮助提示。用户在输入数据时,当输入的内容有明显的表达错误时,系统则会自动提示,并能对预先设计可能出现的语法错误自动进行纠正。此时弹出的“说明”按钮,可显示系统使用方法和著者名称在录入时应注意事项的详细内容。鼠标移动到通过单击或输入则可以完成所需的功能的控件或图标按钮上方时,除鼠标指针会自动变成小手形状外,同时还会给出帮助提示及语音解说。

为方便成功开发出通用汉语著者号自动生成系统,使计算机能顺利实现上述功能,本系统则着重从以下三大方面构思设计:

(三)构造数据库。要使计算机能识别通用汉语著者号码表,并能准确快速地查找并读取数据,则必须把著者号码表改造成为二维表结构的数据库。在此以刘湘生先生主编的《通用汉语著者号码表》为例。按其编制规则要求,在构建的数据库中建立了四个字段,并依次分别命名为“名称”、“字符”、“数码”和“尾符”,用于存放通用汉语著者号码表中的各项数据。以此为基础设计建造的关系型数据库Ts.dbf,设计说明如下。

1.“数码”字段虽然要参与数值运算,但由于《通用汉语著者号码表》编制方法的规定,即数据不足三位数的,要在其前面补0,以确保由三位构成,故将其设定为字符型。为了解决其运算问题,本系统是在程序代码设计时将前面有0的数中的0取出,然后使用函数,将剩下部分转化为数值型,再进行计算,在计算完毕,再在生成著者号码时,按《通用汉语著者号码表》的规定再将所需的0补上,并变回字符型。

2.为使查找准确而高效,在此改用著者汉字名称为第一查找字段,并为此建立“名称” 字段,就此,把著者号码表中的第一查找字段汉语拼音数据项去除。

3.将《通用汉语著者号码表》中的著者名称前三部分中的第二部分(第二个字)的汉语拼音字母的声母项设定为一个字段项,命名为“字符”。

凡文章中提及的著者名称前三部分是指:如:为人名,则取前三个字;为机关团体名称,则前一部分为《通用汉语著者号码表》中已存在的最大部分,后两个部分为紧接其后的两个汉字。例如:北京大学图书馆期刊部,分为:北京大学--图--书 三部分,因为“北京大学”是《通用汉语著者号码表》中相对该著者名称而言,为已存在的最大部分,所以“北京大学”是前面的第一部分。

著者名称若为单名,则第三部分是指第二个部分韵母的最后一个字母。

4.用于查找复分表的数字项,在《通用汉语著者号码表》中称之为“圈码”,在此把它命名为“尾符”, 由于“尾符”要参加数值计算,故设定为数值型。为配合上述记录指针的移动查找,在此事先将该数据库按名称进行排序(升序)。

(三)程序操作界面设计。由于《通用汉语著者号码表》查号法是根据“字”、“音”两方面来进行著者号码编制的,使用者在操作时必须提供著者中文名称,以及该名称的前三个部分的汉语拼音。为使这一输入工作简化,提高操作效率,在程序主界面上提供了四个选项卡,分别为著者号码,著者号码表,著者复分表,关于本系统,其目的是使操作界面更加紧凑、清晰和方便编目人员查阅使用。

在著者号码选项卡界面下方提供了两个文本输入框text1和text2,供操作者分别输入汉语著者名称以及该名称的汉语拼音;为方便输入和输出,在著者号码选项卡中设置了“打印”、“清除”(复位)等命令按钮,并在界面右上角构建了下拉列表框,供用户选择常见著者名称。在其下方提供了一个配合输入汉语拼音的汉语拼音键盘,同时在右边提供了一个选项设置区,使用户能根据不同需求进行设置,方便输入。

(五)主要程序代码设计思路。

1.基本设计思想:按通用汉语著者号码编制规则进行。先查找,即找到著者名称第一部分在著者号码表数据库中的准确位置,并读取数据。其次则是转换,即将读取的数据,其字符型转化成数值型,便于计算。第三,则为判断,即根据所获数据和复分表规则判断得到著者复分表值。第四是运算,即根据所得到的著者号码表数据库中对应的值和复分表值进行数值运算。第五则为再转换,就是根据计算结果和著者号码表所要求的格式生成标准的通用汉语著者号码。

2.程序代码解决的关键问题:实现计算机自动查找通用汉语著者号码表;根据著者名称的第三个部分的汉语拼音声母或韵母以及对应的尾符,根据查复分表规则通过条件判断语句,赋值语句来确定相应值,完成查找复分表值工作;确定著者名称第一个汉字为 “王”,“刘”,“张”等这样几个大姓开头字的著者名称第二部分汉语拼音细分后的数码和尾符(圈码)值;将计算所得到的值转化成著者号码格式输出;提供对通用汉语著者号码表数据库的增补缺字、修改等功能。

3.程序实例说明:由于整个系统的程序代码较长,在此仅以介绍计算机自动查找通用汉语著者号码表,并根据查复分表查表规则,生成通用汉语著者号码部分为例进行说明。以数据库编程软件Visual Foxpro 6.0版本编写的程序代码为例说明其程序设计主要思路。以下是确定(显示)command1按钮的Click事件程序代码:

(下转第196页)

注:本程序执行前,已对数据库Ts.dbf按名称字段排序(升序)后进行了保存。在输入著者名称的汉语拼音时,每个部份要用一个空格隔开。

首先是对有关变量赋初值,实现初始化 ,如:ms=""

姓名1=allt(thisform.text1.value) ……

其次,是对输入的著者名称中出现的简称进行处理,如:

do case

case 姓名1="中华人民共和国"

姓名1=rtrim(substr(姓名1,15,30)) && 对常见的词组进行处理

……

endcase

if at(left(姓名1,2),"刘,李,张,王,马,陈,阿,潘,特,吴,徐,杨");

0.or.len(ltrim( rtrim(姓名1)))=4 && 对常见的几个大姓氏做特殊处理

……

&& 省略部分包括给出提示信息,并对输入不合规则的部份(有语法错误的部分)自动纠错。

endif

第三,在 Ts.dbf 数据库中查找‘姓名1’内存变量中著者名称第一部份所在的记录位置,然后根据第二个字的首拼音字符(第二部份)下移指针到准确的记录上(实现精确定位),其中包括在“汉字- 拼音”库中查找其著者名称第一、二、三部份汉字对应的汉语拼音。

第四,确定特殊字第一部份细分后,第二个字的汉语拼音对应的“数码1”、“尾符1”的值。若查找到的记录对应的字符满足条件:字符=" ".or.尾符1=0,这时直接生成著者号,然后从数码中取出数字,将其转化成数值型,并赋给‘号码’变量。对于通用汉语著者号码表中规定的特殊少数的几个大姓氏,如:张,李等字的汉语拼音对应的“数码1”、“尾符1”的取值,则采取用do case语句嵌套方式,先判定变量“姓名1”中的姓氏,再通过函数at(拼音21,"字符串/")判断其值是否为零来确定。程序代码如下所示:

拼音21="/"+拼音2+"/"

do case

case left(姓名1,2)="张"

do case

case at(拼音21,"/sa/sai/san/sang/sao/se/sen/seng/sha/ shai/shan/shang/shao/she/shai/shen/sheng/")0

数码1="160"

尾符1=10

case at(拼音21,"/xi/")0

数码1="200"

尾符1=10

……

endcase

最后,断判单双名。将输入著者姓名的汉语拼音保存到“姓名2”内存变量中,在拼音中找出第三个或第二个字的拼音的首或尾字母,将其保存到m3内存变量中。最后根据Ts.dbf库中查找到的数码值和用多条件判断语句得到的著者复分表值,计算并给出著者号,完成著者号的自动编制。程序代码如下所示:

……

zzh=" "

do case

case lin=0

zzh= upper(substr(姓名2,1,1))-ltrim(str(号码+c))

case lin=1

……

endcase

if len(ltrim(rtrim(zzh)))=2

zzh="库不全……" && zzh 为保存生成的著者号的内存变量

endif

thisform.pageframe1.page1.label2.caption=zzh && 将著者号在标签框控件label2中显示出来

if asc(left(zzh,1))>=48.and.asc(left(zzh,1))

thisform.pageframe1.page1.label2.caption=""

endif

endcase

二、系统基本操作方法

(一)著者中文名称输入。

1.直接输入法:即通过键盘打字,直接把著者中文名称填入要输入著者名称的text1文本框中。

2.选择输入法:根据输入的是机关团体著者名称还是个人著者名称,单击右上角相应的组合框,从中选择所要的常见著者名称将其填入其中。

注:组合框中收集有常见的著者名称,个人著者名称有,如:潭浩强、刘湘生、鲁迅、张琪玉等,机关团体名称有,如:北京大学、开滦市、南昌市、北京图书馆等。

3.语音输入法:本系统支持多媒体,若为多媒体计算机则可使用该方法,可通过麦克风借助IBM语音输入系统,如:IBM ViaVoice 2000,用语音传入方式输入著者中文名称。

注:当中文名称输入完毕,可按回车键确认。此后要求输入著者名称的汉语拼音。若在输入完著者中文名称后,按下“确定”按钮,本系统将会给出应输入的著者名称的第一、二、三部分拼音对应的汉字提示,以及对于一些特殊的著者名称在进行简化拼音输入时应注意的事项。这也是本系统的一大特点。

(二)著者名称汉语拼音输入。

1.完整拼音输入法:就是将著者名称前三个部分的汉语拼音全部输入到text2文本框中。

2.简化输入法:直接输入著者名称前三个部分的汉语拼音的第一个声母于text2文本框中。

注:①对于单名,第三部分应为第二个字汉语拼音的韵母的最后一个字母。②输入时,要求每个拼音字母之间要用一个空格隔开。例:“北京大学图书馆”这时输入b t s即可。③使用该方法有条件限制,即95%以上的著者名称可用简化输入法,但对于著者名称第一个字为“王”,“刘”,“张”等这样少数几个大姓开头的字的著者名称,以及著者名称为单名的,要求用完整拼音输入。

3.自动输入法:当操作者输入著者中文名称后,选中拼音输入设置项中的自动输入项,这样系统将会自动将其拼音填入,可使整个拼音项的输入工作省略。注:该项功能,要求用户借助本系统提供的构建汉语拼音数据库平台所建立的汉字—拼音数据库较为完整)

4.鼠标输入法:即通过鼠标来选择主界面下方汉语拼音键盘上对应的拼音字符进行输入。该方式可通过直接点中所要的拼音字符将其输入。

注:①用鼠标输入汉语拼音时,要先进行设定,即选中使用“鼠标输入”项中的“是”单选钮,这时键盘将被锁定了,以防止不小心触及键盘而出错。当著者号生成后系统会自动解锁。

②汉语拼音键盘中提供了在英文键盘中无法直接输入的拼音字符,如:“ü”字符和含有声调的拼音字符,如:“ě”,“ó”字符,同时也提供了多字符拼音键,如:“ing ”、“ai ”、“ang”等,可以通过鼠标单击右下角组合框中对应项,实现一次性输入这些字符。

③在输入拼音字符前,若未设置使用拼音输入法,则系统默认拼音输入项中的键盘输入方式,界面上的汉语拼音键盘会处于锁定状态。这里的完整拼音输入法、简化输入法,均指键盘输入方式。

以上著者汉语拼音输入完毕,单击“确定”按钮,或按回车键,著者号将会自动生成,并显示在屏幕上的“著者号码”选项卡中的标签框label2中。

注:若用户巳建立了汉语拼音数据库,并选择了自动输入选项按钮,则以上拼音输入项操作可省略。

三、结束语

该系统主要有以下四个方面特点:(1)独创性:在我国图书馆系统中,这是首次实现利用计算机在windows 98及以上系统环境下对通用汉语著者号实现自动生成,使传统的著者号编制工作进入了更高级的自动化的行列。(2)先进性:本系统功能齐全,支持多媒体及网络,基本上可与计算机中的各种软硬件相连,输入形式多样,操作效率高,生成著者号速度快。(3)实用性:系统提供了汉语拼音键盘,实现了在微机中汉语拼音特殊字符的输入。系统提供有操作帮助功能,用户无须培训,系统操作简单方便,通过查看操作说明和自动演示,很快就可做到,即学即用。(4)通用性:该系统是根据全国通用的《通用汉语著者号码表》研制开发的,提供有对著者号码表的扩充(增补缺字)、编辑等功能,可在全国各个图书馆和情报机构等部门推广使用,能创造出一定的经济和社会效益。

参考文献:

[1]刘湘生.通用汉语著者号码表[M].北京:海洋出版社,1992.

[2]刘瑞新,汪远征.Visual Foxpro 6.0中文版教程[M].北京:电子工业出版社,1999.

上一篇:关于我国开展寿险保单贴现业务的可行性分析 下一篇:浅析“中国式过马路”