VB學生信息管理系統實驗報告_第1頁
VB學生信息管理系統實驗報告_第2頁
VB學生信息管理系統實驗報告_第3頁
VB學生信息管理系統實驗報告_第4頁
VB學生信息管理系統實驗報告_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件技術認知實驗報告PAGEPAGE14計算機與信息工程系09級軟件技術專業Z090555班閆素閣目錄一、實習任務………………..……11.實習任務簡介…………..…..12.《學生成績查詢統計系統》實現的功能概論……………1.3.實習目的……………………14.實驗的背景和意義………….15.軟件工具和需要掌握的知識……………….1二、系統分析…………………21.系統功能模塊的劃分…………………….…22.初步對此程序的描述……….2三、系統設計…………………21.登陸界面實現的細節………………….…..22.其他界面實現的細節………3調試、排錯、測試、試運行過程………..….…...…31.調試、排錯、測試、試運行解析……………….………..4完整源程序……………..………………...61.完整源程序代碼……………………..…...…6總結體會…………….….………………..131.心得體會………………..…..13參考文獻……………….……14 實習任務1.習任務簡介:在課程進行時聽老師介紹軟件工程學的基本思想進行軟件開發的原則和方法;結構化分析的思路和步驟以及結構化編程的方法和面向對象的思想和程序設計方法給了我編輯此程序的能力。在查閱部分資料和咨詢同學后按照軟件開發的一般方法和步驟就手動完成了《學生信息查詢統計系統》。2.《學生成績查詢統計系統》要實現的功能概論①登錄界面:密碼最多嘗試3次,連續3次均輸入錯誤系統自動退出。②具有錄入成績、添加記錄、刪除記錄、修改記錄功能。③具有成績查詢功能,可以按照學號、課程號、課程名、分數段進行查詢。為便于查詢,所有的學號和課程號可考慮以下拉列表的形式給出。④具有全部成績瀏覽功能,且能與數據庫表最新數據同步。⑤具有統計功能,能以直方圖、餅圖、折線圖、散點圖直觀表示各成績段的分布情況。⑥具有打印學生成績報表的功能。⑦具有菜單和工具條的雙重操作功能。3.實習目的:在考試來臨之際,此次實習給了我們一個全面復習的機會以及自我認知的空間!《學生成績查詢統計系統》的功能比較強大,全面系統的運用我們以前學習的知識,如P54頁shell函數的運用!這次試驗的也給了我與同學充分交流的機會,共同研究討論這次試驗,分享思想加深了友誼,我相信對我今后的學習生活定能起到不小的作用!4.實驗的背景和意義:此次實驗是我們由苗老師帶領全面學習了VisualBasic程序設計教程之后進行的。做完此課程設計就迎來了我們的期末考試,由于時間比較緊迫和考試的壓力以及此課程設計涉及的知識點太多,進而我們難免有點急躁,還好一旦進入狀態時間就不知不覺的溜走了,此時的我們享受著做題的樂趣,枯燥和反感自然也就煙消云散了。這次課程設計給我的感受真的很深刻,意義非凡呀。Access、DataReport、ImageList、ToolBar等也是在這一次課程設計中才得以熟練的運用的我的,耐心,細心,恒心進而也得以鍛煉。5.軟件工具和需要掌握的知識要熟悉Access、DataReport、ImageList、ToolBar,adodc,Datalist等控件的運用,要知道控件的添加和窗體的調試和控件的布局以及其對應屬性的設置!要熟悉課本以便在編輯時便于記不清的代碼的查詢。要留意可當上老師講的書本內外的內容,如DataReport就是老師補充的內容,但此次課程設計涉及到了它,進而我也更加清楚了其運用。要熟悉在VB程序內部編輯新建數據庫,新建表。此次課程設計耗時量很大,新建的窗體不少,代碼也相當的多且有點繁雜。尤其數據庫連接時,且要使其與控件同步進行。分數段的劃分都需要運用到函數,故需要掌握其對應函數的應用!ToolBar的應用也應給予充分重視,尤其是其屬性中的“值”的設定以及關鍵字的設定!系統分析:1.系統功能模塊的劃分:2.初步對此程序的描述:Form2為我的登陸主界面,用戶名和密碼連接著我所建的一個“用戶和密碼”數據庫,登錄界面內有用戶注冊功能,其與用戶和密碼數據庫同步。Form1為主界面,里面包含著強大的功能連接著其他五個窗體。除主界面和注冊界面外,其他窗體都連接著我所建的另一個數據庫“基本情況”,添加窗口和數據庫“基本情況”實現了同步,同時總體成績界面與數據庫里的成績保持一致,所以總體成績圖示界面實現了動態掩飾的功能。在個人信息查詢界面只需在Msgbox中輸入想要查詢的學號,如果“基本情況”中有此學號,那么在此窗體內便會顯示此學號的學生信息,沒有查到你所輸入的學號的話則提示無此學號。同一課程信息界面則是運用DataList和Adodc的結合來實現其功能的。系統設計:登陸界面內用戶注冊頁面實現的細節:PrivateSubCommand1_Click()IfText1=""OrText2=""OrText3=""ThenMsgBox"信息不完整,部分注冊",,"敬請注意"ElseIfText2.Text<>Text3.TextThenMsgBox"兩此輸入的密碼不一致,請從新輸入",,"警告"Text2.Text=""Text3.Text=""Text2.SetFocusElseAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from用戶和密碼"SetDataSource=Adodc1Adodc1.RefreshAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("用戶名")=Text1.TextAdodc1.Recordset.Fields("密碼")=Text2.TextAdodc1.Recordset.UpdateMsgBox"注冊成功",,"溫馨提示"Form1.Text1.Text=Text1.TextUnloadForm3EndIfEndSub在登陸界面也是運用數據庫的連接來查找是否存在其人的。再次就不做過多的解釋了,詳情見第五項。2.其他界面實現的細:在主界面幫助菜單中有計算機的調用,其主要shell函數的運用i=Shell("calc.exe",1),而相應的記事本的調用也是運用此函數j=Shell("notepad"+"D:\閆素閣VB課設\關于此程序.Txt",1)。在用戶注冊時運用簡單的部件結合,便調試出了此程序。此代碼如下:在學號查詢窗口是運用Datalist和Adodc的結合來運行的,代碼如下:PrivateSubDataList1_Click()Adodc1.CommandType=adCmdUnknownAdodc1.RecordSource="select*from基本情況where學號='"+DataList1.Text+"'"Adodc1.RefreshSetDataGrid1.DataSource=Adodc1EndSubPrivateSubForm_Load()Adodc2.CommandType=adCmdUnknownAdodc2.RecordSource="select學號from基本情況groupby學號"Adodc2.RefreshSetDataList1.DataSource=Adodc2EndSubToolbar工具欄按鈕用Case語句編輯的幾代碼如下:PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.IndexCase1CommonDialog1.ShowOpenCase2Adodc1.RecordSource="基本情況"Adodc1.RefreshCase3DataReport1.ShowCase4DimaskAsIntegerask=MsgBox("刪除否?",vbYesNo)Ifask=6ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLastEndIfEndSelectEndSub調試、排錯、測試、試運行過程各控件在保證代碼編輯正確無誤的情況下一點要注意各屬性值的變更,如果在代碼正確的前提下,還打不到預期的結果,那么你就要高度注意注意其控件的屬性了!(1)調試、排錯、測試、試運行解析:(1)如你輸入的用戶名和密碼在“用戶和密碼”數據庫中查找不到,那么系統將彈出提示對話框,其如圖1所示:圖1(2)進入主窗體之后迎接你的便是主界面,一點要注意照片的綁定,以免出現氣人不對其號的情況。其窗體演示圖2:圖2(3)在添刪改菜單欄中有同一課程同學信息查詢窗口這一設置,其功能能夠從“基本情況”數據庫中進行根源查找,以確使同一專業的學生信息全盤顯示在Form5中,其圖示示范如圖3:圖3(4)在菜單欄中亦有添加同學這一功能,其演示圖示如圖4:圖4(5)為了使總體成績更加明了,在Form6中我利用其余數據庫“基本情況”連接,確保了其圖示與數據庫同步,便于更加直接的反映出添加或刪除學生的動態及最總體分數段的瀏覽,其圖示如圖5:圖5完整源程序由于窗體的不同,故我要按不同的窗體分別來寫代碼,如下便是完整源程序:完整源程序代碼:登陸界面Form1:PrivateSubCommand1_Click()Staticcount1AsIntegerIfText1.Text=""OrText2.Text=""ThenMsgBox"請把登錄信息填寫完整!",,"溫馨提示"ElseAdodc1.CommandType=adCmdUnknownAdodc1.RecordSource="select*from用戶和密碼where用戶名='"+Text1.Text+"'and密碼='"+Text2.Text+"'"Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0Then‘在數據庫里查找如找到則為1UnloadMeForm1.ShowElseMsgBox"用戶名或密碼錯誤,請重新輸入",,"溫馨提示"Text1.Text=""Text2.Text=""Text1.SetFocuscount1=count1+1Ifcount1>3ThenMsgBox"登陸錯誤超過3次,系統自動退出!",,"溫馨提示"EndEndEndIfEndIfEndIfEndSubPrivateSubCommand2_Click()IfMsgBox("是否退出系統!",vbOKCancel+vbQuestion,"系統提示")=vbOKThenEndEndIfEndSubPrivateSubCommand3_Click()Form3.ShowEndSub新用戶注冊界面的代碼如Form2:PrivateSubCommand1_Click()IfText1=""OrText2=""OrText3=""ThenMsgBox"信息不完整,部分注冊",,"敬請注意"ElseIfText2.Text<>Text3.TextThenMsgBox"兩此輸入的密碼不一致,請從新輸入",,"警告"Text2.Text=""Text3.Text=""Text2.SetFocusElseAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from用戶和密碼"SetDataSource=Adodc1Adodc1.RefreshAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("用戶名")=Text1.TextAdodc1.Recordset.Fields("密碼")=Text2.TextAdodc1.Recordset.UpdateMsgBox"注冊成功",,"溫馨提示"Form1.Text1.Text=Text1.TextUnloadForm3EndIfEndSubPrivateSubCommand2_Click()IfMsgBox("是否退出系統!",vbOKCancel+vbQuestion,"系統提示")=vbOKThenEndEndIfEndSub主界面Form2的代碼如下:PrivateSubCommand1_Click()Dimstrb()AsByteCommonDialog1.ShowOpenOpenCommonDialog1.FileNameForBinaryAs#1f1=LOF(1)ReDimstrb(f1)Get#1,,strbAdodc1.Recordset.Fields("照片").AppendChunkstrbClose#1Image1.Picture=LoadPicture(CommonDialog1.FileName)EndSubPrivateSubgerenxinxichaxun_Click()Form7.ShowEndSubPrivateSubguanyucichengxu_Click()j=Shell("notepad"+"D:\閆素閣VB課設\關于此程序.Txt",1)EndSubPrivateSubjisuanqi_Click()i=Shell("calc.exe",1)EndSubPrivateSubkechenghaochaxun_Click()Form5.ShowEndSubPrivateSubshanchu_Click()DimaskAsIntegerask=MsgBox("刪除否?",vbYesNo)Ifask=6ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLastEndIfEndSubPrivateSubtianjia_Click()Form4.ShowEndSubPrivateSubtongjitu_Click()Form6.ShowEndSubPrivateSubtongyikechengxuesheng_Click()Form5.ShowEndSubPrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.IndexCase1CommonDialog1.ShowOpenCase2Adodc1.RecordSource="基本情況"Adodc1.RefreshCase3DataReport1.ShowCase4DimaskAsIntegerask=MsgBox("刪除否?",vbYesNo)Ifask=6ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLastEndIfEndSelectEndSubPrivateSubxingzhuangyanshi_Click()Form6.ShowEndSubPrivateSubxuehaochaxun_Click()Form8.ShowEndSubPrivateSubxueshengxinxibiao_Click()DataReport1.ShowEndSubPrivateSubzhaorenchuangkou_Click()Form7.ShowEndSub添加學生窗口Form4對應的代碼如下:PrivateSubCommand1_Click()IfText1=""OrText2=""OrText3=""OrText4=""OrText5=""ThenMsgBox"信息不完整,部分注冊",,"敬請注意"ElseAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from基本情況"SetDataSource=Adodc1Adodc1.RefreshAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("學號")=Text1.TextAdodc1.Recordset.Fields("姓名")=Text2.TextAdodc1.Recordset.Fields("課程號")=Text3.TextAdodc1.Recordset.Fields("課程名")=Text3.TextAdodc1.Recordset.Fields("分數")=Text4.TextAdodc1.Recordset.UpdateMsgBox"添加成功",,"溫馨提示"Form1.Text1.Text=Text1.TextEndIfEndSubPrivateSubCommand2_Click()Form4.Visible=FalseEndSub查詢同一課程同學的信息的窗體Form5對應的代碼如下:PrivateSubDataList1_Click()Adodc1.CommandType=adCmdUnknownAdodc1.RecordSource="select*from基本情況where課程號='"+DataList1.Text+"'"Adodc1.RefreshSetDataGrid1.DataSource=Adodc1EndSubPrivateSubForm_Load()Adodc2.CommandType=adCmdUnknownAdodc2.RecordSource="select課程號from基本情況groupby課程號"Adodc2.RefreshSetDataList1.DataSource=Adodc2EndSub總體分數圖示窗體Form6代碼如下:Dima$(5),b%(5),maxPublicSubzbx()Clsa(0)="優秀"a(1)="良好"a(2)="中等"a(3)="及格"a(4)="不及格"DoWhileNotForm1.Adodc1.Recordset.EOFSelectCaseForm1.Adodc1.Recordset.Fields("分數")CaseIs<60b(0)=b(0)+1Case60To70b(1)=b(1)+1Case70To80b(2)=b(2)+1Case80To90b(3)=b(3)+1Case90To100b(4)=b(4)+1EndSelectForm1.Adodc1.Recordset.MoveNextLoopmax=0Fori=0To4Ifb(i)>maxThenmax=b(i)NextiScale(-1,1.2*max)-(max*5,-max*0.1)Line(0,0)-(6*max,0):Line(0,max*1.2)-(0,0)CurrentX=0CurrentY=0Me.Print"統計結果:";Fori=0To4Me.Printa(i)&"的人數為";b(i);",";NextiEndSubPrivateSubCommand1_Click()Dimw%zbxw=max/3X1=wFori=0To4X2=X1+wY2=b(i)Line(X1,0)-(X2,Y2),QBColor(9),BFCurrentX=X1CurrentY=Y2+max*0.1Printa(i)X1=X2+wNextiEndSubPrivateSubCommand2_Click()zbxw=2.5*max/2CurrentX=2.5*max/2:CurrentY=b(1)Fori=0To2.5x=x+w:y=b(i)Line-(x,y):DrawWidth=10PSet(x,y)'Printa(i)DrawWidth=1NextiEndSubPrivateSubCommand3_Click()zbxx=Abs(Me.ScaleHeight/3)+1r=max/2Sum=0Fori=0To4Sum=Sum+b(i)NextiMe.FillStyle=0a1=0Fori=0To4a2=a1+2*3.1415926*b(i)/SumFillColor=QBColor(15*Rnd)Circle(x,x),r,,-a1,-a2CurrentX=x+r*Cos((a1+a2)/10)CurrentY=x-r*Sin((a1+a2)/8)PrintFormat(b(i)/Sum*100,"0.00");"%"a1=a2NextiEndSubPrivateSubCommand4_Click()zbxFori=1To5w=3*max/5:DrawWidth=4x=x+w:y=b(i)PSet(x,y)NextiDrawWidth=2EndSub查找個人信息窗口Form7代碼如下:PrivateSubCommand1_Click()DimmAsStringm=InputBox("請輸入學號","查找窗")Adodc1.Recordset.Find"學號='"&m&"'",,,1IfAdodc1.Recordset.EOFThenMsgBox"無此學號!",,"提示"EndSubPrivateSubCommand2_Click()Visible=FalseEndSub同一學號窗體Form8代碼如下:PrivateSubDataList1_Click()Adodc1.CommandType=adCmdUnknownAdodc1.RecordSource="select*from基本情況where學號='"+DataList1.Text+"'"Adodc1.RefreshSetDataGrid1.DataSource=Adodc1EndSubPrivateSubForm_Load()Adodc2.CommandType=adCmdUnknownAdodc2.RecordSource="select學號from基本情況groupby學號"Adodc2.RefreshSetDataList1.DataSource=Adodc2EndSub六.總結體會這次課程設計在緊張,挑戰與快樂中度過,覺得從中獲益匪淺1.心得體會期末考試即將來臨,這次VB實習給了我們一個全面復習VB的機會以及自我認知的空間!《學生成績查詢統計系統》的功能比較強大,全面系統的運用我們以前學習的知識,如P54頁shell函數的運用!這次試驗的也給了我與同學充分交流的機會,共同研究討論這次試驗,分享思想加深了友誼,我相信對我今后的學習生活定能起到不小的作用!這次實習使我更加熟悉Access、DataReport、ImageList、ToolBar,adodc,Datalist等控件的操作,熟練掌握了常用控件的添加、窗體的調試、控件的布局以及其對應屬性的設置!熟悉了課本便于了我在編輯程序時記不清的代碼的查詢。由于我上課比較留意課堂上老師講的課本內外設計的問題,使我較容易的運用了DataReport報表的制作,因此次課程設計涉及到了它,進而我也更加清楚了其運用。我更加熟悉在VB程序內部編輯新建數據庫,新建表的運用我所做的這次課程設計耗時量很大,新建的窗體比較多,代碼也相當的多且有點繁雜。尤其數據庫連接時,且要使其與控件同步進行。分數段的劃分都需要運用到函數,這次課程設計也是我熟悉了部分函數的應用!ToolBar的編輯也耗費了我的不少腦力,尤其是其屬性中的“值”的設定以及關鍵字的設定!尤其是我在編輯登陸窗體時遇到了

溫馨提示

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

評論

0/150

提交評論