畢業設計(論文)-基于VB的學生管理系統設計與實現畢業設計.doc_第1頁
畢業設計(論文)-基于VB的學生管理系統設計與實現畢業設計.doc_第2頁
畢業設計(論文)-基于VB的學生管理系統設計與實現畢業設計.doc_第3頁
畢業設計(論文)-基于VB的學生管理系統設計與實現畢業設計.doc_第4頁
畢業設計(論文)-基于VB的學生管理系統設計與實現畢業設計.doc_第5頁
已閱讀5頁,還剩47頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

題 目 基于vb的學生管理系統設計與實現目錄【內容摘要】【關鍵詞】 第一章 概述 1.1 開發背景. 1.2 開發環境第二章 系統分析和設計 2.1 系統業務流程圖. 2.2 系統邏輯模型的提出. 2.3 總提模塊的劃分. 2.4各個模塊的功能 2.5數據庫的設計.第三章 系統實現3.1公共模塊.3.2登陸系統.3.3系統管理.3.4學生檔案管理.3.5班級管理.3.6課程管理.3.7成績管理.第四章總結.第五章參考文獻【內容摘要】無論學校大小,每個學校手里總是會有很多很多的學生檔案,而且隨著一年一年的累積,學校規模的逐漸擴大,學生檔案信息是越來越多?,F在隨著中國加入了wto,很多的企業為了能夠加強自己的競爭力,都不約而同的在工作效率和管理的規范性方面下功夫?,F在計算機化管理已經不知不覺中滲透到了各行各業,并且提高了這些行業的效率。學校雖然不算是一個純粹的企業,但是學校的管理一樣需要信息化,而且現在的學校逐漸的往大規模的方向發展,信息化對于學校就顯的更加的重要了。以前的手工管理,已經越來越不適應學校的發展要求了。針對這種情況下,我設計了這么一個簡單的學生檔案管理系統,雖然很小,但是呢,還是有一定的使用價值的。【關鍵詞】學生檔案管理系統 vb6.0 管理信息系統第一章 概述11開發背景現在的社會日新月異,發展的非???。學校的發展也是非常的快了,而且每年都有不同的要求。學生的量也非常的大,資料可能經常性的發生更換,原來手工的管理模式就顯的不怎么的合適了。而且手工的數據是存放在多處的,沒有使用統一管理的模式,數據整理非常的麻煩,統計也困難,很多的情況下,老師都是在重復一些相同的工作。做一些相似的報表,這樣不但降低了工作效率,而且非常的容易出錯。在這種條件下,使用微機管理就顯的非常的合適了。只要你正確的錄入,統計,報表輸出一點問題都沒有的。學生做為學校的最主要的管理對象,學生檔案管理系統就成了學校信息化管理系統中中不可缺少的部分,它的內容對于學校的管理者說都至關重要。但一直以來人們使用傳統人工的方式進行學生的檔案管理,這種管理方式存在著許多缺點,如:效率低,容易出錯,格式不規范。另外時間一長,不容易進行統計和分析。隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對學生檔案進行管理,具有手工管理所無法比擬的優點。例如:檢索迅速、查找方便、可靠性高、存儲量大、壽命長、成本低等。這些優點能夠極大地提高學校學生檔案管理的效率。因此,開發這樣一套管理軟件成為很有必要的事情。而且只要軟件的設計合理,可以為學校提供合理的管理模式。12開發運行環境在操作系統方面,雖然現在linux的發展速度非常的快,但是對于大多數的使用者來說,操作顯然沒有微軟的windows那么的流行和傻瓜化。而且現在計算機的運算速度已經不能和以前相提并論了,而且硬件的價格也一天天的在下降了,所以也不用為了節省整體的造價而改用硬件要求很低的dos系統了。所以我們決定該檔案管理系統將運行在強大的工具來協助管理人員輕松地進行與數據庫的連接和管理。綜上所述,我們選擇了visual basic+sql來開發整個系統。第二章 系統分析和設計21系統業務流程圖詳細調查的重點是對管理業務的流程進行描述,通過采用系統流程圖中部分圖形工具來描述管理活動,進行規范化說明。業務流程圖的符號說明如圖21所示:1、 2、 3、 4、 5、系統中人員 實體或單據 實物或信息流 處理 數據存儲圖21 業務流程圖圖例詳細調查之后,繪制出的學生檔案管理系統的管理業務流程圖如圖22所示。每學年9月份各班學生名單各班學生名單(空白,供填寫學生成績)學生檔案處理報表教導處存檔校領導各班主任各年級主任各班學生名單微機室教導處轉退復留學生名單錄入有關信息打印各班名單學生檔案處理學生檔案處理報表學生檔案處理報表年級主任 圖22 學生檔案管理系統業務流程圖2.2系統邏輯模型的提出系統分析的主要成果是系統的邏輯模型。本系統的邏輯模型主要是以系統的數據流圖和數據字典為主要描述工具。即在對學生成績管理方式和業務流程進行認真分析和研究的基礎上,排除現有組織機構和業務分工所造成的信息障礙。完全從業務管理功能和管理對象出發,按照信息系統中應有的數據流和數據結構來勾畫系統的概貌。2.2.1數據流圖(簡稱為dfd)數據流圖是組織中信息運動的抽象。是在調研的基礎上,從系統的科學性、管理的合理性、實際運動的可行性角度出發。將信息處理功能和彼此之間的聯系自頂向下,逐層分解,從邏輯上精確地描述系統應具有的數據加工功能、數據輸入、數據輸出、數據存儲及數據來源和去向(外部實體)等項目。首先,分析學生檔案管理的總體情況,劃分系統邊界,識別系統的數據來源和去處,確定外部實體,得出系統的頂層數據流程圖;然后劃分出幾個主要的信息管理功能,并明確各功能之間的聯系,繪制出數據流程圖。數據流程圖的符號說明如圖23所示。學生檔案管理系統的頂層數據流程圖如圖24所示。學生檔案管理系統的數據流程圖如圖25所示 外部實體 處理 數據流 數據存儲 圖23 數據流程圖的符號學生簡明情況p學生檔案處理 用戶 校領導學生檔案報表d1 圖24 學生檔案處理的頂層數據流程圖 222數據字典(簡稱為dd)繪制dfd,只是對數據處理和彼此之間的聯系進行了說明。為進一步明確數據的詳細內。述清楚,以便于此后系統設計的進行。這就需要開發人員編寫詳細的數據字典。據項、數據流、數據存儲、加工處理和數據結構的數據字典。23 總體模塊劃分學生信息管理是一項非常重要的工作,它負責整個學校的檔案管理,學生資料管理成績管理等,教務工作者急切希望計算機提高工作效率。在各大中小學校中,用計算機管理學校的信息已經越來有越普遍了。采用學生信息管理系統不僅可以節省人力物力,而且增強學校資料的安全性,提高了學校的管理能力在第一章的開發背景中已經說明了本學生檔案管理系統的流程了,于是在下面的這個功能設計中,我們將針對這里的流程進行設計。我們把系統功能分為如下圖。學生檔案管理系統班級管理學生檔案管理課程管理成績管理系統管理231、登陸系統對于這類系統如果誰都能登陸到本系統的話,系統里面的數據將非常的危險和有可能會受到蓄意破壞者的攻擊了??紤]到數據的安全性,用戶必須擁有密碼才能夠登陸到本系統的主頁面。232、主頁面有5個菜單。分別為。系統管理,學生檔案管理,班級管理,課程管理,成績管理。對于這個主頁面。我們可以完成所有對學生檔案的管理,修改,查詢。方便登陸的用戶進行一系列的操作,提供了方便。24各個模塊的功能系統管理:系統菜單包括有兩個功能添加用戶對于一個系統來說,永遠不可能只是存在一個用戶,用戶的添加體現了這個系統的方便靈活性,適合多人來使用。所有設計了這個功能是理所當然的。學生檔案管理:包括添加檔案菜單,檔案瀏覽菜單。檔案添加正如一個添加用戶一樣。永遠不可能只是存在一個學生的學籍信息,學生畢業后會有新的學生進來,自然要添加新的學生學籍信息。這個菜單恰好提供這個功能,檔案瀏覽當我們將學生的學籍信息存放在數據庫中,最大的方便就是我們有需要知道學生的學籍信息時能夠及時查詢到。因為人的記憶有限,不可能記得住所有學生的學籍信息以及相關的一系列資料,所以就要靠查詢學籍信息來實現了。這個菜單的功能最大的優點就是方便。班級管理單:包括班級瀏覽菜單,班級添加菜單 班級添加菜單 每一年,學校都會增見新的年級,因此就會有新的班級信息添加。 班級瀏覽菜單可以方便學校統一瀏覽班級的信息課程管理菜單:包括基本課程設置,基本課程設置 可以對課程的信息進行修改增加班級課程設置 可以選擇班級相應的課程。成績管理菜單:包括添加添加成績,修改成就,查詢成績??荚囶愋驮O置不同的功課自然有不同的成績。我們針對這個提前對考試類型做下設置。方便學校同學老師查成績。 成績添加 現今的教育 ,學生的成績是體現學生在學校的表現之一。也可以作為對學生評價的準則之一。因次添加學生的成績是比較重要的一個功能。成績瀏覽一個完成的學生管理系統,自然要提供學生的查詢,方便學生和老師25 數據庫設計251數據庫表的建立系統數據庫名稱為studengmis。其中包括allkechengcjclassclasskechengkaoshileixinguserinfoxj第三章 系統實現3.1公共模塊 module1模塊主要三個函數組成,函數executesql用于執行響應的sql命令,函數connstring用于連接字符串,函數executeqx用于檢查權限。代碼如下:public modi as booleanpublic classmodi as booleanpublic xuefeimodi as booleanpublic txtsql as stringpublic find as booleanpublic classfind as booleanpublic xuefeifind as booleanpublic username as stringpublic qxstr as string執行相應的sql命令public function executesql(byval sql as string) as adodb.recordset dim mycon as adodb.connection dim rst as adodb.recordset set mycon = new adodb.connection mycon.connectionstring = connstring mycon.open dim stokens() as string on error goto exectuesql_error stokens = split(sql) if instr(inser,delete,update, ucase(stokens(0) then mycon.execute sql else set rst = new adodb.recordset rst.open trim(sql), mycon, adopenkeyset, adlockoptimistic set executesql = rst end ifexectuesql_exit: set rst = nothing set mycon = nothing exit functionexectuesql_error: resume exectuesql_exitend function連接字符串,用戶可以根據自己的數據庫進行修改相應參數public function connstring() as string connstring = provider=sqloledb.1;persist security info=false;uid=sa;pwd=12345;initial catalog=studentmis;data source=(local)end function檢查用戶的權限public function executeqx(byval txt as integer) as string dim sql as string dim mycon as adodb.connection dim rst as adodb.recordset set mycon = new adodb.connection mycon.connectionstring = connstring mycon.open set rst = new adodb.recordset sql = select admin from userinfo where username= & username & rst.open trim(sql), mycon, adopenkeyset, adlockoptimistic if rst.eof = true then msgbox 非法用戶!, vbexclamation + vbokonly, 警告 executeqx = nothing exit function end if if rst.fields(0) = y then executeqx = admin exit function end if rst.close sql = select readonly from userinfo where username= & username & rst.open trim(sql), mycon, adopenkeyset, adlockoptimistic if rst.fields(0) = y then executeqx = readonly exit function end if select case txt case 1 sql = select qx1 from userinfo where username= & username & case 2 sql = select qx2 from userinfo where username= & username & case 3 sql = select qx3 from userinfo where username= & username & end select on error goto exectuesql_error set rst = new adodb.recordset rst.open trim(sql), mycon, adopenkeyset, adlockoptimistic if rst.fields(0) = y then executeqx = true else executeqx = false end ifexectuesql_exit: set rst = nothing set mycon = nothing exit functionexectuesql_error: resume exectuesql_exitend function32登陸系統 這個模塊主要有確定跟取消組成。確定按紐的主要功能是檢查用戶名和用戶密碼是否正確。以及確定權限。取消按紐則是退出該功能。代碼如下private sub command1_click() dim mrc as adodb.recordset txtsql = select username from userinfo where username= & trim(text1.text) & set mrc = executesql(txtsql) if mrc.eof = true then msgbox 用戶名錯誤!, vbexclamation + vbokonly, 警告 text1.setfocus text1.selstart = 0 text1.sellength = len(text1.text) exit sub end if username = mrc.fields(0) txtsql = select username from userinfo where password= & trim(text2.text) & set mrc = executesql(txtsql) if mrc.eof = true then msgbox 密碼錯誤!, vbexclamation + vbokonly, 警告 text2.setfocus text2.selstart = 0 text2.sellength = len(text2.text) exit sub end if mdiform1.show unload meend subprivate sub command2_click() unload meend subprivate sub text1_keypress(keyascii as integer) if keyascii = 13 then text2.setfocus end ifend subprivate sub text2_keypress(keyascii as integer) if keyascii = 13 then command1.setfocus end ifend sub33系統管理 這個模塊的功能主要是添加用戶。并且設置權限。代碼如下private sub command1_click()if trim(text1(0).text) = then msgbox 用戶名不能為空!, vbexclamation + vbokonly, 警告 text1(0).setfocus exit subend ifif trim(text1(1).text) = then msgbox 密碼不能為空!, vbexclamation + vbokonly, 警告 text1(1).setfocus exit subend ifif trim(text1(2).text) = then msgbox 確認密碼不能為空!, vbexclamation + vbokonly, 警告 text1(2).setfocus exit subend ifif trim(text1(1).text) trim(text1(2).text) then msgbox 確認密碼不正確!, vbexclamation + vbokonly, 警告 text1(2).setfocus exit subend ifdim aa as integeraa = 0if option1(2).value = true then for i = 0 to 3 if check1(i).value = 1 then aa = 1 exit for end ifnext iif aa = 0 then msgbox 普通用戶至少要有一項權限!, vbexclamation + vbokonly, 警告exit subend ifend ifdim mrc as adodb.recordsettxtsql = select * from userinfo where username= & trim(text1(0).text) & set mrc = executesql(txtsql)if mrc.eof = false then msgbox 已存在該用戶!, vbexclamation + vbokonly, 警告 text1(0).setfocus text1(0).selstart = 0 text1(0).sellength = len(text1(0).text) exit subend iftxtsql = select * from userinfoset mrc = executesql(txtsql)mrc.addnew mrc.fields(0) = trim(text1(0).text) mrc.fields(1) = trim(text1(1).text)for i = 0 to 2 if option1(i).value = true then select case i case 0 mrc.fields(admin) = y case 1 mrc.fields(readonly) = y case 2 for j = 0 to 2 if check1(j).value = 1 then select case j case 0 mrc.fields(qx1) = y case 1 mrc.fields(qx2) = y case 2 mrc.fields(qx3) = y end select end if next j end select end if next i mrc.update msgbox 用戶添加成功!, vbexclamation + vbokonly, 警告 text1(0).text = text1(1).text = text1(2).text = end subprivate sub command2_click()unload meend subprivate sub form_load()option1(2).value = trueend subprivate sub form_resize()text1(0).setfocusend subprivate sub option1_click(index as integer)if index 2 thenfor i = 0 to 2 check1(i).enabled = falsenext ielsefor i = 0 to 2 check1(i).enabled = truenext iend ifend sub34學生檔案管理 檔案添加窗體的主要功能是錄入學生的基本檔案。代碼如下dim txtsql1 as stringprivate sub combo1_click(index as integer) dim mrc as adodb.recordset txtsql1 = select 專業,年制 from class where 班級= & trim(combo1(1).text) & set mrc = executesql(txtsql1) mrc.closeend subprivate sub combo1_keypress(index as integer, keyascii as integer) if keyascii = 13 then sendkeys tab end ifend subprivate sub command1_click() for j = 0 to 7 if text1(j) = then ss = msgbox(label1(j).caption & 不能為空!, vbexclamation + vbokonly, 警告) text1(j).setfocus text1(j).selstart = 0 text1(j).sellength = len(text1(j).text) exit sub end if next dim mrc as adodb.recordset txtsql1 = select * from xj where 學號= & trim(text1(0).text) & set mrc = executesql(txtsql1) if modi = false then if mrc.eof = false then sss = msgbox(已經存在該學號的記錄,學號不能重復!, vbexclamation + vbokonly, 警告) text1(0).setfocus text1(0).selstart = 0 text1(0).sellength = len(text1(0).text) mrc.close exit sub end if end if if not isdate(text1(2).text) then 判斷是否日期格式 ssss = msgbox(應輸入日期 mm-dd-yy, vbinformation + vbokonly, 警告) text1(2).setfocus text1(2).selstart = 0 text1(2).sellength = len(text1(2).text) exit sub end if if not isdate(text1(6).text) then ssss = msgbox(應輸入日期 mm-dd-yy, vbinformation + vbokonly, 警告) text1(6).setfocus text1(6).selstart = 0 text1(6).sellength = len(text1(6).text) exit sub end if if modi = true then txtsql1 = update xj set 學號= & trim(text1(0).text) & ,姓名= & trim(text1(1).text) & ,性別= & trim(combo1(0).text) & ,班級= & trim(combo1(1).text) & ,出生年月= & trim(text1(2).text) & ,家庭住址= & trim(text1(3).text) & ,郵政編碼= & trim(text1(4).text) & ,聯系電話= & trim(text1(5).text) & ,入學時間= & trim(text1(6).text) & ,備注= & trim(text1(7).text) & where 學號= & trim(form3.msf1.textmatrix(form3.msf1.row, 1) & set mrc = executesql(txtsql1) txtsql1 = update cj set 學號= & trim(text1(0).text) & where 學號= & trim(form3.msf1.textmatrix(form3.msf1.row, 1) & set mrc = executesql(txtsql1) txtsql1 = update jf set 學號= & trim(text1(0).text) & where 學號= & trim(form3.msf1.textmatrix(form3.msf1.row, 1) & set mrc = executesql(txtsql1) unload me exit sub end if txtsql1 = select * from xj set mrc = executesql(txtsql1) mrc.addnew for i = 4 to 9 mrc.fields(i) = text1(i - 2).text next i mrc.fields(0) = trim(text1(0).text) mrc.fields(1) = trim(text1(1).text) mrc.fields(2) = trim(combo1(0).text) mrc.fields(3) = trim(combo1(1).text) mrc.update set mrc = nothing for j = 0 to 7 text1(j) = nextend subprivate sub command2_click() unload meend subprivate sub form_activate() text1(0).setfocus form1.load1end subpublic sub load1() dim mrc as adodb.recordset txtsql1 = select distinct 班級 from class order by 班級 set mrc = executesql(txtsql1) if mrc.eof then ddd = msgbox(請先設置班級部署!, 警告) mrc.close exit sub end if combo1(1).clear mrc.movefirst do while not mrc.eof combo1(1).additem mrc.fields(0) mrc.movenext loop combo1(1).listindex = 0 combo1(0).listindex = 0 if modi then 如果是修改狀態 me.caption = 修改 txtsql1 = select * from xj where 學號= & trim(form3.msf1.textmatrix(form3.msf1.row, 1) & set mrc = executesql(txtsql1) mrc.movefirst for i = 4 to 9 text1(i - 2).text = mrc.fields(i) next i text1(0).text = mrc.fields(0) text1(1).text = mrc.fields(1) combo1(0).text = mrc.fields(2) combo1(1).text = mrc.fields(3) mrc.close else me.caption = 登記 for i = 2 to 7 text1(i).text = next i text1(6).text = date text1(0).text = text1(1).text = end ifend subprivate sub text1_gotfocus(index as integer) if index = 6 then text1(6).selstart = 0 text1(6).sellength = len(text1(6).text) end ifend subprivate sub text1_keypress(index as integer, keyascii as integer) if keyascii = 13 then sendkeys tab end ifend sub檔案瀏覽窗體的功能是能夠查詢學生的基本信息。代碼如下public printstr as stringprivate declare function setwindowpos lib user32 (byval hwnd as long, byval hwndinsertafter as long, byval x as long, byval y as long, byval cx as long, byval cy as long, byval wflags as long) as longpublic sub showtitle() msf1.clear dim i as integer with msf1 .cols = 14 .textmatrix(0, 1) = 學號 .textmatrix(0, 2) = 姓名 .textmatrix(0, 3) = 性別 .textmatrix(0, 4) = 年級 .textmatrix(0, 5) = 班級 .textmatrix(0, 6) = 專業 .textmatrix(0, 7) = 年制 .textmatrix(0, 8) = 出生年月 .textmatrix(0, 9) = 家庭住址 .textmatrix(0, 10) = 郵政編碼 .textmatrix(0, 11) = 聯系電話 .textmatrix(0, 12) = 入學時間 .textmatrix(0, 13) = 備注 .colwidth(0) = 200 .colwidth(1) = 500 .colwidth(2) = 700 .colwidth(3) = 500 .colwidth(4) = 1000 .colwidth(5) = 800 .colwidth(6) = 700 .colwidth(7) = 800 .colwidth(8) = 800 .colwidth(9) = 3000 .colwidth(10) = 800 .colwidth(11) = 1000 .colwidth(12) = 800 .colwidth(13) = 6000 .fixedrows = 1 for i = 1 to 13 .colalignment(i) = 0 next i .fillstyle = flexfillsingle .col = 0 .row = 0 .rowsel = 1 .colsel = .cols - 1 .cellalignment = 4 .row = 1 end withend subprivate sub form_activate()if find = true thenform4.zorderend ifif find = true then exit subelseif modi = true thenshowdata treeview1_dblclick modi = falseelse treeend ifend subpublic sub showdata()dim j as integerdim i as integerdim mrc as adodb.recordsetset mrc = new adodb.recordset set mrc = executesql(txtsql) if mrc.eof = false then mrc.movefirst with msf1 .rows = 50 .row = 1 do while not mrc.eof .rows = .rows + 1 for i = 1 to mrc.fields.count .textmatrix(.row, i) = mrc.fields(i - 1) next i .row = .row + 1 mrc.movenext loop end with else if find = true then form3.hide form4.show zzz = msgbox(對不起,沒有此學生的檔案記錄!, vbokonly, 查詢) form4.zorder (0) form4.text1(0).setfocus end if end if set mrc = nothingend subprivate sub form_unload(cancel as integer)if find = true then find = false form4.text1(0).setfocusend ifend subpublic sub tree()treeview1.nodes.cleardim nodex as nodedim mrc as adodb.recordsetdi

溫馨提示

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

評論

0/150

提交評論