图书馆图书定位法javaWord格式.docx

上传人:b****1 文档编号:13299585 上传时间:2022-10-09 格式:DOCX 页数:16 大小:62.78KB
下载 相关 举报
图书馆图书定位法javaWord格式.docx_第1页
第1页 / 共16页
图书馆图书定位法javaWord格式.docx_第2页
第2页 / 共16页
图书馆图书定位法javaWord格式.docx_第3页
第3页 / 共16页
图书馆图书定位法javaWord格式.docx_第4页
第4页 / 共16页
图书馆图书定位法javaWord格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

图书馆图书定位法javaWord格式.docx

《图书馆图书定位法javaWord格式.docx》由会员分享,可在线阅读,更多相关《图书馆图书定位法javaWord格式.docx(16页珍藏版)》请在冰豆网上搜索。

图书馆图书定位法javaWord格式.docx

*ByMrlilastupdate:

2013.10.0611:

00

*shelf的实体类

*1)存储每个字母对应的书架号,如D有19---26,分别记录下19和26在不同的数组中

*2)存储每个库每个架子的第一本书的索书号,存在一个二维数组中

*3)对同一个字母在不同的库的条件进行判断,是的话重新赋值对应的书架号

*4)提供获取书架号区间和获取每一个书架号第一本书的索书号的函数

**/

publicclassShelf{

privateintshelf_Let_begin[];

privateintshelf_Let_end[];

privateintTbegin;

//T开始的情况特殊

privateintTend;

privatecharshelfTailLet[][];

privateintshelfTailNum[][];

privatefloatshelfHeadNo[][];

publicShelf(){

//每个字母的架子从0开始,与书架的HEADTAIL保持一至

shelf_Let_begin=newint[26];

shelf_Let_end=newint[26];

//很多条数据,这里省略掉

}

publicintgetShelf_Let_begin(charfirstLet,introom)

{

intnumForLetter=(int)firstLet-'

A'

;

if(firstLet=='

D'

&

&

room==1)

{

shelf_Let_begin[numForLetter]=0;

elseif(firstLet=='

F'

room==3)

H'

room==2)

returnshelf_Let_begin[numForLetter];

publicintgetShelf_Let_end(charfirstLet,introom)

shelf_Let_end[numForLetter]=13;

shelf_Let_end[numForLetter]=7;

shelf_Let_end[numForLetter]=6;

returnshelf_Let_end[numForLetter];

publicintgetTbegin(charfirstLet2,introom)

if(firstLet2=='

G'

Tbegin=8;

elseif(firstLet2=='

M'

Tbegin=13;

N'

Tbegin=19;

P'

Tbegin=24;

if(room==7){

Tbegin=0;

S'

Tbegin=17;

U'

Tbegin=21;

if(room==6)

returnTbegin;

publicintgetTend(charfirstLet2,introom)

Tend=10;

Tend=18;

Tend=24;

Tend=29;

if(room==7)

Tend=16;

Tend=21;

if(room==6){

Tend=4;

returnTend;

publicfloatgetShelfHeadNo(introom,intshelfNo)

returnshelfHeadNo[room][shelfNo];

publicchargetShelfTailLet(introom,intshelfNo)

returnshelfTailLet[room][shelfNo];

publicintgetShelfTailNum(introom,intshelfNo)

returnshelfTailNum[room][shelfNo];

}

因为索书号有时可以非常复杂,加上还有下步的查找比较需要用到如“A111.1/a222”中的"

A"

和"

111.1"

(当两个书架上都有"

A111"

开始时,“/”后面的“a”和“222”也要用到),所以要先进行字符串处理。

*ByMrliupdate:

2013.10.0611:

00

*没解决的问题有:

处理字符串的类

处理流程:

1)分割字符串,取“/”前面的一段字符串

2)获取第一个字符,即字母,有它就可以判断此书在哪一个库中

3)获得字母后面的,“/”前面的字符串,如果是T,获取T后面的字母,再获取这个字母后面的,“/”前面的字符串

4)根据此字符串的长度进行判断。

长度<

=2时,补充0或小数点。

//////长度为2的符串且有特殊字符A-4--->

A0.4

5)记录小数点位置

6)把特殊字符都干掉,只剩下数字

7)重新加回小数点

8)将字符串转成浮点数

*/

publicclassCutString{

publicstaticcharfirst_Let=0;

//第一个字母

publicstaticcharfirst_Let2=0;

//T的情况下第二个字母

publicstaticfloathead_Num;

//8.1

publicstaticchartail_Let;

publicstaticinttail_Num;

publicstaticcharspecialForTP312;

publicCutString(Stringsrc_Str){

dealStr(src_Str);

publicvoiddealStr(Stringsrc_Str){

intstrLength;

intdotIndex=-1;

//小数点的位置,初始化不能为0,如I245,

StringtempStr="

"

//临时字符串1

StringtempStr1="

//临时字符串2

StringstrCuted[]=newString[2];

//用来装分割后的字符串

strCuted=src_Str.split("

/"

);

//根据‘/’分割字符串

first_Let=(char)strCuted[0].charAt(0);

tail_Let=(char)strCuted[1].charAt(0);

tail_Num=Integer.valueOf(strCuted[1].substring(1,4));

//获取首字母

tempStr=strCuted[0].substring

(1);

//获取字母数字后面的字符串

if(first_Let=='

T'

strCuted[0].length()>

1)

{//以T开始的取T后面的字母T110

first_Let2=(char)strCuted[0].charAt

(1);

tempStr=strCuted[0].substring

(2);

strLength=tempStr.length();

/*第一步处理字符串*/

if(strLength==0)

{//D----->

D0

tempStr="

0"

elseif(strLength==1&

!

tempStr.equals("

))

{//D1---->

D100

tempStr=tempStr+"

00"

elseif(strLength==2&

tempStr.charAt(0)>

48)

{//D11----->

D110

tempStr.charAt(0)==48)

{//D01----->

D0.1

0."

+tempStr.substring

(1);

/*第二步处理字符串*/

else

/*获得小数点,冒号,杠号的拉置,无数小数则为-145-->

'

-'

46-->

.'

58-->

:

for(inti=0;

i<

tempStr.length();

i++)

if(tempStr.charAt(i)==46||tempStr.charAt(i)==58)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1