《數據庫課程設計》報告學生成績管理系統設計
計算機科學與技術專業(yè)數據庫課程設計 華科學院計算機科學與技術專業(yè) 數據庫課程設計報告 (2007/2008學年 第一學期)學生姓名: 學生班級: 學生學號: 指導教師: 2007年12月29日目錄第一章 學生成績管理系統概述31.1 開發(fā)背景及意義31.2 運行環(huán)境3第二章 需求分析42.1 可行性分析41設計思想42技術可行性43環(huán)境可行性42.2 系統需求41功能需求42性能要求52.3 數據流程圖52.4 數據字典6第三章 概念結構設計83.1 實體E-R圖83.2 實體之間關系E-R圖93.3 課程管理模塊設計113.4 學生資料管理模塊11第四章 邏輯結構設計13第五章 物理設計及實施155.1 系統數據庫設計155.2 相關模塊數據庫設計15第六章 系統設計及主要界面介紹176.各主要界面介紹176.1 登陸界面176.2 系統主要界面176.2編碼實現:226.1 連接數據庫及網絡函數申明226.2 登陸界面實現246.3 主界面代碼如下256. 成績錄入界面代碼296. 成績修改界面326. 成績查詢366. 用戶注冊39附錄 使用說明42附錄2 Db_score.sql 內容42參考文獻48第一章 學生成績管理系統概述1.1 開發(fā)背景及意義在教育普及日趨完善的今天,一個學校擁有上萬人已經很普遍,上萬個學生的數據匯集在一起,對學校信息的管理者而言其工作的龐雜和繁瑣程度是相當巨大的,如果只靠人工管理往往為了改一條數據就要翻查所有相關的資料,不僅容易產生錯誤,而且造成時間和人力很大的浪費,在網絡普及的今天,無紙化辦公已經成為一種新的趨勢,在極短的時間內讓學校變成無紙化辦公的場所是不現實的,但我們可以一步一步向這個方向發(fā)展。經過仔細分析以后,學校的學生成績管理是學校龐大數據中的一角,編寫個學生成績管理系統來關學生的成績有很大的意義。1、 主要方便教師對學生成績的管理:教師只需坐在計算機前即可完成對學生成績、課程及學生資料的管理,不用在各個辦公室來回取送文件了。2、 減少數據出錯:人工對數據的管理產生錯誤是無法避免的,一旦產生錯誤,更正起來十分困難,使用本系統后可以減少出錯的幾率,修改錯誤也十分方便。3、 節(jié)約資源:系統普及后可以節(jié)約大量用來紀錄學生信息的紙張,可以減少以用來管理學生的人手,節(jié)約了物質資源和人力資源,從而節(jié)約了學校的開支。1.2 運行環(huán)境1、裝有WIN98以上的操作系統的個人電腦2、安裝Access或 SQL Server其中一種數據庫。第二章 需求分析2.1 可行性分析1設計思想當今社會的信息流量越來越大,信息交流的效率顯得尤為重要。無紙化辦公已經成為社會各工作場所必須具備的條件了。一個有用幾千人乃至上萬人的學校,要對每個學生的資料、成績、課程等數據進行管理,其信息量很大,如果通過人工管理的話將是一項十分巨大的工作,而且容易出錯。我們設計了這套系統為了能讓教師更輕松地對學生的成績、課程、學生資料進行管理,查詢成績,將大大簡化學生資料、成績和課程的添加、修改、查詢等管理的手續(xù)和時間,從而減輕了教師的工作負擔和繁瑣。2技術可行性C/S 模式的客戶端需要安本裝軟件通過對數據庫的訪問就可以得到所需信息,比其他方式更容易管理,符合使用者對使用系統的要求。為我們提供了系統設計的基本思想,為我們提供了系統設計的基本方向。3環(huán)境可行性 現在學校教師已經普遍配有計算機,而且采用的是C/S模式,不需要為客戶安裝什么特殊的軟件,甚至不要求計算機能上網的要求。2.2 系統需求1功能需求整個系統共劃分為學生成績管理、學生資料管理、課程管理、登陸信息管理和用戶管理五大模塊,其中課程管理模塊提供用戶對課程的基本管理功能,包括課程的添加、修改、刪除和瀏覽。學生資料管理模塊提供用戶對學生資料的基本管理功能,包括學生資料的添加、修改、刪除和查詢。系統功能層次圖如圖2-1所示。成績管理系統學生資料管理用戶管理登陸信息管理課程管理學生成績管理圖 2.1系統功能層次圖2性能要求所開發(fā)的系統能在安裝有WIN98以后的系統上正常運行,數據庫文件的查詢修改所需響應時間不能大于10秒。要求系統能對數據庫信息的基本保密,并對超級管理員提供對數據庫的直接修改功能,對不同的對象提供不同的權限資格,讓使用者不能越權修改資料,并且要求數據的唯一,不能產生數據重復輸入的情況。對于源代碼能保密,出現問題后能及時的做出相應的調整。要求客戶機上有安裝Access或 SQL Server等數據庫。2.3 數據流程圖 如下圖2.2所示圖 2.2 數據流程圖2.4 數據字典數據字典是關于數據的信息集合,也就是對數據流圖中包含的所有元素的定義的集合。數據字典的作用是在軟件分析和設計的過程中給人提供關于數據的描述信息。本軟件的相關數據字典如表2-1下:表2-1 數據字典名字:學生信息記錄別名:描述:描述學生的具體信息的信息表定義:學生信息記錄 = 學號 + 姓名 + 性別 + 年齡 + 班級 位置:登陸用戶信息表(tb_login)學生信息表(tb_stuInfo)名字:教師注冊表別名:系統登陸用戶信息描述:教師注冊為本系統的合法用戶時,所提供給用戶的信息。定義:教師注冊表 = 系統ID + 教師號 + 姓名 + 性別 + 院系位置:登陸用戶信息表(tb_login)教師信息表(tb_teacherInfo)名字:課程安排表記錄別名:描述:記錄課程安排的信息表定義:課程安排表記錄 = 科目號 + 科目名 + 上課時間+上課地點位置:課程安排表(tb_claInfo)數據項描述:系統ID = 教師登陸用戶名 | 管理員登陸用戶名 | 學生登陸用戶名教師登陸用戶名 = 0字母或數字12管理員登陸用戶名 = 0字母或數字12學生登陸用戶名 = 學號學號 = 12數字字符12第三章 概念結構設計3.1 實體E-R圖E-R圖(Entity-Relationship Diagran)是用來描述現實世界的概念模型。本系統的主要E-R圖3.1 圖3.6所示:管理員姓名性別系統ID圖3.1 管理員實體E-R圖教師教師號姓名性別系統ID圖3.2 教師實體E-R圖姓名學號性別年齡班級學生圖3.3 學生教師實體E-R圖姓名學號課程名表號班級成績圖3.4 成績實體E-R圖課程課程號課程名圖3.5 課程實體E-R圖院系籍貫入學時間專業(yè)班級學生資料政治面貌最高學歷圖3.6 學生資料實體E-R圖3.2 實體之間關系E-R圖圖 3.7實體之間關系E-R圖PS:管理員和學生、教師之間是管理的關系,由管理員管理學生和教師的權限。管理員具有最高權利,并管理課程安排;也可以對學生資料和學生成績進行管理。教師和成績、學生資料之間是管理的關系,由教師對成績、學生資料的添加、刪除、修改等功能進行管理;與課程是查詢關系,教師只能查詢課程安排。學生和課程、成績、學生資料之間是查詢的關系,學生在課程、成績、學生資料的模塊中查詢信息。3.3 課程管理模塊設計權限設計:權限為2的使用者為學生,權限為1的使用者為教師,權限為0的使用者為管理員。課程管理模塊:能提供基本的課程管理功能:添加課程、修改課程、刪除課程、瀏覽課程,每個功能的具體要求如下:課程管理功能層次圖如圖3.2所示:課程管理模塊課程添加課程修改課程查詢課程刪除圖3.2 課程管理功能層次圖 添加課程:為權限為0的用戶提供課程添加功能,要求能添加課編號、課程名稱。修改課程:為權限達為0的用戶提供課程修改功能,為了保證課程編號唯一,只能修改課程名稱,不能對課程編號進行修改,如果要修改課程編號,請先刪除課程,再添加對應課程的編號和名稱。刪除課程:為權限為0的用戶提供課程刪除功能,選擇要刪除的課程編號,顯示出該課程的相關信息,確認后刪除課程。瀏覽課程:為所有用戶提供課程瀏覽功能,將所有課程信息以表格的形式顯示到新窗體上。3.4 學生資料管理模塊學生信息管理模塊:記錄學生基本信息,包括學生的學號、姓名、性別、出生日期、所在院系、專業(yè)、聯系方式以及備注信息,對學生的基本資料進行添加、修改、刪除、查詢等基本的管理操作。學生資料管理功能層次圖3.3所示學生資料管理模塊學生資料添加學生資料修改學生資料查詢學生資料刪除圖3.3 學生資料管理功能層次圖添加學生信息:為權限是1或0的用戶提供學生信息添加功能,要求能添加學生資料的所有項,并且確保學生學號的唯一性。修改學生信息:為權限是1或0的用戶提供學生信息修改功能,輸入要修改的學生學號后生成修改學生資料的頁面,并在上面進行修改操作,要求能修改學生資料。刪除學生信息:為權限是1或0的用戶提供學生信息刪除功能,要求在輸入要刪除的學生學號后生成刪除學生資料的頁面,使用者得到確認后,徹底的刪除改學生的所有資料。查詢學生信息:為所有用戶提供學生資料查詢功能,能提供不同類型的查詢,包括全部查詢、所在專業(yè)、班級、學號、姓名的查詢,在選擇選項并輸入相應的數值后,生成學生的資料。第四章 邏輯結構設計邏輯結構設計的任務就是把概念結構設計階段設計好的基本E-R圖轉換為與選用DBMS產品所支持的數據模型相符合的邏輯結構。本系統的邏輯結構如下圖4.1 圖4.4所示:圖4.1 tb_login 登陸用戶基本信息表圖4.2 tb_score 學生成績基本信息表圖4.3 tb_stuinfo 學生基本信息表圖4.4 tb_clas 課程基本信息表第五章 物理設計及實施5.1 系統數據庫設計數據庫包括用戶表、課程表、成績表、學生資料表,在每個表中要求能紀錄相應的基本信息,并做到分類和自動排序。在設計過程中,本機調試時采用了SQL數據庫。5.2 相關模塊數據庫設計1 系統用戶表記錄的系統登陸用戶的信息:登陸用戶資料表(tb_login) 如圖5.1所示:(以下所有圖,為了方便截圖,建立表語句后,加了個select 語句,所以有顯示批查詢完成)圖5.1 登陸用戶表2 學生成績表記錄了學生各科成績學生成績表(tb_score)如圖5.2所示:圖5.2 學生成績表3 課程表紀錄了課程的基本信息:課程資料表(tb_course)如圖5.3所示圖5.3 課程資料表 4、學生資料表記錄了學生的基本信息:學生資料表如圖5.4所示:圖5.4 學生資料表第六章 系統設計及主要界面介紹6.各主要界面介紹6.1 登陸界面登陸界面Frm_login如圖6.1所示:圖6.1 登陸界面6.2 系統主要界面(本系統的主界面具體的實際功能只有修改密碼,主要是起和后邊各個窗體連接作用,相當于導航器,功能不可小視 ,界面設計全是自己用photoshop等軟件自己設計的,所有素材保留在本程序目錄下的skin文件夾中)系統主要界面Frm_tmain 系統簡介如圖6.2所示:圖6.2 系統簡介系統幫助如圖6.所示:(主要是連接了些網上關于vb6.0和sql server 2000的資料,沒有自己設置窗體和文本)圖6. 幫助主題更改密碼界面如圖6.所示:圖6. 更改密碼成績查詢界面如圖6.5所示下:(查詢中也還有其他按紐功能,大體相同,不一一介紹)圖6.5 成績查詢成績查詢結果顯示如下如圖6.6所示(注:為了方便檢查我在數據庫中加入了本班部分同學的信息,各個窗體的相關標簽是相互關聯的,如上邊查詢的是200522030109,點擊查詢得到以下表中的信息,下同)圖6.6 成績查詢結果成績錄入界面如如圖6.7所示圖6.7 錄入成績選擇相應的科目和班級提交后得到以下頁面如圖6.8所示圖6.8 錄入成績表格信息修改界面如下如圖6.9所示圖6. 修改信息選擇相應的科目和班級提交后得到以下頁面:在此錄入修改信息,如下圖6.10所示圖6. 修改成績表格以下是注冊信息表如圖6.11所示圖6. 注冊界面(兩個)6.2編碼實現:6.1 連接數據庫及網絡函數申明這是兩模塊:modSql和toInternet的代碼(為了方便后邊的代碼方便簡單,就把這兩個常用部分,定義了兩個單獨模塊)如下:代碼簡單,不一一解釋了模塊一:ModSql:Public Function ExecuteSql(ByVal strSql As String) As ADODB.RecordsetOn Error GoTo ExecuteSql_Error 處理錯誤 Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Set cnn = New ADODB.Connection Set rst = New ADODB.Recordset cnn.Open "filedsn=db_score.dsn;uid=sa;pwd=" rst.Open Trim$(strSql), cnn, adOpenKeyset, adLockOptimistic Set ExecuteSql = rstExecuteSql_Exit: Set rst = Nothing Set cnn = Nothing Exit FunctionExecuteSql_Error:Msgbox ("數據哭操作失敗,請檢查數據源配置!"),vbokonly Resume ExecuteSql_ExitEnd Function模塊二:toInternet:Rem 連接網絡 .api函數Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPublic Const SW_SHOWNORMAL = 1Public Sub toWeb(ByVal URL As String)Dim Sus As LongSus = ShellExecute(Handle, vbNullString, URL, vbNullString, nil, SW_SHOWNORMAL)End Sub 6.2 登陸界面實現其中有關代碼如下:Option ExplicitPrivate Sub CmdAdmin_Click() MsgBox "I am sorry! You are not the admin.", vbOKOnly + vbExclamation, "HKjsj052201h"End SubPrivate Sub CmdEnter_Click() Dim strSql As String sql查詢語句 Dim rst As New ADODB.Recordset If Trim(TxtUser.Text) = "" Then MsgBox "請輸入正確的用戶名!", vbOKOnly + vbExclamation, "警告" TxtUser.SetFocus Else strSql = "select * from tb_login where userid =" & TxtUser.Text & " " Set rst = ExecuteSql(strSql) If rst.EOF = True Then MsgBox "用戶名不存在,請重新輸入!", vbOKOnly + vbExclamation, "警告" Set rst = ExecuteSql(strSql) TxtUser.SetFocus Else If Trim(rst.Fields("userpwd") = Trim(TxtPwd.Text) Then rst.Close Me.Hide Frm_tMain.Show Else MsgBox "密碼不正確,請重新輸入!", vbOKOnly + vbExclamation, "警告" TxtPwd.Text = "" TxtPwd.SetFocus End If End If End If End SubPrivate Sub CmdNewuser_Click() Frm_Login.Hide Frm_Regester.ShowEnd Sub6.3 主界面代碼如下Private Sub CmdAddStu_Click() FmeAdd.Visible = True Frmcla04.Visible = FalseEnd SubPrivate Sub CmdAlterScore04_Click() FmeAdd.Visible = False Frmcla04.Visible = TrueEnd SubPrivate Sub CmdCan01_Click() TxtYuanxi01 = "" TxtMajor01 = "" TxtClas01 = ""End SubPrivate Sub CmdChaXun05_Click() Frm_tMain.Hide Frm_Stu_Score.ShowEnd SubPrivate Sub CmdCla_Click() FClaIn.Visible = True FSubIn.Visible = FalseEnd SubPrivate Sub CmdCutStu_Click() FmeAdd.Visible = True Frmcla04.Visible = FalseEnd SubPrivate Sub Cmdok01_Click() Frm_tMain.Hide Frm_InScores.ShowEnd SubPrivate Sub CmdOk03_Click() FrmSub04.Visible = True Frmcla04.Visible = FalseEnd SubPrivate Sub CmdOk02_Click() FClaIn.Visible = True FSubIn.Visible = FalseEnd SubPrivate Sub CmdOk05_Click() Me.Hide Frm_AlterScore.ShowEnd SubPrivate Sub CmdSelSCore05_Click() Fmeclas05.Visible = True FmeZdy05.Visible = False FmeCxStu05.Visible = FalseEnd SubPrivate Sub CmdStu05_Click() FmeCxStu05.Visible = True FmeZdy05.Visible = False Fmeclas05.Visible = FalseEnd SubPrivate Sub CmdSub_Click() FClaIn.Visible = False FSubIn.Visible = TrueEnd SubPrivate Sub CmdXcode_Click() If TxtNewcode01.Text <> TxtNewcode02.Text Then MsgBox "兩次輸入的密碼不一樣!", vbOKOnly + vbExclamation, "錯誤" End If Dim rst As New ADODB.Recordset Dim strSql As String strSql = "update tb_login set userpwd = " & TxtNewcode01.Text & " where userid =" & Frm_Login.TxtUser.Text & " " Set rst = ExecuteSql(strSql) MsgBox "密碼修改成功!", vbOKOnly + vbExclamation, "HKJSJ052201H" End SubPrivate Sub CmdZdy_Click() FmeZdy05.Visible = True Fmeclas05.Visible = False FmeCxStu05.Visible = FalseEnd SubPrivate Sub Form_Load() CobSub04.AddItem ("軟件工程") CobSub04.AddItem ("匯編語言") CobSub04.AddItem ("數據庫設計") CobSub04.AddItem ("計算機圖形學") CobSub04.AddItem ("JAVA程序設計") CobSub04.AddItem ("計算機組成原理")End SubPrivate Sub Form_Unload(Cancel As Integer) If MsgBox("真的要退出本系統嗎?", vbOKCancel + vbDefaultButton2, "退出系統") = vbCancel Then Cancel = 1End SubPrivate Sub LblHelp01_Click() Me.Hide Frm_AD.ShowEnd SubPrivate Sub LblHelp02_Click() Call toWeb("End SubPrivate Sub LblHelp03_Click() Call toWeb("")End SubPrivate Sub LblHelp04_Click() Call toWeb("End SubPrivate Sub LblHelp05_Click() Me.Hide Frm_421.ShowEnd SubPrivate Sub Timer1_Timer()LblTime.Caption = " 歡迎使用本系統! 祝學習工作愉快 " + Format(Now, "yyyy/mm/dd") _+ "" + Format(Now, "dddd") + " " + Format(Now, "hh:mm:ss AM/PM")End Sub6. 成績錄入界面代碼Private Sub Form_Load()With MSFlexGrid1 固定表頭 .FixedRows = 1 表頭項居中 .FillStyle = flexFillRepeat .Col = 0 .Row = 0 .RowSel = 1 .ColSel = .Cols - 1 .CellAlignment = 4 .Rows = 25 .Cols = 5End With 設置MSFlexGrid表格的列寬 MSFlexGrid1.ColWidth(0) = 1900 MSFlexGrid1.ColWidth(1) = 1800 MSFlexGrid1.ColWidth(2) = 3200 MSFlexGrid1.ColWidth(3) = 1200 MSFlexGrid1.ColWidth(4) = 2600 表頭 MSFlexGrid1.TextMatrix(0, 0) = " 學號" MSFlexGrid1.TextMatrix(0, 1) = " 姓名" MSFlexGrid1.TextMatrix(0, 2) = " 課程名" MSFlexGrid1.TextMatrix(0, 3) = " 分數" MSFlexGrid1.TextMatrix(0, 4) = " 備注"ShowData no return 添寫固定科目 For k = 1 To 17 MSFlexGrid1.TextMatrix(k, 2) = LblTitle.Caption Next k End Sub 讀取數據庫的函數/循環(huán)讀入Public Sub ShowData() Dim j As Integer Dim i As Integer strSql = "select 學號,姓名 from tb_score" Set rst = ExecuteSql(strSql) If rst.EOF = False Then With MSFlexGrid1 .Rows = 1 Do While Not rst.EOF .Rows = .Rows + 1 For i = 1 To rst.Fields.Count Select Case rst.Fields(i - 1).Type Case adDBDate .TextMatrix(.Rows - 1, i - 1) = Format(rst.Fields(i - 1) & "", "yyyy-mm-dd") Case Else .TextMatrix(.Rows - 1, i - 1) = rst.Fields(i - 1) & "" End Select Next i rst.MoveNext Loop End With End If rst.Close End Sub6. 成績修改界面Option ExplicitDim rst As New ADODB.RecordsetDim strSql As StringDim k As IntegerDim j As IntegerDim i As IntegerPublic Sub ShowData() strSql = "select 學號,姓名," & Trim(LblSub.Caption) & " from tb_score" Set rst = ExecuteSql(strSql) If rst.EOF = False Then With MSFlexGrid1 .Rows = 1 Do While Not rst.EOF .Rows = .Rows + 1 For i = 1 To rst.Fields.Count Select Case rst.Fields(i - 1).Type Case adDBDate .TextMatrix(.Rows - 1, i - 1) = Format(rst.Fields(i - 1) & "", "yyyy-mm-dd") Case Else .TextMatrix(.Rows - 1, i - 1) = rst.Fields(i - 1) End Select Next i rst.MoveNext Loop End With End If rst.Close End SubPublic Sub ShowScore() strSql = "select " & Trim(LblSub.Caption) & " from tb_score" Set rst = ExecuteSql(strSql) If rst.EOF = False Then With MSFlexGrid1 .Rows = 1 Do While Not rst.EOF .Rows = .Rows + 1 For i = 1 To rst.Fields.Count .TextMatrix(.Rows - 1, i + 2) = rst.Fields(i - 1) & "" Next i rst.MoveNext Loop End With End If rst.Close End SubPrivate Sub Command1_Click()End SubPrivate Sub CmdBack_Click() Me.Hide Frm_tMain.ShowEnd SubPrivate Sub CmdOk_Click() MsgBox "修改數據成功!單擊“確定”返回", vbOKOnly + vbInformation, "計算機052201H"End SubPrivate Sub CmdReTry_Click() Dim i As Integer For i = 0 To 16 Text1(i) = "" Next iEnd SubPrivate Sub Form_Load()On Error Resume NextLblSub.Caption = Frm_tMain.CobSub04.Text 顯示biao qianMSFlexGrid1.Rows = 24MSFlexGrid1.Cols = 4設置MSFlexGrid表格的列寬 MSFlexGrid1.ColWidth(0) = 2400 MSFlexGrid1.ColWidth(1) = 2400 MSFlexGrid1.ColWidth(2) = 1800 MSFlexGrid1.ColWidth(3) = 1800 表頭 MSFlexGrid1.TextMatrix(0, 0) = " 學號" MSFlexGrid1.TextMatrix(0, 1) = " 姓名" MSFlexGrid1.TextMatrix(0, 2) = " 成績" MSFlexGrid1.TextMatrix(0, 3) = " 編輯" 填充第一列 For k = 1 To 23 MSFlexGrid1.TextMatrix(k, 0) = " 20052203010" & k Next kShowScoreShowDataEnd Sub6. 成績查詢Option ExplicitDim rst As New ADODB.RecordsetDim rstName As New ADODB.RecordsetDim strSql, strSqlName As StringPublic Sub ShowData() Dim j As Integer Dim i As Integer strSql = "select 軟件工程,匯編語言, 數據庫設計,計算機圖形學,JAVA程序設計,計算機組成原理 from tb_score where 學號 = " & LblStuNo.Caption & " " Set rst = ExecuteSql(strSql) If rst.EOF = False Then With MSFlexGrid1 .Rows = 1 Do While Not rst.EOF .Rows = .Rows + 1 For i = 1 To rst.Fields.Count Select Case rst.Fields(i - 1).Type Case adDBDate .TextMatrix(.Rows - 1, i - 1) = Format(rst.Fields(i - 1) & "", "yyyy-mm-dd") Case Else .TextMatrix(.Rows - 1, i - 1) = rst.Fields(i - 1) & "" End Select Next i rst.MoveNext Loop End With End If rst.Close End SubPublic Sub ShowName() Dim i As Integer strSql = "select 姓名 from tb_score where 學號 = " & LblStuNo.Caption & " " Set rst = ExecuteSql(strSql) If rst.EOF = False Then LblStuName.Caption = rst.Fields("姓名") End If rst.CloseEnd SubPrivate Sub CmdOk_Click() Unload Me Frm_tMain.ShowEnd SubPrivate Sub Form_Load()LblStuNo.Caption = Frm_tMain.TxtStuNoC05.Text With MSFlexGrid1 固定表頭 .FixedRows = 1 表頭項居中 .FillStyle = flexFillRepeat .Col = 0 .Row = 0 .RowSel = 1 .ColSel = .Cols - 1 .CellAlignment = 4 .Rows = 2 .Cols = 6 End With guding liekuan MSFlexGrid1.ColWidth(0) = 1200 MSFlexGrid1.ColWidth(1) = 1200 MSFlexGrid1.ColWidth(2) = 1500 MSFlexGrid1.ColWidth(3) = 2000 MSFlexGrid1.ColWidth(4) = 2000 MSFlexGrid1.ColWidth(5) = 2400 MSFlexGrid1.TextMatrix(0, 0) = "軟件工程" MSFlexGrid1.TextMatrix(0, 1) = "匯編語言" MSFlexGrid1.TextMatrix(0, 2) = "數據庫設計" MSFlexGrid1.TextMatrix(0, 3) = "計算機圖形學" MSFlexGrid1.TextMatrix(0, 4) = "JAVA程序設計" MSFlexGrid1.TextMatrix(0, 5) = "計算機組成原理" ShowName 函數調用ShowData 函數調用End Sub6. 用戶注冊Option ExplicitPrivate Sub CmdOk_Click()On Error Resume Next Dim cn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim i As Long Dim strSqlReg, strSqlChk As String strSqlReg = "insert into tb_login (userid,userpwd) values (" & NewId.Text & "," & NewPwd1.Text & " )" strSqlChk = "select userid from tb_login where userid =" & NewId.Text & " " Set rst = ExecuteSql(strSqlChk) If Trim(NewId.Text) = "" Then MsgBox "請輸入正確的用戶名!", vbOKOnly + vbExclamation, "警告" NewId.SetFocus ElseIf NewId.Text = rst.Fields("userid") Then MsgBox "此用戶名已經被注冊!請重新輸入新用戶名!", vbOKOnly + vbExclamation, "警告" End If If NewPwd0.Text <> NewPwd1.Text Then MsgBox "對不起!你你兩次輸入的密碼不一致!請仔細核對后重新輸入!", vbOKOnly + vbExclamation, "警告" NewPwd0.Text = "" NewPwd1.Text = "" NewPwd0.SetFocus End If Set rst = Nothing Set rst = ExecuteSql(strSqlReg) MsgBox "注冊成功!祝使用學習工作愉快!", vbOKOnly + vbExclamation, "謝謝使用" End SubPrivate Sub CmdToUp_Click() Frm_Regester.Hide Frm_Login.ShowEnd SubPrivate Sub EnterEle_Click() Frm_Regester.Hide Frm_RegEle.ShowEnd Sub結束語 “ 一個軟件產品或一項軟件服務幫助客戶改進了他們的業(yè)務,因此獲得客戶支付的報酬,軟件產品和服務的付出終于取得了回報?!蓖ㄟ^本次課程設計,我終于明白學的理論和實際運用原來有這么多意想不到的差別,而只有通過自己反復動手才能發(fā)現這些微妙的細節(jié)。無論是在設計數據庫還是在編程方面,我都收獲頗多,而這些收獲的的來,全來源于張老師對我們的嚴格和負責。我的報告修改了無數次了。我也從這無數次中鞏固了許多原本沒掌握好的知識和一種嚴謹的做人道理,也許這次還不能達到老師的嚴格要求(為此,小女子在此表示深深的歉意=_=),不過在以后的學習生活中,無論是干什么我都會嚴格要求自己,都會想到這段難忘的數據庫設計周。 首先,我想對張老師說:張老師,您辛苦了!其次,我要感謝我們的學校領導,給我們安排了這次課程設計,給了我們展示自己才能的舞確立了我們的這個作業(yè)方向,設立了我這個作業(yè)項目(本來我是用JSP寫的,能力實在有限,就又用VB和SQL所以部分界面有些網頁化,就沒修改了。見諒),不過沒有他們的英明決策,我這個"產品"就不會在這個時候出現在這個美妙的地方。 其次,我要感謝我的朋友和同學,沒有他們的支持,就沒有這么“出色的軟件”啦;然后我還要感謝我的爸爸媽媽,親戚朋友,沒有他們哪兒有我呀,當然就沒的這軟件了. 附錄 使用說明1 本程序采用vb 6.0 ,SQL server 2000.2 為了方便老師檢驗,里邊配帶了已經寫好的數據庫,在項目子目錄里面的sql目錄里,將db_score.sql的文件打開后,拷貝到SQL Server 2000的查詢分析器里,然后執(zhí)行將產生需要的數據庫結構。3 配置ODBC數據源,按照說明進行數據源的配置,程序對數據庫的訪問需要通過ODBC來實現。打開"控制面板"中"管理工具"的"ODBC(數據源)",在彈出的對話框中創(chuàng)建文件DSN。需要創(chuàng)建的文件DSN,創(chuàng)建名為db_score.dsn,登錄方式選擇"使用用戶輸入登錄ID和密碼的SQL Server驗證",登錄ID為sa,密碼為空,選擇連接數據庫為db_score(就是在查詢分析器里創(chuàng)建的數據庫)。4 運行