系統需求分析
研究生個人信息管理
導師信息管理
專業信息管理
功能模塊設計
針對上述需求,設計的功能模塊如圖10.34所示。
數據表設計
1.研究生信息數據表
數據表名稱:graduate_info。數據表結構如表10.4所示。
2.專業信息數據表
3.導師信息數據表
索引和視圖設計
1.研究生信息數據表的索引和視圖設計
2.專業信息表的索引和視圖設計
3.導師信息數據表的索引和視圖設計
創建數據庫用戶
(1)在如圖10.35所示的創建用戶的【一般信息】選項卡中進行如下設置。
(2)切換到如圖10.36所示的創建用戶的【角色】選項卡。
(3)成功創建上述用戶的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create user "graduateuser" profile "default"
identified by "12345678" default tablespace "users"
temporary tablespace "temp"
account unlock;
grant unlimited tablespace to "graduateuser";
grant "connect" to "graduateuser";
grant "resource" to "graduateuser";
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/creategraduateuser.sql。
(4)讀者可以直接在【sqlplus worksheet】中執行creategraduateuser.sql文件創建用戶。
創建數據表
1.創建研究生信息表
(1)在如圖10.37所示的創建表的【一般信息】選項卡中進行如下操作。
(2)切換到如圖10.38所示的創建表的【約束條件】選項卡。
(3)上述創建數據表graduateuser.graduate_info的sql代碼如下。
(3)上述創建數據表graduateuser.graduate_info的sql代碼如下。
(4)讀者可以直接在【sqlplus worksheet】中執行createtablegraduateinfo.sql 文件創建數據表graduateuser.graduate_info。
2.創建專業信息表
(1)在如圖10.39所示的創建表的【一般信息】選項卡中按照如圖所示進行設置。
(2)切換到如圖10.40所示的創建表的【約束條件】選項卡。
(3)上述創建數據表graduateuser.major_info的sql代碼如下。
【參見光盤文件】:第10章/createtablemajorinfo.sql。
(4)讀者可以直接在【sqlplus worksheet】中執行createtablemajorinfo.sql文件創建數據表graduateuser.major_info。
3.創建導師信息表
(1)在如圖10.41所示的創建表的【一般信息】選項卡中按照如圖所示進行設置。
(2)切換到如圖10.42所示的創建表的【約束條件】選項卡。
(3)上述創建數據表graduateuser.director_info的sql代碼如下。
【參見光盤文件】:第10章/createtabledirectorinfo.sql。
(4)讀者可以直接在【sqlplus worksheet】中執行createtabledirectorinfo.sql 文件創建數據表graduateuserdirector_info。
創建索引
1.為研究生信息表的name字段建立索引
(1)在如圖10.43所示的創建索引的【一般信息】選項卡中按照圖示進行操作。
(2)其他選項卡按照默認設置即可。
(3)上述創建索引的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create index "graduateuser"."研究生姓名字段索引"
on "graduateuser"."graduate_info"("name")
tablespace "indx"
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createindexgraduate.sql。
(4)讀者可以直接在【sqlplus worksheet】中執行createindexgraduate.sql 文件創建數據表graduateuser.graduate_info的索引“研究生姓名字段索引”。
2.為導師信息表的name字段建立索引
(1)在如圖10.44所示的創建索引的【一般信息】選項卡中按照圖示進行操作。
(2)其他選項卡按照默認設置即可。
(3)上述創建索引的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create index "graduateuser"."導師姓名字段索引"
on "graduateuser"."director_info"("name")
tablespace "indx"
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createindexdirector.sql。
(4)讀者可以直接在【sqlplus worksheet】中執行createindexdirector.sql 文件創建數據表graduateuser.director_info的索引“導師姓名字段索引”。
創建視圖
1.為研究生信息表建立視圖
(1)在如圖10.45所示的創建視圖的【一般信息】選項卡中按照圖示進行操作。
(2)其他選項卡按照默認設置即可。
(3)上述創建視圖的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create or replace view "graduateuser"."view_graduate" as
select *
from graduateuser.graduate_info with read only
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createviewgraduate.sql。
(4)讀者可以直接在【sqlplus worksheet】中執行createviewgraduate.sql文件創建數據表graduateuser.graduate_info的視圖“view_graduate”。
2.為專業信息表建立視圖
(1)在如圖10.46所示的創建視圖的【一般信息】選項卡中按照圖示進行操作。
(2)其他選項卡按照默認設置即可。
(3)上述創建視圖的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create or replace view "graduateuser"."view_major" as
select *
from graduateuser.major_info with read only
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createviewmajor.sql。
(4)讀者可以直接在【sqlplus worksheet】中執行createviewmajor.sql文件創建數據表graduateuser.major_info的視圖“view_major”。
2.為導師信息表建立視圖
(1)在如圖10.47所示的創建視圖的【一般信息】選項卡中按照圖示進行操作。
(2)其他選項卡按照默認設置即可。
(3)上述創建視圖的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create or replace view "graduateuser"."view_director" as
select *
from graduateuser.director_info with read only
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createviewdirector.sql。
(4)讀者可以直接在【sqlplus worksheet】中執行createviewdirector.sql 文件創建數據表graduateuser.director_info的視圖“view_director”
vb工程總體框架
開發完成的研究生管理信息系統的總體框架如表10.7所示。
【參見光盤文件】:第10章/研究生管理信息系統.vbp。
系統是如何運行的
(1)啟動vb,打開配套光盤的工程文件。
(2)如圖10.48所示。
(3)出現如圖10.49所示的工程屬性的【通用】選項卡。
(4)打開模塊module1,查看名為main的過程的代碼如下。說明main過程將啟動名為frmmain的主窗體。
(5)編輯名為frmmain的主窗體,如圖10.50所示。
(6)出現如圖10.51所示的【菜單編輯器】界面,可以查看主窗體的菜單設計。
工程中設計的菜單如表10.8所示。
(7)為什么這些菜單可以調用這些子窗體或者執行退出主窗體的操作呢?在圖10.50的主窗體中用鼠標雙擊,在出現的代碼窗口中的主要代碼如下。
―――――――――――――――――――――――――――――――――――――
‘選擇菜單項directorinsertmenu后將顯示子窗體forminsertdirector
private sub directorinsertmenu_click()
forminsertdirector.show
end sub
‘選擇菜單項directorselectmenu 后將顯示子窗體formselectdirector
private sub directorselectmenu_click()
formselectdirector.show
end sub
‘選擇菜單項directorupdatemenu后將顯示子窗體formupdatedirector
private sub directorupdatemenu_click()
formupdatedirector.show
end sub
‘選擇菜單項graduateinsertmenu后將顯示子窗體forminsertgraduate
private sub graduateinsertmenu_click()
forminsertgraduate.show
end sub
‘選擇菜單項graduateselectmenu后將顯示子窗體formselectgraduate
private sub graduateselectmenu_click()
formselectgraduate.show
end sub
‘選擇菜單項graduateupdatemenu后將顯示子窗體formupdategraduate
private sub graduateupdatemenu_click()
formupdategraduate.show
end sub
‘選擇菜單項majorinsertmenu后將顯示子窗體forminsertmajor
private sub majorinsertmenu_click()
forminsertmajor.show
end sub
‘選擇菜單項majorupdatemenu后將顯示子窗體formupdatemajor
private sub majorupdatemenu_click()
formupdatemajor.show
end sub
‘選擇菜單項exitmenu后將顯示退出主窗體
private sub exitmenu_click()
end
end sub
―――――――――――――――――――――――――――――――――――――
模塊的設計
模塊module1的其他主要代碼如下。
―――――――――――――――――――――――――――――――――――――
‘定義了名為connectstring的無參數函數,連接數據庫
public function connectstring() as string
connectstring = "dsn=graduatedb;uid=graduateuser;pwd=12345678"
end function
‘定義了名為executesql的帶參數函數,參數sql和msgstring都為字符串型。該函數用于執行sql語句。
public function executesql(byval sql as string, msgstring as string) as adodb.recordset
‘conn為adodb的connection連接對象
dim conn as adodb.connection
‘rest為adodb的記錄集對象
dim rest as adodb.recordset
‘若執行sql錯誤轉向executesql_error標記處
on error goto executesql_error
set conn = new adodb.connection
‘連接數據庫
conn.open connectstring
set rest = new adodb.recordset
‘執行sql字符串語句
rest.open trim$(sql), conn, adopenkeyset, adlockoptimistic
set executesql = rest
msgstring = "查詢到" & rest.recordcount & " 條記錄"
‘執行sql完畢后關閉連接和記錄集
executesql_exit:
set rest = nothing
set conn = nothing
exit function
‘執行sql錯誤時的處理方法
executesql_error:
msgstring = "查詢錯誤: " & _
err.description
resume executesql_exit
end function
‘定義了名為checktxt的帶參數函數,參數txt為字符串型。該函數用于檢測txt字符串是否有內容。
public function checktxt(txt as string) as boolean
if trim(txt) = "" then
checktxt = false
else
checktxt = true
end if
end function
―――――――――――――――――――――――――――――――――――――
各子窗體的設計
1.添加信息窗體的設計
打開名為forminsertgraduate的子窗體,如圖10.52所示。
窗體的設計如表10.8所示。
表10.8 子窗體forminsertgraduate的設計
窗體的程序代碼分析如下。
2.修改信息窗體的設計
打開名為formupdategraduate的子窗體,如圖10.53所示。
窗體的設計如表10.10所示。
窗體的程序代碼分析如下。
3查詢信息窗體的設計
打開名為formselectgraduate的子窗體,如圖10.54所示。窗體的設計如表10.11所示。
窗體的代碼設計如下。
新聞熱點
疑難解答