2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本 科 生 課 程 設(shè) 計(jì)</p><p>  課 程 名 稱: VC++程序設(shè)計(jì) </p><p>  題 目: 球員基本信息管理系統(tǒng) </p><p>  專 業(yè) 班 級(jí): </p><p&g

2、t;  學(xué) 生 姓 名: </p><p>  學(xué) 生 學(xué) 號(hào): </p><p>  日 期: </p><p>  指 導(dǎo) 教 師:

3、 </p><p>  指導(dǎo)教師簽字: </p><p>  年 月 日</p><p><b>  目 錄</b></p><p>  摘 要 ………………………………………………………………………………………..Ⅰ</p><p&

4、gt;  Abstract …………………………………………………………………………………... ....Ⅰ</p><p>  1 課題背景………………….…………………….…………………………………….... ....1</p><p>  1.1系統(tǒng)背景 ………………………………………………………………………………...1</p><p>  1.2 設(shè)計(jì)此系

5、統(tǒng)的目的. ……………………………………..…………………………….. 1</p><p>  1.3 球員信息系統(tǒng)可行性分析……………………………………………………………….2</p><p>  2 本系統(tǒng)關(guān)鍵技術(shù)簡(jiǎn)介………………………………………………………………………3</p><p>  2.1 VC++介紹 ………………………………………………..………

6、………………….…...3 </p><p>  2.2 ODBC介紹……………………………………………..………………………….….......3</p><p>  3 球員信息系統(tǒng)的實(shí)現(xiàn)與測(cè)試………………………………………………………………5</p><p>  3.1 登錄模塊和系統(tǒng)主界面設(shè)計(jì)…………………………..………………………….…....5 &l

7、t;/p><p>  3.2 系統(tǒng)功能的實(shí)現(xiàn)………………………………………..………………………….…....7</p><p>  4 部分模塊的詳細(xì)設(shè)計(jì)………………………………………………………………………9</p><p>  4.1登錄對(duì)話框的設(shè)計(jì)………………………….………………………………..….…..........9 </p><p

8、>  4.2登錄對(duì)話框的美化………………………………………..………………………….….12 </p><p>  5總 結(jié) ……..…………………………………………………..…………………………....14 </p><p>  參考文獻(xiàn) …….………………..………………………………..…………………………....15 </p><p>  致謝.....

9、…….………………..………………………………..………………………….... ....16</p><p>  附錄...............………...………………………………..………………………….... …... …..17</p><p><b>  摘 要</b></p><p>  足球作為世界第一運(yùn)動(dòng),已經(jīng)吸引了越來(lái)越多

10、的人的關(guān)注與參與。為了提升球隊(duì)管理工作的整體水平,特編譯了這個(gè)球隊(duì)信息管理系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了隊(duì)員的基本情況,的信息系統(tǒng),將球隊(duì)管理工作各部分連成一個(gè)完整的數(shù)據(jù)整體。該系統(tǒng)是采用VC++6.0軟件開(kāi)發(fā)的,采用了ODBC接口,具有可移植性和封裝的特色。文章首先簡(jiǎn)要敘述了系統(tǒng)的開(kāi)發(fā)背景及其開(kāi)發(fā)目的,然后結(jié)合現(xiàn)代話的信息系統(tǒng)建設(shè)思想架構(gòu)出信息系統(tǒng)模型,緊接著便是系統(tǒng)實(shí)施,最后是對(duì)整個(gè)系統(tǒng)作出評(píng)價(jià)。</p><p>  關(guān)

11、鍵詞:球隊(duì)管理;面向?qū)ο?;信息系統(tǒng); Visual C++;Access;ODBC;</p><p><b>  Abstract</b></p><p>  As the world's first campaign,football has attracted more and more people's concern and partic

12、ipation. To upgrade the whole level of the football player management, I’ve given the translation of the football player management information system specifically. The system realizes the basic situation of the player’s

13、 normal information, Management players will be part of the company as a whole integrity of the data. The system is based on VC++6.0 software development using the ODBC interface, with p</p><p>  Keywords: f

14、ootball player management; VC++6.0;ODBC; Information Systems;</p><p><b>  1 課題背景</b></p><p><b>  1.1系統(tǒng)背景</b></p><p>  足球作為世界第一運(yùn)動(dòng),已經(jīng)吸引了原來(lái)越多的人的關(guān)注,參與。各種俱樂(lè)部的成立在很

15、大程度上促進(jìn)了足球的發(fā)展,以及職業(yè)化,現(xiàn)在足球已經(jīng)成為一種產(chǎn)業(yè),而運(yùn)動(dòng)員是足球的核心,因此球隊(duì)中對(duì)運(yùn)動(dòng)員的科學(xué)化管理,已經(jīng)成為一種必需,科學(xué)化,人性化的管理可以增強(qiáng)他們的責(zé)任感,刺激他們的比賽熱情,減少優(yōu)秀運(yùn)動(dòng)員的流失,以及吸引頂尖球星的到來(lái),對(duì)于一個(gè)俱樂(lè)部球探,需要一套科學(xué)的系統(tǒng)來(lái)記錄,分析統(tǒng)計(jì)球員的信息和狀態(tài),給予他們客觀的評(píng)價(jià)以向俱樂(lè)部老板匯報(bào)工作。球隊(duì)管理系統(tǒng)具有這些的功能,球員信息:它可以可以查看,修改,刪除球員的各種信息。通

