




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄1 設(shè)計要求12 數(shù)據(jù)庫設(shè)計12.1 概念設(shè)計12.2 邏輯設(shè)計與物理結(jié)構(gòu)的設(shè)計22.3 數(shù)據(jù)庫的輸入23 程序設(shè)計43.1 學(xué)生信息操作53.2 學(xué)生成績操作144 調(diào)試報告265 心得體會266 參考文獻(xiàn)26學(xué)生成績管理系統(tǒng)1 設(shè)計要求管理信息系統(tǒng)MIS(Management Information System),在強調(diào)管理,強調(diào)信息的現(xiàn)代社會中越來越得到普及,如:人事管理、學(xué)生管理系統(tǒng)、工資管理系統(tǒng)等。常用的MIS系統(tǒng)都是基于數(shù)據(jù)庫操作,實現(xiàn)信息的查詢、增加、刪除、修改等。學(xué)生成績管理系統(tǒng)是用AECESS數(shù)據(jù)庫進行數(shù)據(jù)庫的設(shè)計和添加數(shù)據(jù),在設(shè)置數(shù)據(jù)源(ODBC)建立數(shù)據(jù)庫與程序的連
2、接后,利用VC開發(fā)可視化界面完成基于數(shù)據(jù)庫的操作,實現(xiàn)學(xué)生信息的查詢、增加、刪除、修改和成績信息的查詢、增加、刪除、修改、排序、統(tǒng)計等功能,從而實現(xiàn)學(xué)生成績信息的多方位顯示,方便管理者對學(xué)生成績的管理。2 數(shù)據(jù)庫設(shè)計2.1 概念設(shè)計根據(jù)設(shè)計要求,要對學(xué)生信息和成績進行操作,所以系統(tǒng)實體包括學(xué)生基本信息表和課程基本信息表。學(xué)生成績管理系統(tǒng)中它們的聯(lián)系是一個學(xué)生可以選修多門課程,一門課程可以被多個學(xué)生選修,學(xué)生和課程之間是多對多的關(guān)系,。學(xué)號分?jǐn)?shù)性別學(xué)生由以上分析可以得該系統(tǒng)的E-R關(guān)系圖:姓名成績課程 年齡系別 課程號課時課程名 圖1 E-R關(guān)系圖2.2 邏輯設(shè)計與物理結(jié)構(gòu)的設(shè)計 根據(jù)概念設(shè)計中
3、的E-R圖,可設(shè)計三個表,其關(guān)系模型如下:學(xué)生基本信息表:學(xué)號,姓名,性別,年齡,系別課程基本信息表:課程號,課程名,課時 成績表:學(xué)號,課程號,成績 在ACCESS中定義三個表的物理結(jié)構(gòu)如下:圖2 學(xué)生信息表物理結(jié)構(gòu)圖3 課程信息表物理結(jié)構(gòu)圖4 成績表物理結(jié)構(gòu)2.3 數(shù)據(jù)庫的輸入在ACCESS中定義好物理結(jié)構(gòu)后就可以輸入數(shù)據(jù),同時根據(jù)系統(tǒng)的要求,用ACCESS做了兩個查詢,分別是成績查詢和平均分查詢,為以后寫程序的方便,對平均分查詢進行了按平均分從高到低排序操作。具體數(shù)據(jù)如下:圖5 學(xué)生信息表圖6 課程信息表圖7 成績表圖8 平均分查詢圖9 成績查詢3 程序設(shè)計根據(jù)設(shè)計要求,本系統(tǒng)是利用VC
4、來開發(fā)可視化界面,因此要將程序和數(shù)據(jù)庫進行連接,這要使用ODBC工具將數(shù)據(jù)庫設(shè)置數(shù)據(jù)源,在建立工程時選擇數(shù)據(jù)庫查看使用文件支持,在選擇數(shù)據(jù)源時選擇自己設(shè)置的數(shù)據(jù)源即可。在主頁面,連接學(xué)生信息表,在主頁面對學(xué)生信息表操作就非常方便。主頁面如下:圖10 主頁面3.1 學(xué)生信息操作3.1.1 查詢操作查詢操作的功能是輸入學(xué)號,點擊查詢按鈕,就可以顯示出學(xué)生的基本信息。圖11 查詢操作程序如下:void CMyView:OnButton1() int flag=1,t=0; m_pSet->MoveFirst( ); UpdateData(TRUE); while(flag=1) CString
5、 info="0" info = "學(xué)號:t" + m_pSet->m_sno + "n" info += "姓名:t" + m_pSet->m_sn + "n" info += "性別:t" + m_pSet->m_sex + "n" info += "年齡:t" + m_pSet->m_age + "n" info += "系別:t" + m_pSet->m_de
6、pt + "n" if(m_Sno=m_pSet->m_sno) MessageBox( info, "查詢到的記錄如下:",100 ); flag=0; t=0; else t=1; m_pSet->MoveNext( ); if( m_pSet->IsEOF( ) )flag=0;/ TODO: Add your control notification handler code here if(t=1)MessageBox("你輸入的學(xué)號不存在","學(xué)生管理系統(tǒng)", 0 );3.1.2 添加
7、操作添加操作是在點擊添加按鈕后,添加記錄窗口跳出,在新窗口輸入要添加的記錄,點擊確定按鈕后,如果該學(xué)生的信息已存在(以學(xué)號判斷),則提醒該學(xué)生信息已存在,如果添加成功,則跳出添加成功提示。如圖:圖12 添加操作程序如下:void CMyView:OnButton2() Dlg1 dlg; if( dlg.DoModal()=IDOK ) /按IDD_DIALOG1 的"OK"按鈕返回之后: int flag=0; m_pSet->MoveFirst( ); UpdateData(TRUE); while(!m_pSet->IsEOF() if(dlg.m_Add
8、Sno=m_pSet->m_sno)flag=1; MessageBox("該學(xué)生信息已存在","管理系統(tǒng)", 0 ); m_pSet->MoveNext( ); if(flag=0) m_pSet->AddNew( ); /先執(zhí)行追加新記錄的功能函數(shù)AddNew() m_pSet->m_sno = dlg.m_AddSno;/給學(xué)號、姓名字段賦值: m_pSet->m_sn = dlg.m_AddSn; m_pSet->m_sex=dlg.m_AddSex; m_pSet->m_age=dlg.m_AddAge
9、; m_pSet->m_dept=dlg.m_AddDept; m_pSet->Update( ) ; /新記錄寫入數(shù)據(jù)庫的數(shù)據(jù)表 m_pSet->Requery( ); /刷新記錄集。這將改動"物理"數(shù)據(jù)庫。 MessageBox("添加成功","學(xué)生管理系統(tǒng)",0); / TODO: Add your control notification handler code here3.1.3 刪除操作刪除操作是點擊刪除按鈕后,跳出刪除窗口,在刪除窗口中輸入要刪除學(xué)生信息的學(xué)號以及管理員密碼,在多種提示后確認(rèn)無誤后刪除
10、,刪除后會顯示已刪除提醒。如圖:圖13 刪除操作 圖14 學(xué)生信息提示 圖15 確認(rèn)操作提示在刪除操作中,必須輸入密碼才能進行刪除操作,否則提示密碼不正確,密碼是唯一的,在本系統(tǒng)中,所有密碼都是1234。程序如下:void CMyView:OnButton3() / TODO: Add your control notification handler code hereDlg2 dlg;if( dlg.DoModal()=IDOK ) int flag=1,t=0,flag1=0,flag2=0; m_pSet->MoveFirst( ); UpdateData(TRUE); whil
11、e(flag=1) CString info="0" info = "學(xué)號:t" + m_pSet->m_sno + "n" info += "姓名:t" + m_pSet->m_sn + "n" info += "性別:t" + m_pSet->m_sex + "n" info += "年齡:t" + m_pSet->m_age + "n" info += "系別:t"
12、+ m_pSet->m_dept + "n" if(dlg.m_DleSno=m_pSet->m_sno) flag1=MessageBox( info, "請確認(rèn)刪除的學(xué)生信息:",100 ); flag=0; t=0; else t=1; m_pSet->MoveNext( ); if( m_pSet->IsEOF( ) )flag=0; if(dlg.m_mima=1234) if(t=1)MessageBox("你輸入的學(xué)號不存在","學(xué)生管理系統(tǒng)", 0 ); if(flag1=6
13、) flag2=MessageBox("確定刪除?","學(xué)生管理系統(tǒng)", 100 ); if(flag2=6)m_pSet->MovePrev( ); m_pSet->Delete( ); m_pSet->Requery( ); MessageBox("已刪除","學(xué)生管理系統(tǒng)", 0 ); else MessageBox("密碼不正確","提示",0);3.1.4 修改操作修改操作是在主頁面輸入要修改的學(xué)生信息的學(xué)號(在查詢條件處輸入),點擊修改按鈕,跳出
14、修改窗口,在窗口中會顯示該學(xué)生現(xiàn)有的信息,將其修改后點擊確定按鈕,同樣要輸入管理員密碼,否則提示密碼不正確。在修改后會提示以修改。如圖: 圖16 修改操作程序如下:void CMyView:OnButton6() int flag=1,t=0,tag=0; m_pSet->MoveFirst( ); UpdateData(TRUE); while(flag=1) CString info="0" info = "學(xué)號:t" + m_pSet->m_sno + "n" info += "姓名:t" + m
15、_pSet->m_sn + "n" info += "性別:t" + m_pSet->m_sex + "n" info += "年齡:t" + m_pSet->m_age + "n" info += "系別:t" + m_pSet->m_dept + "n" if(m_Sno=m_pSet->m_sno) tag=MessageBox( info, "要修改如下記錄:",100 ); flag=0; t=0
16、; else t=1; m_pSet->MoveNext( ); if( m_pSet->IsEOF( ) )flag=0; if(t=1)MessageBox("你輸入的學(xué)號不存在","學(xué)生管理系統(tǒng)", 0 ); m_pSet->MovePrev( ); Dlg6 dlg; / 工作對話框開始的程序: if( tag=6 ) /(1)將當(dāng)前記錄的各字段值拷貝到對話框的對應(yīng)成員變量上: UpdateData(TRUE);/激活對話框控件 dlg.m_CSno = m_pSet->m_sno; dlg.m_CSn = m_pSet-
17、>m_sn; dlg.m_CSex = m_pSet->m_sex; dlg.m_CAge = m_pSet->m_age; dlg.m_CDept = m_pSet->m_dept; UpdateData(FALSE);/控件上的改變顯示出來 /(2)按對話框的"OK"按鈕時返回,返回之后重置數(shù)據(jù)庫該記錄的修改值: UpdateData(TRUE); dlg.DoModal( ); if(dlg.m_mima=1234) m_pSet->Edit(); m_pSet->m_sno = dlg.m_CSno ; m_pSet->m_
18、sn = dlg.m_CSn ; m_pSet->m_sex = dlg.m_CSex ; m_pSet->m_age = dlg.m_CAge ; m_pSet->m_dept = dlg.m_CDept ; m_pSet->Update( ) ; m_pSet->Requery( ); MessageBox("修改成功","學(xué)生管理系統(tǒng)",0); elseMessageBox("密碼不正確","學(xué)生管理系統(tǒng)",0); / TODO: Add your control notific
19、ation handler code here3.1.5 學(xué)生信息瀏覽在主頁面,我添加了一個學(xué)生信息瀏覽按鈕,點擊該按鈕會在跳出的窗口中顯示學(xué)生信息表,該表與數(shù)據(jù)庫中的學(xué)生信息表連接,這樣可以通過瀏覽該表來查看自己的刪除,修改和添加等操作是否完成,同時可以通過它查看自己不熟悉學(xué)號的學(xué)生信息。如圖:圖17 學(xué)生信息表這個操作應(yīng)用了ADO Data控件和DataGrid控件,通過ADO Data控件連接數(shù)據(jù)表,DataGrid控件連接ADO Data控件后顯示數(shù)據(jù)表,通過這兩個控件可直接進行數(shù)據(jù)的添加、刪除和修改。因這些功能已有,所以在本系統(tǒng)中未啟用這兩個控件的該功能。3.2 學(xué)生成績操作因在主頁
20、面連接了學(xué)生信息表,所以在主頁面添加按鈕成績查詢來打開新窗口,在新窗口中連接學(xué)生成績查詢這個表,并用ADO Data控件和DataGrid控件來顯示學(xué)生成績表。在學(xué)生成績管理窗口中學(xué)生成績查詢和成績的統(tǒng)計排序是主要操作。學(xué)生成績的添加、刪除和修改操作通過管理員登錄后才能操作。學(xué)生成績管理操作頁面如圖:圖18 學(xué)生成績管理窗口3.2.1 查詢操作成績查詢操作是在學(xué)生成績管理窗口中的查詢條件中輸入學(xué)生的學(xué)號,點擊查詢后在查詢結(jié)果中顯示出該學(xué)生的第一門成績,點擊下一門會顯示第二門成績,若已是最后一門則提示“這是最后一門 ”。點擊首項會跳回該學(xué)生的第一門功課成績。操作如圖:圖19 查詢操作程序如下:v
21、oid Dlg3Name:OnButton1() Dlg3Dataset pset; int flag=1,t=0; pset.Open( ); pset.MoveFirst(); UpdateData( TRUE ); while(flag=1) if(pset.m_sno=m_QSno) m_QSn=pset.m_sn; m_QCn=pset.m_cn; m_QScore=pset.m_score; flag=0; t=1; pset.MoveNext(); if(pset.IsEOF()flag=0; if(t=0)MessageBox("無此人成績信息","
22、;學(xué)生成績管理系統(tǒng)", 0 ); m_QSn=" " m_QCn=" " m_QScore=" " UpdateData( FALSE ); / TODO: Add your control notification handler code here/查詢void Dlg3Name:OnButton2() Dlg3Dataset pset; pset.Open( ); int flag=1,flag1=1,t=0; UpdateData( TRUE ); while(flag1=1) if(pset.m_sno=m_QSn
23、o && pset.m_cn=m_QCn) flag1=0; pset.MoveNext(); if(pset.IsEOF()flag=0; while(flag=1) if(pset.m_sno=m_QSno && pset.m_cn!=m_QCn) m_QSn=pset.m_sn; m_QCn=pset.m_cn; m_QScore=pset.m_score; flag=0; t=1; pset.MoveNext(); if(pset.IsEOF()flag=0; if(t=0)MessageBox("以是最后一門","學(xué)生成績
24、管理系統(tǒng)", 0 ); UpdateData( FALSE );/ TODO: Add your control notification handler code here/下一科目3.2.2 統(tǒng)計平均和排序操作統(tǒng)計平均操作是在查詢條件中輸入要操作的學(xué)生的學(xué)號,點擊統(tǒng)計平均按鈕后在統(tǒng)計排序中顯示出該學(xué)生的總分、平均分和選課數(shù),未點擊時全顯示0。排序操作是在點擊查看排名按鈕后跳出新窗口,在新窗口中用ADO Data控件和DataGrid控件顯示平均分查詢這個表,同時新窗口連接這個查詢,以便操作。在排名窗口中,點擊查看就可以顯示該學(xué)生的平均分排名,也可直接在該窗口中更改學(xué)生學(xué)號,查看其
25、他學(xué)生的排名。如圖:圖20 統(tǒng)計平均操作圖21 查看排名操作統(tǒng)計平均操作如下:void Dlg3Name:OnButton4() Dlg3Dataset pset; pset.Open( ); pset.MoveFirst(); UpdateData( TRUE ); m_sum=0; m_total=0; while(!pset.IsEOF() if(pset.m_sno=m_QSno) m_sum+=atof(pset.m_score); m_total+; pset.MoveNext(); if(m_total=0)MessageBox("無該生成績信息","
26、;學(xué)生成績管理系統(tǒng)",0); m_sum=0; m_avg=0; m_total=0; UpdateData( FALSE ); else m_avg=m_sum/m_total; UpdateData( FALSE );/ TODO: Add your control notification handler code here/統(tǒng)計平均查看排名程序如下:void Dlg5:OnButton1() UpdateData( TRUE ); Dlg5Dataset pset;pset.Open();pset.MoveFirst();int t=1,flag=0;while(!pset.
27、IsEOF()if(pset.m_sno=m_Sno)m_order=t; UpdateData( FALSE );flag=1;return; t+; pset.MoveNext();if(flag=0)MessageBox("你的學(xué)號輸入錯誤","提示",0);/ TODO: Add your control notification handler code here/查看3.2.3 管理員登錄操作管理員登錄是進行學(xué)生成績添加、刪除和修改等操作的前提。點擊管理員登錄,跳出管理員登錄界面,輸入密碼后跳出管理界面。如圖:圖22 管理員登錄界面圖23 成
28、績管理界面程序如下:void Dlg3Name:OnButton6() Dlg8 dlg;if(dlg.DoModal()=IDOK) UpdateData( TRUE ); if(dlg.m_mima=1234) Dlg9 dlgg; dlgg.DoModal(); elseMessageBox("密碼不正確","提示",0); / TODO: Add your control notification handler code here3.2.4 成績管理操作學(xué)生成績管理操作包括成績的添加、修改和刪除,點擊相應(yīng)按鈕會跳出相應(yīng)的界面供我們操作。添加成績
29、如下:圖24 成績添加程序如下:void Dlg9:OnButton1() DlgA dlg; DlgADataset pset; pset.Open(); if( dlg.DoModal()=IDOK ) /按IDD_DIALOG1 的"OK"按鈕返回之后: int flag=0; pset.MoveFirst( ); UpdateData(TRUE); while(!pset.IsEOF() if(dlg.m_AddSno=pset.m_sno&&dlg.m_AddCno=pset.m_cno)flag=1; MessageBox("該門成績已
30、存在","管理系統(tǒng)", 0 ); pset.MoveNext( ); if(flag=0) pset.AddNew( ); /先執(zhí)行追加新記錄的功能函數(shù)AddNew() pset.m_sno = dlg.m_AddSno;/給學(xué)號、姓名字段賦值: pset.m_cno = dlg.m_AddCno; pset.m_score=dlg.m_AddScore; pset.Update( ) ; /新記錄寫入數(shù)據(jù)庫的數(shù)據(jù)表 pset.Requery( ); /刷新記錄集。這將改動"物理"數(shù)據(jù)庫。 MessageBox("添加成功"
31、,"學(xué)生管理系統(tǒng)",0); / TODO: Add your control notification handler code here修改操作如下:圖25 修改操作1圖26 修改操作2程序如下: void Dlg9:OnButton2() DlgB dlg;DlgB1Dataset pset;pset.Open();if(dlg.DoModal()=IDOK)pset.MoveFirst(); UpdateData(TRUE); int tag=0,t=0; while(!pset.IsEOF() if(dlg.m_MSno=pset.m_sno&&dl
32、g.m_MCno=pset.m_cno) t=1; DlgB2 dlgg; UpdateData(TRUE); dlgg.m_MScore=pset.m_score; UpdateData(FALSE); UpdateData(TRUE); dlgg.DoModal(); tag=MessageBox("確定修改?","提示",100); if(tag=6) pset.Edit(); pset.m_score=dlgg.m_MScore; pset.Update(); pset.Requery(); MessageBox("修改成功","提示",0); return; pset.MoveNext(); if(t=0) Me
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度ISO三體系認(rèn)證咨詢服務(wù)合同針對新能源行業(yè)的定制版
- 2025年度科技園區(qū)場地代租用合同參考范本
- 二零二五年汽車零部件制造廠房租賃合同
- 二零二五版貨運車輛抵押租賃合作協(xié)議
- 二零二五年按摩中心員工入職后服務(wù)質(zhì)量監(jiān)控與改進合同
- 二零二五版生物制藥廠廠房承包合作合同樣本
- 2025版高等院校畢業(yè)生專項就業(yè)服務(wù)合同書
- 人工智能在智能教育中的應(yīng)用與創(chuàng)新報告
- 2025版物流供應(yīng)鏈金融產(chǎn)品開發(fā)合同規(guī)范
- 二零二五年度車輛抵押擔(dān)保汽車經(jīng)銷商合作協(xié)議
- (高清版)TSG 09-2025 缺陷特種設(shè)備召回管理規(guī)則
- 集團企業(yè)IT項目規(guī)劃調(diào)研方案
- 對公貸款業(yè)務(wù)培訓(xùn)
- 2025春季學(xué)期國開電大本科《商務(wù)英語3》一平臺在線形考(綜合測試)試題及答案
- 【初中信息】開啟物聯(lián)網(wǎng)之門課件 2024-2025學(xué)年人教版(2024)初中信息科技八年級全一冊
- 2025年國家公務(wù)員考試行測常識題庫及答案(共120題)
- 本科畢業(yè)論文完整范文(滿足查重要求)鄉(xiāng)村振興背景下大學(xué)生農(nóng)村創(chuàng)業(yè)的困境及對策
- 《智能制造基礎(chǔ)與應(yīng)用》課件 第五章 智能制造柔性系統(tǒng)
- 2025年1月國家開放大學(xué)法學(xué)本科《中國法律史》期末紙質(zhì)考試試題及答案
- 水電站安全生產(chǎn)培訓(xùn)
- 2025年上半年西安交通投資集團限公司招聘29人易考易錯模擬試題(共500題)試卷后附參考答案
評論
0/150
提交評論