學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、山東建筑大學(xué)設(shè)計(jì)(論文)紙 第 26 頁(yè) 中文摘要本文首先簡(jiǎn)要地介紹了學(xué)生學(xué)籍管理現(xiàn)代化的時(shí)代背景,指出學(xué)籍管理現(xiàn)代化的必要性和重要性,接著詳細(xì)闡述了學(xué)生學(xué)籍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),在學(xué)籍系統(tǒng)的設(shè)計(jì)這一部分,主要是對(duì)系統(tǒng)設(shè)計(jì)到的數(shù)據(jù)以及主要的功能進(jìn)行分析,在實(shí)現(xiàn)這一部分主要介紹了與管理信息系統(tǒng)設(shè)計(jì)開(kāi)發(fā)結(jié)合最緊密的三個(gè)方面:管理信息系統(tǒng)mis(management information system)、visual basic數(shù)據(jù)庫(kù)知識(shí)。在管理信息系統(tǒng)中論述了其基本概念、特點(diǎn)、開(kāi)發(fā)過(guò)程和方法及其發(fā)展;在visual basica數(shù)據(jù)庫(kù)中主要介紹了概念模型、數(shù)據(jù)模型和基本語(yǔ)法三個(gè)方面以及sql語(yǔ)句

2、編程。本文的重點(diǎn)是系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),以自己開(kāi)發(fā)的學(xué)生管理信息系統(tǒng)為例,詳細(xì)說(shuō)明開(kāi)發(fā)的一般流程和開(kāi)發(fā)數(shù)據(jù)庫(kù)的基本語(yǔ)言。 關(guān)鍵詞 學(xué)籍管理 教育管理 信息化 vb sql目錄一引言 31.1設(shè)計(jì)目的 31.2設(shè)計(jì)要求 31.3設(shè)計(jì)環(huán)境 31.4分工情況 3二概要設(shè)計(jì) 32.1系統(tǒng)需求分析 32.2系統(tǒng)結(jié)構(gòu)及功能設(shè)計(jì) 3 三詳細(xì)設(shè)計(jì) 53.1主要功能模塊設(shè)計(jì) 5 3.2數(shù)據(jù)庫(kù)設(shè)計(jì) 63.3各模塊主要源代碼 10四調(diào)試運(yùn)行結(jié)果 234.1調(diào)試運(yùn)行 23五總結(jié) 25六參考文獻(xiàn) 25一引言1.1 設(shè)計(jì)目的數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用課程設(shè)計(jì)是我校計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科中計(jì)算機(jī)應(yīng)用專業(yè)(本科)教學(xué)大綱要求的重要實(shí)踐性

3、環(huán)節(jié)之一,是學(xué)習(xí)完數(shù)據(jù)庫(kù)系統(tǒng)概論課程后進(jìn)行的一次性全面的綜合練習(xí)。其目的在于:配合數(shù)據(jù)庫(kù)系統(tǒng)概論課程的教學(xué),使學(xué)生能鞏固和加深對(duì)數(shù)據(jù)庫(kù)基礎(chǔ)理論和基本知識(shí)的理解;掌握使用數(shù)據(jù)庫(kù)進(jìn)行軟件設(shè)計(jì)的基本思想和方法;提高學(xué)生運(yùn)用數(shù)據(jù)庫(kù)理論解決實(shí)際問(wèn)題的能力;培養(yǎng)學(xué)生調(diào)查研究、查閱技術(shù)文獻(xiàn)、資料、以及編寫(xiě)技術(shù)文獻(xiàn)的能力。1.2 設(shè)計(jì)要求 調(diào)查學(xué)校學(xué)生處、教務(wù)處、設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng)。要求:1。建立學(xué)生檔案,設(shè)計(jì)學(xué)生入學(xué)、管理及查詢界面;2。設(shè)計(jì)學(xué)生各學(xué)期、學(xué)年成績(jī)輸入及查詢界面;3。設(shè)計(jì)統(tǒng)計(jì)報(bào)表并能完成打?。?。系統(tǒng)維護(hù):如數(shù)據(jù)安全管理(含備分與恢復(fù))、操作員管理、權(quán)限設(shè)置等; 1.3 設(shè)計(jì)環(huán)境 mic

