hehe...老师让你们使用QB主要是要求掌握许多技术的。首先就是理解DBMS的工作原理,自己要亲自写一个嘛。
其次是锻炼程序设计的能力,这个程序不小,结构做不好要很费劲的。我建议你自己做做看吧。
还有很多细节的东西,等你编程的过程中就会发现。
没有面向过程的编程经验直接做面向对象的东西,我认为是现在很多程序员的遗憾。题目比较典型,难度适中,难得的。
其次是锻炼程序设计的能力,这个程序不小,结构做不好要很费劲的。我建议你自己做做看吧。
还有很多细节的东西,等你编程的过程中就会发现。
没有面向过程的编程经验直接做面向对象的东西,我认为是现在很多程序员的遗憾。题目比较典型,难度适中,难得的。
再等待按键
像 edit 之类
=========================================
处理按键,自己写
下载地址:http://www.dapha.net/down/list.asp?id=1160
DECLARE SUB xBEEP ()
DECLARE SUB SaveBack (x AS INTEGER, y AS INTEGER, w AS INTEGER, h AS INTEGER, buf() AS STRING)
DECLARE SUB RestoreBack (x AS INTEGER, y AS INTEGER, w AS INTEGER, h AS INTEGER, buf() AS STRING)
DECLARE FUNCTION PopMenu! (menu() AS STRING, count AS INTEGER, x AS INTEGER, y AS INTEGER)
' Menu Function
' PopMenu() is the main function of this program
'
' Copyright(C) LENGs Software, Leng Dakun, 2003
'DIM m(5) AS STRINGm(1) = " Open"
m(2) = " Create "
m(3) = " Write"
m(4) = " Close"
m(5) = " Exit"SCREEN 0, 0, 0 'Text mode
'Write some background text
COLOR 1, 0
PRINT "Hello 12345678901234567890234567890"
COLOR 3, 0
PRINT "Hello 12345678901234567890234567890"
COLOR 5, 0
PRINT "Hello 12345678901234567890234567890"
COLOR 0, 7
PRINT "Hello 12345678901234567890234567890"
COLOR 0, 9
PRINT "Hello 12345678901234567890234567890"
COLOR 0, 11
PRINT "Hello 12345678901234567890234567890"
COLOR 13, 0
PRINT "Hello 12345678901234567890234567890"
COLOR 15, 0
PRINT "Hello 12345678901234567890234567890"
COLOR 15, 13
PRINT "Hello 12345678901234567890234567890"
COLOR 15, 11
PRINT "Hello 12345678901234567890234567890"ReDO:
LOCATE 23, 1
PRINT "Press Up and Down to select, Enter to select, ESC to exit";
x = PopMenu(m(), 5, 7, 2)
' PopMenu(MenuItem(), MenuItemCount, MenuPositionX, MenuPositionY)
' Return: >0 MenuItem ID
' =0 ESC pressed
' -1 Left Arrow
' -2 Right ArrowLOCATE 24, 1
COLOR 15, 0
PRINT "The menu you choose is:"; x; " and space to redo";
k$ = INPUT$(1)
IF k$ = " " THEN GOTO ReDO
ENDFUNCTION PopMenu (menu() AS STRING, count AS INTEGER, x AS INTEGER, y AS INTEGER)
DIM b(50) AS STRING DIM i AS INTEGER, j AS INTEGER
DIM m AS INTEGER, s FOR i = 1 TO 50
b(i) = STRING$(80, 0)
NEXT i
'Reset the width of menu
m = 0
FOR i = 1 TO count
IF LEN(menu(i)) > m THEN m = LEN(menu(i))
NEXT i
FOR i = 1 TO count
menu(i) = menu(i) + SPACE$(m - LEN(menu(i)))
NEXT i SaveBack x, y, m + 2, count + 2, b()
'Draw out the menu
LOCATE y, x
COLOR 0, 15
PRINT "+";
FOR i = 1 TO m
PRINT "=";
NEXT i
PRINT "+";
COLOR 0, 15
FOR i = 1 TO count
LOCATE y + i, x
PRINT "|";
PRINT menu(i);
PRINT "|";
NEXT i
LOCATE y + i, x
COLOR 0, 15
PRINT "+";
FOR i = 1 TO m
PRINT "=";
NEXT i
PRINT "+";
COLOR 15, 0 'Start to select
s = 1 'current select
DO
LOCATE y + s, x + 1
COLOR 15, 0
PRINT menu(s);
DO
k$ = INKEY$
LOOP UNTIL k$ <> ""
IF k$ = CHR$(27) THEN
PopMenu = 0
EXIT DO
ELSEIF k$ = CHR$(13) THEN
PopMenu = s
EXIT DO
ELSEIF LEFT$(k$, 1) = CHR$(0) THEN
k$ = RIGHT$(k$, 1)
COLOR 0, 15
LOCATE y + s, x + 1
PRINT menu(s);
IF k$ = CHR$(72) THEN 'UP
s = (s + count - 2) MOD count + 1
ELSEIF k$ = CHR$(80) THEN 'DOWN
s = s MOD count + 1
ELSEIF k$ = CHR$(75) THEN 'LEFT
PopMenu = -1
EXIT DO
ELSEIF k$ = CHR$(77) THEN 'RIGHT
PopMenu = -2
EXIT DO
ELSE
xBEEP
END IF
ELSE
xBEEP
END IF
LOOP
COLOR 15, 0
RestoreBack x, y, m + 2, count + 2, b()
END FUNCTIONSUB RestoreBack (x AS INTEGER, y AS INTEGER, w AS INTEGER, h AS INTEGER, buf() AS STRING)
' restore a windowed background at the position of x,y and size of w,h
'buf is a buffer which to store txt and color info
DIM i AS INTEGER, j AS INTEGER
DIM a AS INTEGER, b AS INTEGER, k AS STRING
FOR i = 1 TO h
FOR j = 1 TO w
IF i = 25 AND j = 80 THEN EXIT FOR ' this position cannot write
LOCATE y + i - 1, x + j - 1
k = MID$(buf(i + h), j, 1)
IF k = CHR$(0) THEN
a = 0
b = 0
ELSE
a = INT(ASC(k) / 16)
b = ASC(k) MOD 16
END IF
COLOR b, a
PRINT MID$(buf(i), j, 1);
NEXT j
NEXT i
END SUBSUB SaveBack (x AS INTEGER, y AS INTEGER, w AS INTEGER, h AS INTEGER, buf() AS STRING)
'Save windowed background at the position x,y and the size of w,h
'buf() is a buffer which to store txt info and color info
DIM i AS INTEGER, j AS INTEGER
DIM t AS INTEGER 'Save background
FOR i = 1 TO h
FOR j = 1 TO w
MID$(buf(i), j, 1) = CHR$(SCREEN(y + i - 1, x + j - 1))
MID$(buf(i + h), j, 1) = CHR$(SCREEN(y + i - 1, x + j - 1, 1))
NEXT j
NEXT iEND SUBSUB xBEEP
SOUND 440, .5
SOUND 880, .5
END SUB