![畢業(yè)設(shè)計(jì)說(shuō)明書范例(學(xué)生學(xué)籍管理系統(tǒng)論文)(共39頁(yè))_第1頁(yè)](http://file4.renrendoc.com/view/0f3c0f30b019234329318bdb6f55d216/0f3c0f30b019234329318bdb6f55d2161.gif)
![畢業(yè)設(shè)計(jì)說(shuō)明書范例(學(xué)生學(xué)籍管理系統(tǒng)論文)(共39頁(yè))_第2頁(yè)](http://file4.renrendoc.com/view/0f3c0f30b019234329318bdb6f55d216/0f3c0f30b019234329318bdb6f55d2162.gif)
![畢業(yè)設(shè)計(jì)說(shuō)明書范例(學(xué)生學(xué)籍管理系統(tǒng)論文)(共39頁(yè))_第3頁(yè)](http://file4.renrendoc.com/view/0f3c0f30b019234329318bdb6f55d216/0f3c0f30b019234329318bdb6f55d2163.gif)
![畢業(yè)設(shè)計(jì)說(shuō)明書范例(學(xué)生學(xué)籍管理系統(tǒng)論文)(共39頁(yè))_第4頁(yè)](http://file4.renrendoc.com/view/0f3c0f30b019234329318bdb6f55d216/0f3c0f30b019234329318bdb6f55d2164.gif)
![畢業(yè)設(shè)計(jì)說(shuō)明書范例(學(xué)生學(xué)籍管理系統(tǒng)論文)(共39頁(yè))_第5頁(yè)](http://file4.renrendoc.com/view/0f3c0f30b019234329318bdb6f55d216/0f3c0f30b019234329318bdb6f55d2165.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PAGE PAGE 47XX職業(yè)技術(shù)(jsh)學(xué)院 畢業(yè)論文(b y ln wn)(設(shè)計(jì))系 別專 業(yè)班 級(jí)姓 名學(xué) 號(hào)課 題指導(dǎo)教師【摘 要】學(xué)生學(xué)籍管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)(kif)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。經(jīng)過分析,我使用 MICROSOFT公司的 VISUAL BASIC開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡(jiǎn)潔操縱數(shù)據(jù)庫(kù)的智能化對(duì)象,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對(duì)初始原型系統(tǒng)進(jìn)行
2、需求(xqi)迭代,不斷修正和改進(jìn),直到形成用戶滿意的可行系統(tǒng)。【關(guān)鍵字:】控件 窗體 域 ABSTRACTThe system of managing student file is a typical application of managing information system (know as MIS),which mainly includes building up data-base of back-end and developing the application interface of front-end. The former required consisten
3、cy and integrality and security of data. The later should make the application powerful and easily used. By looking up lots of datum, I selected Visual Basic presented by Microsoft because of its objective tools in Win32. VB offered a series of ActiveX operating a database. It can give you a short c
4、ut to build up a prototype of system application. The prototype could be modified and developed till users are satisfied with it. Keywords:ActiveX Form Field 目 錄1、前言 62、 系統(tǒng)(xtng)概述 711 開發(fā)(kif)背景712 學(xué)籍(xuj)管理系統(tǒng)概述713 開發(fā)環(huán)境及開發(fā)工具介紹7131開發(fā)環(huán)境 8132 開發(fā)工具93、 設(shè)計(jì)總體規(guī)劃1121 數(shù)據(jù)庫(kù)設(shè)計(jì)1122 設(shè)計(jì)流程圖1123設(shè)計(jì)功能分析134、 設(shè)計(jì)具體實(shí)現(xiàn) 1431
5、 準(zhǔn)備工作 1532 模塊設(shè)計(jì) 1733 用戶界面的實(shí)現(xiàn) 18331 登陸(dng l)界面(frmlogin) 19332 MDI主窗體(frmmain)20333 用戶(yngh)管理窗體(frmmanage)18334 修改(xigi)密碼窗體(frmchgPWD)24335 瀏覽學(xué)生信息窗體(frmstu)36336添加/修改學(xué)生信息窗體(frmAddstu)37337學(xué)生學(xué)籍管理模塊 38338 報(bào)表功能模塊39主要參考文獻(xiàn)43 1、前 言學(xué)生學(xué)籍管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以學(xué)生學(xué)籍管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂?/p>
6、捷的查詢手段。但一直以來(lái)人們使用傳統(tǒng)人工的方式管理文件學(xué)籍,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生學(xué)籍信息進(jìn)行管理,具有著手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生學(xué)籍管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。 因此(ync),開發(fā)
7、這樣一套管理軟件成為很有必要的事情,在下面的各章中將以開發(fā)一套學(xué)生學(xué)籍管理系統(tǒng)為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。2系統(tǒng)(xtng)概述21 開發(fā)(kif)背景211 當(dāng)前(dngqin)趨勢(shì)該學(xué)籍管理系統(tǒng)采用多層架構(gòu)的系統(tǒng),是真正適應(yīng)教育信息化發(fā)展三大趨勢(shì)的校園網(wǎng)絡(luò)應(yīng)用系統(tǒng),全面支持Internet功能、遠(yuǎn)程訪問功能,全部采用最先進(jìn)的B/S(瀏覽器/服務(wù)器) 模式來(lái)開發(fā),基本目標(biāo)是在學(xué)校內(nèi)部和外部建立起順暢的信息通道,提高學(xué)校的管理水平和效率(xio l),以便克服了目前大部分學(xué)校的校園網(wǎng)建設(shè)只起到宣傳作用的通病。212 用計(jì)算機(jī)管理學(xué)生學(xué)籍的意義 現(xiàn)在我國(guó)的中小學(xué)校中學(xué)籍的管理
8、水平還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機(jī)制已經(jīng)不能適應(yīng)時(shí)代的發(fā)展,因?yàn)樗速M(fèi)了許多人力和物力,在信息時(shí)代這種傳統(tǒng)的管理方法必然被計(jì)算機(jī)為基礎(chǔ)的信息管理所取代。作為一個(gè)計(jì)算機(jī)應(yīng)用的本科生,希望可以在這方面有所貢獻(xiàn)。改革的總設(shè)計(jì)師鄧小平同志說(shuō)過“科學(xué)技術(shù)是第一生產(chǎn)力”,我希望能用我多年的所學(xué)編制出一個(gè)實(shí)用的程序來(lái)幫助中小學(xué)進(jìn)行更有效的學(xué)籍管理。歸納起來(lái),好處大約有以下幾點(diǎn):1.可以存儲(chǔ)歷屆的學(xué)生學(xué)籍,安全、高效;2.只需一到二名學(xué)籍錄入員即可操作系統(tǒng),節(jié)省大量人力;3.可以迅速查到所需信息。 22 學(xué)籍管理系統(tǒng)概述221 開展該系統(tǒng)的原因由于現(xiàn)今的學(xué)籍管理非常繁瑣,行政人員付出大量的工作時(shí)間,得到的效
9、率很低。因此為提高工作效率,減輕校方人員的工作負(fù)擔(dān),決定開發(fā)學(xué)籍管理系統(tǒng)軟件。 222 該工程的基本目標(biāo)開發(fā)此學(xué)籍管理系統(tǒng)軟件,以供教學(xué)人員及操作者進(jìn)行學(xué)籍管理,方便操作者隨時(shí)添加、查詢、修改等。為了我們提高軟件開發(fā)的能力,學(xué)習(xí)漢語(yǔ)編程的技巧,提高工作設(shè)計(jì)思想,通過本次的工程開發(fā),開發(fā)小組成員與輔助老師,公司的技師交流,能從中學(xué)習(xí)知識(shí)吸取經(jīng)驗(yàn),再技術(shù)和軟件思想上同時(shí)得到鍛煉和提高,從而使總體水升到一個(gè)新的高度。23 開發(fā)環(huán)境以及開發(fā)工具介紹該軟件是在Windows xp + Visual Basic 6.0 + SQL Server 2000的環(huán)境下完成的。下面就對(duì)這些(zhxi)開發(fā)工具進(jìn)行
10、介紹:3 設(shè)計(jì)(shj)整體規(guī)劃31數(shù)據(jù)庫(kù)的設(shè)計(jì)(shj)在系統(tǒng)設(shè)計(jì)過程中,首先要建立的就是數(shù)據(jù)庫(kù)。本數(shù)據(jù)庫(kù)采用SQL Server 2000來(lái)構(gòu)造,共使用了7個(gè)表,它們分別是用戶信息表(UserInfo)、學(xué)生信息表(StuInfo)、班級(jí)信息表(Class)、專業(yè)信息表(Major)、學(xué)院信息表(Depart)、課程信息表(Lesson)、學(xué)生成績(jī)表(Result)。用戶信息表(UserInfo):字段名數(shù)據(jù)類型說(shuō)明是否為空是否為關(guān)鍵字UserID文本用戶名Not NullPrimary KeyUserPWD文本用戶密碼Not NullUserName文本姓名Not NullUserPow
11、er文本使用權(quán)限Not Null學(xué)生信息表(StuInfo):字段名數(shù)據(jù)類型說(shuō)明是否為空是否為關(guān)鍵字SID文本學(xué)號(hào)Not NullPrimary KeySName文本姓名Not NullSGender文本性別Not NullSPlace文本籍貫Not NullSBirthday日期/時(shí)間出生日期Not NullSMinzu文本民族Not NullSZhengzhi文本政治面貌Not NullSDormitory文本寢室號(hào)碼Not NullSAddress文本家庭住址Not NullSCode文本郵政編碼Not NullSTel文本聯(lián)系電話Not NullSRemark備注備注Not Null班
12、級(jí)信息表(Class):字段名數(shù)據(jù)類型說(shuō)明是否為空是否為關(guān)鍵字ID文本班級(jí)代碼Not NullPrimary Key專業(yè)(zhuny)信息表(Major):字段名數(shù)據(jù)類型說(shuō)明是否為空是否為關(guān)鍵字ID文本專業(yè)代號(hào)Not NullPrimary KeyName文本專業(yè)名稱Not Null學(xué)院(xuyun)信息表(Depart):字段名數(shù)據(jù)類型說(shuō)明是否為空是否為關(guān)鍵字ID文本學(xué)院代號(hào)Not NullPrimary KeyName文本學(xué)院名稱Not Null6課程(kchng)信息表(Lesson):字段名數(shù)據(jù)類型說(shuō)明是否為空是否為關(guān)鍵字ID文本課程代號(hào)Not NullPrimary KeyName文
13、本課程名稱Not NullTime文本課時(shí)Not NullMark 文本學(xué)分Not Null7學(xué)生成績(jī)表(Result):字段名數(shù)據(jù)類型說(shuō)明是否為空是否為關(guān)鍵字ID文本學(xué)生學(xué)號(hào)Not NullPrimary KeyName文本課程名稱Not NullPrimary KeyScore文本分?jǐn)?shù)Not NullRemark文本備注Not Null32設(shè)計(jì)流程圖登陸表單(管理員或者普通用戶身份登陸)Splash表單MDI主窗口(系統(tǒng)主窗口)管理學(xué)生學(xué)籍信息(學(xué)生基本信息管理,課程管理,專業(yè)/學(xué)院管理和考試成績(jī)管理管理系統(tǒng)用戶(添加,刪除)對(duì)學(xué)生信息進(jìn)行查找(按學(xué)號(hào)或姓名)返回查詢信息管理員登陸重新登陸
14、 圖2.1 系統(tǒng)(xtng)流程圖33 設(shè)計(jì)(shj)功能分析系統(tǒng)開發(fā)的目標(biāo)是實(shí)現(xiàn)學(xué)生學(xué)籍(xuj)管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,這是在用戶要求的基礎(chǔ)上提出來(lái)的,功能要求如下: (一)學(xué)生信息管理:能對(duì)學(xué)生信息進(jìn)行添加、修改、刪除。(二)課程管理:對(duì)課程進(jìn)行添加、修改、刪除操作。(三)專業(yè)/學(xué)院設(shè)置:(三)考試成績(jī)管理:(四)查詢學(xué)生信息:根據(jù)學(xué)號(hào)或姓名對(duì)學(xué)生信息進(jìn)行精確/模糊查詢(五)用戶管理:定義使用本系統(tǒng)的用戶名稱及密碼 4 設(shè)計(jì)具體實(shí)現(xiàn)經(jīng)過需求分析、功能模塊設(shè)計(jì)之后要進(jìn)入詳細(xì)設(shè)計(jì)階段,本階段將按系統(tǒng)的主要模塊進(jìn)行論述,重在闡述具體的某項(xiàng)功能的實(shí)現(xiàn)方法或運(yùn)用到的相關(guān)技術(shù)。41 準(zhǔn)備工作添
15、加引用:?jiǎn)螕艄こ滩藛沃械囊眠x項(xiàng),添加Microsoft ActiveX Data Objects 2.6 Library和Microsoft Excel 9.0 Object Library兩個(gè)引用。添加部件:?jiǎn)螕艄こ滩藛沃械牟考x項(xiàng),添加Microsoft ADO Data Control 6.0(OLEDB)、Microsoft Common Dialog Control 6.0(SP3) 、Microsoft FlexGrid Control 6.0、Microsoft Windows Common Controls 6.0(SP4)和Microsoft Windows Common
16、Controls-2 6.0五項(xiàng)。42 設(shè)計(jì)步驟421 登陸界面(frmlogin)因?yàn)?yn wi)本系統(tǒng)是按學(xué)籍管理的思想設(shè)計(jì)的,故而登陸部分主要完成密碼校驗(yàn)、確定管理員等功能,對(duì)于密碼本系統(tǒng)采用的是MD5算法。這里附上本程序的登陸界面,見圖3.1。圖3.1 用戶(yngh)登陸界面在代碼(di m)窗口的“通用”部分,定義一個(gè)模塊級(jí)的公共變量loginno用來(lái)記錄當(dāng)前密碼輸入錯(cuò)誤的次數(shù)Dim loginno As Integer在Form的Load事件中,將txtuser設(shè)置為焦點(diǎn),初始化loginno。Private Sub Form_Load() loginno = 0 Me.Sho
17、w txtuser.SetFocusEnd Sub這里將“確定”和“取消”兩個(gè)按鈕作為一個(gè)按鈕數(shù)組cmdOkCancel:確定按鈕的index屬性為0,取消按鈕的index屬性為1。利用SQL語(yǔ)句,在數(shù)據(jù)庫(kù)中查詢,如果查到相應(yīng)的記錄,則調(diào)用Case 0事件,用戶的登陸獲得通過,此時(shí)可以退出登陸窗口,并進(jìn)入MDI主窗口,同時(shí)將用戶類型和用戶名分別傳遞到MDI主窗口和frmmanage中;如果沒有相應(yīng)的記錄,則給出提示錯(cuò)誤信息,同時(shí)將用戶輸入錯(cuò)誤密碼次數(shù)增加1,如果錯(cuò)誤超過3次,則退出整個(gè)系統(tǒng);若次數(shù)還沒有超過3次,則提示用戶重新輸入。根據(jù)以上的設(shè)計(jì),cmdOkCancel的Click事件的代碼如
18、下:Private Sub cmdOkCancel_Click(Index As Integer) Select Case Index Case 0 Userid = Trim(txtuser.Text) Userpwd = MD5(Trim(txtPassword.Text) sqlstr = select * from UserInfo where UserID= & Userid & rs.Open sqlstr, con, 1, 1 If Not rs.EOF Then If rs(UserPWD) Userpwd Then 密碼(m m)錯(cuò)誤時(shí) MsgBox 您輸入(shr)的密碼不
19、正確!, vbQuestion Me.Caption = 請(qǐng)輸入(shr)用戶名和密碼: loginno = loginno + 1 當(dāng)錯(cuò)誤的密碼次數(shù)達(dá)到3次時(shí),不能登陸,退出! If loginno = 3 Then MsgBox 對(duì)不起,您不能使用該系統(tǒng)!請(qǐng)與管理員聯(lián)系。, vbInformation Unload Me Exit Sub End If Else LoginUser = Userid 保存當(dāng)前登陸用戶名 LoginPower = rs.Fields(3) 將當(dāng)前登陸用戶的權(quán)限保存到LoginPower中 Unload Me frmflash.Show End If Else
20、 MsgBox 沒有您輸入的用戶名!, 32 End If rs.Close: Set rs = Nothing Case 1 退出整個(gè)(zhngg)程序 Unload Me End SelectEnd Sub422 MDI主窗口(chungku)(frmmain)本系統(tǒng)采取多文檔界面(MultiDocument Interface)。多文檔界面是一種Windows用戶界面標(biāo)準(zhǔn)。它有一個(gè)父窗口(chungku),在典型情況下,父窗口用來(lái)顯示程序菜單以及包含子窗口。在工程中添加一個(gè)MDI窗口,取名為“frmmain.frm”,并為MDI窗體進(jìn)行菜單和代碼的設(shè)計(jì),其運(yùn)行界面如圖3.2:圖3.2 主
21、界面4221 菜單設(shè)計(jì)MDI主窗體是整個(gè)系統(tǒng)的容器,為了方便用戶的使用,應(yīng)設(shè)計(jì)相應(yīng)的菜單和代碼。4222 窗體代碼設(shè)計(jì)1在代碼窗口的通用部分,聲明(shngmng)一個(gè)API函數(shù)用于打開幫助文件和調(diào)用Outlook發(fā)送郵件。Private 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 lpD
22、irectory As String, ByVal nShowCmd As Long)2判斷(pndun)用戶權(quán)限如果登陸的為普通用戶(yngh)類型的用戶,則用戶不能使用“用戶管理”這一功能,而對(duì)于管理員類型的用戶,則沒有此限制。所以在MDIForm的Load事件中需要判斷用戶類型。Private Sub MDIForm_Load() StatusBar.Panels(2).Text = 當(dāng)前操作員: & LoginUser & & LoginPower & If LoginPower = 普通用戶 Then filemenu11.Enabled = False Toolbar1.Butto
23、ns.Item(5).Enabled = False End IfEnd Sub3Form的QueryUnload事件當(dāng)用戶要退出MDI窗體時(shí),需要在QueryUnload事件中詢問用戶是否真的要退出本系統(tǒng);如果用戶不要退出,則將Cancel置為1,取消整個(gè)退出過程。Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) If MsgBox(確定要退出學(xué)生檔案管理系統(tǒng)嗎?是/否,vbYesNo+vbQuestion+ vbDefaultButton1) = vbNo Then Cancel = 1 En
24、d IfEnd SubQueryUnload和Unload事件當(dāng)一個(gè)子窗體或一個(gè)Form對(duì)象關(guān)閉時(shí),在那個(gè)窗體中的QueryUnload事件先于該窗體的Unload事件發(fā)生,Unload事件在Terminate事件之前發(fā)生。當(dāng)一個(gè)應(yīng)用程序關(guān)閉時(shí),可使用QueryUnload或Unload事件過程將Cancel屬性設(shè)置為True來(lái)阻止關(guān)閉過程。但是,QueryUnload事件是在任一個(gè)卸載之前在所有窗體中發(fā)生,而Unload是在每個(gè)窗體卸載時(shí)發(fā)生。在這兩個(gè)事件中,均可將Cancel設(shè)置為任何(rnh)非零的值來(lái)防止窗體被刪除。但Unload不能阻止其他事件,諸如從Microsoft Window
25、s操作環(huán)境中退出等;而QueryUnload事件則可以阻止從Windows中的退出。有介于此,通常來(lái)說(shuō)都是在QueryUnload中詢問用戶是否要退出當(dāng)前窗體。4“重新(chngxn)登陸”子菜單(ci dn)的代碼當(dāng)單擊了“重新登陸”或者按下了“F2”鍵時(shí),將會(huì)給出提示,如果用戶在提示框中按下了“確定”按鈕,則退出整個(gè)MDI主窗體,并顯示登陸窗體。Private Sub filemenu15_Click()If MsgBox(若重新登陸,所有窗體都將關(guān)閉!是否重新登陸?, vbYesNo + vbQuestion, 重新登陸) = vbYes Then Unload Me Frmlogin.
26、Show End IfEnd Sub5“幫助主題”子菜單的代碼調(diào)用Windows API函數(shù),打開help.chm幫助文件。Private Sub filemenu21_Click() ShellExecute 0, open, App.Path & help.chm, , , 1End Sub6“給我發(fā)郵件”子菜單的代碼如果用戶單擊了“給我發(fā)郵件”子菜單,則會(huì)調(diào)用API函數(shù),調(diào)用Outlook。Private Sub filemenu22_Click() ShellExecute Me.hwnd, open, mailto:datou158, , App.Path, 1End Sub7當(dāng)用戶
27、單擊查詢學(xué)生資料菜單項(xiàng)或者按下F3鍵時(shí),將會(huì)出現(xiàn)“查找學(xué)生”窗體,供用戶查找滿足特定要求的學(xué)生信息。Private Sub filemenu45_Click() 查找學(xué)生 frmstusearch.Show 1End Sub333 用戶管理窗體(frmmanage)向項(xiàng)目中添加窗體,并命名為frmmanage.frm。窗體的控件設(shè)計(jì)如圖3.3所示 圖3.3 用戶管理(gunl)界面如果登陸的用戶類型是管理(gunl)員,用戶管理一項(xiàng)是可用的,當(dāng)單擊該子菜單時(shí),將會(huì)出現(xiàn)用戶管理窗口,管理員可以對(duì)系統(tǒng)用戶進(jìn)行添加和刪除操作。3331 窗體代碼(di m)設(shè)計(jì)1定義一個(gè)整型變量DelNO用來(lái)存儲(chǔ)當(dāng)前
28、系統(tǒng)用戶的數(shù)目,當(dāng)DelNO=1時(shí)提示用戶不能再刪除用戶。在該窗體的通用部分寫如下代碼: Dim DelNO As Integer2窗體加載時(shí),初始化Listview用以顯示系統(tǒng)用戶列表,代碼如下Private Sub Form_Load()初始化ListViewDim clmX As ColumnHeaderSet clmX = ListView.ColumnHeaders.Add(, , 用戶名, ListView.Width / 3)Set clmX = ListView.ColumnHeaders.Add(, , 密碼, ListView.Width / 6, 2)Set clmX =
29、 ListView.ColumnHeaders.Add(, , 姓名, ListView.Width / 4, 2)Set clmX = ListView.ColumnHeaders.Add(, , 用戶權(quán)限, ListView.Width / 4, 2)Combo1.ClearCombo1.AddItem 普通用戶Combo1.AddItem 超級(jí)用戶Combo1.ListIndex = 0LoadOperatorEnd Sub其中(qzhng)調(diào)用了LoadOperator函數(shù),該函數(shù)用來(lái)顯示和刷新Listview中的數(shù)據(jù)Private Sub LoadOperator() On Erro
30、r Resume NextDim Listit As ListItemListView.ListItems.ClearListView.LabelEdit = lvwAutoListView.View = 3Dim ef As New ADODB.Recordsetsqlstr = select * from UserInfoef.Open sqlstr, con, 1, 1DelNO = ef.RecordCount Do While Not ef.EOF Set Listit = ListView.ListItems.Add(, , ef.Fields(UserID) Listit.Sub
31、Items(1) = * 隱藏用戶的密碼(m m),用*來(lái)替代。 Listit.SubItems(2) = ef(UserName) Listit.SubItems(3) = ef(UserPower) ef.MoveNext LoopSet ef = NothingEnd Sub3添加(tin ji)用戶在Textbox中輸入了相應(yīng)的數(shù)據(jù)以后,按添加按鈕則調(diào)用該按鈕的Click事件,代碼如下當(dāng)單擊“添加”按鈕時(shí),首先檢查輸入的用戶名和密碼是否為空,代碼如下:Private Sub Command4_Click() If Trim(Text1.Text) = Then MsgBox 登陸(dn
32、g l)用戶名不允許為空!, vbOKOnly + 48, 提示: Text1.SetFocus Exit SubEnd IfIf InStr(1, Trim(Text1.Text), , vbTextCompare) Then MsgBox 用戶(yngh)姓名中有特殊字符 + ,請(qǐng)刪除。, vbOKOnly + 48, 提示: Text1.SetFocus Exit SubEnd IfIf Trim(Text2.Text) = Then MsgBox 密碼(m m)不能為空,請(qǐng)輸入密碼!, vbOKOnly + 48, 提示: Text2.Text = Text3.Text = Text2
33、.SetFocus Exit SubEnd IfEnd Sub如果不為空,則檢查用戶名是否有重復(fù),需要打開系統(tǒng)信息表,Private Sub Command4_Click() sqlstr = select * from UserInfo where UserID= & Text1.Text & rs.Open sqlstr, con, 1, 1 End Sub如果當(dāng)前記錄不為空,則逐條記錄檢查是否有重復(fù)Private Sub Command4_Click()Userid = Trim(Text1.Text)Userpwd = MD5(Trim(Text2.Text)Username = Tr
34、im(Text4.Text)Userpower = Trim(Combo1.Text) DelNO = rs.RecordCount Do While Not rs.EOF rs.MoveNextLoop End Sub如果有重復(fù),則提示已存在這個(gè)用戶,然后將焦點(diǎn)設(shè)置給Text1,并將所有(suyu)的文本框清空。Private Sub Command4_Click() Do While Not rs.EOF If Text1.Text = rs.Fields(UserID) Then MsgBox 已經(jīng)存在用戶(yngh)名為 & Userid & 的用戶帳號(hào), vbInformation
35、Text1.SetFocus Exit Sub End If rs.MoveNextLooprs.Close: Set rs = NothingEnd Sub如果沒有重復(fù)(chngf),再檢查兩次輸入的密碼是否一致,如果不一致,則提示“兩次密碼不一致”。Private Sub Command4_Click()If Trim(Text3.Text) Trim(Text2.Text) Then MsgBox 兩次密碼不相同,請(qǐng)重輸入!, vbOKOnly + 48, 提示: Text2.Text = Text3.Text = Text2.SetFocus Exit SubEnd IfEnd Sub
36、如果以上全部正確無(wú)誤的設(shè)置好了,則將新用戶的信息添加(tin ji)到數(shù)據(jù)表中,并提示“添加(tin ji)新用戶成功”。Private Sub Command4_Click()sqlstr = insert into UserInfo(UserID,UserPWD,UserName,UserPower) sqlstr = sqlstr & values( & Userid & , & Userpwd & , sqlstr = sqlstr & & Username & , &Userpower & )con.Execute sqlstr MsgBox 添加用戶 & Text1.Text &
37、成功(chnggng), vbOKOnly, 添加系統(tǒng)用戶 Text1.Text = Text2.Text = Text3.Text = Text4.Text = 更新列表 LoadOperatorEnd Sub4刪除系統(tǒng)用戶當(dāng)用戶雙擊ListView中的數(shù)據(jù)時(shí),則會(huì)調(diào)用DeleteRecord()函數(shù),如果系統(tǒng)用戶只剩一個(gè),則提示用戶不能再刪除;反之要求輸入您想要?jiǎng)h除的用戶的密碼,密碼正確時(shí)才可以將該用戶刪除,密碼錯(cuò)誤時(shí)則不采取任何措施;最后調(diào)用LoadOperator顯示并刷新Listview中的數(shù)據(jù)。根據(jù)以上的設(shè)計(jì),DeleteRecord()的代碼如下:Private Sub Dele
38、teRecord()刪除用戶操作On Error Resume NextIf ListView.SelectedItem.Selected Then If DelNO = 1 Then MsgBox 只剩下一個(gè)用戶帳號(hào),不允許再刪除!, vbInformation ElseIf MsgBox(確定要?jiǎng)h除用戶名為& ListView.SelectedItem.Text & 的用戶帳號(hào)嗎?, vbYesNo + 32 + vbDefaultButton2) = vbYes Then sqlstr = select * from UserInfo where UserID= & ListView.S
39、electedItem.Text & rs.Open sqlstr, con, 1, 1 If MD5(InputBox(請(qǐng)輸入(shr)該用戶的密碼:) = rs.Fields(UserPWD) Then sqlstr = delete from UserInfo where UserID= & ListView.SelectedItem.Text & con.Execute sqlstr Else MsgBox 對(duì)不起!您輸入(shr)的密碼不正確,刪除該用戶失??!, vbInformation End If LoadOperator End IfEnd Ifrs.Close: Set r
40、s = NothingEnd Sub5菜單(ci dn)設(shè)計(jì)在Listview中單擊鼠標(biāo)右鍵會(huì)調(diào)用ListView的MouseUp事件,出現(xiàn)右鍵菜單menuOpertor,具體實(shí)現(xiàn)如下:Private Sub ListView_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 2 Then PopupMenu menuOperatorEnd IfEnd Sub實(shí)現(xiàn)該右鍵菜單各項(xiàng)功能的代碼如下:Private Sub menuAdd_Click() 添加(tin ji)用戶 Text
41、1.SetFocusEnd SubPrivate Sub menuDel_Click() 刪除(shnch)用戶 DeleteRecordEnd Sub334 修改(xigi)密碼窗體(frmchgPWD)當(dāng)用戶要更改密碼時(shí),單擊“系統(tǒng)選項(xiàng)/修改個(gè)人密碼”菜單,彈出如圖3.4所示窗體。在MDI主窗體編輯窗口中,單擊“系統(tǒng)選項(xiàng)/修改個(gè)人密碼”,添加如下代碼:Private Sub filemenu12_Click() 修改密碼界面 Frmchgpwd.Show 1End Sub圖3.4 修改用戶密碼當(dāng)用戶輸入完畢時(shí),單擊“確定”按鈕,引發(fā)Click事件。這時(shí),先檢查兩次輸入的密碼是否一致,如果不
42、一致,則提示用戶,將焦點(diǎn)設(shè)置到第二個(gè)Text2控件,后面兩個(gè)文本框清空,代碼如下:Private Sub Command1_Click() Dim Oldpwd As String, pwd As String, confirmpwd As StringOldpwd = Trim(Text1.Text)pwd = Trim(Text2.Text)confirmpwd = Trim(Text3.Text)If Trim(pwd) Trim(confirmpwd) Then MsgBox 兩次輸入的密碼不相同!, vbInformation Text2.Text = Text3.Text = Te
43、xt2.SetFocus Exit SubEnd IfEnd Sub如果密碼一致,則判斷輸入的原密碼是否正確,如果正確則將新密碼寫入數(shù)據(jù)庫(kù),這時(shí)需要一個(gè)字符串變量表達(dá)SQL語(yǔ)句,一個(gè)Recordset對(duì)象變量打開系統(tǒng)信息數(shù)據(jù)表。然后打開數(shù)據(jù)庫(kù),并將新密碼寫入,提示用戶密碼修改(xigi)成功。Private Sub Command1_Click()sqlstr = select UserPWD from UserInfo where UserID= & LoginUser & rs.Open sqlstr, con, 1, 1If Not rs.EOF Then If rs(UserPWD)
44、Oldpwd Then MsgBox 你輸入(shr)的原密碼不對(duì)!, vbInformation Text1.Text = Text2.Text = Text3.Text = Text1.SetFocus Exit Sub Else sqlstr = update UserInfo set UserPWD= & pwd & where UserID= & LoginUser & con.Execute sqlstr MsgBox 您的密碼更新成功(chnggng),請(qǐng)牢記你的密碼!, vbInformation Unload Me End IfElse MsgBox 異常錯(cuò)誤!, vbInf
45、ormationEnd Ifrs.Close: Set rs = NothingEnd Sub修改(xigi)完畢后,單擊“取消(qxio)”退出(tuch)此窗體。Private Sub Command2_Click() Unload MeEnd Sub335 瀏覽學(xué)生信息窗體(frmstu)在工程中添加一個(gè)窗體,命名為frmstu.frm,這里將使用frmstu窗體,來(lái)實(shí)現(xiàn)瀏覽學(xué)生信息的功能,該界面運(yùn)行時(shí)如圖3.5所示圖3.5 瀏覽學(xué)生信息窗體在該窗體中,用戶可以查看/修改學(xué)生的信息,還可以添加/刪除學(xué)生信息,所以用一個(gè)Treeview和一個(gè)Listview分別顯示班級(jí)列表和該班級(jí)下面的學(xué)
46、生列表,用Image和PictureBox來(lái)調(diào)整控件的大小。具體設(shè)置如表3.1所示 對(duì)象屬性設(shè)置FormNameFrmstuCaption學(xué)生檔案管理BorderStyle2-SizableMDIChildTrueWindowState2-MaximizedTreeviewStyletvwTreelinesPlusMinusPictureTextListviewFullRowSelectTrueGridLinesTrueMultiSelectFalseToolTipText雙擊顯示詳細(xì)資料ImageNameimgSplitPictureboxNameSliptBar表3.1 FrmStu中部分
47、(b fen)控件的屬性當(dāng)窗體啟動(dòng)時(shí),需要在Treeview中加載班級(jí)列表(li bio),并初始化Listview中的標(biāo)題。Private Sub Form_Load() Call TreeviewLoad Dim clmX As ColumnHeader Set clmX = ListView.ColumnHeaders.Add(, , 學(xué) 號(hào), ListView.Width / 7) End Sub在Form_Load事件(shjin)中調(diào)用了TreeviewLoad函數(shù),由于篇幅省略該函數(shù)的代碼,具體實(shí)現(xiàn)見源程序。當(dāng)窗體大小發(fā)生變化時(shí),調(diào)用Form_Resize,調(diào)整Frmstu中控件
48、的大小。Private Sub Form_Resize()If WindowState 1 Then If Me.Height 3000 Then Me.Height = 3000 If Me.Width 3000 Then Me.Width = 3000 SizeControls imgSplit.LeftEnd IfListView.Width = Me.WidthListView.ListItems(0).Width = 5000End SubSub SizeControls(X As Single) On Error Resume Next 設(shè)置 Width 屬性 If X (Me.W
49、idth - 1500) Then X = Me.Width - 1500 TreeView.Width = X imgSplit.Left = X ListView.Left = X + 50 ListView.Width = Me.Width - (TreeView.Width + 100) TreeView.Height = Me.ScaleHeight - 50 ListView.Top = TreeView.Top ListView.Height = TreeView.Height imgSplit.Top = TreeView.Top imgSplit.Height = TreeV
50、iew.HeightEnd Sub單擊Treeview中的班級(jí)(bnj)號(hào)碼則調(diào)用TreeView_NodeClick事件(shjin)和ListviewLoad事件在Listview中顯示(xinsh)該班級(jí)下面學(xué)生的信息列表。Private Sub TreeView_NodeClick(ByVal Node As MSComctlLib.Node)正在導(dǎo)入數(shù)據(jù),提示用戶等待 Me.MousePointer = 11If Node.Tag = classid Then 開始在ListView中顯示數(shù)據(jù) classid = Left(Node.Text, 6) Call ListviewLoa
51、d(classid)ElseIf Node.Key = S Then Call SqlListview(SqlSearch)Else ListView.ListItems.ClearEnd IfEnd SubPublic Sub ListviewLoad(ByVal classid As String)Dim Listit As ListItemListView.ListItems.ClearListView.LabelEdit = lvwManualListView.View = 3Dim ef As New ADODB.Recordsetclassid = Left(classid, 6)
52、sqlstr = select * from StuInfo where SID like & classid & _ order by SIDef.Open sqlstr, con, 1, 1 Do While Not ef.EOF Set Listit = ListView.ListItems.Add(, , ef.Fields(SID) Listit.SubItems(1) = ef.Fields(SName) Listit.SubItems(2) = ef.Fields(SGender) Listit.SubItems(3) = ef.Fields(SMinzu) Listit.Sub
53、Items(4) = ef.Fields(SZhengzhi) Listit.SubItems(5) = ef.Fields(SDormitory) Listit.SubItems(6) = ef.Fields(SAddress) ef.MoveNext Loopef.Close: Set ef = NothingListView.SetFocusEnd Sub在顯示該班級(jí)下面所有學(xué)生信息(xnx)的同時(shí),用戶可以對(duì)記錄進(jìn)行管理:添加新記錄、編輯或者刪除當(dāng)前記錄,為此在Listview中創(chuàng)建右鍵菜單,用來(lái)對(duì)記錄進(jìn)行操作。在本系統(tǒng)中,在系統(tǒng)默認(rèn)情況下,班級(jí)編號(hào)(bin ho)作為學(xué)號(hào)的前面六位。
54、為了體現(xiàn)這一關(guān)系,需要將班級(jí)編號(hào)賦給顯示學(xué)號(hào)的文本框?!疤砑?tin ji)”子菜單的Click事件的設(shè)計(jì)思路:用戶單擊“添加”子菜單時(shí),調(diào)用frmmain中的“添加學(xué)生信息”子菜單顯示FrmAddStu窗體,同時(shí)將Command1的Caption屬性設(shè)置為“確定(&O)”。Private Sub pop3_Click() 添加學(xué)生資料 Call Frmstu.AddStuEnd SubPublic Sub AddStu()Call FrmAddStu.LoadStu(00000000)End Sub修改學(xué)生資料的Click事件的設(shè)計(jì)思路(sl)和添加學(xué)生資料的設(shè)計(jì)思路類似,但是由于只是對(duì)記錄
55、進(jìn)行修改,不需要調(diào)用AddNew操作,只要對(duì)數(shù)據(jù)進(jìn)行Update操作即可。Private Sub pop4_Click() 修改(xigi)學(xué)生資料 Call Frmstu.ModifyStuEnd SubPublic Sub ModifyStu()顯示(xinsh)窗口Dim EditNum As StringIf ListView.SelectedItem.Selected Then EditNum = CStr(ListView.SelectedItem.Text) Call FrmAddStu.LoadStu(EditNum)Else Exit SubEnd IfEnd Sub刪除學(xué)生
56、資料的設(shè)計(jì)思路:在刪除記錄之前彈出詢問框,確認(rèn)用戶是否真的要?jiǎng)h除當(dāng)前記錄,如果用戶選擇了“是”,則刪除該條記錄,否則就不執(zhí)行任何操作。在刪除記錄過程中,使用學(xué)生的學(xué)號(hào)作為關(guān)鍵字,調(diào)用Execute方法來(lái)刪除當(dāng)前記錄。在刪除了當(dāng)前記錄以后,需要重新移動(dòng)當(dāng)前記錄;由于改變了當(dāng)前記錄集的內(nèi)容,所以需要調(diào)用ListviewLoad子過程來(lái)刷新Listview中的內(nèi)容。Private Sub pop5_Click() 刪除學(xué)生資料 Call Frmstu.DelStuEnd SubPublic Sub DelStu()If ListView.SelectedItem.Selected Then If M
57、sgBox(確定要?jiǎng)h除學(xué)號(hào)為 & ListView.SelectedItem.Text & 的全部資料嗎!, vbYesNo + 32 + vbDefaultButton2) = vbYes Then sqlstr = delete from StuInfo where SID= & ListView.SelectedItem.Text & con.Execute sqlstr Call ListviewLoad(classid) End IfEnd IfEnd Sub學(xué)生信息包括了學(xué)號(hào)、姓名、出生日期、性別、家庭住址、聯(lián)系電話等內(nèi)容。在Listview中列出了各學(xué)籍信息的學(xué)號(hào)和姓名以供用戶進(jìn)
58、行(jnxng)導(dǎo)航,但是在實(shí)際管理中,還需要顯示出某一條學(xué)生信息的詳細(xì)列表。為此,設(shè)計(jì)詳細(xì)信息框,來(lái)羅列用戶的各種詳細(xì)信息。當(dāng)用戶單擊“顯示(xinsh)該生詳細(xì)資料”子菜單時(shí),顯示(xinsh)frmstuinfo窗體(圖3.6),并以學(xué)生學(xué)號(hào)為關(guān)鍵字,將該學(xué)生的全部資料賦值給frmstuinfo中的對(duì)應(yīng)文本框。圖3.6 學(xué)生詳細(xì)信息Private Sub pop1_Click() 顯示詳細(xì)資料 Call Frmstu.ListView_DblClickEnd SubPublic Sub ListView_DblClick()On Error Resume NextIf ListView.
59、SelectedItem.Selected Then SelectNum = ListView.SelectedItem.Text If SelectNum Then 顯示出該生全部信息表單 Call frmstuinfo.LoadStuInfo(SelectNum) Else Exit Sub End IfEnd IfEnd Sub在frmstuinfo的代碼窗口中添入以下(yxi)代碼用來(lái)顯示該學(xué)生的詳細(xì)資料。Public Sub LoadStuInfo(StuNum As String)sqlstr = select * from StuInfo where SID= & StuNum
60、& rs.Open sqlstr, con, 1, 1 StuInfo(0).Caption = rs.Fields(SID) StuInfo(1).Caption = rs.Fields(SName) StuInfo(2).Caption = rs.Fields(SGender) StuInfo(3).Caption = rs.Fields(SZhengzhi) StuInfo(4).Caption = rs.Fields(SPlace) StuInfo(5).Caption = rs.Fields(SMinzu) StuInfo(6).Caption = rs.Fields(SBirthd
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文學(xué)社組社方案及招生簡(jiǎn)章范文
- 現(xiàn)代企業(yè)財(cái)務(wù)管理的全球化視角
- 全鋼爬架施工方案
- 汽車行業(yè)的品牌競(jìng)爭(zhēng)戰(zhàn)略分析
- 國(guó)慶節(jié)小吃店鋪活動(dòng)方案
- 國(guó)慶節(jié)手工干貨活動(dòng)方案
- 12《富起來(lái)到強(qiáng)起來(lái)》第一課時(shí)說(shuō)課稿-2023-2024學(xué)年道德與法治五年級(jí)下冊(cè)統(tǒng)編版001
- 2023六年級(jí)英語(yǔ)上冊(cè) Unit 3 Winter in canada Lesson 14 Snow!It's Winter說(shuō)課稿 冀教版(三起)
- 2024-2025學(xué)年新教材高中物理 第三章 恒定電流 第3節(jié) 測(cè)量金屬絲的電阻率說(shuō)課稿 粵教版必修3
- 2024秋七年級(jí)數(shù)學(xué)上冊(cè) 第3章 一次方程與方程組3.4 二元一次方程組的應(yīng)用 2列二元一次方程組解實(shí)際應(yīng)用(一)說(shuō)課稿(新版)滬科版
- 2025-2030年中國(guó)電動(dòng)高爾夫球車市場(chǎng)運(yùn)行狀況及未來(lái)發(fā)展趨勢(shì)分析報(bào)告
- 河南省濮陽(yáng)市2024-2025學(xué)年高一上學(xué)期1月期末考試語(yǔ)文試題(含答案)
- 長(zhǎng)沙市2025屆中考生物押題試卷含解析
- 2024年08月北京中信銀行北京分行社會(huì)招考(826)筆試歷年參考題庫(kù)附帶答案詳解
- 2024年芽苗菜市場(chǎng)調(diào)查報(bào)告
- 蘇教版二年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)教學(xué)設(shè)計(jì)
- 職業(yè)技術(shù)學(xué)院教學(xué)質(zhì)量監(jiān)控與評(píng)估處2025年教學(xué)質(zhì)量監(jiān)控督導(dǎo)工作計(jì)劃
- 金字塔原理與結(jié)構(gòu)化思維考核試題及答案
- 廣東省梅州市2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 《革蘭陽(yáng)性球菌》課件
- 基礎(chǔ)護(hù)理學(xué)導(dǎo)尿操作
評(píng)論
0/150
提交評(píng)論