2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目錄</b></p><p>  1.引言…………………………………………………………… 2</p><p>  2.概要設計………………………………………………………. 4</p><p>  3.詳細設計………………………………………………………. 6</p><p>  4. 調試與運

2、行結果及存在的主要問題……………………….. 16</p><p>  5. 課程設計小結…………………………………………………</p><p>  6. 參考文獻……………………………………………………….</p><p><b>  引言</b></p><p><b>  1.設計環境:</b>

3、;</p><p>  設計環境具體有visual basic 6.0,Microsoft SQL Server 2000.</p><p><b>  2.同組人員:</b></p><p>  完成該設計的人員為04- 3班的方靖和鄺銳強。</p><p><b>  3.具體分工:</b>&l

4、t;/p><p>  經過兩人的討論分析后共同完成該題目的需求分析,概念結構設計以及邏輯結構的設計。在具體實施階段方靖主要負責登陸界面,各職工基本資料的界面設計及相應的連接數據庫部分,實現數據庫備份和還原部分以及數據庫數據的初始化。鄺銳強主要負責對各人員相關資料的刪除,修改,增加部分的界面設計及相應的連接數據庫部分,操作員管理和權限設置。</p><p><b>  概要設計<

5、/b></p><p><b>  系統需求分析:</b></p><p>  通過調查本地的企業,根據企業的具體情況設計企業人事管理系統。主要功能有:</p><p> ?、偃耸聶n案管理:戶口狀況、政治面貌、生理狀況、合同管理等;</p><p> ?、诳记诩影喑霾罟芾?;</p><p>

6、 ?、廴耸伦儎樱盒逻M員工登記、員工離職登記、人事變更記錄;</p><p><b> ?、芸己霜剳?;</b></p><p><b> ?、輪T工培訓;</b></p><p> ?、尴到y維護:如數據安全管理(含備份與恢復)、操作員管理、權限設置等;</p><p>  由以上可知可以具體設計五類人員

7、:員工,維護部員工,經理,人事部經理以及總裁,其中員工只能查詢本人的基本資料:工號,姓名,性別,戶籍情況,政治面貌,生理狀況,合同,所屬部門以及自身的考勤考核獎勵情況。而維護部員工除了可以完成普通員工的功能外還可以進行系統維護。經理可以管理員工,包括增加刪除本部門員工以及修改員工資料。人事部經理在經理的功能上增加了可以刪除增加修改其他部門員工資料的功能,而總裁可以任意增加刪除修改所有部門經理及員工的資料。而對于所有人員均記錄其基本資料和

8、日常狀況資料。</p><p><b>  系統結構設計:</b></p><p>  由需求分析可以劃出系統結構圖,如下:</p><p><b>  功能模塊設計:</b></p><p>  由以上分析可以劃出功能模塊設計圖,如下:</p><p><b> 

9、 詳細設計</b></p><p><b>  系統數據庫設計:</b></p><p>  經過需求分析設計后得出數據庫設計的概念模型,其中包含兩個實體,一個是人員表,一個是日常情況表。如下:</p><p>  人員(工號,姓名,性別,年齡,戶口,政治面貌,生理狀況,合同管理,照片,密碼,所管(屬)部門(地區),職位)</

10、p><p>  日常情況(工號,日期,考勤,加班,懲罰,培訓)</p><p>  具體創建表的具體代碼如下:</p><p>  create table BaseTable(</p><p>  BID varchar(10) not null unique,</p><p>  BName varchar(20) n

11、ot null,</p><p><b>  BAge int,</b></p><p>  BSex varchar(2),</p><p>  BResidence varchar(50),</p><p>  BPolity varchar(50),</p><p>  BHealthy v

12、archar(50),</p><p>  BAgreement varchar(50),</p><p>  BDepartment varchar(20) not null,</p><p>  BPhoto image,</p><p>  BPassword varchar(50) not null,</p><p

13、>  BPosition varchar(10) not null,</p><p>  primary key(BID),</p><p>  check (BAge>0),</p><p>  check (BSex in ('男','女')),</p><p>  check (BPositi

14、on in ('員工','維護部員工','經理','人事經理','總裁'))</p><p><b>  );</b></p><p>  create table ExtendTable(</p><p>  EID varchar(10) not null,&l

15、t;/p><p>  EDate datetime not null,</p><p>  EState varchar(4),--考勤,內容為“請假,曠到,遲到,正常,出差”</p><p>  EOverwork varchar(2),--加班,內容“有,無”</p><p>  ERAP varchar(500),--獎懲(re

16、wards and punishment)</p><p>  ETraining varchar(500),</p><p>  primary key(EID,EDate),</p><p>  check (EState in ('請假','曠到','遲到','正常','出差'))

17、,</p><p>  check (EOverwork in ('有','無')),</p><p>  foreign key(EID) references BaseTable(BID) on delete cascade </p><p><b>  );</b></p><p>