16、過(guò)統(tǒng)計(jì)分析方法,結(jié)合球員的狀況和足球的規(guī)律性,發(fā)現(xiàn)問(wèn)題,輔助球隊(duì)管理。盡管足球運(yùn)動(dòng)中變化和偶然性占有一定比重,但其內(nèi)部的規(guī)律是不可否認(rèn)的,我國(guó)的足球產(chǎn)業(yè)還不發(fā)達(dá),這不是一朝一夕可以</p><p>  提高的,因此必須從科學(xué)化管理出發(fā),才能逐步提高俱樂(lè)部的比賽成績(jī),以及運(yùn)作,從而提高整個(gè)產(chǎn)業(yè)的發(fā)展。 </p><p>  要建立這個(gè)管理系統(tǒng),需要經(jīng)過(guò)從零開(kāi)始的分析,了解現(xiàn)有的

17、工作流程,并將其人工操作事物流程用計(jì)算機(jī)來(lái)實(shí)現(xiàn),信息管理系統(tǒng)的設(shè)計(jì)本身就是一項(xiàng)負(fù)責(zé)的系統(tǒng)工程,要制定規(guī)劃,成立強(qiáng)有力的實(shí)施機(jī)構(gòu),加強(qiáng)對(duì)相關(guān)人員的培訓(xùn)教育,制訂并執(zhí)行嚴(yán)格的管理制度,球隊(duì)管理的工作量大,而系統(tǒng)的可靠性,穩(wěn)定性,安全性都至關(guān)非常重要。</p><p>  1.2設(shè)計(jì)此系統(tǒng)的目的</p><p>  該系統(tǒng)要最終實(shí)現(xiàn)管理隊(duì)員從入隊(duì)到退隊(duì)期間的信息管理,包括球員的姓名,國(guó)籍,生日,

18、技術(shù)特點(diǎn)等綜合信息,并將球員工作管理各部門連成一個(gè)完整的數(shù)據(jù)整體,實(shí)現(xiàn)信息高度共享。</p><p>  建成一個(gè)完整統(tǒng)一、技術(shù)先進(jìn)、高效穩(wěn)定、安全可靠的基于Internet/Intranet的球隊(duì)管理信息系統(tǒng)。建立一個(gè)集球隊(duì)信息自動(dòng)化和信息化為一體的先進(jìn)的電腦網(wǎng)絡(luò)系統(tǒng),在為管理工作有關(guān)部門提供優(yōu)質(zhì)、高效的業(yè)務(wù)管理和事務(wù)處理的同時(shí),采用安全可靠的現(xiàn)代化處理和控制技術(shù),及時(shí)、準(zhǔn)確、可靠地采集和傳輸信息,建立完備、可

19、靠的信息處理系統(tǒng)。對(duì)各部門實(shí)現(xiàn)統(tǒng)一的信息瀏覽、管理。</p><p>  借助于球隊(duì)管理信息系統(tǒng)的建設(shè),促進(jìn)管理人員素質(zhì)的提高,通過(guò)管理人員的實(shí)際應(yīng)用,促進(jìn)球隊(duì)管理工作的水平和效率的提高;通過(guò)提供多層次的信息服務(wù)和先進(jìn)實(shí)用的使用手段,滿足球隊(duì)內(nèi)外內(nèi)外對(duì)信息共享和利用的要求,并為各級(jí)領(lǐng)導(dǎo)提供有效的輔助決策服務(wù)。</p><p>  本系統(tǒng)作為球隊(duì)管理信息系統(tǒng)的一個(gè)資源網(wǎng)進(jìn)行建設(shè),將以球隊(duì)組織

20、網(wǎng)為基礎(chǔ),實(shí)現(xiàn)信息資源共享。同時(shí)為球隊(duì)信息系統(tǒng)的建設(shè)建立初始框架。</p><p>  本應(yīng)用系統(tǒng)基于球隊(duì)組織網(wǎng),實(shí)現(xiàn)高水平的信息資源共享和跨平臺(tái)的信息資源訪問(wèn),不僅要面向整個(gè)球隊(duì)不同部門的信息資源的共享,還要解決各部門已有的或?qū)⒔⒌男畔⑾到y(tǒng)的資源共享,而各部門信息系統(tǒng)和資源子系統(tǒng)的系統(tǒng)平臺(tái)不一,數(shù)據(jù)庫(kù)又不盡相同,要解決不同的資源子網(wǎng)的信息共享,提高信息資源共享的利用率,系統(tǒng)結(jié)構(gòu)應(yīng)具有跨平臺(tái)訪問(wèn)不同數(shù)據(jù)源的機(jī)制

21、。系統(tǒng)應(yīng)具有較好的可擴(kuò)展性和包容性。系統(tǒng)的可擴(kuò)展性應(yīng)包括能接納已有的系統(tǒng)和在今后系統(tǒng)軟硬件擴(kuò)展時(shí),能有效地保護(hù)已有的投資。特別是在應(yīng)用需求變化時(shí)(應(yīng)用與系統(tǒng)的需求往往提不全或者經(jīng)常會(huì)變化),有一個(gè)較好的應(yīng)用平臺(tái),能容易地加以調(diào)整。系統(tǒng)易于擴(kuò)充升級(jí),既能滿足當(dāng)前業(yè)務(wù)的需求,又為今后的擴(kuò)充留有空間。</p><p>  應(yīng)用系統(tǒng)的設(shè)計(jì)符合日常辦公運(yùn)作的需求,功能完備實(shí)用,簡(jiǎn)單易學(xué),界面友好清晰,易于擴(kuò)充。網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單

