毕业论文南乐职业中专图书管理系统

南乐职业中专图书管理系统

摘 要:

为了方便我校图书管理人员的工作,经过调查和研究,根据自已编程经验,编写了“河南南乐职业中专图书管理系统”。作为自己自考学习的毕业论文的主要内容。 以下为系统思路和源程序:

关键词:图书 管理系统 foxpro

一、系统分析及方案设计:

南乐职业中专图书管理系统根据我校的实际情况,在图书管理员的配合下,根据自已编程经验的基础上编写的,此系统主要由以下几个模块构成:

主控模块(TSGL.PRG)

该模块作为主控模块,运行时,首先调用引导模块,然后再调用加密模块,最后运行主菜单程序段。细节实现技术请参阅程序源代码的注释。

主控模块要调用以下各子功能模块:

(1) 系统引导模块(TSYD.PRG)

系统引导模块是一个欢迎界面,显示一个缓慢移动的窗口,窗口中显示欢迎用语,没有更多的作用。细节实现技术请参阅程序源代码的注释。

(2) 系统加密模块(TSJM.PRG)

系统加密模块是为了系统的安全性而设的一个密码程序,初始密码为“123”。操作员必须输入正确的密码后才能运行下一步的程序,如果3次输入错误,则程序中止,退出程序执行。其中还用到回显技术,即每输一个字符,显示掩码“*”。直到按回车为止。细节实现技术请参阅程序源代码的注释。

(3) 借阅图书模块(GYTS.PRG)

本模块主要完成借阅图书手续,运行此模块,系统提示输入借书证号,即借书者的借书证号,输入借书证号后,系统自动打开职工代码数据库,查询是否有此借书证号,如没有,则显示错误信息,提示没有此借书证号,不能借阅图书,此技术主要防止输入数据有误,增强系统严谨性、健壮性。细节实现技术请参阅程序源代码的注释。

(4) 送还图书模块(SHTS.PRG)

本模块主要完成借阅图书手续,运行此模块,系统提示输入借书证号,即还书者的借书证号,输入借书证号后,系统自动打开职工代码

数据库,查询是否有此借书证号,如没有,则显示错误信息,提示没有此借书证号,表示输入有误,此技术主要防止输入数据有误,增强系统严谨性、健壮性。细节实现技术请参阅程序源代码的注释。

(5) 个人查询模块(GRCX.PRG)

本模块主要实现对某个人所借图书情况的查询,输入借书证号或姓名,利用计算机自动找出所查询的姓名(或借书证号)以及其所借图书的信息。具体实现技术请参阅程序源代码及注释。

(6) 按类别查询模块(LBCX.PRG)

本模块主要实现图书查询功能,运行此程序,系统提示输入要查询图书的分类号,计算机自动打开数据库进行查询,如没有此分类号,则显示没有此类书籍,如有,则显示一些图书信息,如书名、登录号,借出否等。具体实现技术请参阅程序源代码及注释。

(7) 按书名查询模块(SMCX.PRG)

此模块与类别查询模块基本相同,只是根据输入的书名对数据库进行查询,而类别查询是根据输入的分类号对数据库进行查询。具体实现技术请参阅程序源代码及注释。

(8) 按著者查询模块(ZZCX.PRG)

此模块与以上两个查询模块基本相同,只是根据输入的著者对数据库进行查询。具体实现技术请参阅程序源代码及注释。

(9) 增加职工模块(ZJZG.PRG)

本模块主要实现增加职工姓名及借书证号。运行此模块后,系统提示输入借书证号及职工姓名,输入结果后,系统会自动判断借书证号是否重复、姓名是否重复。如借书证号重复,则程序不再执行下去,要求重新输入;如姓名重复,提示重名,则要求确认。此举以防一人有多个借书证号,造成管理混乱,但允许重名。具体实现技术请参阅程序源代码及注释。

(10)减少职工模块(JSZG.PRG)

本模块主要实现减少职工的功能处理,主要是当职工调离本单位时处理,运行此模块后,系统提示输入借书证号或姓名,利用计算机自动找出姓名或借书证号来减少职工,该职工必须把所借书都归还以后,才能删除此职工信息,否则程序报错,不予办理减少职工手续。具体实现技术请参阅程序源代码及注释。

(11)输入图书模块(SRTS.PRG)

本模块主要实现登录图书信息的功能,运行此模块后,系统会自动给出一个登录号,此登录号是根据库中已有图书的登录号推断出来的,如不符合要求,还可以手动更改,输入项目中登录号、书名是必须输入。具体实现技术请参阅程序源代码及注释

(12)修改图书模块(XGTS.PRG)

本模块主要实现对原来输入图书信息有误时能够修改图书信息,运行此模块后,系统提示输入要修改图书的登录号。根据所输入的登录号,计算机自动在数据库进行查找,如找到,则显示此书信息,询问是否修改此书项目。如没有找到,则显示没有查到此书,重新输入登录号进行修改。具体实现技术请参阅程序源代码及注释。

(13)备份数据模块(BFSJ.PRG)

本模块主要实现对数据库的备份,以防计算机严重损坏,造成硬盘数据丢失,给管理图书带来巨大的损失和许多麻烦。具体实现技术请参阅程序源代码及注释。

(14)导入数据模块(DRSJ.PRG)

本模块与数据备份模块相对应,当硬盘数据丢失时或其他原因,需要以前的备份数据时,把备份在软盘的数据库重新拷入硬盘。此模块一般不用,因为此举要覆盖硬盘上原来的数据库。具体实现技术请参阅程序源代码及注释

(15)退出系统模块(TCXT.PRG)

本模块主要实现退出本管理系统,并能在星期五下午自动提示让你备份本周数据库,以及删除借还图书库中已还书的记录。具体实现技术请参阅程序源代码及注释。

其系统结构图为:

二、数据库设计及用途

1、图书登录数据库(TSDL.DBF)

序号 字段名 字段类型 宽度 小数位

1 登录号 C 010 000

2 分类号 C 015

000

3 书名 C 080 000

4 作者 C 020 000

5 出版社 C 020 000

6 出版时间 D 008 000

7 单价 N 006 002

8 经手人 C 008 000

9 借出否 L 001 000

10 摘要 M 010 000

图书登录数据库用于存储在图书登录时的一些基本信息。例如: 登录号存储要登录图书的登录号;

借出否存储此图书是否已被借出,登录时统一赋值为假,表示没有借出;

摘要用于存储此书的一些简介或其他需要备注的内容。

2、借还图书数据库(JHTS.DBF)

序号 字段名 字段类型 宽度 小数位

1 借书证号 C 003 000

2 职工姓名 C 008 000

3 登 录 号 C 010 000

4 书 名 C 080 000

5 借书日期 D 008 000

6 还书日期 D 008 000

7 还书期限 D 008 000

8 馆员签收 C 008 000

9 还否 l 001 000

借还图书数据库主要用于记录职工借阅或归还图书时的一些基本情况,例如:

借书证号用于存储借书者的借书证号;

登录号用于存储所借图书的登录号;

借书日期用于存储借书的时间,自动设为当前系统时间。

3、职工代码数据库(ZGDM.DBF)

序号 字段名 字段类型 宽度 小数位

1 借书证号 C 003 000

2 职工姓名 C 008 000

职工代码数据库主要用于存储职工姓名以及所对应的借书证号。

4、备份时间数据库(BFSJ.DBF)

序号 字段名 字段类型 宽度 小数位

1 备份时间 D 008 000

备份时间数据库用于存储每次作数据库备份的时间。

三、使用说明

1、本系统是在FoxPro 2.5b for Windows系统下编写的,在FoxPro 2.5b for Windows中先设置默认路径为本系统所在的目录,并在“command”窗口输入“Do TSGL”即可执行该系统。

2、运行主控模块后,自动运行系统引导模块,此模块是一个欢迎界面,然后运行加密模块,需要管理员输入正确密码才能使用本系统,如三次输入错误密码,则退出系统。

3、当输入正确密码后,会出现主菜单,然后根据菜单进行各种操作。想要退出系统,则选取主菜单中的退出系统选项。

四、各功能模块源代码介绍:

1、 主控模块:

程序源代码为:

CLEA ALL

SET TALK OFF

SET SAFE OFF

SET STATU OFF

SET ESCA ON

SET CENT ON

DO tsyd *调用引导模块

DO tsjm *调用加密模块

DEFINE WINDOW mainwin FROM 0,0 TO 30,100 SYSTEM FLOAT; MINI ZOOM CLOSE TITLE

MOVE WIND mainwin CENT

ZOOM WINDOW mainwin MAX

ACTI WINDOW mainwin

DEFINE MENU mainmenu IN mainwin BAR *在窗口中定义菜单 DEFINE PAD tslt OF mainmenu PROMPT

借阅图书、送还图书、个人查询等

DEFINE PAD tscx OF mainmenu PROMPT

按分类号、书名、著者查询图书情况

DEFINE PAD zggl OF mainmenu PROMPT

增加、减少职工

DEFINE PAD srts OF mainmenu PROMPT

输入新到图书情况

DEFINE PAD xgts OF mainmenu PROMPT

修改已有图书情况

DEFINE PAD sjwh OF mainmenu PROMPT

数据备份、导入备份数据等

DEFINE PAD tcxt OF mainmenu PROMPT

退出本管理系统

ON SELE PAD srts OF mainmenu DO srts

ON SELE PAD xgts OF mainmenu DO xgts

ON PAD tslt OF mainmenu ACTI POPU lt

ON PAD tscx OF mainmenu ACTI POPU cx

ON PAD zggl OF mainmenu ACTI POPU zg

ON PAD sjwh OF mainmenu ACTI POPU wh

ON SELE PAD tcxt OF mainmenu DO tcxt

