數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告:學(xué)生成績統(tǒng)計(jì)管理_第1頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告:學(xué)生成績統(tǒng)計(jì)管理_第2頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告:學(xué)生成績統(tǒng)計(jì)管理_第3頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告:學(xué)生成績統(tǒng)計(jì)管理_第4頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告:學(xué)生成績統(tǒng)計(jì)管理_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)六.學(xué)生成績統(tǒng)計(jì)管理問題描述用VC+可視化開發(fā)平臺(tái)實(shí)現(xiàn)一個(gè)本班成績管理與統(tǒng)計(jì)程序,要求界面友好,簡潔大方,方便使用。程序的功能要求如下:(1) 支持對(duì)話框形式的學(xué)生信息與課程成績的錄入、修改和刪除;(2) 計(jì)算本班每一位同學(xué)的學(xué)分成績GPA( grade point average) 并排名,以此作為獎(jiǎng)學(xué)金評(píng)定的參考依據(jù);(3)對(duì)某一門課程,按照優(yōu)(90-100)/良(80-89)/中(70-79)/及格(60-69)/不及格(60分以下)五檔進(jìn)行劃分,統(tǒng)計(jì)在每一檔的學(xué)生人數(shù)和百分比例,并顯示統(tǒng)計(jì)結(jié)果。(4) 支持以文本格式導(dǎo)出學(xué)生的成績記錄,支持從文件中導(dǎo)入學(xué)生成績記錄;(5) 其他成績

2、管理與統(tǒng)計(jì)所需的功能,可按自己的預(yù)想進(jìn)行擴(kuò)展。演示時(shí)的模擬數(shù)據(jù)不少于15 人。實(shí)驗(yàn)理論本實(shí)驗(yàn)幾乎考察了VC+開發(fā)的全部基本內(nèi)容,其中,主要涵蓋以下三大塊的相關(guān)知識(shí)點(diǎn):1.資源 菜單資源及其應(yīng)用,工具欄2.對(duì)話框 對(duì)話框的創(chuàng)建,對(duì)話框的數(shù)據(jù)交換和檢驗(yàn)3.控件 靜態(tài)文本和編輯框控件,按鈕控件,列表框控件,滾動(dòng)條控件等另外,實(shí)驗(yàn)還涉及了C+的主要知識(shí)點(diǎn),如“類與對(duì)象”、“派生與繼承”、“I/O流”以及C+語言基礎(chǔ)知識(shí)。功能實(shí)現(xiàn)和相關(guān)程序及截圖鑒于VC+的消息驅(qū)動(dòng)機(jī)制以及本實(shí)驗(yàn)的相對(duì)復(fù)雜性,使得不便以一個(gè)相對(duì)結(jié)構(gòu)化的方式來說明具體實(shí)現(xiàn)內(nèi)容,下面將以分塊的形式對(duì)本系統(tǒng)的主要功能進(jìn)行闡釋。1.界面設(shè)計(jì) 如

3、圖所示,界面包括a左上方的三個(gè)菜單 通過添加tab控件來實(shí)現(xiàn),分別實(shí)現(xiàn)各個(gè)班級(jí),年級(jí)成績的管理和相關(guān)參數(shù)的設(shè)定功能b左側(cè)的“增加記錄”等功能按鈕 單擊時(shí)會(huì)彈出相應(yīng)的對(duì)話框,內(nèi)含靜態(tài)文本和編輯框控件c三個(gè)數(shù)據(jù)顯示框 包括單科成績分類統(tǒng)計(jì),任課教師,學(xué)生成績?nèi)龎K(列表框控件),數(shù)據(jù)更新時(shí)會(huì)進(jìn)行相應(yīng)的顯示,另外,還含有3個(gè)滾動(dòng)條控件2.對(duì)話框形式的學(xué)生信息與課程成績的錄入、修改和刪除 下面以信息錄入為例對(duì)該部分功能做詳細(xì)介紹a. 添加一個(gè)對(duì)話框模板資源。修改對(duì)話框模板的ID為IDD_ADDDIALOG,Caption為“增加記錄”,并添加7個(gè)靜態(tài)文本控件和7個(gè)編輯框控件,如圖所示,“學(xué)號(hào)”和“姓名”

4、兩個(gè)編輯框設(shè)置為string類型,其余設(shè)置為float類型。b. 在對(duì)話框上右擊,選擇“添加類”,這時(shí)會(huì)彈出“類向?qū)?duì)話框”。將類名改為“CADDDIALOG”,基類選擇“CDialog”,然后單擊“完成”按鈕。c在對(duì)話框上右擊,選擇“添加變量”,這時(shí)會(huì)彈出“添加成員變量對(duì)話框”,如右圖所示,添加變量m_strName,然后單擊“完成”按鈕。類似的,依次添加剩下的六個(gè)變量m_strxue,m_fmaths m_fphysicalm_fchemistrym_fenglishm_fpolitic d 在類IDD_BADIALOG頭文件中將類的聲明包括進(jìn)來:#include” ADDDIALOG.h

