班級信息管理系統(tǒng)_第1頁
班級信息管理系統(tǒng)_第2頁
班級信息管理系統(tǒng)_第3頁
班級信息管理系統(tǒng)_第4頁
班級信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計 課程名稱Visual C+面向?qū)ο蟪绦蛟O(shè)計題目名稱班級信息管理系統(tǒng)專業(yè)班級2013級網(wǎng)絡(luò)工程(一)班學生姓名學號指導教師二一五年十二月二十七日蚌埠學院計算機科學與技術(shù)系課程設(shè)計任務(wù)書課 程面向?qū)ο蟪绦蛟O(shè)計班級2013級網(wǎng)絡(luò)工程1班指導教師郭有強題 目班級信息管理系統(tǒng)完成時間2015年11月32日至2015年12月27日主要內(nèi)容要求: 根據(jù)要求用戶需要設(shè)計一個關(guān)于學生信息管理MFC應用程序,實現(xiàn)對學生信息的管理。該程序還要實現(xiàn)以下功能:能夠輸入學生信息;能夠通過關(guān)鍵詞搜索查詢學生信息。設(shè)計報告要求1封面: 2課程設(shè)計任務(wù)書3分工協(xié)作說明4課程設(shè)計說明書 系統(tǒng)總體方案 設(shè)計思路和主

2、要步驟 各功能模塊 設(shè)計代碼 心得體會和參考資料說明:學生完成課程設(shè)計后,提交課程設(shè)計報告及軟件,要求文字通暢、排版規(guī)范,文字不少于5000 字,并裝訂成冊。版面要求1 題目用黑體三號,段后距18磅(或1行),居中對齊;2 標題用黑體四號,段前、段后距6磅(或0.3行);3 正文用小四號宋體,行距為1.25倍行距;4 標題按“一”、“”、“1”、“”順序編號。上機時間安排星期周次一二三四五六日第14周-第17周13網(wǎng)工1班5、6節(jié)13網(wǎng)工1班3、4節(jié)指導時間地點上機時間,多媒體技術(shù)實驗室(B108)分工協(xié)作說明課題名稱學生姓名學號所做的工作學生信息管理系統(tǒng)分析設(shè)計、代碼編寫、排版需求分析、撰寫

3、正文需求分析、撰寫正文撰寫正文、打印撰寫正文撰寫正文備注最后總結(jié)調(diào)試由所有組員共同完成蚌埠學院計算機科學與技術(shù)系本科課程設(shè)計成績評定表項目權(quán)重分值具體要求得分文獻閱讀與調(diào)查論證0.20100能獨立查閱文獻和從事其它調(diào)研活動;有收集、加工各種信息的能力設(shè)計質(zhì)量0.30100設(shè)計合理、功能齊備,程序運行正常,實驗數(shù)據(jù)準確可靠;有較強的實際動手能力論文撰寫質(zhì)量0.20100設(shè)計說明書完全符合規(guī)范化要求,用A4復印紙打印成文學習態(tài)度0.20100學習態(tài)度認真,科學作風嚴謹,嚴格按要求開展各項工作,按期完成任務(wù)學術(shù)水平與創(chuàng)新0.10100設(shè)計有創(chuàng)意,有一定的學術(shù)水平或?qū)嵱脙r值總分評語:存在問題:等級:

4、指導教師: 年 月 日目錄前言1一 需求分析3(一)課程設(shè)計目的3(二)項目要求3二 設(shè)計環(huán)境4三 簡單介紹本系統(tǒng)實現(xiàn)內(nèi)容4四 數(shù)據(jù)庫設(shè)計5(一)創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表5(二)創(chuàng)建ODBC數(shù)據(jù)源5五C+程序設(shè)計部分7(一)創(chuàng)建MFC工程7(二)構(gòu)造班級信息對話框類7(三)實現(xiàn)班級信息添加和顯示功能9(四)查詢班級信息功能實現(xiàn)15總結(jié)18致 謝19參考文獻:20前言隨著學校向全國及至世界范圍的持續(xù)擴張,學生人數(shù)的增加,對于學生的信息管理也越來越復雜,要求也越來越高,因此需要一個全面、詳細的信息管理系統(tǒng),以便完成對學生信息的管理。無紙化的環(huán)境是技術(shù)時代的一個夢想,也是許多學校和公司越來越意識到的一個真