22、明了,層次清楚,便于管理,易于擴(kuò)充。在球員管理信息標(biāo)準(zhǔn)化、規(guī)范化的基礎(chǔ)上,對(duì)信息進(jìn)行合理的布局。</p><p>  本系統(tǒng)的建設(shè)目標(biāo)是否能實(shí)現(xiàn),系統(tǒng)整個(gè)投資能否發(fā)揮應(yīng)有的效益,最終將取決于該系統(tǒng)是否可靠實(shí)用。為此,系統(tǒng)應(yīng)采用成熟可靠的技術(shù),應(yīng)貫徹產(chǎn)品化的設(shè)計(jì)原則和實(shí)施方法。同時(shí),系統(tǒng)的起點(diǎn)要高,而不是基于淘汰的技術(shù),系統(tǒng)的建立應(yīng)適應(yīng)未來(lái)技術(shù)發(fā)展的趨勢(shì)。</p><p>  1.3球員信息

23、管理系統(tǒng)可行性分析</p><p>  對(duì)于一支球隊(duì)來(lái)說(shuō),他要管理球隊(duì)的球員信息,包括姓名,年齡,國(guó)籍,身高,體重,技術(shù)特點(diǎn)等。球隊(duì)要要贏得比賽球員起到了至關(guān)重要的作用,對(duì)于球隊(duì)的球探來(lái)說(shuō)記住他們盯上的球員的基本信息非常關(guān)鍵。球探可見(jiàn)他們手機(jī)的信息方便快捷的傳達(dá)給球隊(duì)主教練以及俱樂(lè)部老板,供他們參考最終選擇哪個(gè)球員加盟球隊(duì)以壯大自己球隊(duì)的實(shí)力向各項(xiàng)賽事的冠軍發(fā)起強(qiáng)有力的沖擊。</p><p&g

24、t;  2 本系統(tǒng)關(guān)鍵技術(shù)簡(jiǎn)介</p><p>  2.1 VC++介紹</p><p>  VC基于C,C++語(yǔ)言,主要由是MFC組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級(jí),和低級(jí)語(yǔ)言的雙重性,功能強(qiáng)大,靈活,執(zhí)行效率高,幾乎可說(shuō)VC在 Windows平臺(tái)無(wú)所不能。 最大缺點(diǎn)是開(kāi)發(fā)效率不高。</p><p>  VC適用范圍 1. VC主要是針對(duì)Wind

25、ows系統(tǒng),適合一些系統(tǒng)級(jí)的開(kāi)發(fā),可以方便實(shí)現(xiàn)一些底層 的 調(diào)用。在VC里邊嵌入?yún)R編語(yǔ)言很簡(jiǎn)單。</p><p>  2 .VC主要用在驅(qū)動(dòng)程序開(kāi)發(fā)</p><p>  3.VC執(zhí)行效率高,當(dāng)對(duì)系統(tǒng)性能要求很高的時(shí)候,可用VC開(kāi)發(fā)。</p><p>  4.VC主要適用于游戲開(kāi)發(fā)</p><p>  5.VC多用于單片機(jī),工業(yè)

26、控制等軟件開(kāi)發(fā),如直接對(duì)I/O地址操作,就要用C++。</p><p>  6.VC適用開(kāi)發(fā)高效,短小,輕量級(jí)的COM組件,DLL。比如WEB上的控件。 7.VC可以開(kāi)發(fā)優(yōu)秀的基于通信的程序。</p><p>  8.VC可以開(kāi)發(fā)高效靈活的文件操作程序。</p><p>  9.VC可以開(kāi)發(fā)靈活高效的數(shù)據(jù)庫(kù)操作程序。</p><p>  

27、10.VC是編CAD軟件的唯一選擇!??!包括AUTOCAD,UG的二次開(kāi)發(fā)。</p><p>  11.VC在多線程、網(wǎng)絡(luò)通信、分布應(yīng)用方面,VC++有不可比擬的優(yōu)勢(shì)。</p><p>  2.2 ODBC介紹 </p><p>  (1) 開(kāi)放數(shù)據(jù)庫(kù)互聯(lián) </p><p>  ODBC(Open Database Connectivity)

28、,即開(kāi)放數(shù)據(jù)庫(kù)互聯(lián)。</p><p>  ODBC基于SQL(Structured Query Language),并把它作為訪問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)。這個(gè)接口提供了最大限度的相互可操作性:一個(gè)應(yīng)用程序可以通過(guò)一組通用的代碼訪問(wèn)不同的數(shù)據(jù)庫(kù)管理系統(tǒng)。一個(gè)軟件開(kāi)發(fā)者開(kāi)發(fā)的客戶/服務(wù)器應(yīng)用程序不會(huì)被束定于某個(gè)特定的數(shù)據(jù)庫(kù)之上。ODBC可以為不同的數(shù)據(jù)庫(kù)提供相應(yīng)的驅(qū)動(dòng)程序。對(duì)于ASP程而言,ODBC數(shù)據(jù)源是ASP程序的ADO組

29、件和數(shù)據(jù)庫(kù)之間的接口。</p><p>  (2)配置ODBC數(shù)據(jù)源    </p><p>  圖2.1 ODBC數(shù)據(jù)管理器  </p><p>  1. 用戶DSN:ODBC用戶數(shù)據(jù)源存貯了如何與指定數(shù)據(jù)庫(kù)提供者連接的信息。只對(duì)當(dāng)前用戶可戶可見(jiàn),而且只能用于當(dāng)前機(jī)器上。這里的當(dāng)前機(jī)器是只這個(gè)配置只對(duì)當(dāng)前的機(jī)器有效,而不是說(shuō)