4、rosoft windows xp操作系統(tǒng),microsoft sql server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)個(gè)人版。1.4 分工情況 本次程序設(shè)計(jì)由本人自己獨(dú)立完成。二概要設(shè)計(jì)2.1 系統(tǒng)需求分析 系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化,規(guī)范化和自動(dòng)化。該管理系統(tǒng)的功能主要有:用戶管理:包括用戶填加、用戶刪除和用戶密碼修改。年級(jí)信息管理:包括學(xué)校信息設(shè)置、學(xué)校年級(jí)設(shè)置。班級(jí)信息管理:包括班級(jí)信息設(shè)置。課程信息管理:包括課程信息設(shè)置、年級(jí)課程開(kāi)設(shè)。學(xué)籍信息管理:包括學(xué)籍信息設(shè)置。成績(jī)信息管理:包括成績(jī)信息設(shè)置。查詢管理:包括班級(jí)信息查詢、課程信息查詢、成績(jī)信息查詢、學(xué)籍信息查詢。統(tǒng)計(jì)報(bào)表中

5、心:班級(jí)信息報(bào)表、學(xué)生信息報(bào)表。 系統(tǒng)維護(hù)管理:數(shù)據(jù)庫(kù)還原和備分。2.2 系統(tǒng)結(jié)構(gòu)及功能設(shè)計(jì)對(duì)上述各項(xiàng)功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計(jì)的要求,得到如下圖所示的系統(tǒng)功能模塊圖。學(xué)生信息管理系統(tǒng)成績(jī)信息管理課程管理系統(tǒng)班級(jí)信息管理學(xué)籍信息管理 系統(tǒng)管理成績(jī)信息查詢成績(jī)信息修改成績(jī)信息添加年級(jí)課程設(shè)置課程信息修改課程信息添加班級(jí)信息添加班級(jí)信息修改學(xué)籍信息添加學(xué)籍信息查詢學(xué)籍信息修改 密碼管理 用戶管理年級(jí)信息管理年級(jí)信息添加年級(jí)信息修改報(bào)表統(tǒng)計(jì)中心班級(jí)信息報(bào)表學(xué)生信息報(bào)表系統(tǒng)維護(hù)管理數(shù)據(jù)庫(kù)備分?jǐn)?shù)據(jù)庫(kù)還原三詳細(xì)設(shè)計(jì)3.1主要功能模塊設(shè)計(jì)在仔細(xì)分析調(diào)查有關(guān)學(xué)生信息需要的基礎(chǔ)上,將得到如下圖所示的

6、本系統(tǒng)所處理的數(shù)據(jù)流程:學(xué)生注冊(cè)基本信息輸入學(xué)籍信息管理班級(jí)設(shè)置班級(jí)管理班級(jí)課程設(shè)置課程基本信息成績(jī)信息輸入班級(jí)課程管理成績(jī)信息管理學(xué)生信息報(bào)表成績(jī)信息報(bào)表報(bào)表統(tǒng)計(jì)中心系統(tǒng)維護(hù)管理學(xué)生信息備分還原成績(jī)信息備分還原3.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 針對(duì)學(xué)生管理系統(tǒng)的要求,通過(guò)對(duì)學(xué)生學(xué)習(xí)過(guò)程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)如下面所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)如下面各表所示。每個(gè)表表示數(shù)據(jù)庫(kù)中的一個(gè)數(shù)據(jù)表。class_info班級(jí)信息基本表列 名數(shù)據(jù)類型可否為空說(shuō) 明class_nochar (3)not null班級(jí)編號(hào)(主鍵)grade_nochar(10)null年級(jí)編號(hào)user_idvarchar