18、  所創建表的設計圖如下所示:</p><p>  BaseTable表:</p><p>  用E-R圖表示該實體如下:</p><p>  ExtendTable表:</p><p>  用E-R圖表示該實體如下:</p><p>  完整的E-R圖如下所示:</p><p>  系統主要功

19、能模塊設計</p><p>  各模塊的主要算法對應的原代碼</p><p><b>  數據庫的連接:</b></p><p> ?、?利用控件Adodc連接:</p><p>  在Adodc控件中,設置ConnectStringProvider=”SQLOLEDB.1;Integrated Security=SSP

20、I;Persist Security Info=False;Initial Catalog=ManageSystem”,然后再設置CommandType為8 – adCmdUnknown,數據源定為SQL查詢語句,語句內容根據不同需要而更改。</p><p>  設定ConnectString屬性</p><p>  P.S:當然,可以手工輸入,也可以利用“生成”讓VB自動給出語句。<

21、;/p><p>  設定RecordSource屬性</p><p>  連接數據庫核心語句:</p><p>  Adodc1.ConnectStringProvider=”SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ManageSystem”</

22、p><p>  Adodc1.RecordSource = SQL查詢語句</p><p>  Adodc1.Recordset.Open</p><p>  Adodc1.Refresh</p><p>  斷開數據庫核心語句:</p><p>  Adodc1.Recordset.Close</p>&l

23、t;p> ?、?利用ADODB對象作為SQL連接接口:</p><p>  由于在程序中使用瞬間連接數據庫比長期連接數據庫高效,而且在本程序中大量使用,因而新增了模塊Module1,自定義了SqlConnect函數作為連接,SqlDisConnect函數來斷開連接,方便編寫程序,提高代碼使用率,提高開發效率和運行效率。</p><p>  連接數據庫核心語句:</p>

24、<p>  Set Ado_Conn = New ADODB.Connection</p><p>  Set Ado_RS = New ADODB.Recordset</p><p>  str_CS = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial

25、Catalog=ManageSystem"</p><p>  str_RS = SQL查詢語句</p><p>  SqlConnect Ado_Conn, Ado_RS, str_CS, str_RS</p><p>  其中模塊中定義了SqlConnect函數: </p><p>  Public Sub SqlConnect

26、(ByVal Ado_Connection As ADODB.Connection, _</p><p>  ByVal Ado_Recordset As ADODB.Recordset, _</p><p>  Ado_ConnectionString As String, _</p><p>  Ado_RecordSource As String)</p

27、><p>  Ado_Connection.ConnectionString = Ado_ConnectionString</p><p>  Ado_Connection.ConnectionTimeout = 30</p><p>  Ado_Connection.Open</p><p>  Ado_Recordset.Open Ado_R

28、ecordSource, Ado_Connection</p><p><b>  End Sub</b></p><p>  斷開數據庫核心語句:</p><p>  SqlDisConnect Ado_RS</p><p>  其中模塊中定義了SqlDisConnect函數:</p><p>

29、  Public Sub SqlDisConnect(ByVal AdoRecordset As ADODB.Recordset)</p><p>  If AdoRecordset.State Then AdoRecordset.Close</p><p><b>  End Sub</b></p><p><b>  數據的查詢:

30、</b></p><p> ?、?利用表格方式對SQL數據進行查詢:</p><p>  利用連接數據庫的方法,返回一個RecordSet集合。</p><p>  通過MSHFlexGrid控件、DataGrid控件等控件對集合作表格方式的輸出。使用Adodc控件時,可以通過屬性的設定,把MSHFlexGrid控件、DataGrid1控件捆綁在Adod