5、實世界。以前是由學生檔案和公告欄來提供各種信息及通告新的變化,而現(xiàn)在這個繁雜的工作已被網(wǎng)站和內(nèi)部計算機網(wǎng)絡(luò)所取代。使得學生信息的管理更方便、安全。根據(jù)調(diào)查得知,現(xiàn)在廣大學生進行信息提交的主要方式是基于文件、表格等紙介質(zhì)的手工處理,學生信息管理部門信息處理工作量大,容易出錯,且管理方面因人而異。然而學校網(wǎng)上學生信息管理系統(tǒng)應該覆蓋各個所需功能,使各級管理人員和廣大教職工在信息系統(tǒng)的輔助下進行工作,提高管理的整體水平。使得學生信息管理更方便。學生信息管理系統(tǒng),可以用集中的數(shù)據(jù)庫將與人力資源管理相關(guān)的信息全面、有機地聯(lián)系起來,有效地減少了信息更新和查找中的重復勞動,保證了信息的相容性,從而大大地提高

6、了工作效率,還能使原來不可能提供的分析報告成了可能。在采用和實施學生信息管理系統(tǒng)之后,就會將依賴于人的過程改為依賴于計算機系統(tǒng)的過程。學校管理人員只要獲取了相應的權(quán)限,就可以隨時進入系統(tǒng),直接查閱相應的信息。采用和實施學生信息管理系統(tǒng)不僅僅是為了提高工作效率。為了除掉手工記錄的低效率工作方式,運用信息化管理,提高工作效率,開發(fā)本系統(tǒng)。應該看到,在實施學生信息管理系統(tǒng)后,經(jīng)過整合的、較為全面、準確、一致和相容的信息不僅可以讓學校領(lǐng)導對本學校學生資源的現(xiàn)狀有一個比較全面和準確的認識,同時也可以生成綜合的分析報表供學校領(lǐng)導人在決策時參考。當今已是計算機發(fā)達的21世紀,科技的發(fā)展之快用日新月異來形容已

7、毫不為過,許許多多的產(chǎn)業(yè)均已將先進的計算機科學應用到實踐當中,并取得了空前輝煌的,質(zhì)的飛躍。但是,在技術(shù)發(fā)展的搖籃、本身技術(shù)實力雄厚的大學校園中,卻還存在著相對比較落后的人工管理系統(tǒng),不得不令人感到驚訝。而這些系統(tǒng)中比較突出的就是學生的成績管理系統(tǒng)。當今的大學,學生多則數(shù)萬,少則亦有幾千,擴招每年為國家多輸送了千千萬萬的人才,然而,學校的壓力卻是每年的劇增,尤其在學生成績的管理上,依舊使用著較為落后的人工檔案管理系統(tǒng),使用上的不便與維護上的開銷日益凸顯。手工錄入、修改成績,教師耗時耗力,工作繁瑣,壓力沉重,準確性還非常沒有保證,學生查詢成績,排隊、辦手續(xù)、找檔案,相當?shù)馁M時間且不方便,這樣一個

8、臃腫的管理系統(tǒng)不但耗費了大量的人力、物力、財力資源,管理的效率也是愈來愈低下。各大高校的學生成績管理并不是很方便的體現(xiàn)學生成績,而設(shè)計這個系統(tǒng)的出發(fā)點是更加人性化,更加全面的管理學生成績,使成績在錄入,修改,查詢的過程中更加準確便捷。能讓老師、學生和管理人員即使準確的了解到學生成績等等。 由于計算機技術(shù)的飛速發(fā)展,數(shù)據(jù)庫技術(shù)作為數(shù)據(jù)管理的一個有效的手段,在各行各業(yè)中得到越來越廣泛的應用。應該看到,在實施學生信息管理系統(tǒng)后,經(jīng)過整合的、較為全面、準確、一致和相容的信息不僅可以讓學校領(lǐng)導對本學校學生資源的現(xiàn)狀有一個比較全面和準確的認識,同時也可以生成綜合的分析報表供學校領(lǐng)導人在決策時參考。一 需求