7、 (10)null班主任編號(hào)course_no課程信息基本表列 名數(shù)據(jù)類型可否為空說(shuō) 明course_noint (4)not null課程編號(hào)(主鍵)course_namevarchar(30)null課程名稱course_typechar (20)null課程類型course_desvarchar(60)null備注gradecourse_info年級(jí)課程開(kāi)設(shè)基本表列 名數(shù)據(jù)類型可否為空說(shuō) 明grade_nochar (8)not null年級(jí)編號(hào)(主鍵)course_noint(4)null課程編號(hào)result_info成績(jī)基本表列 名數(shù)據(jù)類型可否為空說(shuō) 明exam_nochar (10

8、)not null考試編號(hào)(主鍵)cstudent_idvarchar(15)not null學(xué)生編號(hào)course_noint(4)not null課程編號(hào)resultfloat(8)null學(xué)習(xí)成績(jī)school_info學(xué)校信息基本表列 名數(shù)據(jù)類型可否為空說(shuō) 明school_namevarchar (12)null學(xué)校名稱school_telvarchar (12)null學(xué)校電話schoolgrade_info年級(jí)信息基本表列 名數(shù)據(jù)類型可否為空說(shuō) 明school_namevarchar (12)null學(xué)校名稱school_telvarchar (12)null學(xué)校電話user_info

9、用戶信息基本表列 名數(shù)據(jù)類型可否為空說(shuō) 明user_idvarchar (10)not null用戶編號(hào)(主鍵)user_namevarchar (20)null用戶名稱 user_pwdvarchar (10)null用戶密碼user_desvarchar (20)null用戶描述user_levelint(4)not null用戶類別學(xué)生實(shí)體e-r圖:學(xué)生基本信息學(xué)生班級(jí)信息學(xué)生成績(jī)學(xué)生課程信息學(xué) 生班級(jí)實(shí)體e-r圖:班 級(jí)班 號(hào)所在班級(jí)班主任所在教室課程實(shí)體e-r圖:課 程課程編號(hào)課程名稱課程類型課程描述年級(jí)實(shí)體e-r圖:年 級(jí)年級(jí)名稱包括班級(jí)設(shè)置課程實(shí)體和實(shí)體之間的關(guān)系e-r圖:考核過(guò)

10、程學(xué) 生班級(jí)設(shè)置班 級(jí)年級(jí)設(shè)置年 級(jí)年級(jí)設(shè)置課 程3.3各模塊主要原代碼公用??於x一個(gè)屬性過(guò)程反映連接字符串public property get constring() as variantconstring = data source=.;initial catalog=sims_four;user id=sa;password=;end property定義一個(gè)提供者反映數(shù)據(jù)庫(kù)類型public property get conprovide() as variantconprovide = sqloledbend propertypublic declare function getp

11、rivateprofilestring lib kernel32 alias getprivateprofilestringa (byval lpapplicationname as string, byval lpkeyname as any, byval lpdefault as string, byval lpreturnedstring as string, byval nsize as long, byval lpfilename as string) as longpublic declare function writeprivateprofilestring lib kerne

12、l32 alias writeprivateprofilestringa (byval lpapplicationname as string, byval lpkeyname as any, byval lpstring as any, byval lpfilename as string) as longpublic declare function shellabout lib shell32.dll alias shellabouta (byval hwnd as long, byval szapp as string, byval szotherstuff as string, by

13、val hicon as long) as longoption explicitprivate cnsims as adodb.connection 聲明一個(gè)連接private rssims as adodb.recordset 聲明一個(gè)連接記錄集public rs1 as adodb.recordset 聲明一個(gè)連接到所需表的記錄集public rs2 as adodb.recordsetpublic rst as adodb.recordsetprivate data as object- 在類初始化時(shí)建立連接-private sub class_initialize() on erro

14、r goto dbnotopen set cnsims = new adodb.connection with cnsims .provider = conprovide .connectionstring = constring .connectiontimeout = 10 .open set rst = new adodb.recordset end with exit subdbnotopen: if err = -2147467259 then set cnsims = nothing msgbox 連接后臺(tái)數(shù)據(jù)庫(kù)失?。?& vbcrlf & vbcrlf & 請(qǐng)檢查配置是否完好,數(shù)

15、據(jù)庫(kù)sims_four是否存在?, vbokonly + vbinformation, 學(xué)生信息管理系統(tǒng) end end ifend sub-data是一個(gè)指向ado記錄集的對(duì)象的引用用于設(shè)置class的數(shù)據(jù)源內(nèi)容-private sub class_getdatamember(datamember as string, data as object) set data = rssimsend sub-建立一個(gè)可以打開(kāi)記錄集的函數(shù),需要是必須把表名傳給函數(shù)-public function rsdk(table as string) set rssims = new adodb.recordse