31、c控件上。</p><p>  對用Adodc控件捆綁</p><p>  當使用ADODB對象時,可以通過Set語句對MSHFlexGrid.DataSourse 進行賦ADODB對象的Recordset值。但是DataGrid1則不能。</p><p> ?、?利用字符竄方式對SQL數據進行查詢</p><p>  利用連接數據庫的方法,

32、返回一個RecordSet集合。</p><p>  通過對RecordSet集合的提取,把元組中的屬性值賦給TextBox等控件控件,讓其輸出。</p><p>  核心代碼: Adodc1.Recordset.MoveFirst</p><p>  Adodc1.Recordset.Find "工號='1234"</p&g

33、t;<p>  Text1.Text = Adodc1.Recordset.Fields("工號").Value</p><p>  Text2.Text = Adodc1.Recordset.Fields("姓名").Value</p><p><b>  .</b></p><p>&l

34、t;b>  .</b></p><p><b>  .</b></p><p> ?、?對查詢所得到的集合作出判空:</p><p>  方法有多種:(設Ado_RS為Recordset)</p><p>  A、利用EOF和BOF兩個屬性進行判斷:</p><p>  If A

35、do_RS.BOF = False And Ado_RS.EOF = False Then </p><p><b>  集合不為空</b></p><p><b>  Else</b></p><p><b>  集合為空</b></p><p><b>  End

36、 If</b></p><p>  B、利用Recordset 的RecordCount屬性判斷:</p><p>  If Ado_RS.RecordCount > 0 Then </p><p><b>  集合不為空</b></p><p><b>  Else</b><

37、;/p><p><b>  集合為空</b></p><p><b>  End If</b></p><p>  C、利用DataGrid 的ApproxCount屬性來判斷:</p><p>  判斷條件會因表格的自定義顯示而有所不同</p><p>  If DataGri

38、d1.ApproxCount > 0 Then</p><p><b>  集合不為空</b></p><p><b>  Else</b></p><p><b>  集合為空</b></p><p><b>  End If</b></p&

39、gt;<p>  D、利用MSHFlexGrid的Rows屬性判斷:</p><p>  判斷條件會因表格的自定義顯示而有所不同</p><p>  If MSHFlexGrid1. Rows> 1 Then</p><p><b>  集合不為空</b></p><p><b>  Els

40、e</b></p><p><b>  集合為空</b></p><p><b>  End If</b></p><p><b> ?、?查詢特定元組</b></p><p>  對于特定元組,由于主碼的唯一性,所以當對主碼作準確查詢時,所得的表只有兩種情況:只有

41、一條元組或者什么都沒有。</p><p>  通過⑶的方法,可以對集合判空。如果為空,則認為特定元組不存在,,查詢失??;如果返回一條元組,則指針肯定是指向該元組,可以馬上對數據進行讀取。</p><p><b>  核心代碼:</b></p><p>  Set Ado_Conn = New ADODB.Connection</p>

42、<p>  Set Ado_RS = New ADODB.Recordset</p><p>  str_CS = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ManageSystem"</p><p>  str_RS

43、= "select * from BaseTable where BID='" & Trim(Text1.Text) & "'"</p><p>  SqlConnect Ado_Conn, Ado_RS, str_CS, str_RS</p><p>  Ado_RS.RecordCount</p>&

