版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p><b> 1 設(shè)計(jì)要求1</b></p><p><b> 2 數(shù)據(jù)庫(kù)設(shè)計(jì)1</b></p><p> 2.1 概念設(shè)計(jì)1</p><p> 2.2 邏輯設(shè)計(jì)與物理結(jié)構(gòu)的設(shè)計(jì)2</p>&
2、lt;p> 2.3 數(shù)據(jù)庫(kù)的輸入2</p><p><b> 3 程序設(shè)計(jì)4</b></p><p> 3.1 學(xué)生信息操作5</p><p> 3.2 學(xué)生成績(jī)操作14</p><p><b> 4 調(diào)試報(bào)告26</b></p><p><b
3、> 5 心得體會(huì)26</b></p><p><b> 6 參考文獻(xiàn)26</b></p><p><b> 學(xué)生成績(jī)管理系統(tǒng)</b></p><p><b> 1 設(shè)計(jì)要求</b></p><p> 管理信息系統(tǒng)MIS(Management In
4、formation System),在強(qiáng)調(diào)管理,強(qiáng)調(diào)信息的現(xiàn)代社會(huì)中越來(lái)越得到普及,如:人事管理、學(xué)生管理系統(tǒng)、工資管理系統(tǒng)等。常用的MIS系統(tǒng)都是基于數(shù)據(jù)庫(kù)操作,實(shí)現(xiàn)信息的查詢、增加、刪除、修改等。</p><p> 學(xué)生成績(jī)管理系統(tǒng)是用AECESS數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)和添加數(shù)據(jù),在設(shè)置數(shù)據(jù)源(ODBC)建立數(shù)據(jù)庫(kù)與程序的連接后,利用VC開(kāi)發(fā)可視化界面完成基于數(shù)據(jù)庫(kù)的操作,實(shí)現(xiàn)學(xué)生信息的查詢、增加、刪除、修
5、改和成績(jī)信息的查詢、增加、刪除、修改、排序、統(tǒng)計(jì)等功能,從而實(shí)現(xiàn)學(xué)生成績(jī)信息的多方位顯示,方便管理者對(duì)學(xué)生成績(jī)的管理。</p><p><b> 2 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p><b> 2.1 概念設(shè)計(jì)</b></p><p> 根據(jù)設(shè)計(jì)要求,要對(duì)學(xué)生信息和成績(jī)進(jìn)行操作,所以系統(tǒng)實(shí)體包括學(xué)生基本信息表和課程
6、基本信息表。</p><p> 學(xué)生成績(jī)管理系統(tǒng)中它們的聯(lián)系是一個(gè)學(xué)生可以選修多門(mén)課程,一門(mén)課程可以被多個(gè)學(xué)生選修,學(xué)生和課程之間是多對(duì)多的關(guān)系,。</p><p> 由以上分析可以得該系統(tǒng)的E-R關(guān)系圖:</p><p> 圖1 E-R關(guān)系圖</p><p> 2.2 邏輯設(shè)計(jì)與物理結(jié)構(gòu)的設(shè)計(jì)</p><p&g
7、t; 根據(jù)概念設(shè)計(jì)中的E-R圖,可設(shè)計(jì)三個(gè)表,其關(guān)系模型如下:</p><p> 學(xué)生基本信息表:學(xué)號(hào),姓名,性別,年齡,系別</p><p> 課程基本信息表:課程號(hào),課程名,課時(shí)</p><p> 成績(jī)表:學(xué)號(hào),課程號(hào),成績(jī)</p><p> 在ACCESS中定義三個(gè)表的物理結(jié)構(gòu)如下:</p><p>
8、 圖2 學(xué)生信息表物理結(jié)構(gòu)</p><p> 圖3 課程信息表物理結(jié)構(gòu)</p><p> 圖4 成績(jī)表物理結(jié)構(gòu)</p><p> 2.3 數(shù)據(jù)庫(kù)的輸入</p><p> 在ACCESS中定義好物理結(jié)構(gòu)后就可以輸入數(shù)據(jù),同時(shí)根據(jù)系統(tǒng)的要求,用ACCESS做了兩個(gè)查詢,分別是成績(jī)查詢和平均分查詢,為以后寫(xiě)程序的方便,對(duì)平均分查詢進(jìn)行了按平
9、均分從高到低排序操作。具體數(shù)據(jù)如下:</p><p><b> 圖5 學(xué)生信息表</b></p><p><b> 圖6 課程信息表</b></p><p><b> 圖7 成績(jī)表</b></p><p><b> 圖8 平均分查詢</b><
10、/p><p><b> 圖9 成績(jī)查詢</b></p><p><b> 3 程序設(shè)計(jì)</b></p><p> 根據(jù)設(shè)計(jì)要求,本系統(tǒng)是利用VC來(lái)開(kāi)發(fā)可視化界面,因此要將程序和數(shù)據(jù)庫(kù)進(jìn)行連接,這要使用ODBC工具將數(shù)據(jù)庫(kù)設(shè)置數(shù)據(jù)源,在建立工程時(shí)選擇數(shù)據(jù)庫(kù)查看使用文件支持,在選擇數(shù)據(jù)源時(shí)選擇自己設(shè)置的數(shù)據(jù)源即可。在主頁(yè)面,
11、連接學(xué)生信息表,在主頁(yè)面對(duì)學(xué)生信息表操作就非常方便。主頁(yè)面如下:</p><p><b> 圖10 主頁(yè)面</b></p><p> 3.1 學(xué)生信息操作</p><p> 3.1.1 查詢操作</p><p> 查詢操作的功能是輸入學(xué)號(hào),點(diǎn)擊查詢按鈕,就可以顯示出學(xué)生的基本信息。</p><
12、p><b> 圖11 查詢操作</b></p><p><b> 程序如下:</b></p><p> void CMyView::OnButton1() </p><p> {int flag=1,t=0;</p><p> m_pSet->MoveFirst( );<
13、;/p><p> UpdateData(TRUE); </p><p> while(flag==1){</p><p> CString info="\0";</p><p> info = "學(xué)號(hào):\t" + m_pSet->m_sno + "\n";</p&
14、gt;<p> info += "姓名:\t" + m_pSet->m_sn + "\n";</p><p> info += "性別:\t" + m_pSet->m_sex + "\n";</p><p> info += "年齡:\t" + m_p
15、Set->m_age + "\n";</p><p> info += "系別:\t" + m_pSet->m_dept + "\n";</p><p> if(m_Sno==m_pSet->m_sno)</p><p> { MessageBox( info, "查
16、詢到的記錄如下:",100 ); </p><p><b> flag=0; </b></p><p><b> t=0;}</b></p><p> else {t=1;}</p><p> m_pSet->MoveNext( );</p><p>
17、; if( m_pSet->IsEOF( ) ){flag=0;}</p><p> };// TODO: Add your control notification handler code here</p><p> if(t==1){MessageBox("你輸入的學(xué)號(hào)不存在","學(xué)生管理系統(tǒng)", 0 );</p>
18、<p><b> }</b></p><p> 3.1.2 添加操作</p><p> 添加操作是在點(diǎn)擊添加按鈕后,添加記錄窗口跳出,在新窗口輸入要添加的記錄,點(diǎn)擊確定按鈕后,如果該學(xué)生的信息已存在(以學(xué)號(hào)判斷),則提醒該學(xué)生信息已存在,如果添加成功,則跳出添加成功提示。如圖:</p><p><b> 圖12 添
19、加操作</b></p><p><b> 程序如下:</b></p><p> void CMyView::OnButton2() </p><p><b> {</b></p><p><b> Dlg1 dlg;</b></p><p
20、> if( dlg.DoModal()==IDOK )</p><p> { //按IDD_DIALOG1 的"OK"按鈕返回之后:</p><p> int flag=0;</p><p> m_pSet->MoveFirst( );</p><p> UpdateData(TRUE); <
21、/p><p> while(!m_pSet->IsEOF()){ </p><p> if(dlg.m_AddSno==m_pSet->m_sno){flag=1;</p><p> MessageBox("該學(xué)生信息已存在","管理系統(tǒng)", 0 );}</p><p> m_pSet
22、->MoveNext( );}</p><p> if(flag==0){</p><p> m_pSet->AddNew( ); //先執(zhí)行追加新記錄的功能函數(shù)AddNew()</p><p> m_pSet->m_sno = dlg.m_AddSno;//給學(xué)號(hào)、姓名字段賦值:</p><p> m_pSet-
23、>m_sn = dlg.m_AddSn;</p><p> m_pSet->m_sex=dlg.m_AddSex;</p><p> m_pSet->m_age=dlg.m_AddAge;</p><p> m_pSet->m_dept=dlg.m_AddDept;</p><p> m_pSet->Up
24、date( ) ; //新記錄寫(xiě)入數(shù)據(jù)庫(kù)的數(shù)據(jù)表</p><p> m_pSet->Requery( ); //刷新記錄集。這將改動(dòng)"物理"數(shù)據(jù)庫(kù)。</p><p> MessageBox("添加成功","學(xué)生管理系統(tǒng)",0);</p><p><b> }</b><
25、/p><p><b> } </b></p><p> // TODO: Add your control notification handler code here</p><p><b> }</b></p><p> 3.1.3 刪除操作</p><p> 刪除
26、操作是點(diǎn)擊刪除按鈕后,跳出刪除窗口,在刪除窗口中輸入要?jiǎng)h除學(xué)生信息的學(xué)號(hào)以及管理員密碼,在多種提示后確認(rèn)無(wú)誤后刪除,刪除后會(huì)顯示已刪除提醒。如圖:</p><p><b> 圖13 刪除操作</b></p><p> 圖14 學(xué)生信息提示 圖15 確認(rèn)操作提示</p><p> 在刪除操作中,必須輸入密碼
27、才能進(jìn)行刪除操作,否則提示密碼不正確,密碼是唯一的,在本系統(tǒng)中,所有密碼都是1234。</p><p><b> 程序如下:</b></p><p> void CMyView::OnButton3() </p><p><b> {</b></p><p> // TODO: Add yo
28、ur control notification handler code here</p><p><b> Dlg2 dlg;</b></p><p> if( dlg.DoModal()==IDOK ){</p><p> int flag=1,t=0,flag1=0,flag2=0;</p><p> m_
29、pSet->MoveFirst( );</p><p> UpdateData(TRUE); </p><p> while(flag==1){</p><p> CString info="\0";</p><p> info = "學(xué)號(hào):\t" + m_pSet->m_sn
30、o + "\n";</p><p> info += "姓名:\t" + m_pSet->m_sn + "\n";</p><p> info += "性別:\t" + m_pSet->m_sex + "\n";</p><p> info
31、+= "年齡:\t" + m_pSet->m_age + "\n";</p><p> info += "系別:\t" + m_pSet->m_dept + "\n";</p><p> if(dlg.m_DleSno==m_pSet->m_sno)</p><p&
32、gt; { flag1=MessageBox( info, "請(qǐng)確認(rèn)刪除的學(xué)生信息:",100 ); </p><p><b> flag=0; </b></p><p><b> t=0;}</b></p><p> else {t=1;}</p><p> m_pS
33、et->MoveNext( );</p><p> if( m_pSet->IsEOF( ) ){flag=0;}</p><p><b> }</b></p><p> if(dlg.m_mima==1234){</p><p> if(t==1){MessageBox("你輸入的學(xué)號(hào)
34、不存在","學(xué)生管理系統(tǒng)", 0 );}</p><p> if(flag1==6){ flag2=MessageBox("確定刪除?","學(xué)生管理系統(tǒng)", 100 );}</p><p> if(flag2==6){m_pSet->MovePrev( );</p><p> m_
35、pSet->Delete( );</p><p> m_pSet->Requery( );</p><p> MessageBox("已刪除","學(xué)生管理系統(tǒng)", 0 ); }</p><p><b> }</b></p><p> else {Message
36、Box("密碼不正確","提示",0);}</p><p><b> }</b></p><p><b> }</b></p><p> 3.1.4 修改操作</p><p> 修改操作是在主頁(yè)面輸入要修改的學(xué)生信息的學(xué)號(hào)(在查詢條件處輸入),點(diǎn)擊修改
37、按鈕,跳出修改窗口,在窗口中會(huì)顯示該學(xué)生現(xiàn)有的信息,將其修改后點(diǎn)擊確定按鈕,同樣要輸入管理員密碼,否則提示密碼不正確。在修改后會(huì)提示以修改。如圖:</p><p><b> 圖16 修改操作</b></p><p><b> 程序如下:</b></p><p> void CMyView::OnButton6() &
38、lt;/p><p><b> {</b></p><p> int flag=1,t=0,tag=0;</p><p> m_pSet->MoveFirst( );</p><p> UpdateData(TRUE); </p><p> while(flag==1){</p&
39、gt;<p> CString info="\0";</p><p> info = "學(xué)號(hào):\t" + m_pSet->m_sno + "\n";</p><p> info += "姓名:\t" + m_pSet->m_sn + "\n";<
40、/p><p> info += "性別:\t" + m_pSet->m_sex + "\n";</p><p> info += "年齡:\t" + m_pSet->m_age + "\n";</p><p> info += "系別:\t" +
41、 m_pSet->m_dept + "\n";</p><p> if(m_Sno==m_pSet->m_sno)</p><p> { tag=MessageBox( info, "要修改如下記錄:",100 ); </p><p><b> flag=0; </b></p&g
42、t;<p><b> t=0;}</b></p><p> else {t=1;}</p><p> m_pSet->MoveNext( );</p><p> if( m_pSet->IsEOF( ) ){flag=0;}</p><p><b> };</b&g
43、t;</p><p> if(t==1){MessageBox("你輸入的學(xué)號(hào)不存在","學(xué)生管理系統(tǒng)", 0 );}</p><p> m_pSet->MovePrev( );</p><p> Dlg6 dlg; // 工作對(duì)話框開(kāi)始的程序:</p><p> if( tag=
44、=6 )</p><p> { //(1)將當(dāng)前記錄的各字段值拷貝到對(duì)話框的對(duì)應(yīng)成員變量上:</p><p> UpdateData(TRUE);//激活對(duì)話框控件</p><p> dlg.m_CSno = m_pSet->m_sno;</p><p> dlg.m_CSn = m_pSet->m_sn
45、;</p><p> dlg.m_CSex = m_pSet->m_sex;</p><p> dlg.m_CAge = m_pSet->m_age;</p><p> dlg.m_CDept = m_pSet->m_dept;</p><p> UpdateData(FALSE);//控件
46、上的改變顯示出來(lái)</p><p> //(2)按對(duì)話框的"OK"按鈕時(shí)返回,返回之后重置數(shù)據(jù)庫(kù)該記錄的修改值:</p><p> UpdateData(TRUE);</p><p> dlg.DoModal( );</p><p> if(dlg.m_mima==1234){</p><p>
47、; m_pSet->Edit();</p><p> m_pSet->m_sno = dlg.m_CSno ;</p><p> m_pSet->m_sn = dlg.m_CSn ;</p><p> m_pSet->m_sex = dlg.m_CSex ;</p><p> m_pSet->
48、;m_age = dlg.m_CAge ;</p><p> m_pSet->m_dept = dlg.m_CDept ;</p><p> m_pSet->Update( ) ;</p><p> m_pSet->Requery( ); </p><p> MessageBox("修改成功",&
49、quot;學(xué)生管理系統(tǒng)",0);}</p><p> else{MessageBox("密碼不正確","學(xué)生管理系統(tǒng)",0);}</p><p><b> }</b></p><p> // TODO: Add your control notification handler code
50、here</p><p><b> }</b></p><p> 3.1.5 學(xué)生信息瀏覽</p><p> 在主頁(yè)面,我添加了一個(gè)學(xué)生信息瀏覽按鈕,點(diǎn)擊該按鈕會(huì)在跳出的窗口中顯示學(xué)生信息表,該表與數(shù)據(jù)庫(kù)中的學(xué)生信息表連接,這樣可以通過(guò)瀏覽該表來(lái)查看自己的刪除,修改和添加等操作是否完成,同時(shí)可以通過(guò)它查看自己不熟悉學(xué)號(hào)的學(xué)生信息。如圖:&
51、lt;/p><p><b> 圖17 學(xué)生信息表</b></p><p> 這個(gè)操作應(yīng)用了ADO Data控件和DataGrid控件,通過(guò)ADO Data控件連接數(shù)據(jù)表,DataGrid控件連接ADO Data控件后顯示數(shù)據(jù)表,通過(guò)這兩個(gè)控件可直接進(jìn)行數(shù)據(jù)的添加、刪除和修改。因這些功能已有,所以在本系統(tǒng)中未啟用這兩個(gè)控件的該功能。</p><p&g
52、t; 3.2 學(xué)生成績(jī)操作</p><p> 因在主頁(yè)面連接了學(xué)生信息表,所以在主頁(yè)面添加按鈕成績(jī)查詢來(lái)打開(kāi)新窗口,在新窗口中連接學(xué)生成績(jī)查詢這個(gè)表,并用ADO Data控件和DataGrid控件來(lái)顯示學(xué)生成績(jī)表。在學(xué)生成績(jī)管理窗口中學(xué)生成績(jī)查詢和成績(jī)的統(tǒng)計(jì)排序是主要操作。學(xué)生成績(jī)的添加、刪除和修改操作通過(guò)管理員登錄后才能操作。學(xué)生成績(jī)管理操作頁(yè)面如圖:</p><p> 圖18 學(xué)
53、生成績(jī)管理窗口</p><p> 3.2.1 查詢操作</p><p> 成績(jī)查詢操作是在學(xué)生成績(jī)管理窗口中的查詢條件中輸入學(xué)生的學(xué)號(hào),點(diǎn)擊查詢后在查詢結(jié)果中顯示出該學(xué)生的第一門(mén)成績(jī),點(diǎn)擊下一門(mén)會(huì)顯示第二門(mén)成績(jī),若已是最后一門(mén)則提示“這是最后一門(mén) ”。點(diǎn)擊首項(xiàng)會(huì)跳回該學(xué)生的第一門(mén)功課成績(jī)。操作如圖:</p><p><b> 程序如下:</b&
54、gt;</p><p> void Dlg3Name::OnButton1() </p><p><b> { </b></p><p> Dlg3Dataset pset;</p><p> int flag=1,t=0;</p><p> pset.Open( );</p&g
55、t;<p> pset.MoveFirst();</p><p> UpdateData( TRUE );</p><p> while(flag==1){</p><p> if(pset.m_sno==m_QSno){</p><p> m_QSn=pset.m_sn;</p><p>
56、m_QCn=pset.m_cn;</p><p> m_QScore=pset.m_score;</p><p><b> flag=0;</b></p><p><b> t=1;</b></p><p><b> }</b></p><p>
57、 pset.MoveNext();</p><p> if(pset.IsEOF()){flag=0;}</p><p><b> }</b></p><p> if(t==0){MessageBox("無(wú)此人成績(jī)信息","學(xué)生成績(jī)管理系統(tǒng)", 0 );</p><p>
58、 m_QSn=" ";</p><p> m_QCn=" ";</p><p> m_QScore=" "; }</p><p> UpdateData( FALSE ); </p><p> // TODO: Add your control notification
59、 handler code here</p><p><b> }//查詢</b></p><p> void Dlg3Name::OnButton2() </p><p><b> { </b></p><p> Dlg3Dataset pset;</p><p&g
60、t; pset.Open( );</p><p> int flag=1,flag1=1,t=0;</p><p> UpdateData( TRUE );</p><p> while(flag1==1){</p><p> if(pset.m_sno==m_QSno && pset.m_cn==m_QCn){&l
61、t;/p><p><b> flag1=0;</b></p><p><b> }</b></p><p> pset.MoveNext();</p><p> if(pset.IsEOF()){flag=0;}</p><p><b> }</b>
62、;</p><p> while(flag==1){</p><p> if(pset.m_sno==m_QSno && pset.m_cn!=m_QCn){</p><p> m_QSn=pset.m_sn;</p><p> m_QCn=pset.m_cn;</p><p> m_QSco
63、re=pset.m_score;</p><p><b> flag=0;</b></p><p><b> t=1;</b></p><p><b> }</b></p><p> pset.MoveNext();</p><p> if(p
64、set.IsEOF()){flag=0;}</p><p><b> }</b></p><p> if(t==0){MessageBox("以是最后一門(mén)","學(xué)生成績(jī)管理系統(tǒng)", 0 ); }</p><p> UpdateData( FALSE );</p><p>
65、; // TODO: Add your control notification handler code here</p><p><b> }//下一科目</b></p><p> 3.2.2 統(tǒng)計(jì)平均和排序操作</p><p> 統(tǒng)計(jì)平均操作是在查詢條件中輸入要操作的學(xué)生的學(xué)號(hào),點(diǎn)擊統(tǒng)計(jì)平均按鈕后在統(tǒng)計(jì)排序中顯示出該學(xué)生的總分、平
66、均分和選課數(shù),未點(diǎn)擊時(shí)全顯示0。排序操作是在點(diǎn)擊查看排名按鈕后跳出新窗口,在新窗口中用ADO Data控件和DataGrid控件顯示平均分查詢這個(gè)表,同時(shí)新窗口連接這個(gè)查詢,以便操作。在排名窗口中,點(diǎn)擊查看就可以顯示該學(xué)生的平均分排名,也可直接在該窗口中更改學(xué)生學(xué)號(hào),查看其他學(xué)生的排名。如圖:</p><p> 圖20 統(tǒng)計(jì)平均操作</p><p> 圖21 查看排名操作</p&
67、gt;<p><b> 統(tǒng)計(jì)平均操作如下:</b></p><p> void Dlg3Name::OnButton4() </p><p><b> {</b></p><p> Dlg3Dataset pset;</p><p> pset.Open( );</p
68、><p> pset.MoveFirst();</p><p> UpdateData( TRUE );</p><p><b> m_sum=0;</b></p><p> m_total=0;</p><p> while(!pset.IsEOF()){</p><p
69、> if(pset.m_sno==m_QSno){</p><p> m_sum+=atof(pset.m_score);</p><p> m_total++;</p><p><b> }</b></p><p> pset.MoveNext();}</p><p> if(
70、m_total==0){MessageBox("無(wú)該生成績(jī)信息","學(xué)生成績(jī)管理系統(tǒng)",0);</p><p><b> m_sum=0;</b></p><p><b> m_avg=0;</b></p><p> m_total=0;</p><p>
71、; UpdateData( FALSE );</p><p><b> }</b></p><p> else {m_avg=m_sum/m_total; </p><p> UpdateData( FALSE );}</p><p> // TODO: Add your control notificat
72、ion handler code here</p><p><b> }//統(tǒng)計(jì)平均</b></p><p><b> 查看排名程序如下:</b></p><p> void Dlg5::OnButton1() </p><p><b> { </b></p&
73、gt;<p> UpdateData( TRUE );</p><p> Dlg5Dataset pset;</p><p> pset.Open();</p><p> pset.MoveFirst();</p><p> int t=1,flag=0;</p><p> while(!ps
74、et.IsEOF()){</p><p> if(pset.m_sno==m_Sno){</p><p> m_order=t;</p><p> UpdateData( FALSE );</p><p><b> flag=1;</b></p><p><b> return
75、;}</b></p><p><b> t++;</b></p><p> pset.MoveNext();</p><p><b> };</b></p><p> if(flag==0){MessageBox("你的學(xué)號(hào)輸入錯(cuò)誤","提示&quo
76、t;,0);}</p><p> // TODO: Add your control notification handler code here</p><p><b> }//查看</b></p><p> 3.2.3 管理員登錄操作</p><p> 管理員登錄是進(jìn)行學(xué)生成績(jī)添加、刪除和修改等操作的前提。點(diǎn)
77、擊管理員登錄,跳出管理員登錄界面,輸入密碼后跳出管理界面。如圖:</p><p> 圖22 管理員登錄界面</p><p> 圖23 成績(jī)管理界面</p><p><b> 程序如下:</b></p><p> void Dlg3Name::OnButton6() </p><p><
78、;b> {</b></p><p><b> Dlg8 dlg;</b></p><p> if(dlg.DoModal()==IDOK){</p><p> UpdateData( TRUE );</p><p> if(dlg.m_mima==1234){</p><p
79、> Dlg9 dlgg;</p><p> dlgg.DoModal();}</p><p> else{MessageBox("密碼不正確","提示",0);}</p><p><b> }</b></p><p> // TODO: Add your contr
80、ol notification handler code here</p><p><b> }</b></p><p> 3.2.4 成績(jī)管理操作</p><p> 學(xué)生成績(jī)管理操作包括成績(jī)的添加、修改和刪除,點(diǎn)擊相應(yīng)按鈕會(huì)跳出相應(yīng)的界面供我們操作。</p><p><b> 添加成績(jī)?nèi)缦拢?lt;/
81、b></p><p><b> 圖24 成績(jī)添加</b></p><p><b> 程序如下:</b></p><p> void Dlg9::OnButton1() </p><p><b> {</b></p><p><b>
82、; DlgA dlg;</b></p><p> DlgADataset pset;</p><p> pset.Open();</p><p> if( dlg.DoModal()==IDOK )</p><p> { //按IDD_DIALOG1 的"OK"按鈕返回之后:</p>&
83、lt;p> int flag=0;</p><p> pset.MoveFirst( );</p><p> UpdateData(TRUE); </p><p> while(!pset.IsEOF()){ </p><p> if(dlg.m_AddSno==pset.m_sno&&dlg.m_AddCn
84、o==pset.m_cno){flag=1;</p><p> MessageBox("該門(mén)成績(jī)已存在","管理系統(tǒng)", 0 );}</p><p> pset.MoveNext( );}</p><p> if(flag==0){</p><p> pset.AddNew( ); //先執(zhí)
85、行追加新記錄的功能函數(shù)AddNew()</p><p> pset.m_sno = dlg.m_AddSno;//給學(xué)號(hào)、姓名字段賦值:</p><p> pset.m_cno = dlg.m_AddCno;</p><p> pset.m_score=dlg.m_AddScore;</p><p> pset.Update( ) ;
86、 //新記錄寫(xiě)入數(shù)據(jù)庫(kù)的數(shù)據(jù)表</p><p> pset.Requery( ); //刷新記錄集。這將改動(dòng)"物理"數(shù)據(jù)庫(kù)。</p><p> MessageBox("添加成功","學(xué)生管理系統(tǒng)",0);</p><p><b> }</b></p><p&g
87、t; // TODO: Add your control notification handler code here</p><p><b> }</b></p><p><b> }</b></p><p><b> 修改操作如下:</b></p><p><
88、b> 圖25 修改操作1</b></p><p><b> 圖26 修改操作2</b></p><p><b> 程序如下:</b></p><p> void Dlg9::OnButton2() </p><p><b> {</b></p&
89、gt;<p><b> DlgB dlg;</b></p><p> DlgB1Dataset pset;</p><p> pset.Open();</p><p> if(dlg.DoModal()==IDOK)</p><p> {pset.MoveFirst();</p>&
90、lt;p> UpdateData(TRUE);</p><p> int tag=0,t=0;</p><p> while(!pset.IsEOF())</p><p><b> {</b></p><p> if(dlg.m_MSno==pset.m_sno&&dlg.m_MCno==
91、pset.m_cno)</p><p><b> {t=1;</b></p><p> DlgB2 dlgg;</p><p> UpdateData(TRUE);</p><p> dlgg.m_MScore=pset.m_score;</p><p> UpdateData(FALS
92、E);</p><p> UpdateData(TRUE);</p><p> dlgg.DoModal();</p><p> tag=MessageBox("確定修改?","提示",100);</p><p> if(tag==6)</p><p><b>
93、 {</b></p><p> pset.Edit();</p><p> pset.m_score=dlgg.m_MScore;</p><p> pset.Update();</p><p> pset.Requery();</p><p> MessageBox("修改成功&qu
94、ot;,"提示",0);</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> pset.MoveNext();</p><p><
95、;b> }</b></p><p> if(t==0) {MessageBox("該學(xué)生無(wú)此門(mén)課程信息","錯(cuò)誤",0);}</p><p><b> }</b></p><p> // TODO: Add your control notification handler co
96、de here</p><p><b> }</b></p><p><b> 刪除操作如下:</b></p><p><b> 圖27 刪除修改</b></p><p><b> 程序如下:</b></p><p> v
97、oid Dlg9::OnButton3() </p><p><b> {</b></p><p><b> DlgC dlg;</b></p><p> DlgC1Dataset pset;</p><p> pset.Open();</p><p> if(dl
98、g.DoModal()==IDOK)</p><p> {pset.MoveFirst();</p><p> UpdateData(TRUE);</p><p> int tag=0,t=0;</p><p> while(!pset.IsEOF())</p><p><b> {</b&g
99、t;</p><p> if(dlg.m_QSno==pset.m_sno&&dlg.m_QCno==pset.m_cno)</p><p><b> {t=1;</b></p><p> CString info="\0";</p><p> info = "學(xué)
100、號(hào):\t" + pset.m_sno + "\n";</p><p> info += "課程號(hào):\t" +pset.m_cno + "\n";</p><p> info += "成績(jī):\t" + pset.m_score + "\n";</p><
101、;p> tag=MessageBox(info,"確定刪除該記錄?",100);</p><p> if(tag==6)</p><p><b> {</b></p><p> pset.Delete();</p><p> pset.Requery();</p><
102、;p> MessageBox("已刪除","提示",0);</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> pset.Move
103、Next();</p><p><b> }</b></p><p> if(t==0) {MessageBox("該學(xué)生無(wú)此門(mén)課程信息","錯(cuò)誤",0);}</p><p> // TODO: Add your control notification handler code here</
104、p><p><b> }}</b></p><p><b> 4 調(diào)試報(bào)告</b></p><p> 軟件編寫(xiě)完成后對(duì)其進(jìn)行調(diào)試,調(diào)試過(guò)程中發(fā)現(xiàn)自己的程序缺少一些人機(jī)交互,例如在刪除后應(yīng)該讓用戶知道自己的刪除操作是否完成,所以在刪除完成后應(yīng)用MessageBox來(lái)告知用戶刪除已完成。</p><p&g
105、t; 自己的程序在調(diào)試是經(jīng)常出現(xiàn)功能不能執(zhí)行或不管條件怎樣都會(huì)執(zhí)行的情況,檢查程序發(fā)現(xiàn),自己的If語(yǔ)句在編寫(xiě)時(shí)==寫(xiě)成=,導(dǎo)致程序出現(xiàn)錯(cuò)誤。</p><p><b> 5 心得體會(huì)</b></p><p><b> 6 參考文獻(xiàn)</b></p><p> [1] Michael R.Groh等.ACCESS 200
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng) 課程設(shè)計(jì)
- 課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)9
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)10
- vfp課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)
- java課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- vfp課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- vb課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- vb課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- web課程設(shè)計(jì).學(xué)生成績(jī)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論