16、t with rssims .source = table .activeconnection = cnsims .cursortype = adopenkeyset .locktype = adlockoptimistic .open , , , , adcmdtable end withend function-建立一個(gè)可以打開(kāi)記錄集(動(dòng)態(tài)游標(biāo))的函數(shù)需要把sql語(yǔ)句傳遞給函數(shù)-public function rsdk1(sql as string) set rs1 = new adodb.recordset with rs1 .source = sql .activeconnection

17、 = cnsims .cursortype = adopenkeyset .locktype = adlockoptimistic .open , , , , adcmdtext end withend function-建立一個(gè)可以打開(kāi)記錄集(靜態(tài)游標(biāo))的函數(shù)需要把sql語(yǔ)句傳遞給函數(shù)-public function rsdk2(sql as string) set rs2 = new adodb.recordset with rs2 .source = sql .activeconnection = cnsims .cursortype = adopenstatic .locktype =

18、 adlockoptimistic .open , , , , adcmdtext end withend function-類終止時(shí),釋放一切可能占據(jù)的資源-private sub class_terminate() set cnsims = nothing set rs1 = nothing set rs2 = nothing set rssims = nothing set rst = nothingend sub學(xué)籍信息管理主要功能代碼private sub cmdfind_click()dim sql as stringdim sql1 as stringdim sql2 as st

19、ringif txtname.text = empty and txtclass.text = empty thenmsgbox 請(qǐng)輸入查詢條件!, vbokonly + vbinformation, 學(xué)籍信息設(shè)置exit subend ifif txtname.text then sql1 = and student_name= & txtname.text & else sql1 = end ifif txtclass.text then sql2 = and class_no= & txtclass.text & else sql2 = end ifsql = select * from

20、 student_info where 1=1 & sql1 & sql2mymodistudent.rsdk1 sqlif mymodistudent.rs1.eof then studentgrid.clear studentgrid.formatstring = | 學(xué)號(hào)| 姓名|性別| 出生日期|班號(hào)| 聯(lián)系電話| 入校時(shí)間| 家庭住址 | 注釋 msgbox 沒(méi)有找到符合條件的記錄!, vbokonly + vbinformation, 提示 txtname.text = else set studentgrid.datasource = mymodistudent.rs1 stud

21、entgrid.formatstring = | 學(xué)號(hào)| 姓名|性別| 出生日期|班號(hào)| 聯(lián)系電話| 入校時(shí)間| 家庭住址 | 注釋 frame2.enabled = true change = false txtstudentname.text = mymodistudent.rs1!student_name cboclass.text = mymodistudent.rs1!class_no txtstudentid.text = mymodistudent.rs1!student_id cbosex.text = mymodistudent.rs1!student_gender txtb

22、irth.text = format(mymodistudent.rs1!birth_date, yyyy-mm-dd) txttel.text = mymodistudent.rs1!tele_number txtindate.text = format(mymodistudent.rs1!in_date, yyyy-mm-dd) txtadd.text = mymodistudent.rs1!address txtcomment.text = mymodistudent.rs1!comment cbograde.text = mid(txtstudentid.text, 5, 2) cmd

23、add.enabled = true cmdsave.caption = 更新(&u) cmdsave.enabled = true cmddel.enabled = trueend ifend subprivate sub cmdreturn_click()mymodistudent.rsdk1 select * from student_infoif not mymodistudent.rs1.eof then set studentgrid.datasource = mymodistudent.rs1 studentgrid.formatstring = |學(xué)號(hào)|姓名|性別| 出生日期|

24、班號(hào)|聯(lián)系電話|入校時(shí)間| 家庭住址|注釋end ifend subprivate sub cmdsave_click()if txtstudentname.text = empty then msgbox 請(qǐng)輸入學(xué)生姓名!, vbinformation, 提示 txtstudentname.setfocus exit subend ifif cbograde.text = empty then msgbox 請(qǐng)選擇年級(jí)!, vbinformation, 提示 cbograde.setfocus exit subend ifif cboclass.text = empty then msgbo