DEFINE POPU lt MARG

DEFINE BAR 1 OF lt PROM

ON SELE BAR 1 OF lt DO gyts

ON SELE BAR 2 OF lt DO ghts

ON SELE BAR 3 OF lt DO grcx

DEFINE POPUP cx MARG

DEFINE BAR 1 OF cx PROM

DEFINE BAR 2 OF cx PROM

DEFINE BAR 3 OF cx PROM

ON SELE BAR 1 OF cx DO lbcx

ON SELE BAR 2 OF cx DO smcx

ON SELE BAR 3 OF cx DO zzcx

DEFINE POPU zg MARG

DEFINE BAR 1 OF zg PROM

ON SELE BAR 1 OF zg DO zjzg

ON SELE BAR 2 OF zg DO jszg

DEFINE POPU wh MARG

DEFINE BAR 1 of wh PROM

ON SELE BAR 1 OF wh DO bfsj

ON SELE BAR 2 OF wh DO drsj

DO WHILE .T.

ACTI MENU mainmenu *激活菜单

ENDDO

RELE WINDOW mainwin

2、 引导模块:

程序源代码为:

set talk off

set escape off

set devi to scre

clear

clear all

define window winy at 0,17 size 4,22 double;

font

@ 1,4 say

@ 2,1 say

wait

tt=100

for i=1 to 60

j=0

do while j

j=j+1

enddo

move window winy by 0.05,0

endfor *实现窗口缓慢向下滑动 wait

for i=1 to 350

j=0

do while j

j=j+1

enddo

move window winy by 0.05,0

endfor *实现窗口继续向下滑动 release window winy *释放窗口

release i,j

set talk on

set escape on

retu

3、加密模块:

程序源代码:

set talk off

set escape off

clea

k=0

define window winmm at 6,24 size 7,28 double shadow;

color rgb(55,100,225,225,225,200) *定义窗口

move window winmm cent *移动窗口到中间位置 activate window winmm *激活窗口

do while .t.

clear

@ 3,8 say

mmm=

col=19

key=1

do while key!=13 *如果所接收的键不是回车键,则继续循环 key=inkey(0)

mmm=mmm+chr(key)

@3,col say

col=col+1

enddo

k=k+1

if upper(mmm)=

exit *如果密码正确,则退出程序 else

if k=4

clear

@ 2,5 say

@ 3.5,2 say

set cons off

wait timeout 5

set cons on

clear windows

canc *三次输入错误,则中止程序运行 endif

clear

@ 3,5 say

loop

endif

enddo

release window winmm

release k,mmm

set talk on

set escape on

return

4、 借阅图书模块

程序源代码:

SET SAFETY OFF

CLEA

DIME F(8)

DEFI WIND jswin AT 1,0 SIZE 21,50 TITL

ACTI WIND jswin

SELE 1

USE jhts *打开借还图书数据库

SELE 2

USE zgdm *打开职工代码数据库

SELE 3

USE tsdl *打开图书登录数据库

x1=

DO WHILE UPPER(x1)=

CLEAR

no=SPACE(3)

@ 10,15 SAY

READ

IF no=SPACE(3)

EXIT *如果不输入任何字符,则退出循环 ENDIF

CLEAR

SELECT 2

INDEX ON 借书证号 TO jszh *根据借书证号建立索引 LOCA FOR 借书证号=no *查找所输入的借书证号的记录 IF EOF() *如果没有找到,则显示错误信息,并退出循环 @ 10,0

@ 10,12 SAY

@ 12,16 SAY

SET CONS OFF

WAIT

SET CONS ON

EXIT

ENDIF

SELECT 1 *如果找到

F(1)=SPACE(3)

F(2)=SPACE(8)

F(3)=SPACE(10)

F(4)=DATE()

F(5)=DATE()+100

x2=

DO WHILE UPPER(x2)=

CLEAR

ROW=0

GO BOTTOM

@ 0,0 SAY

F(1)=no

@ ROW+4,2 SAY

SELECT 2

LOCAT FOR 借书证号=no

*在职工代码数据库中找出此借书证号对应的职工姓名 F(2)=职工姓名

SELECT 1

@ ROW+4,30 SAY

CLEAR GETS

@ ROW+6,2 SAY

*提示输入所借图书登录号

READ

IF LEN(RTRIM(LTRIM(F(3))))=0

EXIT

*如果没有输入登录号,表示你不想进行此手续,则退出此循环 ENDIF

SELECT 3

LOCA FOR 登录号=F(3) *在图书登录数据库中查找此登录号 IF .not.found()

CLEAR

@ROW+10,7 SAY

WAIT

SET CONS ON

CLEA

F(3)=SPACE(10)

LOOP

*如没有找到,则继续重新执行循环,重新输入登录号 ENDIF

IF 借出否=.T. CLEAR

@ROW+10,7 SAY

*如果标志出此书已借出,则有可能是输入有误,重新输入登录号 LOOP

ENDIF

书名=LTRIM(RTRIM(书名))

IF LEN(书名)>40

*如果书名一行输出不完整,则接着在下一行输出。

@ ROW+8,2 SAY

@ ROW+9,9 SAY SUBSTR(书名,41,LEN(书名))

ROW=ROW+1

ELSE

@ ROW+8,2 SAY

ENDIF

@ ROW+10,2 SAY

@ ROW+10,30 SAY

h1=RTRIM(LTRIM(F(3)))

IF LEN(h1)=0

LOOP

ELSE

x1=

@ ROW+14,12 SAY

pict

*确认输入数据库是否正确,此时键盘只能接受Y或N

READ

IF UPPER(x1)=

SELECT 3

LOCA FOR 登录号=F(3)

REPL 借出否 WITH .T. *把此书借出标志设为真 SELECT 1 *把信息记入借还图书库 APPE BLANK

REPL 借书证号 WITH F(1)

REPL 职工姓名 WITH F(2)

REPL 登录号 WITH F(3)

REPL 书名 WITH tsdl.书名

REPL 借书日期 WITH F(4)

REPL 还书期限 WITH F(5)

ELSE

F(3)=SPACE(10)

LOOP

ENDIF

ENDIF

@ ROW+16,10 SAY TRIM(F(2))+

GET x2 pict

READ

ENDDO

CLEAR

@ ROW+10,14 SAY

ENDDO

CLOSE ALL *关闭文件

RELE WIND jswin *释放窗口

RETURN

5、 归还图书模块

程序源代码:

CLEA

SELEC 1

USE jhts *打开借还图书数据库

SELEC 2

USE zgdm *打开职工代码数据库

SELEC 3

USE tsdl *图书登录数据库

DEFI WIND hswin AT 2,0 SIZE 16,50 TITL

MOVE WIND hswin CENT

ACTI WIND hswin

DIMENSION F(4)

F(1)=SPACE(3)

F(2)=SPACE(8)

F(3)=SPACE(10)

F(4)=SPACE(8)

x1=

DO WHILE UPPER(x1)=

CLEAR

no=SPACE(3)

@ 8,14 SAY

CLEAR

SELEC 2

LOCA FOR 借书证号=no *查找所输入的借书证号 IF EOF()

@ 6,14 SAY

@ 8,16 SAY

SET CONS OFF

WAIT

SET CONS ON

CLEA

EXIT

ELSE

F(1)=no

F(2)=职工姓名

ENDIF

SELEC 1 *选择第1工作区为当前工作区,即选择借还图书库 GO TOP

x2=

DO WHILE UPPER(x2)=

CLEAR

@ 1,5 say

@ 1,20 say

@ 3,6 SAY

READ

IF F(3)=SPACE(10)

EXIT

ENDIF

LOCA FOR 登录号=F(3).and.职工姓名=F(2).and.还否=.F.

*定位所输入的登录号以及职工姓名与借书证号相对应的记录,并*且此书的还否标志为假,表示还没有归还

IF FOUND()

clear

ROW=0

书名=LTRIM(RTRIM(书名))

IF LEN(书名)>40

@ ROW+1,2 SAY

ELSE

@ ROW+1,2 SAY

ENDIF

SELE 3 *选择图书登录数据库 LOCA FOR 登录号=jhts.登录号

@ ROW+2,2 SAY

@ ROW+2,9 SAY 作者 *调用图书登录库中的数据 SELE 1 *重新选择借还图书库 IF DATE()>还书期限

@ROW+4,8SAY

LTRIM(RTRIM(STR(DATE()-还书期限))) +

*如超期,算出超天数并显示

ENDIF

@ ROW+6,2 SAY

READ

IF F(4)=

*如果馆员签收中没有输入,则显示错误信息,提示需要馆*员签收,此手续才有效,中止此轮循环,进行下一轮循环。

@ ROW+8,2 SAY

SET CONS OFF

wait

SET CONS ON

LOOP

ENDIF

REPL 还书日期 WITH DATE() *还书日期设为当前时间 REPL 还否 WITH .T.

*在借还图书库中,把还否标志设为真,表示已还

SELE 3

REPL 借出否 WITH .F.

*在图书登录库中,把借出否设为假,表示还没有借出

SELE 1

REPL 馆员签收 WITH F(4)

ELSE

@ ROW()+2,8 SAY

wait

SET CONS ON

F(3)=SPACE(10)

LOOP

ENDIF

F(3)=SPACE(10)

@ ROW()+2,10 SAY TRIM(F(2))+

GET x2 pict

*询问某某同志是否继续还书,并接收一字符,只能是Y或N。 READ

ENDDO

@ ROW()+2,12 SAY

ENDDO

CLOSE ALL

RELE WIND hswin

RETU

6、 个人查询模块

程序源代码:

DEFI WIND grwin AT 2,0 SIZE 16,50 TITL

MOVE WIND grwin CENT