9、分析隨著信息化的來臨和計算機在日常管理中的廣泛應用,為了實現(xiàn)班級管理的信息化和方便化,建立一套功能完善的管理信息系統(tǒng)勢在必行。既能滿足管理人員日常處理的需要,增強班級管理數(shù)字化管理水平,提高實施管理的準確性、科學性,使擔負管理的工作人員從繁雜的手工勞作中解脫出來,從而大幅度提高工作效率;又能滿足同學們彼此了解的需求,而且還可以更好的向其他想了解本班情況的用戶提供大量的數(shù)據(jù)以及文字信息。學校班級信息管理系統(tǒng)軟件為學校辦公帶來了極大的方便。(一)課程設(shè)計目的學生成績管理系統(tǒng)是應對學生人數(shù)增多、信息量增大的問題,實現(xiàn)管理的現(xiàn)代化、網(wǎng)絡(luò)化,逐步擺脫當前學生成績管理的人工管理方式,提高成績管理效率而開發(fā)

10、的。希望該開發(fā)程序能夠解決學生信息存儲、學生成績查詢、錄入還有課程查詢等一系列功能,并提供了對各功能模塊的查詢和更新功能,且這兩種功能基本上是通過存儲過程來實現(xiàn)的,其中學生成績查詢和學生信息查詢是系統(tǒng)開發(fā)的重點。隨著學校規(guī)模的不斷擴大,專業(yè)、班級的學生數(shù)量急劇增加,有關(guān)學生的信息量也成倍增長。但是目前許多高校的學生管理系統(tǒng)仍然停留在復雜的人工操作上,工作量比較多。因此,迫切需要開發(fā)基于互聯(lián)網(wǎng)的信息系統(tǒng)來提高工作效率。使學生的成績規(guī)范管理、科學的統(tǒng)計和快速的查詢方面具有較大的實際意義。過去管理人員對資料的管理、信息的發(fā)布等工作存在很多缺點,如保密性低,工作量大。同時學生和老師不能及時了解成績信息

11、。這些問題給教師帶來很多困擾,增加學校成本。因此建立一個自動化的管理服務(wù)的計算機應用軟件是十分必要的。(二)項目要求在一般視圖中顯示班級信息內(nèi)容,可根據(jù)院系或?qū)I(yè)來查詢班級信息,將結(jié)果顯示在視圖中。具體要完成的任務(wù)或要實現(xiàn)的功能如下:用Access創(chuàng)建一個用于學生信息管理系統(tǒng)的數(shù)據(jù)庫student.mdb。添加數(shù)據(jù)表classinfo,用來描述班級信息,其字段有classno(班級號)、depart(所在院系)、special(專業(yè)名稱)、studyyear(學制)、entertime(入學時間)。在主菜單中添加“信息輸入(&1)”菜單,在該菜單中添加“班級信息輸入(&c)”菜

12、單項。當選擇該菜單項后,彈出“班級信息輸入”對話框,單擊“確定”按鈕,在classinfo表中添加一條班級信息記錄,并自動更新新視圖顯示的內(nèi)容。在主菜單中添加“信息查詢(&Q)”菜單,在該菜單中添加“查詢班級信息(&S)”菜單項。當選擇該菜單項后,彈出“查詢班級信息”對話框,輸入要查詢的內(nèi)容,單擊“確定”按鈕后,將結(jié)果顯示在視圖中。二 設(shè)計環(huán)境(1)WINDOWS 2000/2003/XP系統(tǒng)(2)Access數(shù)據(jù)庫管理系統(tǒng) (3) Microsoft Visual C+ 6.0平臺(4)開發(fā)語言:C+面向?qū)ο蟪绦蛟O(shè)計語言三 簡單介紹本系統(tǒng)實現(xiàn)內(nèi)容系統(tǒng)中最基本的類是學生類,所有

13、的功能都是圍繞學生的相關(guān)信息的輸入、查找、修改、刪除等的操作而實現(xiàn)的。學生類中包括學生的基本信息(學號、姓名、性別、生日、課程、年齡),以及相關(guān)的操作函數(shù)(構(gòu)造一個空鏈表、增加一個學生、顯示所有學生的成績、顯示所有的學生的信息、求平均成績、修改學生信息、刪除學生、刪除所有學生、查詢排序等)。主要的實現(xiàn)思想。該學生成績管理系統(tǒng),實現(xiàn)簡單的學生信息修改、學生信息管理,學生信息查詢等操作,并能實現(xiàn)簡單的數(shù)據(jù)統(tǒng)計。(1)班級信息管理 班級信息修改:選中要修改的數(shù)據(jù)信息,然后進行修改。 信息添加:新的班級增加時,將數(shù)據(jù)錄入并保存在數(shù)據(jù)庫中。(2)班級信息查詢 按條件查詢,結(jié)果顯示在表中。(3)班級信息數(shù)