44、lt;p><b>  '檢測帳號是否存在</b></p><p>  If Ado_RS.EOF = False Then '如果帳號存在</p><p>  If Trim(Ado_RS.Fields("BID")) = Trim(Text1.Text) And Trim(Ado_RS.Fields("BPa

45、ssword")) = Trim(Text2.Text) Then</p><p>  還有一種方法,利用Find方法進行查找,如果找到則指針指向該元組。如找不到則返回錯誤。因此利用捕獲錯誤的方法也可以得到效果。</p><p>  第三種,利用MSHFlexGrid控件、DataGrid控件等,均可以利用控件內部的屬性和方法進行查詢。</p><p>&

46、lt;b>  數據的修改:</b></p><p> ?、?利用嵌入SQL語句。</p><p>  首先使用ADODB對象連接的方法,利用ADODB.Connection.</p><p>  Execute直接嵌套運行SQL語句對數據進行修改。</p><p><b>  核心語句:</b><

47、/p><p>  Ado_Conn.Execute “updata 表名 set 某屬性=XX”</p><p> ?、?此外還可以利用ADO接口提供的Fields屬性對數據進行修改。</p><p><b>  核心語句:</b></p><p>  Adodc1.Recordset.Find "工號='

48、" & Text3.Text & "'"</p><p>  Adodc1.Recordset.Fields("姓名") = Text4.Text</p><p>  Adodc1.Recordset.Fields("所屬部門") = Combo2.Text</p><p>

49、;  Adodc1.Recordset.Fields("職位") = Combo3.Text</p><p>  Adodc1.Recordset.Update</p><p>  Adodc1.Refresh</p><p> ?、?利用DataGrid控件對數據庫進行強行修改。</p><p>  只需要連接好數據庫,

50、然后對DataGrid進行捆綁,而且DataGrid的AllowUpdate等屬性設為True就可以通過界面直接修改。</p><p><b>  數據的刪除</b></p><p><b>  基本方法跟3一樣。</b></p><p> ?、?使用SQL嵌套語句刪除數據。</p><p>  A

51、do_Conn.Execute “delete from表名 where某屬性=XX”</p><p> ?、?此外還可以利用ADO接口提供的Fields屬性對數據進行修改。</p><p><b>  核心語句:</b></p><p>  Adodc1.Recordset.MoveFirst</p><p>  Ad

52、odc1.Recordset.Find "工號='" & Text3.Text & "'"</p><p>  Adodc1.Recordset.Delete</p><p>  Adodc1.Recordset.Update</p><p><b>  5、數據的添加:</b&

53、gt;</p><p><b>  基本方法跟3一樣。</b></p><p> ?、?使用SQL嵌套語句增加數據。</p><p>  Ado_Conn.Execute “insert into 表名 values(某屬性=XX)”</p><p> ?、?此外還可以利用ADO接口提供的Fields屬性對數據進行修改。

54、</p><p><b>  核心語句:</b></p><p>  Adodc1.Recordset.MoveFirst</p><p>  Adodc1.Recordset.AddItem</p><p>  Adodc1.Recordset.Fields("姓名") = Text4.Text&l

55、t;/p><p>  Adodc1.Recordset.Fields("所屬部門") = Combo2.Text</p><p>  Adodc1.Recordset.Fields("職位") = Combo3.Text</p><p>  Adodc1.Recordset.Update</p><p> 

56、 Adodc1.Refresh</p><p><b>  7、權限的分配</b></p><p>  讀取BaseTable(員工基本表)里面的BPosition(職位)。通過對其的判斷,來選擇其他更多的步驟。</p><p><b>  核心語句:</b></p><p>  Select Ca

57、se Trim(Ado_RS.Fields("BPosition")) '檢測權限</p><p><b>  Case "總裁"</b></p><p><b>  …………</b></p><p>  Case "人事經理"</p>

58、<p><b>  …………</b></p><p><b>  Case "經理"</b></p><p><b>  …………</b></p><p>  Case "維護部員工"</p><p><b>  …

59、………</b></p><p><b>  Case "員工"</b></p><p><b>  …………</b></p><p>  End Select</p><p>  調試與運行結果及主要問題</p><p>  在程序設計過程中遇

60、到的主要問題是如何將數據庫數據和vb連接起來,設置外碼與被參照關系中主碼的及聯關系以及如何高效地實現查詢功能。同時由于在數據庫基本資料表中添加了照片屬性,但由于能力有限,至今仍不懂往數據庫表中插入圖片的方法。另外一個方面的問題就是界面不夠漂亮,顯得有點死板。</p><p><b>  主要截圖如下:</b></p><p><b>  登陸框</b&

61、gt;</p><p><b>  總裁管理截圖</b></p><p><b>  員工管理截圖</b></p><p><b>  數據備份和恢復</b></p><p><b>  經理管理截圖</b></p><p>  考

62、勤-獎懲-培訓一覽表</p><p><b>  添加經理截圖</b></p><p><b>  添加員工截圖</b></p><p><b>  維護員工查詢截圖</b></p><p><b>  一般員工查詢截圖</b></p>&l

63、t;p><b>  *課程設計小結*</b></p><p><b>  參考文獻</b></p><p>  薩師煊,王珊。數據庫系統概論(第三版)</p><p>  劉曉華。SQL Server 2000數據庫應用開發</p><p>  張勇。Visual Basic 課程設計案例精編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論