ACTI WIND grwin

CLEA

DIMENSION F(2)

F(1)=SPACE(3)

F(2)=SPACE(8)

x2=

DO WHILE UPPER(x2)=

SELE 1

USE jhts

SELE 2

USE zgdm

SELE 3

USE tsdl

CLEAR

no=SPACE(8)

@ 6,10 SAY

IF LEN(LTRIM(RTRIM(no)))=0

Exit

*如果字符串长度为零,即没有输入,表示不想查询,则退出循环。 ENDIF

SELECT 2 *选择职工代码数据库

LOCA FOR 职工姓名=no.or.借书证号=LEFT(no,3)

*定位到职工姓名为所输入的字符串或借书证号为所输入的字符 *串的记录。

IF EOF() *如果所输入的字符串与职工姓名和借书证号都不符 CLEAR

@ 10,12 SAY

@ 12,10 SAY

SET CONS OFF

WAIT

SET CONS ON

EXIT

ELSE

F(1)=借书证号 *如果找到记录,则把借书证号赋值给F(1) F(2)=职工姓名 *把职工姓名赋值给F(2)

ENDIF

USE

SELECT 1 *选择借还图书数据库

nn=0 *设置变量,存储没有还的图书的册数 CLEAR

LOCA FOR (借书证号=LEFT(no,3).or.职工姓名=no) .and. jhts.还否;

=.F. *定位到没有归还的图书记录

DO WHILE .NOT. EOF()

djg=MOD(nn,2)

rw=0

@ rw+2,2 SAY

@ rw+2,24 SAY

书名=LTRIM(RTRIM(书名))

IF LEN(书名)>40

@ rw+4,2 SAY

@ rw+5,9 SAY SUBSTR(书名,41,LEN(书名))

rw=rw+1

ELSE

@ rw+4,2 SAY

ENDIF

@ rw+6,2 SAY

@ rw+8,2 SAY

@ rw+10,2 SAY

CONTINUE *继续定位数据库指针

nn=nn+1 *册数加1

IF FOUND()

@14,14 SAY

SET CONS OFF

WAIT

SET CONS ON

CLEAR

ENDIF

ENDDO

IF nn=0 *如果册数为0,表示没有需要的归还的图书 @ 6,8 SAY

@ 7,4 SAY

@ 14,8 SAY

ENDDO

CLOSE ALL

RELE WIND grwin

RETURN

7、 按类别查询模块

程序源代码:

SET SAFE OFF

DEFI WIND lbcxwin AT 2,0 SIZE 11,50 TITL

ACTI WIND lbcxwin

CLEA

x1=

DO WHILE x1=

CLEAR

sm=SPACE(15)

@ 4,10 SAY

READ

IF LEN(LTRIM(RTRIM(sm)))=0

EXIT

ENDIF

SELECT 1

USE tsdl

nn=0

CLEAR

INDEX ON 分类号 TO dlsm

LOCA FOR 分类号=sm

DO WHILE .NOT. EOF()

DO cxjg

CONTINUE

nn=nn+1

@8,10 SAY

SET CONS OFF

WAIT

SET CONS ON

ENDDO

USE

IF nn=0

@ 4,9 SAY

SET CONS OFF

WAIT

SET CONS ON

ENDIF

CLEAR

@ 3,11 SAY

@ 5,13 SAY

ENDDO

CLOSE ALL

RELE WIND lbcxwin

RETURN

8、 按书名查询模块

程序源代码:

SET SAFE OFF

DEAC WIND tscx

DEFI WIND smcxwin AT 1,0 SIZE 16,60 TITL

ACTI WIND smcxwin

CLEA

SELECT 3

USE tsdl

x2=

DO WHILE UPPER(x2)=

CLEAR

sm=SPACE(80)

@ 6,2 SAY

IF LEN(LTRIM(RTRIM(sm)))=0

EXIT

ENDIF

SELECT 3

nn=0

INDEX ON LEFT(书名,40) TO dlsm

LOCA FOR 书名=sm

DO WHILE .NOT. EOF()

DO cxjg

CONTINUE

nn=nn+1

@13,20 SAY

SET CONS OFF

WAIT

SET CONS ON

CLEA

ENDDO

USE

IF nn=0

@ 8,18 SAY

ENDIF

@ 8,14 SAY

@ 10,16 SAY

ENDDO

RELE WIND smcxwin

RETURN

9、 按著者查询模块

程序源代码:

CLEA

DEFI WIND zzcxwin AT 1,0 SIZE 16,60 TITL

ACTI WIND zzcxwin

X2=

DO WHILE UPPER(x2)=

CLEAR

xm=SPACE(30)

@ 6,6 SAY

READ

IF LEN(LTRIM(RTRIM(xm)))=0

LOOP

ENDIF

SELECT 1

USE tsdl

nn=0

CLEAR

INDEX ON 作者 TO dlsm

LOCA FOR 作者=xm

DO WHILE .NOT. EOF()

DO cxjg

CONTINUE

nn=nn+1

@13,20 SAY

SET CONS OFF

WAIT

SET CONS ON

CLEA

ENDDO

USE

IF nn=0

@ 8,18 SAY

ENDIF

@ 8,14 SAY

@ 10,16 SAY

READ

ENDDO

RELE WIND zzcxwin

RETURN

10、 查询结果模块

本模块主要是被以上三个查询模块所调用,显示查询结果。具体实现技术请参阅程序源代码及注释。

程序源代码:

ROW=0

@ ROW+1,2 SAY

@ ROW+1,25 SAY

IF LEN(LTRIM(RTRIM(书名)))>40

@ ROW+2,2 SAY

@ ROW+3,7 SAY SUBSTR(书名,41,LEN(书名))

ROW=ROW+1

ELSE

@ ROW+2,2 SAY

ENDIF

@ ROW+3,2 SAY

@ ROW+3,25 SAY

@ ROW+4,2 SAY

@ ROW+5,2 SAY

@ ROW+5,25 SAY

IF 借出否=.F.

@ ROW+6,2 SAY

ELSE

@ ROW+6,2 SAY

ENDIF

11、 增加职工模块

程序源代码:

DEFI WIND zgwin AT 3,0 SIZE 12,40 SYST TITL

MOVE WIND zgwin CENT

ACTI WIND zgwin

CLEA

USE zgdm

x2=

DIME F(2)

DO WHILE UPPER(x2)=

F(1)=SPACE(3)

F(2)=SPACE(8)

CLEAR

GO BOTTOM

@ 0,2 SAY

@ 2,8 SAY

@ 4,8 SAY

READ

IF LEN(LTRIM(RTRIM(F(1))))=0.or.len(LTRIM(RTRIM(F(2))))=0 EXIT

ENDIF

GO TOP

LOCAT FOR 职工姓名=F(2)

IF FOUND()

@ 6,5 SAY

ENDIF

x1=

@ 8,6 SAY

READ

GO TOP

LOCAT FOR 借书证号=F(1)

IF FOUND()

CLEAR

@ 5,6 SAY

wait

LOOP

ELSE

IF UPPER(x1)=

APPEND BLAN K

GATHER FROM F

ELSE

LOOP

ENDIF

ENDIF

@ 10,6 say

READ

ENDDO

RELE WIND zgwin

CLOSE ALL

RETURN

12、 减少职工模块

程序源代码:

CLEA

DEFI WIND zgwin AT 3,0 SIZE 12,40 TITL

MOVE WIND zgwin CENT

ACTI WIND zgwin

SELE 1

USE jhts

SELE 2

USE zgdm

DIMENSION F(2)

F(1)=SPACE(3)

F(2)=SPACE(8)

x2=

DO WHILE UPPER(x2)=

SELE 1

SET SAFETY OFF

INDEX ON 借书证号 TO jszh

CLEAR

xx=SPACE(8)

@ 2,2 SAY

READ

IF LEN(RTRIM(LTRIM(xx)))=0

EXIT

ENDIF

N=0

LOCAT FOR (借书证号=LEFT(xx,3) .OR. 职工姓名=xx) .AND. 还;

否=.F.

IF .NOT. EOF()

N=1

ENDIF

IF LEN(LTRIM(RTRIM(xx)))>3

F(2)=xx

ELSE

F(1)=RTRIM(LTRIM(xx))

ENDIF

IF N=0

SELE 2

LOCA FOR 借书证号=F(1) .OR. 职工姓名=F(2)

IF .not.eof()

CLEAR

@0,2 SAY

@3,8 SAY

@5,8 SAY

tt=

@ 7,5 SAY

IF UPPER(tt)=

DELE

PACK

SELE 1

GO TOP

LOCAT FOR 借书证号=LEFT(xx,3) .OR. 职工姓名=xx DO WHILE .not.eof()

DELE

PACK

CONT

ENDDO

@8,2 SAY

WAIT

SET CONS ON

ENDIF

ELSE

@ 6,8 SAY

wait

ENDIF

ELSE

@ 6,4 SAY '请还您所借图书,否则不予办理手续!'

wait

ENDIF

@ 10,7 SAY

ENDDO

CLOSE ALL

RELE WIND zgwin

RETU

13、 输入图书模块

程序源代码:

SET SAFE OFF

SET TALK OFF

CLEA

USE tsdl

DIMENSION F(9)

DEFINE WINDOW srwin AT 1,10 SIZE 24,60 TITLE

MOVE WINDOW srwin CENTER

ACTI WINDOWS srwin

x2=

INDEX ON VAL(SUBSTR(登录号,6,LEN(登录号))) TO tsdl_dlh

DO WHILE UPPER(x2)=

GO BOTTOM

dlh=VAL(SUBSTR(登录号,6,LEN(ALLTRIM(登录号)))) dlh=dlh+1

CLEAR