14、據(jù)統(tǒng)計 按條件統(tǒng)計,結(jié)果顯示在表中。四 數(shù)據(jù)庫設(shè)計(一)創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表 啟動Microsoft access 2003.選擇【文件|新建】菜單,在右邊任務(wù)窗口中單擊“空數(shù)據(jù)庫”,彈出“文件新建數(shù)據(jù)庫”對話框,將文件保存為c:student.mdb,單擊【創(chuàng)建】按鈕,出現(xiàn)如圖所示的數(shù)據(jù)庫設(shè)計窗口。雙擊“使用設(shè)計器創(chuàng)建表”項,添加字段和數(shù)據(jù)類型,結(jié)果如圖所示。關(guān)閉設(shè)計窗口,彈出保存對話框,將剛才設(shè)計的表命名為c1assinfo,單擊【確定】按鈕,出現(xiàn)一個消息對話框,詢問是否要創(chuàng)建一個主鍵,單擊【否】按鈕。雙擊數(shù)據(jù)庫設(shè)計窗口中的classinfo表,在classinfo表中輸入如圖所列記錄,以便

15、后面的測試。 圖4-1-4數(shù)據(jù)表關(guān)閉Microsoftaccess2003。(二)創(chuàng)建ODBC數(shù)據(jù)源選擇【控制面板|管理工具|數(shù)據(jù)源(ODBC)】,出現(xiàn)“OBDC數(shù)據(jù)源管理器”對話框,如圖所示。 圖4-1-2“ODBC數(shù)據(jù)源管理器”對話(3)選擇【系統(tǒng)DSN】標簽,單擊【添加】按鈕,選擇“Microsoft access Driver(*.mdb)”,單擊【完成】按鈕,如圖所示。 圖4-1-3數(shù)據(jù)源配置(4) 在圖中的【數(shù)據(jù)源名(N)】文本框中輸入“用于學生信息管理系統(tǒng)的數(shù)據(jù)庫”,單擊【選擇(S).】,出現(xiàn)“選擇數(shù)據(jù)庫”對話框,如圖所示;在“數(shù)據(jù)庫”文本框中輸入c:student.mdb,單擊

16、【確定】按鈕,回到“OBDCMicrosoftaccess安裝”對話框,單擊【確定】,回到“OBDC數(shù)據(jù)庫管理器”對話框,如圖所示,單擊【確定】按鈕,完成創(chuàng)建OBDC數(shù)據(jù)源工作。 五C+程序設(shè)計部分(一)創(chuàng)建MFC工程 (1)啟動Visual C+6.0,選擇【File】菜單下的【New】菜單項,選擇【Projects】標簽,選擇【MFC AppWizard(exe)】項目類型,在【Project name】中輸入項目名STUDXINXI,定位于c:目錄下,單擊【OK】按鈕,如圖所示。(2)選擇【Singlc document】應用類型,即單文檔應用程序,其他使用默認值,單擊【Next】按鈕。

17、(3)在第6步將CSTUDXINXIView的基類改為CScrollView,如圖所示,單擊【Finish】按鈕。 (4)按“ctrl+w”鍵,打開“MFC ClassWizard”對話框。單擊【Add Class】按鈕。然后選擇【new】,打開“New Class”對話框。 (5) 在Name文本框中輸入CClassInfoSet,在Base class中選擇CRecordset,單擊【ok】按鈕,打開“Database Option”對話框。(6)從ODBC中選擇數(shù)據(jù)源“用于學生信息管理系統(tǒng)的數(shù)據(jù)庫”,單擊“ok”按鈕,打開“select Database Tables”對話框。單擊【OK

18、】按鈕,回到MFC ClassWizard界面,單擊【OK】按鈕后,系統(tǒng)自動為用戶生成CClassInfoSet類所需要的代碼。編譯程序,此時會出現(xiàn)許多錯誤。需要在studafx.h文件中添加CRecordSet包含語句:#include<afxdb.h>(二)構(gòu)造班級信息對話框類(1)用MFC ClassWizard為CClassInfoDlg類添加WM_INITDIALOG的消息映射。(2)用MFC ClassWizard為CClassInfoDlg類添加IDOK按鈕的BN_CLLCKED的消息映射,具體代碼分析如下。#include "stdafx.h"#