30、只能只配置本機(jī)上的數(shù)據(jù)庫(kù)。它可以配置局域網(wǎng)中另一臺(tái)機(jī)器上的數(shù)據(jù)庫(kù)的。</p><p>  2. 系統(tǒng)DSN: ODBC系統(tǒng)數(shù)據(jù)源存貯了如何指定數(shù)據(jù)庫(kù)提供者連接的信息。系統(tǒng)數(shù)據(jù)源對(duì)當(dāng)前機(jī)器上的所有用戶都是可見(jiàn)的,包括NT服務(wù)。也就是說(shuō)在這里配置的數(shù)據(jù)源,只要是這臺(tái)機(jī)器的用戶都可以訪問(wèn)?!?3. 文件DSN:ODBC文件數(shù)據(jù)源允許用戶連接數(shù)據(jù)提供者。文件DSN可以由安裝了相同驅(qū)動(dòng)程序的用戶共享。這是界于用戶DSN和

31、系統(tǒng)DSN之間的一種共享情況?!?4. 驅(qū)動(dòng)程序:這頁(yè)列出了本機(jī)上所有安裝的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。里面列舉了每個(gè)驅(qū)動(dòng)程序的名稱,版本,提供商公司,驅(qū)動(dòng)程序文件名,以及安裝日期?!?5. 跟蹤:ODBC跟蹤允許創(chuàng)建調(diào)用ODBC的日志,提供給技術(shù)人員查看。里面可設(shè)定日志的路徑和文件名。技術(shù)人員通過(guò)這里面的信息可以看到本機(jī)上所有的數(shù)據(jù)庫(kù)訪問(wèn)的時(shí)間,用戶,以及出錯(cuò)信息等情況。也可以通過(guò)這個(gè)輔助調(diào)試應(yīng)用程序,可以啟動(dòng)Visual Studio的分析

32、器,來(lái)進(jìn)行ODBC的跟蹤。</p><p>  6. 連接池:連接池允許應(yīng)用程序重用原來(lái)打開(kāi)的的連接句柄,這樣可以節(jié)省到服務(wù)器的往返過(guò)程。  7. 關(guān)于:最后這一頁(yè)列出了所有的ODBC的核心文件。</p><p>  3球員信息管理系統(tǒng)的實(shí)現(xiàn)與測(cè)試</p><p>  3.1登錄模塊和系統(tǒng)主界面設(shè)計(jì)</p><p>  當(dāng)系統(tǒng)運(yùn)行時(shí),首先打

33、開(kāi)登錄窗體,只有有權(quán)限的用戶才能進(jìn)入系統(tǒng)。登錄成功后,將顯示系統(tǒng)主界面。</p><p><b>  登錄界面</b></p><p>  進(jìn)入程序后,首先出現(xiàn)的是【用戶登陸】對(duì)話框,在【用戶名】文本框中輸入后按Tab鍵,程序?qū)⒆詣?dòng)查詢用戶名并跳到【密碼】文本框中,輸入密碼后按Enter鍵即可進(jìn)入系統(tǒng),登錄對(duì)話框如圖3.1所示。</p><p>

34、;  圖3.1用戶登錄對(duì)話框</p><p>  登錄成功后將顯示主界面主界面如圖3.2所示,在此界面可以選擇各種按鈕進(jìn)行不同的操作。</p><p><b>  圖3.2主界面</b></p><p>  3.2 系統(tǒng)功能的實(shí)現(xiàn)</p><p><b>  (1) 增加功能</b></p&g

35、t;<p>  單擊“增加“按鈕,進(jìn)入增加記錄功能窗體,如圖3.3所示。在上邊的編輯框中,可以很清楚看到整個(gè)表中的記錄和主視圖一致,在編輯框中輸入完成了記錄后按確定按鈕,這樣剛才輸入的內(nèi)容就同過(guò)m_pSet這個(gè)指針寫如了數(shù)據(jù)庫(kù);按取消則推出剛才的操作。</p><p><b>  圖3.3增加界面</b></p><p><b>  (2) 刪

36、除功能 </b></p><p>  完成機(jī)構(gòu)“增加“功能后,進(jìn)入主界面,按下刪除按鈕,則刪除當(dāng)前顯示的記錄。這個(gè)窗體相對(duì)簡(jiǎn)單,它實(shí)際上是管理各個(gè)記錄的刪除的,以便能即時(shí)更新舊的記錄,刪除舊的沒(méi)用的記錄。</p><p><b>  (3) 修改功能</b></p><p>  對(duì)于有些寫錯(cuò)了的記錄,我們往往需要在事后才能進(jìn)行修改,

37、這個(gè)功能就為我們提供了很好的操作界面。它先把當(dāng)前記錄的信息顯示在另外一個(gè)窗口里如圖 3.4,這樣能避免對(duì)記錄的誤操作。</p><p><b>  圖3.4修改界面</b></p><p>  4部分模塊的詳細(xì)設(shè)計(jì)</p><p>  4.1 登錄對(duì)話框的設(shè)計(jì)</p><p>  將本項(xiàng)目工作區(qū)窗口切換到Resource

