




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課 程 設 計 任 務 書題 目 學生成績管理系統(tǒng) 系 (部) 數理系 專 業(yè) 班 級 學生姓名 學 號 12 月 21 日至 12 月 25 日 共 1 周指導教師(簽字) 系 主 任(簽字) 年 月 日學生成績管理系統(tǒng)通過完成從用戶需求分析、概念結構設計,邏輯結構設計等一系列的數據庫設計到上機編程、調試和應用等全過程,進一步理解和掌握教材中的相關內容。一實驗要求 (1)先對選定的實驗做簡單的需求分析;(2)做出數據流圖和數據字典;(3)在數據流圖和字典的基礎上做出E-R圖(概念結構設計);(4)在E-R圖基礎上進行關系模式設計(至少滿足3NF)(邏輯結構設計);(5)根據需求分析的各種數據請求得出各種視圖以及各種約束、規(guī)則、觸發(fā)器腳本描述;(6)根據第(5)的內容在SQL-SERVER中設計中實例的數據庫;(7)用自己熟悉的一門語言進行設計的功能的實現(8)整理前面幾步的文檔和程序源碼,可執(zhí)行程序,形成最終的實驗報告。(9)實驗報告的最后寫出本次實驗完成中遇到的問題及解決方法二需求分析1.功能需求本系統(tǒng)開發(fā)的目的,就是通過系統(tǒng)開發(fā),實現課程管理有關工作的計算機化,提高關鍵環(huán)節(jié)的處理速度和規(guī)范化,并對有關的工作進行集成和重組,通過網絡系統(tǒng)實現集中管理、分散操作,提高選課管理工作的質量和效率。通過對學校的選課及成績管理工作進行實際調查,學生可以自由選擇課程、選老師,學生注冊的行政班和教學班是游離的,開發(fā)工作需要涉及任課教師、學生、管理員(教務工作人員)三種用戶。2.學生需求在學校規(guī)定的選課期間,學生通過任何一臺連接因特網計算機的瀏覽器就能進行網上選課。學生以用戶名和密碼進入選課系統(tǒng)。選課系統(tǒng)會根據用戶名和密碼自動識別所在的系,然后顯示出與學生有關的課程列表。系統(tǒng)必須控制某一門課程在學期間只能選一次。在學生選課時能自動進行有關邏輯判斷,如:是否選課超過了規(guī)定的門數,是否選擇了不符合預修條件的課程,是否選擇的課程超過此課程最大選擇人數,只有符合要求的選擇才能選課成功。學生可以更改部分個人信息如密碼,電話號碼等;學生可以查詢已修課程成績和已選課程信息。3.教師需求任課教師登錄后,可以查看自己所教課程的課程表;對于同一學期內有多門課程的教師,需要選擇具體課程后,才能查看已選這門課程的學生信息:期末,教師可以上傳這些學生的成績。4.管理員需求系統(tǒng)管理員登錄后,可以對學生,教師,課程,教學班級的基本信息進行添加,修改,刪除等工作。課程安排是選課的核心,只有按照實際的教學情況安排出每個學期必修和選修的課程,才能保證選課的順利進行。在每學期,學生選課前,各院系管理員必須在該院系培養(yǎng)方案中錄入本學期可以開設的課程和排課安排,對于需要預修條件的課程,需要設置好預修條件。基礎部管理員負責公共課的課程開設和排課安排。其中排課及教學班級的安排上要保證同一個教師在同一時間只能上一門課程;同一個教室同一時間也只能開一門課程。三數據分析與建模1.數據流圖和數據字典頂層圖:數據字典:數據流項目:學生信息=姓名+學號+性別+年齡+專業(yè)+總學分成績單=姓名+課目+成績數據項條目:數據項名:成績類型:int長度:4范圍:100-0加工條目:處理過程:過程名:學籍管理系統(tǒng)輸入:學生信息,考試成績,學生記錄輸出:統(tǒng)計表,成績單數據字典:數據存儲:數據存儲名:學生記錄組成:姓名+學號+性別+年齡+專業(yè)+總學分處理過程:處理過程名:錄入存儲處理輸入:學生信息處理要求:如果沒有所輸入的學生記錄,則建立新的學生記錄,存儲基本情況和課目成績處理過程名:查詢處理輸入:學生信息,課程號輸出:成績處理要求:根據學生的學號查詢相應的成績處理過程名:統(tǒng)計處理輸入:學生考試成績輸出:平均成績,排名成績數據字典:數據流:新生信息=入學時間+姓名+年齡+專業(yè)+性別合格單=姓名+專業(yè)處理過程:處理過程名:審查輸入:學生信息輸出:合格單處理要求:根據學生信息判斷是否是新生處理過程名:是否是新生輸入:合格單輸出:新生信息處理要求:根據合格單建立新生信息處理過程名:錄入存儲學生信息,各科成績輸入:新生信息,考試成績輸出:本次考試成績數據字典:數據存儲:數據存儲名:考試成績組成:姓名+專業(yè)+成績+學號組織方式:一學號為關鍵字處理過程:處理過程名:有效性檢查輸入:學號,課程號輸出:有效查詢處理要求:根據所輸入的信息查詢有效性處理過程名:成績查詢輸入:考試成績輸出:成績處理要求:根據考試成績查詢成績處理過程:處理過程名:統(tǒng)計選擇輸入:學生記錄輸出:按規(guī)定統(tǒng)計成績處理要求:根據所輸入學生記錄查詢成績2.E_R圖1) 學生實體E-R圖2)課程實體E-R圖3) 教師實體E-R圖4)各實體之間的E-R圖3.ER圖轉換為關系模式:1)學生(XS)(學號(sno),姓名(sname),專業(yè)(sdept),性別(ssex),出生日期(sbirth),總學分(all_credit))學生表:主碼:學號(sno)函數依賴:sno U.此表中,不存在非主屬性對碼的部分依賴,傳遞依賴,以及主屬性對碼的部分依賴和傳遞依賴,故滿足3NF2)課程(KC)(課程號(cno),課程名(cname),開課學期(term),學時(class_hour),學分(credit))課程表:主碼:課程號(cno)函數依賴:cno U此表中不存在非主屬性對碼的部分依賴,傳遞依賴,以及主屬性對碼的部分依賴和傳遞依賴,故滿足3NF3)選課(XS_KC)(學號(sno),課程號(cno),成績(grade))選課表:主碼:(學號,課程號)外碼:學號,課程號函數依賴:(sno,cno) U此表中不存在非主屬性對碼的部分依賴,傳遞依賴,以及主屬性對碼的部分依賴和傳遞依賴,故滿足3NF4)教師(TCH)(編號(tno),姓名(tname),性別(tsex),出生日期(tbirth),職稱(professional),專業(yè)(department))教師表:主碼:編號(tno)函數依賴:tno U此表中不存在非主屬性對碼的部分依賴,傳遞依賴,以及主屬性對碼的部分依賴和傳遞依賴,故滿足3NF5)授課(TCH_KC)(教師編號(tno),課程號(cno),上課地點(place))授課表:主碼:(教師編號,課程號)外碼:教師編號,課程號函數依賴:(tno,cno)U此表中不存在非主屬性對碼的部分依賴,傳遞依賴,以及主屬性對碼的部分依賴和傳遞依賴,故滿足3NF4.邏輯設計結果:數據庫表名XS(學生)字段名數據類型含義說明空值情況備注SnoChar(10)學號不能為空主鍵SnameChar(10)姓名不能為空ssexChar(10)性別可以為空只能取“男”“女”,默認為“男”Sbirthdate出生日期可以空SdeptChar(10)所在專業(yè)可以空All_creditInt總學分可以空數據庫表名KC(課程)字段名數據類型含義說明空值情況備注CnoChar(10)課程號不能為空主鍵SnameChar(10)課程名不能為空creditint學分可以空Class_hourInt課時數可以空TermInt開課學期可以空數據庫表名TCH(教師)字段名數據類型含義說明空值情況備注tnoChar(10)教師號不能為空主鍵tnameChar(10)姓名不能為空完全依賴Tno,是uniqueTbirthdate出生日期可以空TsexChar(10)性別可以空只能取“男”“女”,默認為男ProfessionalChar(10)職稱可以空DepartmentChar(10)專業(yè)可以空數據庫表名XS_KC(選課)字段名數據類型含義說明空值情況備注CnoChar(10)課程號不能為空主碼 SnoChar(10)學號不能為空主碼Gradeint成績可以空數據庫表名TCH_KC(授課)字段名數據類型含義說明空值情況備注TnoChar(10)教師編號不能為空主碼 CnoChar(10)課程號不能為空主碼PlaceChar(10)授課地點可以空四數據庫應用開發(fā)與運行 此為主界面,有五個按鈕,可進行查詢,修改等操作。上圖為學生信息查詢窗口,可按學號,姓名,專業(yè)進行查詢下圖學生選課信息窗口,雙擊上圖學生信息查詢窗口中表格左邊,可彈出此窗口顯示該學生選課信息。上圖為教師信息查詢窗口,可按教師編號,姓名,職稱部門進行查詢,雙擊表格左部可顯示教師授課信息,如下圖所示。此為學生信息修改窗口,單擊一行,可在上面文本框中顯示該生信息,并進行插入,修改,刪除等操作。此為學生成績錄入窗口,單擊一行可現實該生學號及所選課程,并在成績文本框中進行添加及修改該課程成績操作。此為學生選課窗口,單擊一行顯示該行信息,可進行選課,刪除操作5 結果分析、結論與體會 在這次課程設計中,我遇到的困難很多,在解決它們的同時我又學到了很多,受益匪淺,特別是如何分析、建立、開發(fā)一個系統(tǒng)。 在一個系統(tǒng)開發(fā)的過程中編碼不是重要的,重要的是分析系統(tǒng)、建立起系統(tǒng)模型。在分析一個系統(tǒng)前,分析人員必須要對將要開發(fā)的系統(tǒng)所涉及到的各方面知識有一個認識,然后將系統(tǒng)的模型建立起來。 在程序編寫中,我認識到軟件要有簡便的界面,良好的程序風格。擁有這些條件,程序的可讀性才會好,開發(fā)的復雜度才能大大減少,修改代碼時更加容易下手。 我認為,所謂友好的界面,就是用戶需要的界面,力求簡便全面。所以設計一個界面時,開發(fā)人員必須要了解用戶的想法,從用戶的角度去設計,當然,開發(fā)不能全聽用戶的意見,在詳細分析了系統(tǒng)后,開發(fā)人員可以向用戶提出一些修改的意見,在雙方多次交流后定出程序所需的功能,以決定界面的實現。 在編碼中,良好的編程風格與習慣是提高工作效率的一個重要方面,而且良好的編程風格與習慣也是使軟件便于維護的基礎。那如何是良好的編程風格與習慣呢?我認為主要是程序的模塊化、必要的注釋。所謂模塊化就是使程序的功能實現分成多個單獨的功能模塊,而不能在一大段代碼中實現多個功能,如果這樣做,別的人是非常難讀懂你的程序。必要的注釋,顯而易見是要在程序的編寫中加入對程序的說明,原因就是為了別人能讀懂你的程序,過一段時間后你自己還能讀懂自己的程序。最后說明下這次課程設計給我感受最深的有三點: 1進行管理系統(tǒng)開發(fā)這樣的工作,要有恒心,要能靜下新來做,而不能浮躁。 2要善于同別人交流與合作,善于獲取各種有用的資源。 3要真真實實的多查資料,多問,多看。6 參考文獻及資料1 學用Visual Basic 編程 潭浩 西安電子科技大學出版社 2 數據庫原理 丁寶康 施伯樂著 經濟科學出版社 3 SQL Server數據庫開發(fā)入門與范例解析 夏邦貴著 北京機械工業(yè)出版社4 SQL Server 2005應用開發(fā)技術指南 彭東著 北京清華大學出版社 5Visual Basic6.0 林陳雷著 人民郵電出版社 6面向對象程序設計系列教材 龔沛曾著 高等教育出版社 7Visual Basic6.0 數據庫開發(fā)與專業(yè)應用 敬 錚著 國防工業(yè)出版社 8Visual Basic6.0 數據庫程序設計高手 溫賢發(fā)著 科學出版社七.附錄SQL Server 建立五張表VB程序及控件設置Private Sub Command3_Click() 取消Stusno.Text = Stusname.Text = Stusbirth.Text = Stusdept.Text = Stuall_credit.Text = Stusexm = FalseStusexf = FalseEnd Sub修改元組Private Sub Stuchange_Click()If Trim(Stusno.Text) = Or Trim(Stusname.Text) = Or (Stusexm = False And Stusexf = False) ThenMsgBox 加*數據項不能為空,請重新設置, vbOKOnly, 信息提示Stusno.SetFocusExit SubEnd IfIf Trim(Stusbirth.Text) ThenIf Not IsDate(Trim(Stusbirth.Text) ThenMsgBox 出生日期輸入不正確,請重新輸入, vbOKOnly, 信息提示Stusbirth.SetFocusExit SubEnd IfEnd IfStuADO.Recordset.Fields(學號) = Trim(Stusno.Text)StuADO.Recordset.Fields(姓名) = Trim(Stusname.Text)StuADO.Recordset.Fields(出生日期) = Trim(Stusbirth.Text)StuADO.Recordset.Fields(專業(yè)) = Trim(Stusdept.Text)StuADO.Recordset.Fields(總學分) = Trim(Stuall_credit.Text)If Stusexm = True ThenStuADO.Recordset.Fields(性別) = 男Else: Stusexf = TrueStuADO.Recordset.Fields(性別) = 女End IfStuADO.Recordset.UpdateEnd Sub刪除元組Private Sub StuDel_Click()ret = MsgBox(是否要刪除 + StuADO.Recordset(學號) + 號學生的記錄?, vbYesNo, 提示)If ret = vbYes ThenStuADO.Recordset.DeleteEnd IfStuADO.RecordSource = select sno 學號,sname 姓名,sdept 專業(yè),ssex 性別,sbirth 出生日期,all_credit 總學分 from XSCommand3_ClickStuADO.RefreshEnd Sub選中一行顯示元組Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset(學號)Stusname.Text = StuADO.Recordset(姓名)Stusbirth.Text = StuADO.Recordset(出生日期)Stusdept.Text = StuADO.Recordset(專業(yè))Stuall_credit = StuADO.Recordset(總學分)If Trim(StuADO.Recordset(性別) = 男 ThenStusexm = TrueElseStusexf = TrueEnd IfEnd Sub插入元組Private Sub Studinsert_Click()If Trim(Stusno.Text) = Or Trim(Stusname.Text) = Or (Stusexm = False And Stusexf = False) ThenMsgBox 加*數據項不能為空,請重新設置, vbOKOnly, 信息提示Stusno.SetFocusExit SubEnd IfIf Trim(Stusbirth.Text) ThenIf Not IsDate(Trim(Stusbirth.Text) ThenMsgBox 出生日期輸入不正確,請重新輸入, vbOKOnly, 信息提示Stusbirth.SetFocusExit SubEnd IfEnd IfStuADO.Recordset.AddNewStuADO.Recordset.Fields(學號) = Trim(Stusno.Text)StuADO.Recordset.Fields(姓名) = Trim(Stusname.Text)StuADO.Recordset.Fields(出生日期) = Trim(Stusbirth.Text)StuADO.Recordset.Fields(專業(yè)) = Trim(Stusdept.Text)StuADO.Recordset.Fields(總學分) = Trim(Stuall_credit.Text)If Stusexm = True ThenStuADO.Recordset.Fields(性別) = 男Else: Stusexf = TrueStuADO.Recordset.Fields(性別) = 女End IfStuADO.Recordset.UpdateEnd Sub取消Private Sub Stucancel_Click()Stusno.Text = Stusname.Text = Stucname.Text = End Sub選課Private Sub Stuchoose_Click()StuADOXS.RecordSource = select * from XS where sno= + Trim(Stusno.Text) + StuADOXS.RefreshIf Trim(Stusno.Text) = Or Trim(Stusname.Text) = Or Trim(Stucname.Text) = Thenret = MsgBox(輸入不正確,請重新輸入!, vbYes, 錯誤!)ElseIf Trim(Stusname.Text) Trim(StuADOXS.Recordset(sname) Thenret = MsgBox(輸入學號與姓名不匹配,請重新輸入!)ElseStuADOXS_KC.RecordSource = select * from XS_KCStuADOXS_KC.RefreshStuADOXS_KC.Recordset.AddNewStuADOXS_KC.Recordset.Fields(sno) = Trim(Stusno.Text)StuADOKC.RecordSource = select * from KC where cname= + Trim(Stucname.Text) + StuADOKC.RefreshStuADOXS_KC.Recordset.Fields(cno) = StuADOKC.Recordset(cno)StuADOXS_KC.Recordset.UpdateStuADO.RefreshEnd IfEnd Sub刪除元組Private Sub Studelete_Click()ret = MsgBox(是否要刪除 + StuADO.Recordset(學號) + 號學生的選課記錄?, vbYesNo, 提示)If ret = vbYes ThenStuADOXS_KC.RecordSource = select * from XS_KC where sno= + StuADO.Recordset(學號) + StuADOXS_KC.RefreshStuADOXS_KC.Recordset.DeleteEnd IfStuADO.RefreshStucancel_ClickEnd Sub單擊顯示元組Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset(學號)Stusname.Text = StuADO.Recordset(姓名)Stucname.Text = StuADO.Recordset(課程名)End SubPrivate Sub Stuadd_Click()If Stugrade.Text = Thenret = MsgBox(輸入為空,請重新輸入, vbYes, 錯誤提示)ElseStuADOKC.RecordSource = select * from KC where cname= + Trim(Stucname.Text) + StuADOKC.RefreshStuADOXS_KC.RecordSource = select * from XS_KC where cno= + StuADOKC.Recordset(cno) + StuADOXS_KC.RefreshStuADOXS_KC.Recordset.Fields(sno) = Stusno.TextStuADOXS_KC.Recordset.Fields(cno) = StuADOKC.Recordset(cno)StuADOXS_KC.Recordset.Fields(grade) = Stugrade.TextStuADOXS_KC.Recordset.UpdateStuADO.RecordSource = select sno 學號,XS_KC.cno 課程號,cname 課程名,grade 成績 from KC,XS_KC where KC.cno=XS_KC.cnoStuADO.RefreshEnd IfEnd Sub取消Private Sub Stucancel_Click()Stusno.Text = Stucname.Text = Stugrade.Text = End Sub刪除學生成績Private Sub Studelete_Click()ret = MsgBox(是否要刪除 + Trim(StuADO.Recordset(學號) + 號學生成績?, vbYesNo, 提示)If ret = vbYes ThenStuADO.Recordset(成績) = NullEnd IfEnd Sub單擊顯示元組Private Sub StuDG_Click()Stusno.Text = StuADO.Recordset(學號)Stucname.Text = StuADO.Recordset(課程名)End Sub修改學生成績Private Sub Stusure_Click()If Stugrade.Text = Thenret = MsgBox(輸入為空,請重新輸入, vbYes, 錯誤提示)ElseStuADOKC.RecordSource = select * from KC where cname= + Trim(Stucname.Text) + StuADOKC.RefreshStuADOXS_KC.RecordSource = select * from XS_KC where cno= + StuADOKC.Recordset(cno) + + and sno= + Trim(Stusno.Text) + StuADOXS_KC.RefreshStuADOXS_KC.Recordset.Fields(grade) = Trim(Stugrade.Text)StuADOXS_KC.Recordset.UpdateStuADO.RecordSource = select sno 學號,XS_KC.cno 課程號,cname 課程名,grade 成績 from KC,XS_KC where KC.cno=XS_KC.cnoStuADO.RefreshEnd IfEnd SubPrivate Sub Command1_Click()StuSearch.ShowEnd SubPrivate Sub Command2_Click()AddStu.ShowEnd SubPrivate Sub Command3_Click()AddStuCourse.ShowEnd SubPrivate Sub Command4_Click()AddStuGrade.ShowEnd SubPrivate Sub Command5_Click()TchSearch.ShowEnd SubDim SqlStr As StringPublic Sub MakeSqlStr()SqlStr = If Trim(Stusno) ThenSqlStr = SqlStr + and sno like% + Trim(Stusno.Text) + % End IfIf Trim(Stusname) ThenSqlStr = SqlStr + and sname like % + Trim(Stusname.Text) + %End IfIf Trim(Stusdept) ThenSqlStr = SqlStr + and sdept= + Trim(Stusdept.Text) + End IfEnd SubPrivate Sub Command1_Click()MakeSqlStrStuADO.RecordSource = select sno 學號,sname 姓名,sdept 專業(yè),ssex 性別,sbirth 出生日期,all_credit 總學分 from XS where (ssex =男 or ssex=女) _& SqlStrStuADO.RefreshEnd SubPrivate Sub StuDG_DblClick()ShowStuKC.StuKCADO.RecordSource = select sn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市容巡查面試題及答案
- 卓別林的課件
- 財務管理總論
- 2025年血型及HLA生物制品項目發(fā)展計劃
- 2025年中國恒定濕熱實驗箱市場調查研究報告
- 2025年中國彩印紙盒空白錄像帶市場調查研究報告
- 2025年中國座騎式剪草車市場調查研究報告
- 2025年中國家用掃地機器人市場調查研究報告
- 2025年中國多功能汽車半軸套管拉壓器市場調查研究報告
- 2025年中國吸管機市場調查研究報告
- 【EHS領導力培訓】安全領導力與執(zhí)行力培訓
- 液壓課程設計液壓課程設計
- 船員任職-解職信息修正工作單
- 機電安裝移交及培訓方案
- 陜09J01 建筑用料及做法圖集
- 心電監(jiān)護技術
- 餐廳銷售技巧培訓
- 2020版5MW風力發(fā)電機組安裝手冊風電機組安裝手冊
- 2023年房修工程師年終總結及年后展望
- 《廣州市城市樹木保護專章編制指引》解讀(分享版)
- 電機與電氣控制技術課程說課
評論
0/150
提交評論