19、include "STUDXINXI.h"#include "ClassInfoDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CClassInfoDlg dialogCClassInfoDlg:CClassInfoDlg(CWnd* pParent /*=NULL*/): CDialog(CClassInfoDlg:IDD, pParent)/AFX_DATA_INIT(CClassInfoDlg)m_tEnte

20、r = 0;m_strYear = _T("");m_strClassNO = _T("");m_strDepart = _T("");m_strSpecial = _T("");/AFX_DATA_INITvoid CClassInfoDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CClassInfoDlg)DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_tE

21、nter);DDX_CBString(pDX, IDC_COMBO_YEAR, m_strYear);DDX_Text(pDX, IDC_EDIT_CLASSNO, m_strClassNO);DDX_Text(pDX, IDC_EDIT_DEPART, m_strDepart);DDX_Text(pDX, IDC_EDIT_SPECIAL, m_strSpecial);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CClassInfoDlg, CDialog)/AFX_MSG_MAP(CClassInfoDlg)/AFX_MSG_MAPEND_MESSAGE_MAP()BOO

22、L CClassInfoDlg:OnInitDialog() CDialog:OnInitDialog();m_strYear="4"UpdateData(FALSE);return TRUE;return TRUE; void CClassInfoDlg:OnOK() UpdateData();m_strClassNO.TrimLeft();m_strDepart.TrimLeft();m_strSpecial.TrimLeft();if(m_strDepart.IsEmpty()MessageBox("必須要有所在院系!");else if(m_st

23、rSpecial.IsEmpty()MessageBox("必須要有專業(yè)!");elseif(m_strClassNO.IsEmpty()MessageBox("必須要有班級號!");elseCDialog:OnOK(); 圖5-2信息輸入對話框(三)實現(xiàn)班級信息添加和顯示功能 (1)為CSTUDXINXIView類添加一個LOGFONT型成員變量m_lfFont,方法如圖所示,用來確定視圖信息顯示的字體。為CSTUDXINXIView類添加兩個CString型成員變量m_strClassNo和m_strSQL,用來分別制定要強調(diào)的現(xiàn)實的班級號和數(shù)據(jù)表的

24、查詢條件。 (2)在CSTUDXINXIView類構(gòu)造函數(shù)中添加上述變量的初始化代碼。 (3)為CSTUDXINXIView類添加一個成員函數(shù)void dispclassinfo(CDC* pdc,cstring strclass,cstring strsql),用來在視圖中顯示classinfo數(shù)據(jù)表的內(nèi)容,如圖所示。其中,qdc是設(shè)備環(huán)境指針;strclass用來指定要強調(diào)的顯示的班級號,這樣就可以將剛才添加的班級信息記錄強調(diào)顯示;strSQL用來指定數(shù)據(jù)表的查詢條件。在STUDXINXIView.cpp文件的前面添加ClassInfoset類的包含語句。 (4)在STUDXINXIVie

25、w.cpp文件的前面添加ClassInfoset類的包含語句。 (5)打開菜單資源,添加一個菜單“信息輸入(&I)”,在該菜單中添加“班級信息輸入(&C)”菜單項,并將該菜單項標示設(shè)為ID_CLASSINFO_ADD,如圖所示。用MFC Classwizard為CSTUDXINXIView類添加該菜單項的COMMAND消息映射,如下為完整代碼。#include "stdafx.h"#include "STUDXINXI.h"#include "STUDXINXIDoc.h"#include "STUDXINX

26、IView.h"#include "ClassInfoSet.h"#include "ClassInfoDlg.h"#include "SeekClassDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CSTUDXINXIViewIMPLEMENT_DYNCREATE(CSTUDXINXIView, CScrollView)BEGIN_MESSAGE_MAP(CSTUDXINXIVie

27、w, CScrollView)/AFX_MSG_MAP(CSTUDXINXIView)ON_COMMAND(ID_CLASSINFO_ADD, OnClassinfoAdd)ON_COMMAND(ID_CLASSINFO_SEEK, OnClassinfoSeek)/AFX_MSG_MAPON_COMMAND(ID_FILE_PRINT, CScrollView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView:On

28、FilePrintPreview)END_MESSAGE_MAP()CSTUDXINXIView:CSTUDXINXIView()memset(&m_lfFont,0,sizeof(LOGFONT);m_lfFont.lfHeight=12;m_lfFont.lfCharSet=GB2312_CHARSET;strcpy(m_lfFont.lfFaceName,"宋體");m_strClassNO=m_strSQL=""CSTUDXINXIView:CSTUDXINXIView()BOOL CSTUDXINXIView:PreCreateWind

29、ow(CREATESTRUCT& cs)return CScrollView:PreCreateWindow(cs);void CSTUDXINXIView:OnDraw(CDC* pDC)CSTUDXINXIDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CFont font;font.CreateFontIndirect(&m_lfFont);CFont *oldFont=pDC->SelectObject(&font);DispClassInfo(pDC,m_strClassNO,m_strSQL);pDC->

30、SelectObject(oldFont);void CSTUDXINXIView:OnInitialUpdate()CScrollView:OnInitialUpdate();CSize sizeTotal;/ TODO: calculate the total size of this viewsizeTotal.cx = sizeTotal.cy = 100;SetScrollSizes(MM_TEXT, sizeTotal);BOOL CSTUDXINXIView:OnPreparePrinting(CPrintInfo* pInfo)return DoPreparePrinting(

31、pInfo);void CSTUDXINXIView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CSTUDXINXIView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printing#ifdef _DEBUGvoid CSTUDXINXIView:AssertValid() constCScrollView:Asser

32、tValid();void CSTUDXINXIView:Dump(CDumpContext& dc) constCScrollView:Dump(dc);CSTUDXINXIDoc* CSTUDXINXIView:GetDocument() / non-debug version is inlineASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSTUDXINXIDoc);return (CSTUDXINXIDoc*)m_pDocument;#endif /_DEBUGvoid CSTUDXINXIView:DispClassInfo(C

33、DC *pDC, CString strClass, CString strSQL)CFont font;LOGFONT lf=m_lfFont;lf.lfWeight=700;strcpy(lf.lfFaceName,"幼圓");font.CreateFontIndirect(&lf);TEXTMETRIC tm;pDC->GetTextMetrics (&tm);int nLineHeight=(int)(tm.tmHeight+tm.tmExternalLeading)*1.5);int x=0,y=0,nWidth;CFont *oldFont

34、=pDC->SelectObject(&font);CString strHeader="班級號","所在院系","專業(yè)名稱","學制","入學時間"int nStrWidth=10,25,25,8,10;CClassInfoSet cSet;cSet.m_strFilter=strSQL;cSet.Open();for(UINT i=0;i<cSet.m_nFields;i+)nWidth=tm.tmAveCharWidth *nStrWidthi;pDC->Text

35、Out(x,y,strHeaderi);x+=nWidth;pDC->SelectObject(oldFont);CString str;while(!cSet.IsEOF()if(strClass=cSet.m_classno)lf.lfWeight=0;strcpy(lf.lfFaceName,"楷體_GB2312");font.DeleteObject();font.CreateFontIndirect(&lf);pDC->SelectObject(&font);elsepDC->SelectObject(oldFont);x=0;y

36、+=nLineHeight;for(UINT i=0;i<cSet.m_nFields;i+)cSet.GetFieldValue(i,str);nWidth=tm.tmAveCharWidth *nStrWidthi;pDC->TextOut(x,y,str);x+=nWidth;cSet.MoveNext();cSet.Close();CSize sizeTotal;sizeTotal.cx=x+nWidth;sizeTotal.cy=y+nLineHeight;SetScrollSizes(MM_TEXT,sizeTotal);void CSTUDXINXIView:OnCl

37、assinfoAdd() CClassInfoDlg dlg;if(dlg.DoModal()!=IDOK) return;CClassInfoSet infoSet;infoSet.m_strFilter.Format("classno='%s' AND depart='%s' AND special='%s'",dlg.m_strClassNO,dlg.m_strDepart,dlg.m_strSpecial);infoSet.Open();if(!infoSet.IsEOF()MessageBox(dlg.m_strCl

38、assNO+"班級記錄已添加過!");if(infoSet.IsOpen()infoSet.Close();return;if(infoSet.IsOpen()infoSet.Close();CClassInfoSet addSet;if(addSet.Open()addSet.AddNew();addSet.m_classno=dlg.m_strClassNO;addSet.m_depart=dlg.m_strDepart;addSet.m_special=dlg.m_strSpecial;addSet.m_studyyear=(float)atof(dlg.m_strY

39、ear);addSet.m_entertime=dlg.m_tEnter;addSet.Update();addSet.Requery();if(addSet.IsOpen() addSet.Close();m_strClassNO=dlg.m_strClassNO;m_strSQL=""MessageBox("請稍等幾秒鐘后,單擊【確定】按鈕!","特別提示",MB_OK|MB_ICONINFORMATION);Invalidate(); 圖5-3班級學生信息的添加實現(xiàn)(四)查詢班級信息功能實現(xiàn)(1)按“Cterl+R”鍵,打開“I

40、nsert Ressource”對話框。選擇“Dialog”,單擊New按鈕,向應用程序添加一個對話框資源,將其名字改為IDD_SEEKCLASS,標題定義為“查詢班級信息”,字體設(shè)為“宋體,9號”,將OK和Cancel按鈕分別改為“確定”和“取消”。 (2)用MFC ClassWizard為CSeekClassDlg類添加IDOK按鈕的BN_CLICKED消息映射,并部分代碼如下。void CSeekClassDlg:OnOK() / TODO: Add extra validation hereUpdateData();m_strSeek.TrimLeft();if(m_strSeek.I

41、sEmpty()MessageBox("查詢內(nèi)容不能為空!");return;int nID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);if(nID=IDC_RADIO1)m_strSQL.Format("depart='%s'",m_strSeek);elsem_strSQL.Format("special='%s'",m_strSeek);CDialog:OnOK(); 圖5-4-2“查詢班級信息”對話框(3) 打開菜單資源,添加一個菜單“信息查詢(&

42、amp;Q)”,在該菜單中添加“查詢班級信息(&S)”菜單項,并將該菜單項標識設(shè)為ID_CLASSINFO_SEEK。用MFC ClassWizard為CSTUDXIXNXIView類添加該菜單項的COMMAND消息映射,部分代碼如下。void CSTUDXINXIView:OnClassinfoSeek() / TODO: Add your command handler code hereCSeekClassDlg dlg;if(dlg.DoModal()=IDOK)m_strClassNO=""m_strSQL=dlg.m_strSQL;Invalidate(

43、); (4)打開菜單資源,添加一個菜單“信息查詢(&Q)”,在該菜單中添加“查詢班級信息(&S)”菜單項,并將該菜單項標識設(shè)為ID_CLASSINFO_SEEK。用MFC ClassWizard為CSTUDXIXNXIView類添加該菜單項的COMMAND消息映射,并添加下列部分代碼。void CSTUDXINXIView:OnClassinfoSeek() / TODO: Add your command handler code hereCSeekClassDlg dlg;if(dlg.DoModal()=IDOK)m_strClassNO=""m_st

44、rSQL=dlg.m_strSQL;Invalidate(); (5)在STUDXINXIView.cpp文件的前面添加CSeekClassDlg類的包含語句。#include “classInfoSet.h”#include “SeekInfoSet.h”(6) 編譯、運行并測試,結(jié)果如圖所示 圖5-4-6班級信息查詢及顯示總結(jié)通過幾個星期的設(shè)計和開發(fā),我們終于完成了學生成績管理系統(tǒng)。在此過程中使我們學會了很多有用的東西,受益匪淺。在編寫程序的過程中,我們回顧了以前所學的知識,將學習到的知識在這個項目中得到了充分的應用,達到了檢驗自我的目的。并且通過和別人一起合作,學到了新的知識,積累了經(jīng)驗

45、。在這次設(shè)計中我們得到了老師和同學的指導和幫助,使我們認識到團隊精神的重要性,因為一個人所學的知識不可能面面俱到的,只有通過合作,發(fā)揮自己的優(yōu)點,體現(xiàn)團隊精神,才能使工作做得更為出色。通過這次設(shè)計,我們感覺到了團隊合作在軟件開發(fā)過程中的重要性,一個人是沒有辦法完成一個好的項目的。通過這次設(shè)計, 我受益匪淺,親身體驗了系統(tǒng)開發(fā)的全過程,在實踐中了解了系統(tǒng)設(shè)計開發(fā)的步驟、流程以及思路,增長了在系統(tǒng)開發(fā)方面的見識,我們深刻認識到以前所學的基礎(chǔ)課程的重要性,也使我掌握了很多新知識,特別是一些課本之外的知識,體會到了理論知識和實踐相結(jié)合的重要性。 通過這個設(shè)計加強了團隊精神,也深深的體會到團隊精神的重要性。由于設(shè)計時間較短,且受知識技術(shù)水平的限制所以該系統(tǒ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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論