25、x 請(qǐng)選擇班級(jí)!, vbinformation, 提示 cboclass.setfocus exit subend ifif cbosex.text = empty then msgbox 請(qǐng)選擇性別!, vbinformation, 提示 cbosex.setfocus exit subend ifif txtstudentid.text = empty then msgbox 請(qǐng)輸入學(xué)號(hào)!, vbinformation, 提示 txtstudentid.setfocus exit subend ifif txtbirth.text = empty then msgbox 請(qǐng)輸入出生日期!,

26、 vbinformation, 提示 txtbirth.setfocus exit subelseif not isdate(txtbirth) then msgbox 出生日期不是有效日期,請(qǐng)重新輸入., vbinformation, 提示 txtbirth.setfocus txtbirth.text = _-_-_ exit subelseif format(txtbirth.text, yyyy/mm/dd) format(date, yyyy/mm/dd) then msgbox 出生日期不能大于今日,請(qǐng)重新輸入!, vbinformation, 提示 txtbirth.setfoc

27、us exit subelseif format(txtbirth.text, yyyy/mm/dd) format(date, yyyy/mm/dd) then msgbox 入校日期不能大于今日,請(qǐng)重新輸入!, vbinformation, 提示 txtindate.setfocus txtindate.text = _-_-_ exit subelseif format(txtindate.text, yyyy/mm/dd) 99 then msgbox 超過(guò)最大學(xué)號(hào)界限,不能再添加學(xué)號(hào)., vbinformation, 提示 exit sub end if id = trim(str(

28、i) if len(id) = 33 and keyascii = 91 and keyascii = 123 and keyascii = 32 and keyascii = 36 and keyascii 45 and keyascii = 58 and keyascii = 127 then keyascii = 0if keyascii = 13 then txtindate.setfocusend sub其他??旃δ艽a的算法與該模快算法一致,只是數(shù)據(jù)字段及相關(guān)處理信息稍有改動(dòng),此處不再羅列,詳細(xì)的請(qǐng)參考源程序。數(shù)據(jù)備分還原模塊dim cn as adodb.connectiondi

29、m success as longdim ret as long 返回值dim buff as stringprivate sub check1_click()buff = string(255, 0)ret = getprivateprofilestring(backup, restore, , buff, 256, app.path & sims.ini)if ret = 0 then msgbox 你無(wú)權(quán)執(zhí)行還原數(shù)據(jù)庫(kù)的操作,請(qǐng)與管理員聯(lián)系!, vbokonly + vbinformation, 還原數(shù)據(jù)庫(kù) unload me exit subend ifif check1.value

30、= 1 then buff = string(255, 0) ret = getprivateprofilestring(backup, newfile, , buff, 256, app.path & sims.ini) if ret 0 then cbofile.text = buffelse cbofile.text = end ifend subprivate sub cmdexit_click()success = writeprivateprofilestring(backup, restore, , app.path & sims.ini)unload meend subpriv

31、ate sub cmdrestore_click()on error goto err1buff = string(255, 0)ret = getprivateprofilestring(backup, restore, , buff, 256, app.path & sims.ini)if ret = 0 then msgbox 你無(wú)權(quán)執(zhí)行還原數(shù)據(jù)庫(kù)的操作,請(qǐng)與管理員聯(lián)系!, vbokonly + vbinformation, 還原數(shù)據(jù)庫(kù) unload me exit subend ifif cbofile.text then cn.execute (use master) cn.exec

32、ute restore database sims_four from disk= & app.path & backup & cbofile.text & msgbox 數(shù)據(jù)庫(kù)還原成功!, vbokonly + vbinformation, 還原數(shù)據(jù)庫(kù) cbofile.text = check1.value = 0else msgbox 請(qǐng)選擇備份文件!, vbokonly + vbinformation, 還原數(shù)據(jù)庫(kù)end ifexit suberr1: if err = -2147217900 then msgbox 找不到指定的備份文件。 & vbcrlf & vbcrlf & 數(shù)據(jù)庫(kù)還原失敗!, vbokonly + vbinformation, 還原數(shù)據(jù)庫(kù) cbofile.text = check1.value = 0 else msgbox 未知錯(cuò)誤,數(shù)據(jù)庫(kù)還

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論