5、” 添加兩個(gè)成員變量,分別存放“總成績“和“平均成績(GPA)”e添加消息處理函數(shù),當(dāng)有記錄增加時(shí),進(jìn)行相應(yīng)的處理void CBaDialog:OnAdd() / TODO: Add your control notification handler code hereSelec=TRUE;CAddialog dlg;if( dlg.DoModal()=IDOK) if(this-Select()=一班) if(dlg.m_nxue=200) AfxMessageBox(一班學(xué)號(hào)在1200之間); return; else if(dlg.m_nxue=400) AfxMessageBox(二班

6、學(xué)號(hào)在200400之間);return; m_Set.AddNew(); m_nRecordCount+=1; m_Set.m_column1=dlg.m_nxue; m_Set.m_column2=dlg.m_strName; m_Set.m_column3=dlg.m_fmaths; m_Set.m_column4=dlg.m_fphysical; m_Set.m_column5=dlg.m_fchemistry; m_Set.m_column6=dlg.m_fenglish; m_Set.m_column7=dlg.m_fpolitic; m_Set.m_column8=dlg.m_fm

7、aths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic; m_Set.m_column9=(float)(m_Set.m_column8/5); this-Equal(); m_Set.Update();/Update()一定放在Equal()后 m_Set.Requery(); this-Xuan(); 類似的,可實(shí)現(xiàn)信息的刪除功能和修改功能。略有不同的是,刪除和修改功能對(duì)話框都新增加了一個(gè)密碼輸入框,以保護(hù)信息。3.排序功能 和信息刪改功能類似,加入以下程序段即可實(shí)現(xiàn)排序功能。這里,用戶通過單擊相應(yīng)的題頭便可實(shí)

8、現(xiàn)以該項(xiàng)數(shù)據(jù)為依據(jù)的排序功能,連續(xù)單擊可實(shí)現(xiàn)升序與降序兩種不同排序方式見的切換。如右圖,為一物理成績?yōu)橐罁?jù)的降序排序。void CBaDialog:Sort(BOOL isAsc,int secol) if(m_Set.IsOpen() m_Set.Close();this-Select();m_bSet.Close();CODBCFieldInfo fieldInfo;m_Set.GetODBCFieldInfo(secol,fieldInfo);if(isAsc)m_Set.m_strSort=fieldInfo.m_strName+ ASC; m_bIsAsc=TRUE;elsem_Se

9、t.m_strSort=fieldInfo.m_strName+ DESC;m_bIsAsc=FALSE;m_Set.Requery();4.成績分檔劃分 加入下列代碼,當(dāng)信息有變動(dòng)(增、刪、改)時(shí),程序可根據(jù)變動(dòng)信息對(duì)各個(gè)分檔的數(shù)據(jù)進(jìn)行相應(yīng)修改 void CBaDialog:Equal() for(int i=0;i=90) m_bSet.m_column4-=1; if(p=80 & p=70 & p=60 & p70) m_bSet.m_column7-=1; if(p=90) m_bSet.m_column4+=1; if(p=80 & p=70 & p=60 & p70) m_bSe

10、t.m_column7+=1; if(p=”,并在查詢數(shù)值中輸入“90”即可,查詢結(jié)果如下圖所示。 7.其他一些截圖和函數(shù)代碼刪除記錄對(duì)話框修改記錄對(duì)話框 年級(jí)成績操作界面操作界面上數(shù)據(jù)的現(xiàn)實(shí)是通過下面的display函數(shù)來實(shí)現(xiàn)的void CBaDialog:display() int i=0; m_bSet.MoveFirst(); do CString s; m_ListCtrlb.InsertItem(i,m_bSet.m_column1,0);s.Format(%.1f,m_bSet.m_column2);m_ListCtrlb.SetItemText(i,1,s); s.Format

11、(%.2f,m_bSet.m_column3); m_ListCtrlb.SetItemText(i,2,s); s.Format(%d,m_bSet.m_column4); m_ListCtrlb.SetItemText(i,3,s); s.Format(%d,m_bSet.m_column5); m_ListCtrlb.SetItemText(i,4,s);s.Format(%d,m_bSet.m_column6);m_ListCtrlb.SetItemText(i,5,s); s.Format(%d,m_bSet.m_column7); m_ListCtrlb.SetItemText(i

12、,6,s);s.Format(%d,m_bSet.m_column8);m_ListCtrlb.SetItemText(i,7,s); i+; m_bSet.MoveNext(); while(!m_bSet.IsEOF(); m_bSet.Close(); 一班和二班的選擇功能是通過下面的Select函數(shù)實(shí)現(xiàn)的CString CBaDialog:Select() if(m_Getstring=一班) m_Set.Open(); m_bSet.Open(); else m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,NO2STUDENT); m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,NO2OBJECT); return m_Getstring; 最后我們?yōu)槲覀兊墓芾硐到y(tǒng)設(shè)計(jì)了一個(gè)可愛大方的圖標(biāo)實(shí)驗(yàn)總結(jié) 通過這次試驗(yàn),我們學(xué)習(xí)到了VC+的相關(guān)知識(shí),比如文檔、對(duì)話框和控件,理解了一些并能夠進(jìn)行初步應(yīng)用。C+類的面向?qū)?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論