版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.PAGE.學科代碼:學號:XX師范大學〔本科畢業(yè)論文題目:學生檔案管理系統(tǒng)學院:數(shù)學與計算機科學學院專業(yè):計算機科學與技術(shù)年級:2007級____指導完成時間:2011年3月2學生檔案管理系統(tǒng)摘要[摘要]隨著辦學規(guī)模的擴大,學校的學籍檔案管理工作則變得更加復雜,檔案的完整性、安全性等問題也顯得更加重要,日益引起了人們的關(guān)注。面對龐大的信息量,需要有學籍檔案管理系統(tǒng)來提高學籍檔案管理工作的效率。學生檔案管理系統(tǒng)使用VisualC++6.0開發(fā)了一個簡單的管理系統(tǒng),通過該系統(tǒng),可以對學生的基本檔案信息進行管理。另外,本系統(tǒng)的另一個重要功能是能夠?qū)崿F(xiàn)對學生的考試成績進行管理,同時也能對成績進行各種統(tǒng)計查詢工作。關(guān)鍵詞:學生檔案管理數(shù)據(jù)庫VisualC++6.0AccessAbstractWiththeexpansionofthescaleofrunningschool,theenrollmentfilesmanagementisbecomingmorecomplex,fileintegrity,securityproblemsalsoappearsmoreimportant,increasinglydrawnpeople'sattention.Facingthehugeamountofinformation,needhasenrollmentfilesmanagementsystemtoimprovetheefficiencyofenrollmentfilesmanagementwork.ThesystemofmanagingstudentfileusingVisualc++6.0developedasimplemanagementsystem,throughthissystem,canonstudents'basicfileinformationmanagement.Inaddition,thissystemisanotherimportantfunctioncanbemetonstudents'examinationresultforthemanagement,andatthesametimealsocancarryoutvariousstatisticalinquirestotheresult.Keywords:studentsarchivesmanagementdatabaseVisualc++6.0Access目錄1引言41.1開發(fā)背景42系統(tǒng)分析52.1需求分析53系統(tǒng)設(shè)計73.1繪制用例圖設(shè)計系統(tǒng)功能73.2繪制系統(tǒng)流程圖73.3開發(fā)工具和開發(fā)技術(shù)的選擇94數(shù)據(jù)庫分析與設(shè)計104.1數(shù)據(jù)可分析104.2數(shù)據(jù)庫概念設(shè)計10圖4-9登錄用戶實體圖124.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計134.4數(shù)據(jù)庫的創(chuàng)建155公共類〔數(shù)據(jù)記錄類設(shè)計185.1創(chuàng)建ODBC數(shù)據(jù)源185.2創(chuàng)建數(shù)據(jù)記錄類186登錄模塊與界面設(shè)計216.1登錄模塊設(shè)計216.2主界面設(shè)計227學生檔案管理模塊設(shè)計257.1系、專業(yè)、班級的管理設(shè)計257.2學生檔案信息管理設(shè)計288學生成績管理模塊設(shè)計308.1考試課程信息設(shè)置308.2考試成績查詢設(shè)計328.3考試成績錄入設(shè)計338.4班級成績的匯總統(tǒng)計設(shè)計338.5學生總分名次統(tǒng)計設(shè)計348.6學生單科名次統(tǒng)計設(shè)計359系統(tǒng)管理模塊設(shè)計379.1用戶注冊設(shè)計379.2備份/恢復數(shù)據(jù)庫38參考文獻40致謝411引言1.1開發(fā)背景學生檔案管理系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學校的決策者和管理者來說都至關(guān)重要,所以學生檔案管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。 隨著科學技術(shù)的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。使用計算機對學生檔案信息進行管理,具有著手工管理所無法比擬的優(yōu)點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學生檔案管理的效率。作為一般小型的教育機構(gòu),以往對學生檔案的管理采用的是人工的方式管理文件檔案,無論是效率還是準確性都受到很大的限制。因此,開發(fā)一套學生檔案管理軟件成為很有必要的事情。同時,通過本系統(tǒng)的開發(fā),數(shù)據(jù)的整理,也為學校將來接入Inter網(wǎng)作好先期的準備工作。2系統(tǒng)分析2.1需求分析對學生檔案的管理,目前最主要的需求有兩部分,一是學生基本信息的管理,另一個就是學生成績的管理與統(tǒng)計。對學生的基本檔案,按照系、專業(yè)、班級和學生的四級模式進行管理,要包含學生的基本信息,如姓名、性別、民族、年齡、入學、畢業(yè)時間等等。要求便于檔案的錄入和管理,同時有靈活、快捷的查詢功能。學生成績的管理與統(tǒng)計,則要求能對學生所有科目的考試成績進行入檔,重要的是具有查詢統(tǒng)計功能。如用戶按照班級統(tǒng)計學生的平均成績、及格率、優(yōu)秀率等,統(tǒng)計學生個人的總成績及排名,統(tǒng)計學生個人的單科成績排名等。2.2功能分析為了維護數(shù)據(jù)系統(tǒng)的安全性和數(shù)據(jù)的準確性,設(shè)置了兩種用戶角色:管理員和普通用戶。普通用戶可以在現(xiàn)有班級設(shè)置的基礎(chǔ)上,對學生基本信息進行管理,另外,還可以查詢統(tǒng)計學生成績。具體功能如下:查詢學生基本信息,可以查看現(xiàn)有系、專業(yè)、班級的所有學生個人信息添加、修改現(xiàn)有系、專業(yè)、班級的所有學生個人信息查詢學生的成績對成績進行統(tǒng)計匯總系統(tǒng)管理員角色,則可以對整個系統(tǒng)進行管理操作,其在普通用戶功能的基礎(chǔ)上,還增加了如下功能:行政設(shè)置,包括設(shè)置系、系下屬的專業(yè)以及專業(yè)下屬的班級考試科目的設(shè)置,包括設(shè)置考試類型、時間段以及科目名稱學生成績的錄入與管理數(shù)據(jù)庫的管理,包括數(shù)據(jù)庫的備份與恢復用戶的管理,包括新用戶的注冊以及用戶角色的設(shè)置3系統(tǒng)設(shè)計3.1繪制用例圖設(shè)計系統(tǒng)功能 學生檔案管理系統(tǒng)一共包含兩種用戶角色,分別是普通用戶和管理員。 普通用戶只具有基本的學生信息管理和學生成績查詢功能。該角色只可以在現(xiàn)有的班級中查詢、添加、刪除、修改學生的基本信息,查詢、統(tǒng)計所有學生的考試成績。圖3-1管理員角色相比普通用戶,還具有設(shè)置院系、設(shè)置考試信息、錄入成績、用戶管理和數(shù)據(jù)庫管理功能。圖3-23.2繪制系統(tǒng)流程圖本系統(tǒng)需要對用戶身份進行驗證,驗證通過后再判斷用戶是管理員還是普通用戶,根據(jù)角色判斷用戶可以使用系統(tǒng)中的相應(yīng)操作功能。 另外,對操作者的操作順序也有一定的要求。如,要添加學生記錄,首先需要查看該學生所在的系、所學專業(yè)以及所在班級在數(shù)據(jù)庫中是否存在,如果不存在,則首先需要添加設(shè)置這些信息。同樣,要錄入學生成績,其前提是該學生的基本信息在系統(tǒng)中已經(jīng)存在。這里以管理員角色為例,其系統(tǒng)功能模塊圖如圖3-3:圖3-33.3開發(fā)工具和開發(fā)技術(shù)的選擇 本系統(tǒng)的設(shè)計是在WindowsXP中文版操作系統(tǒng)環(huán)境下,使用VisualC++6.0中文版開發(fā)成功的。 VisualC++是一種可視化的、面向?qū)ο蠛褪褂檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計,可用于開發(fā)Windows環(huán)境下的各種應(yīng)用程序。它簡單易學、效率高,且功能強大,可以與Windows的專業(yè)開發(fā)工具SDK相媲美。 數(shù)據(jù)庫系統(tǒng)采用的是Micorsoft的Access,采用Access2003開發(fā)工具3.4系統(tǒng)的運行環(huán)境 系統(tǒng)可以直接在Win98、Win2000、WinXP環(huán)境下運行。注意,系統(tǒng)運行時,不必手工設(shè)置ODBC數(shù)據(jù)源,只需將該數(shù)據(jù)庫文件"StudentInfoManage.mdb"拷貝到與系統(tǒng)的可執(zhí)行文件"StudentInfoManage.exe"同一目錄下即可。3.5系統(tǒng)類庫設(shè)計 學生檔案管理系統(tǒng)的系統(tǒng)類庫設(shè)計如下:數(shù)據(jù)庫操作類:數(shù)據(jù)庫中的每一個表都定義了一個操作類,包括CDepartmentSet、CExamSubjectSet等。他們從CRecordSet類繼承而來。對話框類:用戶與系統(tǒng)的交互、數(shù)據(jù)的顯示都是通過對話框窗口來實現(xiàn),因此需要定義一些對話框類,與相應(yīng)的對話框資源進行關(guān)聯(lián),包括CClassDlg、CDepartmentDlg、CExamSubjectDlg等。系統(tǒng)本身提供的框架類:因為系統(tǒng)采用的是MFC單文檔工程框架,因此其包括的系統(tǒng)類有CMainFrame、CStudentInfoManageApp等。4數(shù)據(jù)庫分析與設(shè)計4.1數(shù)據(jù)可分析考慮到系統(tǒng)的數(shù)據(jù)量較少,為了便于項目開發(fā)和維護,這里后臺的數(shù)據(jù)庫系統(tǒng)設(shè)計采用的是Micorsoft的Access數(shù)據(jù)庫系統(tǒng)。Access2000就是關(guān)系數(shù)據(jù)庫開發(fā)工具,數(shù)據(jù)庫能匯集各種信息以供查詢、存儲和檢索。Access的優(yōu)點在于它能使用數(shù)據(jù)表示圖或自定義窗體手機信息,數(shù)據(jù)表示圖提供了一種類似于Excel的電子表格,可以使數(shù)據(jù)庫一目了然。另外,Access允許創(chuàng)建自定義報表用于打印或輸出數(shù)據(jù)庫中的信息。Access也提供了數(shù)據(jù)存儲庫,可以使用左面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫。Access是一種關(guān)系數(shù)據(jù)庫工具,關(guān)系數(shù)據(jù)庫使以開發(fā)的最通用的數(shù)據(jù)庫之一。4.2數(shù)據(jù)庫概念設(shè)計數(shù)據(jù)庫需要存儲的主要是兩方面的內(nèi)容,學生的基本檔案和學生的成績。為了維護數(shù)據(jù)完整性和準確性,將學生基本信息實體中的系別,專業(yè)和班級提取出來,用單獨的表來存儲這些信息。系統(tǒng)涉及實體圖如下:系的代碼系的代碼系的名稱系別的描述學院的系圖4-1系別實體圖學生所在的專業(yè)學生所在的專業(yè)專業(yè)的代碼專業(yè)的名稱專業(yè)所在的系專業(yè)的描述圖4-2專業(yè)實體圖學生所在的班級學生所在的班級班級的代碼班級的名稱班級所在專業(yè)班級所在的系班級的輔導員班級的描述圖4-3班級實體圖學生的基本信息學生的基本信息學號姓名所在的系班級專業(yè)性別名族籍貫入學時間、、、、、、圖4-4學生信息實體圖科目代碼考試科目科目代碼考試科目考試科目考試類型類型代碼考試類型圖4-5考試類型實體圖圖4-6考試科目實體圖時間段代碼時間段代碼考試時間段考試時間段圖4-7考試時間段實體圖編號編號學生姓名學號班級考試類型考試科目考試時間段補考成績?nèi)笨贾甘究荚嚦煽兛荚嚦煽兛荚嚦煽儓D4-8考試成績實體圖登錄用戶登錄用戶是否為管理員用戶名用戶密碼圖4-9登錄用戶實體圖4.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計系別信息表用來記錄學院中所有系的基本信息,包括代碼、名稱及簡介等信息,該表的邏輯結(jié)構(gòu)如表4-1表4-1department表專業(yè)信息表用來記錄學院中各系設(shè)置的專業(yè)信息,包括代碼、名稱、簡介及所屬系的信息,該表的邏輯結(jié)構(gòu)如表4-2表4-2major表班級信息表用來記錄各專業(yè)所分班級信息,包含代碼、名稱、簡介及所屬專業(yè)的信息,該表的邏輯結(jié)構(gòu)如表4-3表4-3class表學生信息表用了記錄學生的基本檔案,包括學生的姓名、學號、性別、出生年月、家庭地址的基本信息。另外,還必須包含學生所在的班級、所的專業(yè)及所在的系,該表的邏輯結(jié)構(gòu)如表4-4表4-4student表考試類型信息表用來記錄所有的考試類型,如期中考試、期末考試、平日測試、過級考試等。包含類型代碼和考試類型兩個字段,其邏輯結(jié)構(gòu)如表4-5表4-5examtype表考試科目信息表用來記錄所有的考試科目,包含科目代碼和考試科目兩個字段,其邏輯結(jié)構(gòu)如表4-6表4-6examsubject表考試時間段信息表用來記錄所有的考試時間段,如2009上學期、2009下學期,包含代碼和考試時間段兩個字段,其邏輯結(jié)構(gòu)如表4-7表4-7examtime表考試成績信息記錄表記錄了所有的學生所有科目的考試成績,搞好記錄代碼、學號、姓名、所在班級、考試類型、考試科目、考試時間段、考試成績、補考成績,以及是否缺考等字段,其邏輯結(jié)構(gòu)如表4-8表4-8score表用戶登錄信息表用來記錄系統(tǒng)的所有使用用戶信息,包含用戶名、密碼及權(quán)限三個字段,其邏輯結(jié)構(gòu)如表4-9表4-9user表4.4數(shù)據(jù)庫的創(chuàng)建各表設(shè)計完畢后就可以創(chuàng)建數(shù)據(jù)庫。在Access2000中,新建數(shù)據(jù)庫,名稱為"StudentInfoManage.mdb",然后通過創(chuàng)建向?qū)?chuàng)建各表,如圖4-10:圖4-10創(chuàng)建完畢后,即得到了數(shù)據(jù)庫文件:"StudentInfoManage.mdb"。為了維護數(shù)據(jù)庫中數(shù)據(jù)的準確性和完整性,對表中一些字段做了一定的限制。對student表而言,其class字段〔所屬班級的記錄必須在class表中存在。同樣,class表中的major字段〔所屬專業(yè)必須在major表中存在,而major表中的department字段〔所屬專業(yè)必須在department表中存在。對score表而言,其subject字段〔考試科目、type字段〔考試類型、time字段〔考試時間段的記錄必須在examsubject、examtype和examtime中存在,而code〔學號、name〔姓名、class〔班級字段,必須在student表中存在。各表的關(guān)系圖如下圖4-11:5公共類〔數(shù)據(jù)記錄類設(shè)計程序開發(fā)中,對數(shù)據(jù)庫訪問與操作時通過MFCODBC類來實現(xiàn)的。從CRecordSet類繼承了CDepartmenfSet、CExamSubjectSet、CExamtimeset、CExamtypeSet、CmajorSet、CScoreSet、和CUserSet類,分別用于操作數(shù)據(jù)庫中對應(yīng)的表。5.1創(chuàng)建ODBC數(shù)據(jù)源要創(chuàng)建這些類,首先要定義ODBC數(shù)據(jù)源,可以通過手工方式"控制面板"→"管理工具"→"數(shù)據(jù)源〔ODBC"來設(shè)置,也可以在程序中通過編程來實現(xiàn)。這里使用后者,類系統(tǒng)類CStudentImfoManageSpp的InitInstance函數(shù)中,添加如下代碼:BOOLCStudentInfoManageApp::InitInstance<>{ AfxEnableControlContainer<>; SQLConfigDataSource<NULL,ODBC_ADD_DSN, "MicrosoftAccessDriver<*.mdb>", "DSN=StudentInfoManage\0" "Description=Student\0""FileType=Access\0""DBQ=.\\StudentInfoManage.mdb\0">; //數(shù)據(jù)庫文件、、、在第4行代碼中通過API函數(shù)SQLConfigDataSource設(shè)置ODBC數(shù)據(jù)源,第5~9行代碼分別設(shè)置相關(guān)參數(shù),第9行代碼將數(shù)據(jù)庫文件的路徑設(shè)置為默認目錄,即VC工程所在的目錄。因此,編譯運行程序前,需要將是數(shù)據(jù)文件"StudentInfoManage.mdb"復制到工程的根目錄下,程序運行后,即實現(xiàn)了ODBC數(shù)據(jù)源的自動設(shè)置。5.2創(chuàng)建數(shù)據(jù)記錄類設(shè)置了ODBC數(shù)據(jù)源后,就可以創(chuàng)建數(shù)據(jù)記錄類。以CScoreSet類為例,它與數(shù)據(jù)庫中的表score表關(guān)聯(lián),具體創(chuàng)建過程如下:在VC窗口中,執(zhí)行"Insert"→"NiwClass"菜單命令,在彈出的對話框中,選擇CRecordset作為基礎(chǔ),如圖5-1:圖5-1單擊"確定"按鈕,彈出"DatabaseOptions"對話框,在ODBC下拉列表框中,會發(fā)現(xiàn)新創(chuàng)建的數(shù)據(jù)源"StudentInfoManage",如圖5-2:圖5-2選擇數(shù)據(jù)源,單擊"OK"按鈕,彈出"SelectDatabaseTables"對話框,其中列出了數(shù)據(jù)庫中的所有表,如圖5-3:圖5-36登錄模塊與界面設(shè)計系統(tǒng)啟動首先進入登錄模塊,即創(chuàng)建"用戶登錄"對話框,在下拉列表框中選擇登錄用戶名,只有輸入正確的密碼偶,才能進入系統(tǒng)界面。6.1登錄模塊設(shè)計登錄對話框的關(guān)聯(lián)類為CLoginDlg,在對話框的初始化函數(shù)OnInitDialog中,讀取user表中的所有用戶記錄,將用戶名添加到登錄對話框的下拉列表中,代碼如下:BOOLCLoginDlg::OnInitDialog<>{ CDialog::OnInitDialog<>; CUserSetrecordset; CStringstrSQL; UpdateData<TRUE>; strSQL="select*fromuser"; if<!recordset.Open<AFX_DB_USE_DEFAULT_TYPE,strSQL>> { MessageBox<"打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯誤",MB_OK>; returnFALSE; } while<!recordset.IsEOF<>> { m_ctrUser.AddString<recordset.m_user>; recordset.MoveNext<>; } recordset.Close<>; returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}在第7、8行代碼中通過CUwerSet對象實現(xiàn)查詢user表的所有記錄,第13——17行代碼實現(xiàn)遍歷查詢結(jié)果記錄集,將用戶名添加到下拉組合框中。6.2主界面設(shè)計系統(tǒng)主界面為標準的Windows窗口界面,所有操作通過菜單項來實現(xiàn)。為了美好界面,在視圖窗口添加了圖片,該圖片的大小可以隨著視圖窗口的大小的改變而縮放,具體在視圖類CStudentInfoManageView的OnPaint函數(shù)中實現(xiàn),代碼如下:voidCStudentInfoManageView::OnPaint<>{ CPaintDC*pDC=newCPaintDC<this>;//創(chuàng)建設(shè)備上下文 CBitmapbmp; RECT Rect; RECT RectView; POINT ptSize; CDC dcmem; BITMAP bm; intb=bmp.LoadBitmap<IDB_BITMAP_BG>;//將位圖取出; dcmem.CreateCompatibleDC<pDC>;//創(chuàng)建兼容設(shè)備上下文。 dcmem.SelectObject<&bmp>;//用設(shè)備上下文選擇位圖; dcmem.SetMapMode<pDC->GetMapMode<>>;//設(shè)置映射方式; GetObject<bmp.m_hObject,sizeof<BITMAP>,<LPSTR>&bm>;//映射位圖; GetClientRect<&Rect>; ptSize.x=bm.bmWidth; ptSize.y=bm.bmHeight; pDC->DPtoLP<<LPPOINT>&ptSize,1>;//設(shè)備單元to邏輯單元; GetClientRect<&RectView>; CRectRectBmp=RectView; //當位圖寬度容納不下的處理 if<<RectView.right-RectView.left>>bm.bmWidth> { RectBmp.left=RectView.left+<RectView.right-RectView.left-bm.bmWidth>/2; RectBmp.right=bm.bmWidth; } else { RectBmp.left=RectView.left; RectBmp.right=RectView.right-RectBmp.left; } //當位圖高度容納不下的處理 if<<RectView.bottom-RectView.top>>bm.bmHeight> { RectBmp.top=RectView.top+<RectView.bottom-RectView.top-bm.bmHeight>/2; RectBmp.bottom=bm.bmHeight; } else { RectBmp.top=RectView.top; RectBmp.bottom=RectView.bottom-RectBmp.top; } //加載視圖到設(shè)備上下文中 pDC->StretchBlt<RectBmp.left,RectBmp.top,RectBmp.right,\ RectBmp.bottom,&dcmem,0,0,bm.bmWidth,bm.bmHeight,\ SRCCOPY>; //刪除設(shè)備上下文 dcmem.DeleteDC<>;}7學生檔案管理模塊設(shè)計學生檔案管理模塊包括基礎(chǔ)信息〔如系、專業(yè)、班級等的管理和檔案信息的管理。7.1系、專業(yè)、班級的管理設(shè)計要添加學生檔案首頁需要一次設(shè)置系、專業(yè)和班級信息,它們都是通過對話框窗口來實現(xiàn)。這里以設(shè)置專業(yè)為例,說明其實現(xiàn)過程。當用戶執(zhí)行"基礎(chǔ)設(shè)置"→"專業(yè)設(shè)置"菜單命令后,會彈出如圖7-1所示的"專業(yè)設(shè)置"對話框,其中可以添加、修改和刪除專業(yè)記錄。圖7-1在CMainFrame類中為"專業(yè)設(shè)置"菜單項添加ON_COMMAND響應(yīng)函數(shù),實現(xiàn)創(chuàng)建專業(yè)設(shè)置對話框,同時為"專業(yè)設(shè)置"菜單項添加ON_UJPDATE_COMMAND_UI響應(yīng)函數(shù),帶么如下:voidCMainFrame::OnUpdateBaseDepartment<CCmdUI*pCmdUI>{ //TODO:AddyourcommandupdateUIhandlercodehere CStudentInfoManageApp*ptheApp=<CStudentInfoManageApp*>AfxGetApp<>; pCmdUI->Enable<ptheApp->m_bIsAdmin>;}函數(shù)在第3行代碼獲取主程序?qū)ο?然后根據(jù)主程序?qū)ο笾杏涗浀挠脩魴?quán)限設(shè)置菜單選項是否可用〔第4行代碼。專業(yè)設(shè)置對話框?qū)?yīng)的對話框類為CMajorDlg。在對話框的初始化函數(shù)OnInitDialog中,首先讀取數(shù)據(jù)庫department表中的數(shù)據(jù),將數(shù)據(jù)庫中現(xiàn)有的系別記錄添加到對話框系別下拉列表框中,即用戶只能在數(shù)據(jù)庫中現(xiàn)有系中添加專業(yè)。然后,讀取數(shù)據(jù)庫major表中的數(shù)據(jù),將數(shù)據(jù)庫中現(xiàn)有的專業(yè)記錄添加到對話框的列表框中顯示。當用戶單擊"增加"按鈕,用戶就可以在對話框中添加新的專業(yè)記錄,任何點擊"保存"按鈕,即將該專業(yè)信息添加到數(shù)據(jù)庫中。"保存"按鈕的想要函數(shù)為OnButtonSave,代碼如下:voidCMajorDlg::OnButtonSave<>{ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData<>; if<m_strName==""> { AfxMessageBox<"請輸入專業(yè)名稱!">; return; } if<m_strCode==""> { AfxMessageBox<"請輸入專業(yè)代碼!">; return; } if<m_strDepartment==""> { AfxMessageBox<"請輸入所屬系別!">; return; } CStringstrSQL; strSQL.Format<"select*frommajorwherecode='%s'",m_strCode>; if<!m_recordset.Open<AFX_DB_USE_DEFAULT_TYPE,strSQL>> { MessageBox<"打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯誤",MB_OK>; return; } if< m_recordset.GetRecordCount<>!=0> { AfxMessageBox<"當前編碼已經(jīng)存在!請重新輸入!">; m_strCode=""; UpdateData<FALSE>; m_recordset.Close<>; return; } m_recordset.AddNew<>; m_recordset.m_name=m_strName ; m_recordset.m_code=m_strCode ; m_recordset.m_department= m_strDepartment; m_recordset.m_brief=m_strInfo; m_recordset.Update<>; m_recordset.Close<>; RefreshData<>; }7.2學生檔案信息管理設(shè)計當用戶執(zhí)行"學生管理"→"學生檔案管理"菜單命令后,菜單命令響應(yīng)函數(shù)會創(chuàng)建學生檔案信息管理對話框。在該對話框中,用戶可以查詢,添加,修改,刪除學生檔案信息。學生檔案管理對話框?qū)?yīng)的對話框類為CStudentDlg,下面以添加新的用戶檔案管理為列,解釋其代碼開發(fā)。添加按鈕響應(yīng)函數(shù)為OnButtonNew,函數(shù)代碼如下:voidCStudentDlg::OnButtonNew<>{ //TODO:Addyourcontrolnotificationhandlercodehere CStudentInfoDlgDlg; if<IDOK==Dlg.DoModal<>> {//添加新記錄 if<!m_recordset.Open<AFX_DB_USE_DEFAULT_TYPE>> { AfxMessageBox<"打開數(shù)據(jù)庫失敗!">; return; } m_recordset.AddNew<>; m_recordset.m_class=Dlg.m_strClass ; m_recordset.m_department=Dlg.m_strDept ; m_recordset.m_sex =Dlg.m_strSex; m_recordset.m_major=Dlg.m_strMajor; m_recordset.m_birthday =Dlg.m_tmBirth ; m_recordset.m_enroll_date=Dlg.m_tmEnroll; m_recordset.m_graduate_date=Dlg.m_tmGraduate ; m_recordset.m_address =Dlg.m_strAddress; m_recordset.m_edu_sys =Dlg.m_strEdusys; m_recordset.m_family=Dlg.m_strFamily; m_recordset.m_folk=Dlg.m_strFolk ; m_recordset.m_IDCard =Dlg.m_strIDCard; m_recordset.m_native=Dlg.m_strNative; m_recordset.m_oldname =Dlg.m_strOldName ; m_recordset.m_phone=Dlg.m_strPhone; m_recordset.m_political =Dlg.m_strPolitical ; m_recordset.m_postcode=Dlg.m_strPostCode ; m_recordset.m_code=Dlg.m_strCode ; m_recordset.m_name=Dlg.m_strName ; m_recordset.Update<>; m_recordset.Close<>; CStringstrSQL="select*fromstudent"; RefreshData<strSQL>; }}函數(shù)的第3、4行代碼首先創(chuàng)建學生信息對話框,供用戶輸入相關(guān)的學生檔案信息,然后在第6—17行代碼將對話框輸入的學生檔案添加到數(shù)據(jù)庫的student表中,在第18、19行代碼實現(xiàn)將student表中的所有記錄添加到列表控件中顯示。8學生成績管理模塊設(shè)計學生成績管理模塊包括基本考試課程信息的設(shè)置,考試成績查詢,考試成績錄入及考試成績的統(tǒng)計匯總等幾個子模塊。8.1考試課程信息設(shè)置在錄入學生成績之前,首先需要設(shè)置考試課程信息??荚囌n程信息設(shè)計包括考試類型,考試科目和考試時間的設(shè)計。這里以考試科目設(shè)計為例,介紹開發(fā)過程。當用戶執(zhí)行"成績管理"→"基礎(chǔ)設(shè)置"→"考試科目設(shè)置"菜單后,會彈出如圖8-1所示對話框,通過該對話框用戶可以添加,修改,和刪除考試科目信息。圖8-1在"考試科目設(shè)置"對話框中,單擊"增加"按鈕,在編輯框中輸入科目信息,單擊"保存"按鈕,即完成了考試科目的添加設(shè)置。"保存"按鈕在對話框類CExamSubjectDlg中響應(yīng)函數(shù)為OnButtonSave,代碼如下:voidCExamSubjectDlg::OnButtonSave<>{ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData<>; if<m_strName==""> { AfxMessageBox<"請輸入考試科目!">; return; } if<m_strCode==""> { AfxMessageBox<"請輸入科目代碼!">; return; } CStringstrSQL; strSQL.Format<"select*fromexamsubjectwherecode='%s'",m_strCode>; if<!m_recordset.Open<AFX_DB_USE_DEFAULT_TYPE,strSQL>> { MessageBox<"打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯誤",MB_OK>; return; } if< m_recordset.GetRecordCount<>!=0> { AfxMessageBox<"當前編碼已經(jīng)存在!請重新輸入!">; m_strCode=""; UpdateData<FALSE>; m_recordset.Close<>; return; } m_recordset.AddNew<>; m_recordset.m_name=m_strName ; m_recordset.m_code=m_strCode ; m_recordset.Update<>; m_recordset.Close<>; RefreshData<>; }首先判斷用戶輸入信息的有效性,然后將其寫入數(shù)據(jù)庫對應(yīng)的表中,最后更新顯示對話框列表中記錄。8.2考試成績查詢設(shè)計系統(tǒng)用戶可以查詢學生的所有考試成績。當用戶執(zhí)行"成績管理"→"學生成績查詢"菜單項后,會彈出如圖8-2所示對話框。通過該對話框,用戶可以選擇班級,查看班級中學生的各科成績,也可以直接按姓名搜索學生的沉寂。圖8-2在"成績查詢"對話框中,通過班級下拉列表框選擇班級,單擊"顯示學生列表"按鈕,在對話左側(cè)的列表中,顯示該該班級所有學生的信息。在列表框中選擇學生,在右側(cè)列表框中將列出該學生的所有考試成績。在"成績查詢"對話框類CScoreQueryDlg的初始化函數(shù)OnInitDialog中,查詢數(shù)據(jù)庫中所有班級,并添加到班級列表框中,另外對列表框做一些基本的初始化工作。在"顯示學生列表"按鈕響應(yīng)函數(shù)OnButtonList中,從數(shù)據(jù)庫中查詢所選班級的學生記錄,并添加到左側(cè)窗口的列表控件中。8.3考試成績錄入設(shè)計系統(tǒng)管理員可以錄入學生成績。當執(zhí)行"成績管理"→"學生成績錄入"菜單項后,會彈出如圖8-3所示的對話框。通過該對話框,用戶選擇班級,考試類型,考試時間段,以及考試科目等信息后,單擊"開始錄入"按鈕,在列表框中會列出該班級所有學生的該科目成績〔初始為0。鼠標左鍵雙擊每條記錄,會彈出學生成績錄入對話框,供管理員錄入或修改成績。圖8-3在成績錄入對話框類CScoreInputDlg的初始化函數(shù)OnINetDialog中,查詢數(shù)據(jù)庫中的所有班級,考試類型,考試時間段和考試類型記錄,并添加到相應(yīng)的列表框中。在"開始錄入"按鈕響應(yīng)函數(shù)OnButtonInput中,根據(jù)用戶輸入的信息,從數(shù)據(jù)庫查找該班級學生的成績,并在成績列表框中顯示。8.4班級成績的匯總統(tǒng)計設(shè)計系統(tǒng)用戶可以通過班級成績的匯總統(tǒng)計,查看某一班級某門考試的平均成績、及格率、優(yōu)秀率等信息。當執(zhí)行"成績管理"→"班級成績匯總統(tǒng)計菜單項后,會彈出如圖8-4所示對話框。當用戶選中班級、考試時間段和考試類型信息后,單擊"統(tǒng)計"按鈕,在列表框中會列出所有考試科目的統(tǒng)計信息。圖8-4對話框?qū)?yīng)的對話框類為CScoreClassStatDlg,在對話列表框的初始化函數(shù)中,初始化下拉列表框和統(tǒng)計列表框。在"統(tǒng)計"按鈕消息響應(yīng)函數(shù)OnButtonStat中,通過創(chuàng)建信息的記錄集,使用SQL語句統(tǒng)計匯總班級學生的各科成績,并在列表框中顯示。8.5學生總分名次統(tǒng)計設(shè)計系統(tǒng)用戶可以同學生總分名次統(tǒng)計,查看某一班級所有學生的總成績、平均分,以及班級排名。當執(zhí)行"成績管理"→"學生總分名次查詢"菜單命令后,會彈出如圖8-5所示對話框。當用戶選中班級,考試時間段和考試類型信息后,單擊"統(tǒng)計"按鈕,在列表框總會列出該班級所有的學生的總分、平均分和排名。圖8-5對話框?qū)?yīng)的對話框類為CScoreTotaIDlg,在對話框的初始化函數(shù)中,初始化下拉列表框和統(tǒng)計列表框。在"統(tǒng)計"按鈕消息響應(yīng)函數(shù)OnButtonStat中,通過創(chuàng)建消息的記錄集,是用SQL語句統(tǒng)計綁架個學生的總成績、平均成績,并在列表框中顯示。8.6學生單科名次統(tǒng)計設(shè)計系統(tǒng)用戶可以同過學生單科名次統(tǒng)計,查詢某一班級所有學生的某一科目的分數(shù)及排名情況。當執(zhí)行"成績管理"→"學生單科名次查詢"菜單命令后,會彈出如圖8-6所示對話框。當用戶選中班級、考試時間段、考試類型和考試科目信息后,單擊"統(tǒng)計"按鈕,在列表框中會列出該班級所有的學生該學科的成績及排名。圖8-6對話框?qū)?yīng)的對話框類為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園保育員實習合同
- 紡織翻新施工合同
- 新能源顧問聘用協(xié)議
- 乳膠漆施工服務(wù)協(xié)議教育機構(gòu)
- 垃圾處理分包協(xié)議
- 展覽館真石漆施工合同
- 休閑運動中心施工協(xié)議
- 鐵路新建塔機租賃合同
- 嬰兒用品快遞租賃合同
- 銀行 融資合同范例
- 儀器分析題庫(含答案)
- 風電工程施工合同
- 招標法律法規(guī)匯總
- 湖北省黃岡市2022-2023學年高一上學期元月期末數(shù)學試題(原卷版)
- 2023配電網(wǎng)線損理論計算導則
- 審計人員保密守則
- GB/T 713.3-2023承壓設(shè)備用鋼板和鋼帶第3部分:規(guī)定低溫性能的低合金鋼
- 林西森騰礦業(yè)有限責任公司林西縣銀洞子溝鉛鋅礦2022年度礦山地質(zhì)環(huán)境治理計劃書
- 招聘服務(wù)協(xié)議
- 免費下載裝修合同范本
- 《高職體育與健康》課程標準
評論
0/150
提交評論