38、View頁(yè)面插入一個(gè)對(duì)話框資源,打開(kāi)屬性對(duì)話框,將其字體設(shè)置為“宋體,9號(hào)”,標(biāo)題定為“請(qǐng)職業(yè)球探同志登陸”,ID設(shè)為IDD_DIALOG1</p><p>  如圖4.1,向?qū)υ捒蛑刑砑觾蓚€(gè)編輯框:“請(qǐng)輸入用戶名”(IDC_EDIT1)、“請(qǐng)輸入密碼”( IDC_EDIT_PWD)</p><p><b>  圖4.1登錄對(duì)話框</b></p><

39、;p>  雙擊對(duì)話框模板或按【Ctrl+W】快捷鍵為對(duì)話框資源建立類向?qū)?。為該?duì)話框類取個(gè)名字:CDlg_login。下面的Base class以及Dialog ID不要隨便改動(dòng)。然后點(diǎn)擊OK。這樣新的類CDlg_login就與本對(duì)話框建立起了聯(lián)系。</p><p>  如圖4.2左鍵雙擊IDC_EDIT1(或者單擊后,點(diǎn)擊右邊的add variables),為IDC_EDIT1增加一個(gè)對(duì)應(yīng)在類中的名字:m

40、_login_name。其他地方不要改動(dòng)。點(diǎn)擊’確定’。同樣也對(duì)IDC_EDIT_PWD也取一個(gè)名字:m_login_pwd。</p><p>  圖4.2 ”MFC ClassWizard”對(duì)話框</p><p>  點(diǎn)擊確定。建立好了登錄對(duì)話框以及其對(duì)應(yīng)的類CDlg_login。在ClassView里面可以看到新加入 類CDlg_login。</p><p> 

41、 這個(gè)時(shí)候如果編譯運(yùn)行的話,該對(duì)話框并不會(huì)自動(dòng)彈出來(lái)。點(diǎn)擊右邊的FileView,點(diǎn)擊source files,雙擊MainFrm.cpp。在右邊打開(kāi)了該文件。找到CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct),即窗體框架創(chuàng)建函數(shù)。在該函數(shù)的后面(在return 0 ;的前面)加入語(yǔ)句:</p><p>  CDlg_login dlg;//生成一

42、個(gè)登錄對(duì)話框?qū)ο?lt;/p><p>  dlg.DoModal();//讓對(duì)話框?qū)ο笠杂心J叫问斤@示出來(lái)。</p><p>  在MainFrm.cpp文件的前面添加:#include "dlg_login.h"。</p><p>  在運(yùn)行過(guò)程中,點(diǎn)擊OK后,主窗體會(huì)顯示出來(lái),并沒(méi)有在用戶名以及密碼框中輸入。</p><p&g