F(1)=SPACE(10)

F(2)=SPACE(15)

F(3)=SPACE(80)

F(4)=SPACE(20)

F(5)=

F(6)=CTOD(

F(7)=0

F(8)=SPACE(8)

F(9)=SPACE(50)

F(1)=SUBSTR(登录号,1,5)+ALLTRIM(STR(INT(dlh)))

@ 0,0 SAY

@ 0,50 SAY DATE()

@ 2,2 SAY

if lastkey()=27

exit

endif

@ 2,30 SAY

@ 4,2 SAY

@ 6,2 SAY

@ 8,2 SAY

@ 10,2 SAY

@ 12,2 SAY

@ 14,2 SAY

@ 16,2 SAY

READ

if lastkey()=27

exit

endif

LOCAT FOR 登录号=F(1)

IF FOUND()

CLEAR

@ 10,14 SAY

wait

CLEAR

LOOP

ENDIF

IF LEN(ALLTRIM(F(1)))=0.or.len(ALLTRIM(F(3)))=0

@ 18,16 say

wait

loop

ENDIF

x1=

@ 20,14 SAY

IF UPPER(x1)=

APPE BLANK

GATHER FROM F

REPL 摘要 WITH F(9)

dlh=dlh+1

ELSE

LOOP

ENDIF

@ 22,14 SAY

ENDDO

RELE WIND srwin

SET SAFE ON

RETURN

14、 修改图书模块

程序源代码:

SET ESCA Off

CLEA

USE tsdl

DEFINE WINDOW xgwin AT 2,5 SIZE 20,60 TITLE

MOVE WINDOWS xgwin CENTER

ACTI WINDOW xgwin

x5=

DO WHILE UPPER(x5)=

CLEAR

dlh=SPACE(10)

@ 10,12 SAY

READ

nn=0

LOCATE FOR 登录号=dlh

DO WHILE .NOT. EOF()

nn=1

CLEAR

DO cxjg

x3=

@ 16,18 SAY

IF UPPER(x3)=

DO WHILE .T.

CLEA

rw=0

@ rw+2,2 SAY

@ rw+2,30 SAY

@ rw+4,2 SAY

@ rw+8,2 SAY

@ rw+10,2 SAY

@ rw+14,2 SAY

READ

IF LEN(ALLTRIM(登录号))=0.or.len(ALLTRIM(书名))=0 @16,6 SAY

WAIT

LOOP

SET CONS OFF

ELSE

@ rw+16,20 say

wait

EXIT

ENDIF

ENDDO

ENDIF

CONTINUE

CLEAR

ENDDO

IF nn=0

@ 14,22 SAY

wait

ENDIF

CLEAR

@ 10,20 SAY

ENDDO

USE

RELE WIND xgwin

RETU

15、 数据备份模块

程序源代码:

set talk off

set safe off

set esca off

DEFINE WINDOW win1 at 0,0 size 11,45 system

MOVE window win1 cent

acti window win1

x1=

@3,6 say

do while upper(x1)=

clear

@5,5 say

temp=dtos(date())

if .not.file(

copy file bfsj.dbf to a:\bfsj.dbf

endif

use a:\bfsj.dbf

if reccount()>=20

clear

@4,6 say

@6,8 say

if lastkey()=27

exit

endif

loop

endif

if .not.file(

! md a:\&temp

! exit

endif

@7,8 say

copy file tsdl.dbf to a:\&temp\tsdl.dbf copy file jhts.dbf to a:\&temp\jhts.dbf copy file zgdm.dbf to a:\&temp\zgdm.dbf copy file tsdl.fpt to a:\&temp\tsdl.fpt loca for 备份时间=date()

if found()

repl 备份时间 with date()

else

appe blank

repl 备份时间 with date()

endif

use

@9,9 say

exit

enddo

rele window win1

set talk on

set safe on

set esca on

16、 导入数据模块

程序源代码:

set talk off

set safe off

set century on

DEFINE WINDOW win1 at 0,0 size 9,45 system MOVE window win1 cent

acti window win1

x1=

@1,5 say

If upper(x1)=

@3,5 say

wait

x2=

do while upper(x2)=

if .not.file(

clear

@4,6 say

x3=

@6,8 say

if upper(x3)=

@6,8 say

loop

else

exit

endif

endif

use a:\bfsj.dbf

go top

dime sj(10)

x=0

@x,0 prompt

scan

temp=dtos(备份时间)

if file(

@x+1,0 prompt

x=x+1

sj(x)=temp

else

dele

pack

endif

endscan

col=12

deac window win1

define window win2 at 0,0 size x+1.2,col double shadow move window win2 cent

acti window win2

ch=1

menu to ch

do case

case ch=1

rele window win1

rele window win2

set talk on

set safe on

return

case ch=2

ml=sj(1)

case ch=3

ml=sj(2)

case ch=4

ml=sj(3)

case ch=5

ml=sj(4)

case ch=6

ml=sj(5)

case ch=7

ml=sj(6)

case ch=8

ml=sj(7)

case ch=9

ml=sj(8)

case ch=10

ml=sj(9)

case ch=11

ml=sj(10)

case ch=12

ml=sj(11)

case ch=13

ml=sj(12)

case ch=14

ml=sj(13)

case ch=15

ml=sj(14)

case ch=16

ml=sj(15)

case ch=17

ml=sj(16)

case ch=18

ml=sj(17)

case ch=19

ml=sj(18)

case ch=20

ml=sj(19)

case ch=21

ml=sj(20)

endcase

copy file a:\&ml\tsdl.dbf to tsdl.dbf

copy file a:\&ml\zgdm.dbf to zgdm.dbf

copy file a:\&ml\jhts.dbf to jhts.dbf

copy file a:\&ml\tsdl.fpt to tsdl.fpt

deac window win2

acti window win1

@4,8 say

wait

exit

enddo

endif

rele window win1

rele window win2

set talk on

set safe on

17、 退出系统模块

程序源代码:

SET TALK OFF

SET ESCAPE Off

DEFINE WINDOW winq AT 18,22 SIZE 8,32 SYSTEM

DEFINE WINDOW win1 at 0,0 size 9,45 system

if dow(date())=6 .and. time()>

MOVE window win1 cent

acti window win1

x1=

@1,4 say

@3,2 say

pict

read

if upper(x1)=

@5,5 say

wait

@7,8 say

temp=dtos(date())

if .not.file(

copy file bfsj.dbf to a:\bfsj.dbf

endif

if .not.file(

! md a:\&temp

! exit

endif

copy file tsdl.dbf to a:\&temp\tsdl.dbf

copy file jhts.dbf to a:\&temp\jhts.dbf

copy file zgdm.dbf to a:\&temp\zgdm.dbf

copy file tsdl.fpt to a:\&temp\tsdl.fpt

use a:\bfsj.dbf

loca for 备份时间=date()

if found()

repl 备份时间 with date()

else

appe blank

repl 备份时间 with date()

endif

use jhts

dele all for 还否=.t.

pack

endif

rele window win1

endif

move window winq cent

ACTIVATE WINDOW winq

@ 1, 4 SAY

@ 2, 4 SAY

@ 3, 4 SAY

@ 4, 4 SAY

@ 6,15 SAY

tt=100

FOR i=1 TO 160

j=0

DO WHILE j

j=j+1

ENDDO

MOVE WINDOW winq BY -0.05,0

ENDFOR

SET CONS OFF

WAIT

SET CONS ON

FOR i=1 TO 180

j=0

DO WHILE j

j=j+1

ENDDO

MOVE WINDOW winq BY -0.1,0

ENDFOR

RELEASE WINDOW winq

RELEASE WINDOW mainwin

CANC

SET TALK ON

SET ESCAPE ON

RETURN

参 考 文 献

[1] 章立民,FoxPro2.5 for Windows程序设计,人民邮电出版社,1994

[2] 周建成,FoxPro2.5命令与函数,人民邮电出版社,1994

[3] 刘宝林 FoxBASE+实用大全,电子工业出版社,1997

[4] 魏茂林 数据库应用技术 FoxBase+,电子工业出版社,2000

南乐职业中专图书管理系统

摘 要:

为了方便我校图书管理人员的工作,经过调查和研究,根据自已编程经验,编写了“河南南乐职业中专图书管理系统”。作为自己自考学习的毕业论文的主要内容。 以下为系统思路和源程序:

关键词:图书 管理系统 foxpro

一、系统分析及方案设计:

南乐职业中专图书管理系统根据我校的实际情况,在图书管理员的配合下,根据自已编程经验的基础上编写的,此系统主要由以下几个模块构成:

主控模块(TSGL.PRG)

该模块作为主控模块,运行时,首先调用引导模块,然后再调用加密模块,最后运行主菜单程序段。细节实现技术请参阅程序源代码的注释。

主控模块要调用以下各子功能模块:

(1) 系统引导模块(TSYD.PRG)

系统引导模块是一个欢迎界面,显示一个缓慢移动的窗口,窗口中显示欢迎用语,没有更多的作用。细节实现技术请参阅程序源代码的注释。

(2) 系统加密模块(TSJM.PRG)

系统加密模块是为了系统的安全性而设的一个密码程序,初始密码为“123”。操作员必须输入正确的密码后才能运行下一步的程序,如果3次输入错误,则程序中止,退出程序执行。其中还用到回显技术,即每输一个字符,显示掩码“*”。直到按回车为止。细节实现技术请参阅程序源代码的注释。

(3) 借阅图书模块(GYTS.PRG)

本模块主要完成借阅图书手续,运行此模块,系统提示输入借书证号,即借书者的借书证号,输入借书证号后,系统自动打开职工代码数据库,查询是否有此借书证号,如没有,则显示错误信息,提示没有此借书证号,不能借阅图书,此技术主要防止输入数据有误,增强系统严谨性、健壮性。细节实现技术请参阅程序源代码的注释。

(4) 送还图书模块(SHTS.PRG)

本模块主要完成借阅图书手续,运行此模块,系统提示输入借书证号,即还书者的借书证号,输入借书证号后,系统自动打开职工代码

数据库,查询是否有此借书证号,如没有,则显示错误信息,提示没有此借书证号,表示输入有误,此技术主要防止输入数据有误,增强系统严谨性、健壮性。细节实现技术请参阅程序源代码的注释。

(5) 个人查询模块(GRCX.PRG)

本模块主要实现对某个人所借图书情况的查询,输入借书证号或姓名,利用计算机自动找出所查询的姓名(或借书证号)以及其所借图书的信息。具体实现技术请参阅程序源代码及注释。

(6) 按类别查询模块(LBCX.PRG)

本模块主要实现图书查询功能,运行此程序,系统提示输入要查询图书的分类号,计算机自动打开数据库进行查询,如没有此分类号,则显示没有此类书籍,如有,则显示一些图书信息,如书名、登录号,借出否等。具体实现技术请参阅程序源代码及注释。

(7) 按书名查询模块(SMCX.PRG)

此模块与类别查询模块基本相同,只是根据输入的书名对数据库进行查询,而类别查询是根据输入的分类号对数据库进行查询。具体实现技术请参阅程序源代码及注释。

(8) 按著者查询模块(ZZCX.PRG)

此模块与以上两个查询模块基本相同,只是根据输入的著者对数据库进行查询。具体实现技术请参阅程序源代码及注释。

(9) 增加职工模块(ZJZG.PRG)

本模块主要实现增加职工姓名及借书证号。运行此模块后,系统提示输入借书证号及职工姓名,输入结果后,系统会自动判断借书证号是否重复、姓名是否重复。如借书证号重复,则程序不再执行下去,要求重新输入;如姓名重复,提示重名,则要求确认。此举以防一人有多个借书证号,造成管理混乱,但允许重名。具体实现技术请参阅程序源代码及注释。

(10)减少职工模块(JSZG.PRG)

本模块主要实现减少职工的功能处理,主要是当职工调离本单位时处理,运行此模块后,系统提示输入借书证号或姓名,利用计算机自动找出姓名或借书证号来减少职工,该职工必须把所借书都归还以后,才能删除此职工信息,否则程序报错,不予办理减少职工手续。具体实现技术请参阅程序源代码及注释。

(11)输入图书模块(SRTS.PRG)

本模块主要实现登录图书信息的功能,运行此模块后,系统会自动给出一个登录号,此登录号是根据库中已有图书的登录号推断出来的,如不符合要求,还可以手动更改,输入项目中登录号、书名是必须输入。具体实现技术请参阅程序源代码及注释

(12)修改图书模块(XGTS.PRG)

本模块主要实现对原来输入图书信息有误时能够修改图书信息,运行此模块后,系统提示输入要修改图书的登录号。根据所输入的登录号,计算机自动在数据库进行查找,如找到,则显示此书信息,询问是否修改此书项目。如没有找到,则显示没有查到此书,重新输入登录号进行修改。具体实现技术请参阅程序源代码及注释。

(13)备份数据模块(BFSJ.PRG)

本模块主要实现对数据库的备份,以防计算机严重损坏,造成硬盘数据丢失,给管理图书带来巨大的损失和许多麻烦。具体实现技术请参阅程序源代码及注释。

(14)导入数据模块(DRSJ.PRG)

本模块与数据备份模块相对应,当硬盘数据丢失时或其他原因,需要以前的备份数据时,把备份在软盘的数据库重新拷入硬盘。此模块一般不用,因为此举要覆盖硬盘上原来的数据库。具体实现技术请参阅程序源代码及注释

(15)退出系统模块(TCXT.PRG)

本模块主要实现退出本管理系统,并能在星期五下午自动提示让你备份本周数据库,以及删除借还图书库中已还书的记录。具体实现技术请参阅程序源代码及注释。

其系统结构图为:

二、数据库设计及用途

1、图书登录数据库(TSDL.DBF)

序号 字段名 字段类型 宽度 小数位

1 登录号 C 010 000

2 分类号 C 015

000

3 书名 C 080 000

4 作者 C 020 000

5 出版社 C 020 000

6 出版时间 D 008 000

7 单价 N 006 002

8 经手人 C 008 000

9 借出否 L 001 000

10 摘要 M 010 000

图书登录数据库用于存储在图书登录时的一些基本信息。例如: 登录号存储要登录图书的登录号;

借出否存储此图书是否已被借出,登录时统一赋值为假,表示没有借出;

摘要用于存储此书的一些简介或其他需要备注的内容。

2、借还图书数据库(JHTS.DBF)

序号 字段名 字段类型 宽度 小数位

1 借书证号 C 003 000

2 职工姓名 C 008 000

3 登 录 号 C 010 000

4 书 名 C 080 000

5 借书日期 D 008 000

6 还书日期 D 008 000

7 还书期限 D 008 000

8 馆员签收 C 008 000

9 还否 l 001 000

借还图书数据库主要用于记录职工借阅或归还图书时的一些基本情况,例如:

借书证号用于存储借书者的借书证号;

登录号用于存储所借图书的登录号;

借书日期用于存储借书的时间,自动设为当前系统时间。

3、职工代码数据库(ZGDM.DBF)

序号 字段名 字段类型 宽度 小数位

1 借书证号 C 003 000

2 职工姓名 C 008 000

职工代码数据库主要用于存储职工姓名以及所对应的借书证号。

4、备份时间数据库(BFSJ.DBF)

序号 字段名 字段类型 宽度 小数位

1 备份时间 D 008 000

备份时间数据库用于存储每次作数据库备份的时间。

三、使用说明

1、本系统是在FoxPro 2.5b for Windows系统下编写的,在FoxPro 2.5b for Windows中先设置默认路径为本系统所在的目录,并在“command”窗口输入“Do TSGL”即可执行该系统。

2、运行主控模块后,自动运行系统引导模块,此模块是一个欢迎界面,然后运行加密模块,需要管理员输入正确密码才能使用本系统,如三次输入错误密码,则退出系统。

3、当输入正确密码后,会出现主菜单,然后根据菜单进行各种操作。想要退出系统,则选取主菜单中的退出系统选项。

四、各功能模块源代码介绍:

1、 主控模块:

程序源代码为:

CLEA ALL

SET TALK OFF

SET SAFE OFF

SET STATU OFF

SET ESCA ON

SET CENT ON

DO tsyd *调用引导模块

DO tsjm *调用加密模块

DEFINE WINDOW mainwin FROM 0,0 TO 30,100 SYSTEM FLOAT; MINI ZOOM CLOSE TITLE

MOVE WIND mainwin CENT

ZOOM WINDOW mainwin MAX

ACTI WINDOW mainwin

DEFINE MENU mainmenu IN mainwin BAR *在窗口中定义菜单 DEFINE PAD tslt OF mainmenu PROMPT

借阅图书、送还图书、个人查询等

DEFINE PAD tscx OF mainmenu PROMPT

按分类号、书名、著者查询图书情况

DEFINE PAD zggl OF mainmenu PROMPT

增加、减少职工

DEFINE PAD srts OF mainmenu PROMPT

输入新到图书情况

DEFINE PAD xgts OF mainmenu PROMPT

修改已有图书情况

DEFINE PAD sjwh OF mainmenu PROMPT

数据备份、导入备份数据等

DEFINE PAD tcxt OF mainmenu PROMPT

退出本管理系统

ON SELE PAD srts OF mainmenu DO srts

ON SELE PAD xgts OF mainmenu DO xgts

ON PAD tslt OF mainmenu ACTI POPU lt

ON PAD tscx OF mainmenu ACTI POPU cx

ON PAD zggl OF mainmenu ACTI POPU zg

ON PAD sjwh OF mainmenu ACTI POPU wh

ON SELE PAD tcxt OF mainmenu DO tcxt

DEFINE POPU lt MARG

DEFINE BAR 1 OF lt PROM

ON SELE BAR 1 OF lt DO gyts

ON SELE BAR 2 OF lt DO ghts

ON SELE BAR 3 OF lt DO grcx

DEFINE POPUP cx MARG

DEFINE BAR 1 OF cx PROM

DEFINE BAR 2 OF cx PROM

DEFINE BAR 3 OF cx PROM

ON SELE BAR 1 OF cx DO lbcx

ON SELE BAR 2 OF cx DO smcx

ON SELE BAR 3 OF cx DO zzcx

DEFINE POPU zg MARG

DEFINE BAR 1 OF zg PROM

ON SELE BAR 1 OF zg DO zjzg

ON SELE BAR 2 OF zg DO jszg

DEFINE POPU wh MARG

DEFINE BAR 1 of wh PROM

ON SELE BAR 1 OF wh DO bfsj

ON SELE BAR 2 OF wh DO drsj

DO WHILE .T.

ACTI MENU mainmenu *激活菜单

ENDDO

RELE WINDOW mainwin

2、 引导模块:

程序源代码为:

set talk off

set escape off

set devi to scre

clear

clear all

define window winy at 0,17 size 4,22 double;

font

@ 1,4 say

@ 2,1 say

wait

tt=100

for i=1 to 60

j=0

do while j

j=j+1

enddo

move window winy by 0.05,0

endfor *实现窗口缓慢向下滑动 wait

for i=1 to 350

j=0

do while j

j=j+1

enddo

move window winy by 0.05,0

endfor *实现窗口继续向下滑动 release window winy *释放窗口

release i,j

set talk on

set escape on

retu

3、加密模块:

程序源代码:

set talk off

set escape off

clea

k=0

define window winmm at 6,24 size 7,28 double shadow;

color rgb(55,100,225,225,225,200) *定义窗口

move window winmm cent *移动窗口到中间位置 activate window winmm *激活窗口

do while .t.

clear

@ 3,8 say

mmm=

col=19

key=1

do while key!=13 *如果所接收的键不是回车键,则继续循环 key=inkey(0)

mmm=mmm+chr(key)

@3,col say

col=col+1

enddo

k=k+1

if upper(mmm)=

exit *如果密码正确,则退出程序 else

if k=4

clear

@ 2,5 say

@ 3.5,2 say

set cons off

wait timeout 5

set cons on

clear windows

canc *三次输入错误,则中止程序运行 endif

clear

@ 3,5 say

loop

endif

enddo

release window winmm

release k,mmm

set talk on

set escape on

return

4、 借阅图书模块

程序源代码:

SET SAFETY OFF

CLEA

DIME F(8)

DEFI WIND jswin AT 1,0 SIZE 21,50 TITL

ACTI WIND jswin

SELE 1

USE jhts *打开借还图书数据库

SELE 2

USE zgdm *打开职工代码数据库

SELE 3

USE tsdl *打开图书登录数据库

x1=

DO WHILE UPPER(x1)=

CLEAR

no=SPACE(3)

@ 10,15 SAY

READ

IF no=SPACE(3)

EXIT *如果不输入任何字符,则退出循环 ENDIF

CLEAR

SELECT 2

INDEX ON 借书证号 TO jszh *根据借书证号建立索引 LOCA FOR 借书证号=no *查找所输入的借书证号的记录 IF EOF() *如果没有找到,则显示错误信息,并退出循环 @ 10,0

@ 10,12 SAY

@ 12,16 SAY

SET CONS OFF

WAIT

SET CONS ON

EXIT

ENDIF

SELECT 1 *如果找到

F(1)=SPACE(3)

F(2)=SPACE(8)

F(3)=SPACE(10)

F(4)=DATE()

F(5)=DATE()+100

x2=

DO WHILE UPPER(x2)=

CLEAR

ROW=0

GO BOTTOM

@ 0,0 SAY

F(1)=no

@ ROW+4,2 SAY

SELECT 2

LOCAT FOR 借书证号=no

*在职工代码数据库中找出此借书证号对应的职工姓名 F(2)=职工姓名

SELECT 1

@ ROW+4,30 SAY

CLEAR GETS

@ ROW+6,2 SAY

*提示输入所借图书登录号

READ

IF LEN(RTRIM(LTRIM(F(3))))=0

EXIT

*如果没有输入登录号,表示你不想进行此手续,则退出此循环 ENDIF

SELECT 3

LOCA FOR 登录号=F(3) *在图书登录数据库中查找此登录号 IF .not.found()

CLEAR

@ROW+10,7 SAY

WAIT

SET CONS ON

CLEA

F(3)=SPACE(10)

LOOP

*如没有找到,则继续重新执行循环,重新输入登录号 ENDIF

IF 借出否=.T. CLEAR

@ROW+10,7 SAY

*如果标志出此书已借出,则有可能是输入有误,重新输入登录号 LOOP

ENDIF

书名=LTRIM(RTRIM(书名))

IF LEN(书名)>40

*如果书名一行输出不完整,则接着在下一行输出。

@ ROW+8,2 SAY

@ ROW+9,9 SAY SUBSTR(书名,41,LEN(书名))

ROW=ROW+1

ELSE

@ ROW+8,2 SAY

ENDIF

@ ROW+10,2 SAY

@ ROW+10,30 SAY

h1=RTRIM(LTRIM(F(3)))

IF LEN(h1)=0

LOOP

ELSE

x1=

@ ROW+14,12 SAY

pict

*确认输入数据库是否正确,此时键盘只能接受Y或N

READ

IF UPPER(x1)=

SELECT 3

LOCA FOR 登录号=F(3)

REPL 借出否 WITH .T. *把此书借出标志设为真 SELECT 1 *把信息记入借还图书库 APPE BLANK

REPL 借书证号 WITH F(1)

REPL 职工姓名 WITH F(2)

REPL 登录号 WITH F(3)

REPL 书名 WITH tsdl.书名

REPL 借书日期 WITH F(4)

REPL 还书期限 WITH F(5)

ELSE

F(3)=SPACE(10)

LOOP

ENDIF

ENDIF

@ ROW+16,10 SAY TRIM(F(2))+

GET x2 pict

READ

ENDDO

CLEAR

@ ROW+10,14 SAY

ENDDO

CLOSE ALL *关闭文件

RELE WIND jswin *释放窗口

RETURN

5、 归还图书模块

程序源代码:

CLEA

SELEC 1

USE jhts *打开借还图书数据库

SELEC 2

USE zgdm *打开职工代码数据库

SELEC 3

USE tsdl *图书登录数据库

DEFI WIND hswin AT 2,0 SIZE 16,50 TITL

MOVE WIND hswin CENT

ACTI WIND hswin

DIMENSION F(4)

F(1)=SPACE(3)

F(2)=SPACE(8)

F(3)=SPACE(10)

F(4)=SPACE(8)

x1=

DO WHILE UPPER(x1)=

CLEAR

no=SPACE(3)

@ 8,14 SAY

CLEAR

SELEC 2

LOCA FOR 借书证号=no *查找所输入的借书证号 IF EOF()

@ 6,14 SAY

@ 8,16 SAY

SET CONS OFF

WAIT

SET CONS ON

CLEA

EXIT

ELSE

F(1)=no

F(2)=职工姓名

ENDIF

SELEC 1 *选择第1工作区为当前工作区,即选择借还图书库 GO TOP

x2=

DO WHILE UPPER(x2)=

CLEAR

@ 1,5 say

@ 1,20 say

@ 3,6 SAY

READ

IF F(3)=SPACE(10)

EXIT

ENDIF

LOCA FOR 登录号=F(3).and.职工姓名=F(2).and.还否=.F.

*定位所输入的登录号以及职工姓名与借书证号相对应的记录,并*且此书的还否标志为假,表示还没有归还

IF FOUND()

clear

ROW=0

书名=LTRIM(RTRIM(书名))

IF LEN(书名)>40

@ ROW+1,2 SAY

ELSE

@ ROW+1,2 SAY

ENDIF

SELE 3 *选择图书登录数据库 LOCA FOR 登录号=jhts.登录号

@ ROW+2,2 SAY

@ ROW+2,9 SAY 作者 *调用图书登录库中的数据 SELE 1 *重新选择借还图书库 IF DATE()>还书期限

@ROW+4,8SAY

LTRIM(RTRIM(STR(DATE()-还书期限))) +

*如超期,算出超天数并显示

ENDIF

@ ROW+6,2 SAY

READ

IF F(4)=

*如果馆员签收中没有输入,则显示错误信息,提示需要馆*员签收,此手续才有效,中止此轮循环,进行下一轮循环。

@ ROW+8,2 SAY

SET CONS OFF

wait

SET CONS ON

LOOP

ENDIF

REPL 还书日期 WITH DATE() *还书日期设为当前时间 REPL 还否 WITH .T.

*在借还图书库中,把还否标志设为真,表示已还

SELE 3

REPL 借出否 WITH .F.

*在图书登录库中,把借出否设为假,表示还没有借出

SELE 1

REPL 馆员签收 WITH F(4)

ELSE

@ ROW()+2,8 SAY

wait

SET CONS ON

F(3)=SPACE(10)

LOOP

ENDIF

F(3)=SPACE(10)

@ ROW()+2,10 SAY TRIM(F(2))+

GET x2 pict

*询问某某同志是否继续还书,并接收一字符,只能是Y或N。 READ

ENDDO

@ ROW()+2,12 SAY

ENDDO

CLOSE ALL

RELE WIND hswin

RETU

6、 个人查询模块

程序源代码:

DEFI WIND grwin AT 2,0 SIZE 16,50 TITL

MOVE WIND grwin CENT

ACTI WIND grwin

CLEA

DIMENSION F(2)

F(1)=SPACE(3)

F(2)=SPACE(8)

x2=

DO WHILE UPPER(x2)=

SELE 1

USE jhts

SELE 2

USE zgdm

SELE 3

USE tsdl

CLEAR

no=SPACE(8)

@ 6,10 SAY

IF LEN(LTRIM(RTRIM(no)))=0

Exit

*如果字符串长度为零,即没有输入,表示不想查询,则退出循环。 ENDIF

SELECT 2 *选择职工代码数据库

LOCA FOR 职工姓名=no.or.借书证号=LEFT(no,3)

*定位到职工姓名为所输入的字符串或借书证号为所输入的字符 *串的记录。

IF EOF() *如果所输入的字符串与职工姓名和借书证号都不符 CLEAR

@ 10,12 SAY

@ 12,10 SAY

SET CONS OFF

WAIT

SET CONS ON

EXIT

ELSE

F(1)=借书证号 *如果找到记录,则把借书证号赋值给F(1) F(2)=职工姓名 *把职工姓名赋值给F(2)

ENDIF

USE

SELECT 1 *选择借还图书数据库

nn=0 *设置变量,存储没有还的图书的册数 CLEAR

LOCA FOR (借书证号=LEFT(no,3).or.职工姓名=no) .and. jhts.还否;

=.F. *定位到没有归还的图书记录

DO WHILE .NOT. EOF()

djg=MOD(nn,2)

rw=0

@ rw+2,2 SAY

@ rw+2,24 SAY

书名=LTRIM(RTRIM(书名))

IF LEN(书名)>40

@ rw+4,2 SAY

@ rw+5,9 SAY SUBSTR(书名,41,LEN(书名))

rw=rw+1

ELSE

@ rw+4,2 SAY

ENDIF

@ rw+6,2 SAY

@ rw+8,2 SAY

@ rw+10,2 SAY

CONTINUE *继续定位数据库指针

nn=nn+1 *册数加1

IF FOUND()

@14,14 SAY

SET CONS OFF

WAIT

SET CONS ON

CLEAR

ENDIF

ENDDO

IF nn=0 *如果册数为0,表示没有需要的归还的图书 @ 6,8 SAY

@ 7,4 SAY

@ 14,8 SAY

ENDDO

CLOSE ALL

RELE WIND grwin

RETURN

7、 按类别查询模块

程序源代码:

SET SAFE OFF

DEFI WIND lbcxwin AT 2,0 SIZE 11,50 TITL

ACTI WIND lbcxwin

CLEA

x1=

DO WHILE x1=

CLEAR

sm=SPACE(15)

@ 4,10 SAY

READ

IF LEN(LTRIM(RTRIM(sm)))=0

EXIT

ENDIF

SELECT 1

USE tsdl

nn=0

CLEAR

INDEX ON 分类号 TO dlsm

LOCA FOR 分类号=sm

DO WHILE .NOT. EOF()

DO cxjg

CONTINUE

nn=nn+1

@8,10 SAY

SET CONS OFF

WAIT

SET CONS ON

ENDDO

USE

IF nn=0

@ 4,9 SAY

SET CONS OFF

WAIT

SET CONS ON

ENDIF

CLEAR

@ 3,11 SAY

@ 5,13 SAY

ENDDO

CLOSE ALL

RELE WIND lbcxwin

RETURN

8、 按书名查询模块

程序源代码:

SET SAFE OFF

DEAC WIND tscx

DEFI WIND smcxwin AT 1,0 SIZE 16,60 TITL

ACTI WIND smcxwin

CLEA

SELECT 3

USE tsdl

x2=

DO WHILE UPPER(x2)=

CLEAR

sm=SPACE(80)

@ 6,2 SAY

IF LEN(LTRIM(RTRIM(sm)))=0

EXIT

ENDIF

SELECT 3

nn=0

INDEX ON LEFT(书名,40) TO dlsm

LOCA FOR 书名=sm

DO WHILE .NOT. EOF()

DO cxjg

CONTINUE

nn=nn+1

@13,20 SAY

SET CONS OFF

WAIT

SET CONS ON

CLEA

ENDDO

USE

IF nn=0

@ 8,18 SAY

ENDIF

@ 8,14 SAY

@ 10,16 SAY

ENDDO

RELE WIND smcxwin

RETURN

9、 按著者查询模块

程序源代码:

CLEA

DEFI WIND zzcxwin AT 1,0 SIZE 16,60 TITL

ACTI WIND zzcxwin

X2=

DO WHILE UPPER(x2)=

CLEAR

xm=SPACE(30)

@ 6,6 SAY

READ

IF LEN(LTRIM(RTRIM(xm)))=0

LOOP

ENDIF

SELECT 1

USE tsdl

nn=0

CLEAR

INDEX ON 作者 TO dlsm

LOCA FOR 作者=xm

DO WHILE .NOT. EOF()

DO cxjg

CONTINUE

nn=nn+1

@13,20 SAY

SET CONS OFF

WAIT

SET CONS ON

CLEA

ENDDO

USE

IF nn=0

@ 8,18 SAY

ENDIF

@ 8,14 SAY

@ 10,16 SAY

READ

ENDDO

RELE WIND zzcxwin

RETURN

10、 查询结果模块

本模块主要是被以上三个查询模块所调用,显示查询结果。具体实现技术请参阅程序源代码及注释。

程序源代码:

ROW=0

@ ROW+1,2 SAY

@ ROW+1,25 SAY

IF LEN(LTRIM(RTRIM(书名)))>40

@ ROW+2,2 SAY

@ ROW+3,7 SAY SUBSTR(书名,41,LEN(书名))

ROW=ROW+1

ELSE

@ ROW+2,2 SAY

ENDIF

@ ROW+3,2 SAY

@ ROW+3,25 SAY

@ ROW+4,2 SAY

@ ROW+5,2 SAY

@ ROW+5,25 SAY

IF 借出否=.F.

@ ROW+6,2 SAY

ELSE

@ ROW+6,2 SAY

ENDIF

11、 增加职工模块

程序源代码:

DEFI WIND zgwin AT 3,0 SIZE 12,40 SYST TITL

MOVE WIND zgwin CENT

ACTI WIND zgwin

CLEA

USE zgdm

x2=

DIME F(2)

DO WHILE UPPER(x2)=

F(1)=SPACE(3)

F(2)=SPACE(8)

CLEAR

GO BOTTOM

@ 0,2 SAY

@ 2,8 SAY

@ 4,8 SAY

READ

IF LEN(LTRIM(RTRIM(F(1))))=0.or.len(LTRIM(RTRIM(F(2))))=0 EXIT

ENDIF

GO TOP

LOCAT FOR 职工姓名=F(2)

IF FOUND()

@ 6,5 SAY

ENDIF

x1=

@ 8,6 SAY

READ

GO TOP

LOCAT FOR 借书证号=F(1)

IF FOUND()

CLEAR

@ 5,6 SAY

wait

LOOP

ELSE

IF UPPER(x1)=

APPEND BLAN K

GATHER FROM F

ELSE

LOOP

ENDIF

ENDIF

@ 10,6 say

READ

ENDDO

RELE WIND zgwin

CLOSE ALL

RETURN

12、 减少职工模块

程序源代码:

CLEA

DEFI WIND zgwin AT 3,0 SIZE 12,40 TITL

MOVE WIND zgwin CENT

ACTI WIND zgwin

SELE 1

USE jhts

SELE 2

USE zgdm

DIMENSION F(2)

F(1)=SPACE(3)

F(2)=SPACE(8)

x2=

DO WHILE UPPER(x2)=

SELE 1

SET SAFETY OFF

INDEX ON 借书证号 TO jszh

CLEAR

xx=SPACE(8)

@ 2,2 SAY

READ

IF LEN(RTRIM(LTRIM(xx)))=0

EXIT

ENDIF

N=0

LOCAT FOR (借书证号=LEFT(xx,3) .OR. 职工姓名=xx) .AND. 还;

否=.F.

IF .NOT. EOF()

N=1

ENDIF

IF LEN(LTRIM(RTRIM(xx)))>3

F(2)=xx

ELSE

F(1)=RTRIM(LTRIM(xx))

ENDIF

IF N=0

SELE 2

LOCA FOR 借书证号=F(1) .OR. 职工姓名=F(2)

IF .not.eof()

CLEAR

@0,2 SAY

@3,8 SAY

@5,8 SAY

tt=

@ 7,5 SAY

IF UPPER(tt)=

DELE

PACK

SELE 1

GO TOP

LOCAT FOR 借书证号=LEFT(xx,3) .OR. 职工姓名=xx DO WHILE .not.eof()

DELE

PACK

CONT

ENDDO

@8,2 SAY

WAIT

SET CONS ON

ENDIF

ELSE

@ 6,8 SAY

wait

ENDIF

ELSE

@ 6,4 SAY '请还您所借图书,否则不予办理手续!'

wait

ENDIF

@ 10,7 SAY

ENDDO

CLOSE ALL

RELE WIND zgwin

RETU

13、 输入图书模块

程序源代码:

SET SAFE OFF

SET TALK OFF

CLEA

USE tsdl

DIMENSION F(9)

DEFINE WINDOW srwin AT 1,10 SIZE 24,60 TITLE

MOVE WINDOW srwin CENTER

ACTI WINDOWS srwin

x2=

INDEX ON VAL(SUBSTR(登录号,6,LEN(登录号))) TO tsdl_dlh

DO WHILE UPPER(x2)=

GO BOTTOM

dlh=VAL(SUBSTR(登录号,6,LEN(ALLTRIM(登录号)))) dlh=dlh+1

CLEAR

F(1)=SPACE(10)

F(2)=SPACE(15)

F(3)=SPACE(80)

F(4)=SPACE(20)

F(5)=

F(6)=CTOD(

F(7)=0

F(8)=SPACE(8)

F(9)=SPACE(50)

F(1)=SUBSTR(登录号,1,5)+ALLTRIM(STR(INT(dlh)))

@ 0,0 SAY

@ 0,50 SAY DATE()

@ 2,2 SAY

if lastkey()=27

exit

endif

@ 2,30 SAY

@ 4,2 SAY

@ 6,2 SAY

@ 8,2 SAY

@ 10,2 SAY

@ 12,2 SAY

@ 14,2 SAY

@ 16,2 SAY

READ

if lastkey()=27

exit

endif

LOCAT FOR 登录号=F(1)

IF FOUND()

CLEAR

@ 10,14 SAY

wait

CLEAR

LOOP

ENDIF

IF LEN(ALLTRIM(F(1)))=0.or.len(ALLTRIM(F(3)))=0

@ 18,16 say

wait

loop

ENDIF

x1=

@ 20,14 SAY

IF UPPER(x1)=

APPE BLANK

GATHER FROM F

REPL 摘要 WITH F(9)

dlh=dlh+1

ELSE

LOOP

ENDIF

@ 22,14 SAY

ENDDO

RELE WIND srwin

SET SAFE ON

RETURN

14、 修改图书模块

程序源代码:

SET ESCA Off

CLEA

USE tsdl

DEFINE WINDOW xgwin AT 2,5 SIZE 20,60 TITLE

MOVE WINDOWS xgwin CENTER

ACTI WINDOW xgwin

x5=

DO WHILE UPPER(x5)=

CLEAR

dlh=SPACE(10)

@ 10,12 SAY

READ

nn=0

LOCATE FOR 登录号=dlh

DO WHILE .NOT. EOF()

nn=1

CLEAR

DO cxjg

x3=

@ 16,18 SAY

IF UPPER(x3)=

DO WHILE .T.

CLEA

rw=0

@ rw+2,2 SAY

@ rw+2,30 SAY

@ rw+4,2 SAY

@ rw+8,2 SAY

@ rw+10,2 SAY

@ rw+14,2 SAY

READ

IF LEN(ALLTRIM(登录号))=0.or.len(ALLTRIM(书名))=0 @16,6 SAY

WAIT

LOOP

SET CONS OFF

ELSE

@ rw+16,20 say

wait

EXIT

ENDIF

ENDDO

ENDIF

CONTINUE

CLEAR

ENDDO

IF nn=0

@ 14,22 SAY

wait

ENDIF

CLEAR

@ 10,20 SAY

ENDDO

USE

RELE WIND xgwin

RETU

15、 数据备份模块

程序源代码:

set talk off

set safe off

set esca off

DEFINE WINDOW win1 at 0,0 size 11,45 system

MOVE window win1 cent

acti window win1

x1=

@3,6 say

do while upper(x1)=

clear

@5,5 say

temp=dtos(date())

if .not.file(

copy file bfsj.dbf to a:\bfsj.dbf

endif

use a:\bfsj.dbf

if reccount()>=20

clear

@4,6 say

@6,8 say

if lastkey()=27

exit

endif

loop

endif

if .not.file(

! md a:\&temp

! exit

endif

@7,8 say

copy file tsdl.dbf to a:\&temp\tsdl.dbf copy file jhts.dbf to a:\&temp\jhts.dbf copy file zgdm.dbf to a:\&temp\zgdm.dbf copy file tsdl.fpt to a:\&temp\tsdl.fpt loca for 备份时间=date()

if found()

repl 备份时间 with date()

else

appe blank

repl 备份时间 with date()

endif

use

@9,9 say

exit

enddo

rele window win1

set talk on

set safe on

set esca on

16、 导入数据模块

程序源代码:

set talk off

set safe off

set century on

DEFINE WINDOW win1 at 0,0 size 9,45 system MOVE window win1 cent

acti window win1

x1=

@1,5 say

If upper(x1)=

@3,5 say

wait

x2=

do while upper(x2)=

if .not.file(

clear

@4,6 say

x3=

@6,8 say

if upper(x3)=

@6,8 say

loop

else

exit

endif

endif

use a:\bfsj.dbf

go top

dime sj(10)

x=0

@x,0 prompt

scan

temp=dtos(备份时间)

if file(

@x+1,0 prompt

x=x+1

sj(x)=temp

else

dele

pack

endif

endscan

col=12

deac window win1

define window win2 at 0,0 size x+1.2,col double shadow move window win2 cent

acti window win2

ch=1

menu to ch

do case

case ch=1

rele window win1

rele window win2

set talk on

set safe on

return

case ch=2

ml=sj(1)

case ch=3

ml=sj(2)

case ch=4

ml=sj(3)

case ch=5

ml=sj(4)

case ch=6

ml=sj(5)

case ch=7

ml=sj(6)

case ch=8

ml=sj(7)

case ch=9

ml=sj(8)

case ch=10

ml=sj(9)

case ch=11

ml=sj(10)

case ch=12

ml=sj(11)

case ch=13

ml=sj(12)

case ch=14

ml=sj(13)

case ch=15

ml=sj(14)

case ch=16

ml=sj(15)

case ch=17

ml=sj(16)

case ch=18

ml=sj(17)

case ch=19

ml=sj(18)

case ch=20

ml=sj(19)

case ch=21

ml=sj(20)

endcase

copy file a:\&ml\tsdl.dbf to tsdl.dbf

copy file a:\&ml\zgdm.dbf to zgdm.dbf

copy file a:\&ml\jhts.dbf to jhts.dbf

copy file a:\&ml\tsdl.fpt to tsdl.fpt

deac window win2

acti window win1

@4,8 say

wait

exit

enddo

endif

rele window win1

rele window win2

set talk on

set safe on

17、 退出系统模块

程序源代码:

SET TALK OFF

SET ESCAPE Off

DEFINE WINDOW winq AT 18,22 SIZE 8,32 SYSTEM

DEFINE WINDOW win1 at 0,0 size 9,45 system

if dow(date())=6 .and. time()>

MOVE window win1 cent

acti window win1

x1=

@1,4 say

@3,2 say

pict

read

if upper(x1)=

@5,5 say

wait

@7,8 say

temp=dtos(date())

if .not.file(

copy file bfsj.dbf to a:\bfsj.dbf

endif

if .not.file(

! md a:\&temp

! exit

endif

copy file tsdl.dbf to a:\&temp\tsdl.dbf

copy file jhts.dbf to a:\&temp\jhts.dbf

copy file zgdm.dbf to a:\&temp\zgdm.dbf

copy file tsdl.fpt to a:\&temp\tsdl.fpt

use a:\bfsj.dbf

loca for 备份时间=date()

if found()

repl 备份时间 with date()

else

appe blank

repl 备份时间 with date()

endif

use jhts

dele all for 还否=.t.

pack

endif

rele window win1

endif

move window winq cent

ACTIVATE WINDOW winq

@ 1, 4 SAY

@ 2, 4 SAY

@ 3, 4 SAY

@ 4, 4 SAY

@ 6,15 SAY

tt=100

FOR i=1 TO 160

j=0

DO WHILE j

j=j+1

ENDDO

MOVE WINDOW winq BY -0.05,0

ENDFOR

SET CONS OFF

WAIT

SET CONS ON

FOR i=1 TO 180

j=0

DO WHILE j

j=j+1

ENDDO

MOVE WINDOW winq BY -0.1,0

ENDFOR

RELEASE WINDOW winq

RELEASE WINDOW mainwin

CANC

SET TALK ON

SET ESCAPE ON

RETURN

参 考 文 献

[1] 章立民,FoxPro2.5 for Windows程序设计,人民邮电出版社,1994

[2] 周建成,FoxPro2.5命令与函数,人民邮电出版社,1994

[3] 刘宝林 FoxBASE+实用大全,电子工业出版社,1997

[4] 魏茂林 数据库应用技术 FoxBase+,电子工业出版社,2000


相关文章

  • 公司安委会成立文件
  • 南乐县顺发车辆销售有限公司 关于成立公司职业安全健康委员会的通知 为加强对公司职业安全健康工作的统一领导,促进工伤事 故和职业病的预防与控制,经研究决定,成立公司职业安全健康委员会(简称安委会).现将有关事项通知如下: 一.安委会职责 1. ...查看


  • 全民敬业活动学习心得
  • "全民敬业活动学习"心得体会 十二月十二日开始,县商务局全体干部职工,集中学习了一系列关于全民敬业方面的文章,文章对商务行业各项工作具有重要的指导意义,是商务行业的敬业行动指南,同时进一步了坚定建设富裕和谐美丽新濮阳的信 ...查看


  • 事业单位制度1
  • 中共宁乡县委统战部 发文.阅文.档案工作制度 第一条:按照精简.压缩.规范.高效的原则,规范本部文件,要按程序起草.审核.签发.印发,统一由办公室登记.编号.归档. 第二条:所有上级来文统一由办公室先送常务副部长签署批办.分发意见. 第三条 ...查看


  • 图书馆与校园文化
  • 2001年10月图书馆论坛0c1.2001 垄!!叁丝!塑!坐!竺!!皇!!竺兰堡:!!!!:! 图书馆与校园文化 丁传奉 (安徽水利水电职业技术学院图书馆,安徽合肥230601) [摘要)就校园文化的内涵.图书馆与校园文化的关系.图书馆在 ...查看


  • 谈图书馆对提高国民素质的作用
  • ・瓣神疯嗍鸟蕊丝道德・ 1E'-E(-E(-E'1E'-}1E(1E(-}-}-E(1}-E(-E(1E(1}-E(-E(1}-E(-E(-}1E(1E(1}1E(-E(-}-}-}-E(●}●}-E('E(1}1Ecl}1}'Ecl}1} ...查看


  • 图书馆学专业毕业实习报告范文
  • 图书馆学专业 毕 业 实 习 报 姓 名: 杜宗飞 学 号: 2011090118 专 业: 图书馆学 班 级: 图书馆学01班 指导教师: 赵建明 实习时间: XXXX-X-X -XXXX-X-X 20XX 年1月9日 目录 目录 ... ...查看


  • 整理--高效课堂中存在的问题及我的困惑
  • 高效课堂中存在的问题及我的困惑 高效课堂教学模式在前几年是一个新生的事物,每一个教师接受起来总有这样那样的不得意,因为她打断了我们的正常教学.这就反映了一个人在新事物面前总是选择这样或那样的理由拒绝接受,我想说:"人"还 ...查看


  • 新形势下大学生就业趋势分析及对策
  • 就业指导 CAREERHORIZoN 新形势下.太蘑罐鞠懿幽晦期析及对策 杨海英 我国高校毕业生就业制度的改革其最终目标是实现人才资源市场化.随着社会主义市场经济体制的建立和劳动人事制度的改革,多数毕业生在田家方针政策指导下,通过市场配置高 ...查看


  • 提高人员素质实现优质高效服务
  • ・队伍建设・ ●丁韵笙赵兵(东北大学图书馆) 1 现代化国书馆的服务质量与人员素质 现代科技高速发展,我国高等教育事业深入改革的大好形势促进了高校图书馆的现代化进程,同时对图书馆的服务工作提出了新的要求.高校图书馆应采取多种方式和现代化服务 ...查看


热门内容