43、t;  要求輸入正確的用戶名和密碼,主窗體才能顯示出來(lái)。</p><p>  增加一個(gè)成員函數(shù),點(diǎn)擊OK。</p><p>  在void CDlg_login::OnOK()函加入如下代碼:</p><p>  void CDlg_login::OnOK() </p><p><b>  {</b></p>

44、<p>  // TODO: Add extra validation here</p><p>  UpdateData();</p><p>  m_login_name.TrimLeft();</p><p>  if(m_login_name.IsEmpty())</p><p><b>  {</b&g

45、t;</p><p>  MessageBox("請(qǐng)輸入用戶名!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(m_login_pwd.IsEmpty())</p><p>&l

46、t;b>  {</b></p><p>  MessageBox("請(qǐng)輸入密碼!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  CDatabase database;</p>

47、<p>  database.OpenEx( _T( "DSN=球員基本信息" ),CDatabase::noOdbcDialog);</p><p>  CRecordset recset(&database);</p><p>  CString mSqlStr;</p><p>  mSqlStr= "SELEC

48、T * FROM 登錄對(duì)話框 WHERE username='";</p><p>  mSqlStr = mSqlStr + m_login_name;</p><p>  mSqlStr = mSqlStr + "' AND password='";</p><p>  mSqlStr = mSqlStr +

49、 m_login_pwd;</p><p>  mSqlStr = mSqlStr + "'";</p><p>  if (!recset.Open(CRecordset::forwardOnly, mSqlStr, CRecordset::readOnly))</p><p><b>  {</b></p&

50、gt;<p>  AfxMessageBox("登陸界面表打開(kāi)失?。?quot;);</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if (!recset.IsEOF())</p><p><b> 

51、 {</b></p><p>  // Open all function for user</p><p>  AfxMessageBox("登錄成功");</p><p><b>  }</b></p><p><b>  else</b></p>

52、<p><b>  {</b></p><p>  AfxMessageBox("用戶名或密碼錯(cuò)誤!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  CDialog::OnO

53、K();</p><p><b>  }</b></p><p>  在void CDlg_login:: OnCancel函加入如下代碼:</p><p>  void CDlg_login::OnCancel() </p><p><b>  {</b></p><p>

54、  // TODO: Add extra cleanup here</p><p>  CDialog::OnCancel();</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  此時(shí)運(yùn)行輸入密碼的時(shí)候是明碼,不是星號(hào)顯示的。在登錄對(duì)話

55、框,右鍵點(diǎn)擊密碼文本框,點(diǎn)擊屬性,點(diǎn)擊style,選中password。</p><p>  4.2登錄對(duì)話框的美化</p><p>  向登錄對(duì)話框中加背景圖的過(guò)程,將本項(xiàng)目工作區(qū)窗口切換到ResourceView頁(yè)面插入一個(gè)位圖資源默認(rèn)名為Bitmap1。在CDlg_login類中增加一個(gè)成員函數(shù)OnPaint在void CDlg_login:: OnPaint()函加入如下代碼:&l

56、t;/p><p>  void CDlg_login::OnPaint() </p><p><b>  {</b></p><p>  CPaintDC dc(this); // device context for painting</p><p>  // TODO: Add your message handler

57、code here</p><p>  CRect rect; </p><p>  GetClientRect(&rect); </p><p>  CDC dcMem; </p><p>  dcMem.CreateCompatibleDC(&dc); </p><p>  CBit

58、map bmpBackground; </p><p>  bmpBackground.LoadBitmap(IDB_BITMAP1); </p><p>  //IDB_BITMAP是你自己的圖對(duì)應(yīng)的ID </p><p>  BITMAP bitmap; </p><p>  bmpBackground.

59、GetBitmap(&bitmap); </p><p>  CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground); </p><p>  dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0, </p><p>  bitm

60、ap.bmWidth,bitmap.bmHeight,SRCCOPY);</p><p>  // Do not call CDialog::OnPaint() for painting messages</p><p><b>  }</b></p><p>  運(yùn)行結(jié)果如圖4.4所示</p><p>  圖4.4 美

61、化后的登錄對(duì)話框</p><p><b>  5 總結(jié)</b></p><p><b>  5.1 存在的不足</b></p><p>  由于設(shè)計(jì)者水平有限及時(shí)間等方面的原因,該系統(tǒng)的功能比較簡(jiǎn)單,該界面的增加功能只能在的一個(gè)記錄下進(jìn)行添加,此外使用查詢功能后瀏覽按鈕會(huì)失效因此只能通過(guò)查詢按鈕進(jìn)行瀏覽球員信息。</

62、p><p>  5.2 設(shè)計(jì)過(guò)程總結(jié)</p><p>  我設(shè)計(jì)該管理系統(tǒng)花了很長(zhǎng)時(shí)間,因?yàn)槭浅鯇W(xué),所以還有很多沒(méi)有做好的地方和沒(méi)有想到的地方。開(kāi)始時(shí)我先是做了一個(gè)單文擋應(yīng)用程序主要用來(lái)顯示球員的各種基本情況,這也是我設(shè)計(jì)的主界面,在界面上有五個(gè)功能按鈕分別是增加、修改、刪除、查詢結(jié)果。增加和修改都是另外彈出一個(gè)對(duì)話框來(lái)實(shí)現(xiàn)各自的功能;刪除就是刪除當(dāng)前瀏覽界面上的記錄;查詢提供了按球員編號(hào)查詢

63、的方法,和按球員姓名查詢的方法。只要輸入球員編號(hào)或姓名就可以直接查詢了;后來(lái)在添加程序代碼的時(shí)候又遇到了好多麻煩,但在同學(xué)的幫助下我都順利的解決了。在這之中我知道我還有很多的不足之處和很多錯(cuò)誤沒(méi)能想到,希望在以后的學(xué)習(xí)中能夠努力彌補(bǔ)自己的不足爭(zhēng)取在以后的課程設(shè)計(jì)中能夠有好的成績(jī)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 鄭阿奇主編,丁

64、有和編著.《Visual C++教程》[M]. 北京: 機(jī)械工程出版社,2012</p><p>  [2] 鄭莉,董淵,何江舟編著.《C++語(yǔ)言程序設(shè)計(jì)》(第四版)[M]. 北京:清華大學(xué)出版社,2010</p><p><b>  致   謝</b></p><p>  在這次VC++的課程設(shè)計(jì)中,曾遇到過(guò)不少問(wèn)題,單靠我個(gè)人的努力,很難

65、按時(shí)完成該課程設(shè)計(jì),在此,我衷心感謝我的老師和同學(xué)。李全彬老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我獲益非淺。另外,還要感謝學(xué)校領(lǐng)導(dǎo)、班主任、各位同學(xué)對(duì)我們的關(guān)懷、幫助,為我們提供了良好的設(shè)計(jì)環(huán)境以及各方面的支持。</p><p>  附錄 A 球員信息管理系統(tǒng)源程序代碼</p><p>  ////////////////////////////////////////

66、///表單對(duì)話框資源模板//////////////////////////////////////</p><p>  ///////////////////////////////////////////增加模塊代碼////////////////////////////////////////////////</p><p>  void CEx_108326235View::OnR

67、ecAdd() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  CScoreDlg dlg;</p><p>  if (dlg.DoModal()==IDOK)</p

68、><p><b>  {</b></p><p>  m_pSet->AddNew();</p><p>  m_pSet->m_playername= dlg.m_strplayername;</p><p>  m_pSet->m_playerno = dlg.m_strplayerno;

69、</p><p>  m_pSet->m_nationality= dlg.m_strnationality;</p><p>  m_pSet->m_birthday = dlg.m_strbirthday;</p><p>  m_pSet->m_stature = dlg.m_istature;</p

70、><p>  m_pSet->m_weight = dlg.m_iweight;</p><p>  m_pSet->m_position = dlg.m_strposition;</p><p>  m_pSet->m_club = dlg.m_strclub;</p><p>  m_p

71、Set->m_information = dlg.m_strinformation;</p><p>  m_pSet->Update();</p><p>  m_pSet->Requery();</p><p><b>  }</b></p><p><b>  }</b>

72、;</p><p>  //////////////////////////////////編輯代碼/////////////////////////////////////////</p><p>  void CEx_108326235View::OnRecEdit() </p><p><b>  {</b></p><

73、;p>  // TODO: Add your control notification handler code here</p><p>  CScoreDlg dlg;</p><p>  dlg.m_strplayername= m_pSet->m_playername;</p><p>  dlg.m_strplayerno= m_pS

74、et->m_playerno;</p><p>  dlg.m_strnationality= m_pSet->m_nationality;</p><p>  dlg.m_strbirthday =m_pSet->m_birthday;</p><p>  dlg.m_istature= m_pSet->m_

75、stature;</p><p>  dlg.m_iweight= m_pSet->m_weight;</p><p>  dlg.m_strposition= m_pSet->m_position;</p><p>  dlg.m_strclub= m_pSet->m_club;</p><p>  

76、dlg.m_strinformation= m_pSet->m_information ;</p><p>  if (dlg.DoModal()==IDOK)</p><p><b>  {</b></p><p>  m_pSet->Edit();</p><p>  m_pSet->m_p

77、layername= dlg.m_strplayername;</p><p>  m_pSet->m_playerno= dlg.m_strplayerno;</p><p>  m_pSet->m_nationality= dlg.m_strnationality;</p><p>  m_pSet->m_birthday= d

78、lg.m_strbirthday;</p><p>  m_pSet->m_stature = dlg.m_istature;</p><p>  m_pSet->m_weight= dlg.m_iweight;</p><p>  m_pSet->m_position= dlg.m_strposition;</p>&

79、lt;p>  m_pSet->m_club= dlg.m_strclub;</p><p>  m_pSet->m_information = dlg.m_strinformation;</p><p>  m_pSet->Update();</p><p>  UpdateData(FALSE);</p><p

80、><b>  }</b></p><p><b>  }</b></p><p>  ///////////////////////////////////////////刪除模塊代碼////////////////////////////////////////////////</p><p>  void CEx

81、_108326235View::OnRecDel() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  CRecordsetStatus status;</p><p>  m

82、_pSet->GetStatus(status);</p><p>  m_pSet->Delete();</p><p>  if (status.m_lCurrentRecord==0)</p><p>  m_pSet->MoveNext();</p><p><b>  else</b><

83、/p><p>  m_pSet->MoveFirst();</p><p>  UpdateData(FALSE);</p><p>  ////////////////////////////////////按球員姓名查詢//////////////////////////////////////</p><p>  void CEx_1

84、08326235View::OnButtonQuery1() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData();</p><p>  m_strQue

85、ry1.TrimLeft();</p><p>  if (m_strQuery1.IsEmpty()) </p><p><b>  {</b></p><p>  MessageBox("要查詢的球員姓名不能為空!");return;</p><p><b>  }</b>

86、</p><p>  if (m_pSet->IsOpen())</p><p>  m_pSet->Close();// 如果記錄集打開(kāi),則先關(guān)閉</p><p>  m_pSet->m_strFilter.Format("playername='%s'",m_strQuery1);</p>

87、<p>  // studentno是score表的字段名,用來(lái)指定查詢條件</p><p>  m_pSet->m_strSort = "playerno";</p><p>  // course是score表的字段名,用來(lái)按course字段從小到大排序</p><p>  m_pSet->Open();// 打開(kāi)

88、記錄集</p><p>  if (!m_pSet->IsEOF())// 如果打開(kāi)的記錄集有記錄</p><p>  UpdateData(FALSE);// 自動(dòng)更新表單中控件顯示的內(nèi)容</p><p><b>  else</b></p><p>  MessageBox("沒(méi)有查到你要找的球

89、員記錄!");</p><p><b>  }</b></p><p>  /////////////////////////////////////////////////按球員編號(hào)查詢代碼//////////////////////////////////////////////////</p><p>  void CEx_1

90、08326235View::OnButtonQuery() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData();</p><p>  m_strQuer

91、y.TrimLeft();</p><p>  if (m_strQuery.IsEmpty()) </p><p><b>  {</b></p><p>  MessageBox("要查詢的編號(hào)不能為空!");return;</p><p><b>  }</b></

92、p><p>  if (m_pSet->IsOpen())</p><p>  m_pSet->Close();// 如果記錄集打開(kāi),則先關(guān)閉</p><p>  m_pSet->m_strFilter.Format("playerno='%s'",m_strQuery);</p><p>

93、;  // studentno是score表的字段名,用來(lái)指定查詢條件</p><p>  m_pSet->m_strSort = "playerno";</p><p>  // course是score表的字段名,用來(lái)按course字段從小到大排序</p><p>  m_pSet->Open();// 打開(kāi)記錄集</

94、p><p>  if (!m_pSet->IsEOF())// 如果打開(kāi)的記錄集有記錄</p><p>  UpdateData(FALSE);// 自動(dòng)更新表單中控件顯示的內(nèi)容</p><p><b>  else</b></p><p>  MessageBox("沒(méi)有查到你要找的編號(hào)記錄!&quo

95、t;);</p><p>  /////////////////////////////插入背景圖代碼////////////////////////////////////////</p><p>  void CEx_108326235View::OnPaint() </p><p><b>  {</b></p><p

96、>  CPaintDC dc(this); // device context for painting</p><p>  // TODO: Add your message handler code here</p><p>  CRect rect; </p><p>  GetClientRect(&rect); </p>

97、<p>  CDC dcMem; </p><p>  dcMem.CreateCompatibleDC(&dc); </p><p>  CBitmap bmpBackground; </p><p>  bmpBackground.LoadBitmap(IDB_BITMAP3); </p><p>  /

98、/IDB_BITMAP是你自己的圖對(duì)應(yīng)的ID ,由于我剛剛加入的位圖資源 </p><p>  BITMAP bitmap; </p><p>  bmpBackground.GetBitmap(&bitmap); </p><p>  CBitmap *pbmpOld=dcMem.SelectObject(&bmp

99、Background); </p><p>  dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0, </p><p>  bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);</p><p>  // Do not call CDialog::OnPaint() f

100、or painting messages</p><p>  // Do not call CRecordView::OnPaint() for painting messages</p><p><b>  }</b></p><p>  ////////////////////////////////////編輯對(duì)話框主要代碼///////

101、////////////////////////////////////</p><p>  void CScoreDlg::OnOK() </p><p><b>  {</b></p><p>  // TODO: Add extra validation here</p><p>  UpdateData();&l

102、t;/p><p>  m_strplayerno.TrimLeft();</p><p>  m_strplayername.TrimLeft();</p><p>  if(m_strplayerno.IsEmpty())</p><p>  MessageBox("編號(hào)不能為空!");</p><p&g

103、t;<b>  else </b></p><p>  if(m_strplayername.IsEmpty())</p><p>  MessageBox("姓名不能為空!");</p><p><b>  else</b></p><p><b>  {</b

104、></p><p>  int nChoice=MessageBox("確定您的操作?","",MB_YESNO|MB_ICONQUESTION);</p><p>  if(nChoice==IDYES)</p><p><b>  {</b></p><p>  CDia

105、log::OnOK();</p><p><b>  }</b></p><p>  if(nChoice==IDNO)</p><p><b>  {</b></p><p>  CDialog::OnCancel();</p><p><b>  }</b

106、></p><p><b>  } </b></p><p><b>  }</b></p><p>  void CScoreDlg::OnCancel() </p><p><b>  {</b></p><p>  // TODO

107、: Add extra cleanup here</p><p>  CDialog::OnCancel();</p><p><b>  }</b></p><p>  //////////////////////////////////</p><p>  //////////////////////////////

108、////登錄對(duì)話框主要代碼////////////////////////////////////////////////</p><p>  #include "stdafx.h"</p><p>  #include "Ex_球員信息管理108326235.h"</p><p>  #include "Dlg_l

109、ogin.h"</p><p>  #ifdef _DEBUG</p><p>  #define new DEBUG_NEW</p><p>  #undef THIS_FILE</p><p>  static char THIS_FILE[] = __FILE__;</p><p><b> 

110、 #endif</b></p><p>  /////////////////////////////////////////////////////////////////////////////</p><p>  // CDlg_login dialog</p><p>  CDlg_login::CDlg_login(CWnd* pParent

111、/*=NULL*/)</p><p>  : CDialog(CDlg_login::IDD, pParent)</p><p><b>  {</b></p><p>  //{{AFX_DATA_INIT(CDlg_login)</p><p>  m_login_name = _T("");&l

112、t;/p><p>  m_login_pwd = _T("");</p><p>  //}}AFX_DATA_INIT</p><p><b>  }</b></p><p>  void CDlg_login::DoDataExchange(CDataExchange* pDX)</p>

113、<p><b>  {</b></p><p>  CDialog::DoDataExchange(pDX);</p><p>  //{{AFX_DATA_MAP(CDlg_login)</p><p>  DDX_Text(pDX, IDC_EDIT1, m_login_name);</p><p>  

114、DDV_MaxChars(pDX, m_login_name, 20);</p><p>  DDX_Text(pDX, IDC_EDIT_PWD, m_login_pwd);</p><p>  DDV_MaxChars(pDX, m_login_pwd, 9);</p><p>  //}}AFX_DATA_MAP</p><p><

115、;b>  }</b></p><p>  BEGIN_MESSAGE_MAP(CDlg_login, CDialog)</p><p>  //{{AFX_MSG_MAP(CDlg_login)</p><p>  ON_WM_PAINT()</p><p>  //}}AFX_MSG_MAP</p><

116、p>  END_MESSAGE_MAP()</p><p>  /////////////////////////////////////////////////////////////////////////////</p><p>  // CDlg_login message handlers</p><p>  void CDlg_login::OnO

117、K() </p><p><b>  {</b></p><p>  // TODO: Add extra validation here</p><p>  UpdateData();</p><p>  m_login_name.TrimLeft();</p><p>  if(m_login

118、_name.IsEmpty())</p><p><b>  {</b></p><p>  MessageBox("請(qǐng)輸入用戶名!");</p><p><b>  return;</b></p><p><b>  }</b></p>&l

119、t;p>  if(m_login_pwd.IsEmpty())</p><p><b>  {</b></p><p>  MessageBox("請(qǐng)輸入密碼!");</p><p><b>  return;</b></p><p><b>  }</b&

120、gt;</p><p>  CDatabase database;</p><p>  database.OpenEx( _T( "DSN=球員基本信息" ),CDatabase::noOdbcDialog);</p><p>  CRecordset recset(&database);</p><p>  CS

121、tring mSqlStr;</p><p>  mSqlStr= "SELECT * FROM 登錄對(duì)話框 WHERE username='";</p><p>  mSqlStr = mSqlStr + m_login_name;</p><p>  mSqlStr = mSqlStr + "' AND passwo

122、rd='";</p><p>  mSqlStr = mSqlStr + m_login_pwd;</p><p>  mSqlStr = mSqlStr + "'";</p><p>  if (!recset.Open(CRecordset::forwardOnly, mSqlStr, CRecordset::rea

123、dOnly))</p><p><b>  {</b></p><p>  AfxMessageBox("登陸界面表打開(kāi)失?。?quot;);</p><p><b>  return;</b></p><p><b>  }</b></p><p

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論