![游戲防沉迷系統(tǒng)的設計與實現(xiàn)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/25162adb-f35b-4f71-93f7-51db20d4789f/25162adb-f35b-4f71-93f7-51db20d4789f1.gif)
![游戲防沉迷系統(tǒng)的設計與實現(xiàn)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/25162adb-f35b-4f71-93f7-51db20d4789f/25162adb-f35b-4f71-93f7-51db20d4789f2.gif)
![游戲防沉迷系統(tǒng)的設計與實現(xiàn)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/25162adb-f35b-4f71-93f7-51db20d4789f/25162adb-f35b-4f71-93f7-51db20d4789f3.gif)
![游戲防沉迷系統(tǒng)的設計與實現(xiàn)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/25162adb-f35b-4f71-93f7-51db20d4789f/25162adb-f35b-4f71-93f7-51db20d4789f4.gif)
![游戲防沉迷系統(tǒng)的設計與實現(xiàn)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/25162adb-f35b-4f71-93f7-51db20d4789f/25162adb-f35b-4f71-93f7-51db20d4789f5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、密級:計算機游戲防沉迷系統(tǒng)的設計與實現(xiàn)The Design And Realization of Computer Game Fatigue System學 院:信息科學與工程學院專 業(yè) 班 級:計算機科學與技術0702班學 號:070405057學 生 姓 名:蔡旺旺指 導 教 師:靳鵬 (講師) 2011年 06 月II 摘 要隨著國內外游戲產業(yè)的發(fā)展,越來越多的兒童、青少年沉迷在其中不能自拔,花費了大量的時間在游戲上面,甚至荒廢了學業(yè)。青少年沉迷網絡游戲的主要誘因是大多數(shù)網絡游戲都設置了經驗值增長和虛擬物品獎勵功能,需要獲得上述獎勵,主要靠長時間在線累計獲得,因而導致部分青少年沉迷其中無
2、法自拔。計算機游戲防沉迷系統(tǒng)通過動態(tài)鏈接庫安裝一個全局鉤子,在允許青少年在適度游戲的情況下,嚴格限制游戲的時間,當游戲時間超過預定值時,系統(tǒng)提示游戲者時間已到,然后屏蔽除存盤之外的其他操作。系統(tǒng)提供了對監(jiān)控游戲的添加和刪除的基本操作,查詢某個游戲一定時間內的運行時間,用坐標軸繪制出某個游戲運行時間的變化趨勢,系統(tǒng)提供監(jiān)控者調整監(jiān)控時間的功能,方便對游戲進行更有效的管理。同時,系統(tǒng)提供嚴格的權限控制,在退出系統(tǒng)或修改游戲信息時,需要用戶登錄,并提供用戶的信息管理等功能。系統(tǒng)編寫了一個額外的驅動文件,通過HOOK系統(tǒng)底層函數(shù)的方法,實現(xiàn)進程保護,在游戲運行前加載這個驅動文件,來解決從任務管理器強制
3、關閉進程的問題。綜上所述,游戲防沉迷系統(tǒng)的構建,是國內外游戲產業(yè)發(fā)展的必然趨勢。系統(tǒng)采用的是Microsoft公司的VC+ 6.0來設計應用系統(tǒng),而后臺數(shù)據庫部分則采用Microsoft Access來構建,在windows XP平臺下開發(fā)。1-3關鍵詞:VC+ 6.0;Microsoft Access;游戲防沉迷;鉤子;驅動 I AbstractWith the development of domestic and international game industry, a growing number of children and young people find them una
4、ble to indulge in them, spend a lot of time in the game, and even neglect their studies. The main incentive why Young people indulging in online games is that most online games are set to experience value growth in reward function and virtual goods. To get the award, the cumulative gain is needed ma
5、inly by long-line, resulting in some young people addicted to them can not extricate themselves. Computer game fatigue system is installed by a global dynamic link library hook, allowing young people to moderate the game in the case of strictly limited game time, when the game is longer than a prede
6、termined value, the system prompts the player time is up, and then shielded operations except Save. The system provides the basic operations monitoring the game including adding and removing and that querying running time of a game within a certain time and that drawing out the running time trends o
7、f a game with the axis. System provides functions to tune the monitoring time to facilitate more effective management of the game. Meanwhile, the system provides strict access control that when exiting the system or modifying the game in information, requiring users to log in and provide the user
8、9;s information management. System prepared an additional driver files to achieve process protection by the underlying functions of HOOK system. Loading the driver files before running the game to solve the problem that processes are forced to close from the Task Manager processes.In summary, the bu
9、ilding of game fatigue system is a inevitable trend of the domestic and international game industry development. The system uses Microsoft's VC+ 6.0 to design application systems, and some of the back-end database using Microsoft Access to build developed in windows XP platform.Keywords: VC+ 6.0
10、; Microsoft Access; game fatigue; hook; drive II 目 錄摘 要IAbstractII第1章 引言11.1系統(tǒng)開發(fā)背景及意義11.2課題研究內容和對研究過程中出現(xiàn)問題的解決11.4 SQL語言介紹21.4.1 SQL查詢21.4.2 SQL數(shù)據更新31.5 系統(tǒng)開發(fā)工具41.5.1 VC+ 6.0工具簡介41.5.2 Access數(shù)據庫簡介5第2章 系統(tǒng)總體設計72.1 系統(tǒng)分析72.1.1 問題分析72.1.2 需求分析82.1.3 預期實現(xiàn)目標及功能92.2數(shù)據庫設計102.2.1 概念結構設計102.2.2 邏輯結構設計10第3章 系統(tǒng)詳細設
11、計133.1 系統(tǒng)詳細設計概述133.2 數(shù)據庫設計133.2.1 創(chuàng)建數(shù)據表133.2.2 數(shù)據庫鏈接與使用143.3 系統(tǒng)詳細設計153.3.1 系統(tǒng)主窗體模塊153.3.2 游戲管理模塊183.3.3 游戲時間繪制模塊203.3.4 用戶管理模塊253.3.5 驅動模塊273.3.6 其他30第4章 軟件測試334.1 測試方法334.2 項目測試33第5章 結論36參考文獻37致 謝38IV沈陽工業(yè)大學本科生畢業(yè)設計(論文)第1章 引言1.1系統(tǒng)開發(fā)背景及意義隨著文化創(chuàng)意產業(yè)在全球的興起,國家已經將文化創(chuàng)意產業(yè)作為未來經濟發(fā)展的重要動力之一,而游戲產業(yè)正是文化創(chuàng)意產業(yè)的重要支柱。政府對
12、于游戲產業(yè)一方面要扶持,一方面要盡量降低游戲產業(yè)興起帶來的社會負面效應。網絡游戲產業(yè)的發(fā)展不僅僅需要約束,也需要扶持,規(guī)范網絡游戲健康發(fā)展是社會、政府、產業(yè)的共同責任。政府在這樣的系統(tǒng)工程里需要扮演一個協(xié)調的角色,而防沉迷系統(tǒng)的發(fā)布只是政府協(xié)調的行動之一。網絡游戲作為一種商業(yè)模式的存在,它的產生和興盛是市場作用下的產物。產業(yè)本身不僅創(chuàng)造了很大的商業(yè)價值,解決了大量的就業(yè)問題,同時網絡游戲對相關的行業(yè)也有非常大的拉動作用。游戲沉迷問題不是一個簡單的產業(yè)問題,而是社會問題。在目前的社會環(huán)境下兒童、青少年沉迷于網絡游戲是有潛在的社會原因存在。解決游戲沉迷問題,需要政府、游戲廠商、社會、家長、學校等多
13、方面的努力,而解決這樣的社會問題還需要其他方的參與和努力。面對網絡游戲帶來的社會負面影響,政府做出了限制其負面影響的規(guī)定,網絡游戲產業(yè)作為一個只有幾年發(fā)展歷史的新鮮事務,為原有的社會及市場帶來了很多新情況和影響,這里面既有積極的一面也有消極的一面。在這種情況下,游戲防沉迷系統(tǒng)在允許青少年適度游戲的同時,嚴格限制游戲時間,來達到避免沉迷游戲的目的,無論從對游戲行業(yè)的發(fā)展或者對一些社會性問題來說,計算機游戲防沉迷系統(tǒng)的研究就變得非常的有意義。1.2課題研究內容和對研究過程中出現(xiàn)問題的解決課題要研究計算機游戲防沉迷系統(tǒng)的開發(fā)與設計。防沉迷,是為了防止兒童、青少年沉迷游戲而發(fā)展起來的。它是對游戲時間進
14、行嚴格的控制來達到防止沉迷的目的,當游戲到達監(jiān)控者預定的時間時,屏蔽游戲除存盤之外的其他操作。監(jiān)控者可以查詢一定時間內某個游戲的運行時間,系統(tǒng)會根據選擇的時間繪制出游戲時間的變化趨勢,并采取相應的措施比如及時的更新游戲的監(jiān)控時間,來達到更有效的管理。這個系統(tǒng)最終實現(xiàn)的主要功能如下:1. 游戲部分:主要完成游戲時間的統(tǒng)計、更新、查詢、繪制;2. 監(jiān)控部分:主要是限制游戲者的操作;3. 用戶部分:主要完成用戶的管理;4. 驅動部分:主要起到進程保護的作用。那么,一個比較完善的游戲防沉迷系統(tǒng)應該包括以下模塊:1. 游戲管理模塊:監(jiān)控游戲的錄入、更新、刪除等;2. 游戲監(jiān)控模塊:定點更新、實時監(jiān)控、記
15、錄增加;3. 時間繪制模塊:游戲時間查詢、游戲時間的繪制;4. 用戶管理模塊:密碼修改、用戶登錄;5. 驅動模塊:驅動安裝、驅動卸載、驅動控制。系統(tǒng)具有維護游戲信息的功能。為了方便,對各個游戲進行編號,每個編號對應一個游戲關于游戲監(jiān)控時間的描述。每條游戲運行時間的記錄對應一個編號,方便系統(tǒng)統(tǒng)計游戲運行時間和繪制游戲時間的變化趨勢。1.4 SQL語言介紹用戶對數(shù)據庫的使用,是通過數(shù)據庫管理系統(tǒng)提供的語言來實現(xiàn)的。不同的數(shù)據庫管理系統(tǒng)提供不同的數(shù)據庫語言。關系數(shù)據庫管理系統(tǒng)幾乎都提供關系數(shù)據庫標準語言SQL。SQL 的全稱是Structured Query Language,即結構化查詢語言。SQ
16、L語句可以從關系數(shù)據庫中獲得數(shù)據,也可以建立數(shù)據庫、增加數(shù)據、修改數(shù)據。1986年ANSI采用SQL語言作為關系數(shù)據庫系統(tǒng)的標準語言,后被國際化標準組織(ISO)采納為國際標準。SQL語言使用方便、功能豐富、簡潔易學,是操作數(shù)據庫的工業(yè)標準語言,得到廣泛地應用。SQL語言是一種非過程化語言,它一次處理一個記錄集合,對數(shù)據提供自動導航。SQL語言允許用戶在高層的數(shù)據結構上工作,而不對單個記錄進行操作。SQL語言可以完成許多功能,例如:查詢數(shù)據;在數(shù)據庫表格中插入、修改和刪除記錄;建立、修改和刪除數(shù)據對象;控制對數(shù)據和數(shù)據對象的存??;確保數(shù)據庫的一致性和完整性等。1.4.1 SQL查詢數(shù)據查詢是關
17、系運算理論在SQL語言中的主要體現(xiàn),SELECT 語句是SQL查詢的基本語句,當對一個數(shù)據庫進各種各樣的操作時,使用的最多的就是數(shù)據查詢,在以SQL為基礎的關系數(shù)據庫中,使用的最多的就是SELECT查詢語句。SELECT語句的完整句法如下:SELECT 目標表的列名或列表達式序列FROM 基本表和(或)視圖序列WHERE 行條件表達式GROUP BY 列名序列HAVING 組條件表達式ORDER BY列名 ASCDEAC在SQL的查詢中還會涉及到模糊查詢,這就需要使用模式匹配符LIKE(判斷值是否與指定的字符通配格式相符)。在包含LIKE的查詢語句中可以使用兩個通配符:%(百分號)。系統(tǒng)查詢中
18、的條件判斷往往包含多個條件,這時就需要使用邏輯運算符NOT、AND、OR(用于多條件的邏輯連接),謂詞ALL以及保留字DISTINCT等等。做為SELECT語句還有很多的使用方法,這里就不再敘述。1.4.2 SQL數(shù)據更新使用數(shù)據庫的目的是為了有效地管理數(shù)據,而數(shù)據的插入、刪除和修改則是必不可少的一個功能,現(xiàn)做一個簡單地介紹。數(shù)據插入,往數(shù)據庫的基本表中插入數(shù)據使用的是INSERT語句,其方式有兩種:一種是元組值的插入,另一種是查詢結果的插入。在系統(tǒng)中使用的是前一種方式,其句法如下:INSERT INTO 基本表名(列表名)VALUES(元組值)數(shù)據刪除,往數(shù)據庫的基本表中刪除數(shù)據使用的是DE
19、LETE語句,其句法如下:DELETE FROM 基本表名 WHERE 條件表達式刪除語句實際上是“SELECT * FROM 基本表名 WHERE 條件表達式”和DELETE操作的結合,每找到一個元組,就把它刪除。此外,DELETE語句只能從一個基本表中刪除元組,WHERE子句中條件可以嵌套,也可以是來自幾個基本表的復合條件。數(shù)據修改,當需要修改基本表中元組的某些列的值時,可以用UPDATE語句實現(xiàn),其句法如下:UPDATE基本表名SET列名=值表達式,列名=值表達式WHERE條件表達式1.5 系統(tǒng)開發(fā)工具1.5.1 VC+ 6.0工具簡介VC+ 6.0是Microsoft公司推出的一個基于
20、Windows系統(tǒng)平臺、可視化的集成開發(fā)環(huán)境,它的源程序按C+語言的要求編寫,并加入了微軟提供的功能強大的MFC(Microsoft Foundation Class)類庫。MFC中封裝了大部分Windows API函數(shù)和Windows控件,它包含的功能涉及到整個Windows操作系統(tǒng)。MFC不僅給用戶提供了Windows圖形環(huán)境下應用程序的框架,而且還提供了創(chuàng)建應用程序的組件,這樣,開發(fā)人員不必從頭設計創(chuàng)建和管理一個標準Windows應用程序所需的程序,而是從一個比較高的起點編程,故節(jié)省了大量的時間。另外,它提供了大量的代碼,指導用戶編程時實現(xiàn)某些技術和功能。因此,使用VC+提供的高度可視化
21、的應用程序開發(fā)工具和MFC類庫,可使應用程序開發(fā)變得簡單。調試的步驟:1) 保存為C或C+文件;2) 根據斷點調試找到錯誤處;3) 采用F10或F11單步調試找到精確的錯誤處。其中f10是跳過函數(shù)調用,F(xiàn)11是進入函數(shù)體調試。一般是先用F10,確定函數(shù)輸入輸出是否正確,如不一樣,則用F11進入函數(shù)體一步一步調試;4) 在調試過程中,肯定得監(jiān)視程序中的變量。在vc+6.0的右下角有一個watch窗口,專門用來設置監(jiān)視變量。具體怎樣設置自己體會吧。在調試過程中,鼠標輕輕放在變量上也會顯示該變量的值;5) Vc+6.0專門為調試設置了工具箱以方便調試的進行,打開的方法如下。右鍵->在debug
22、(或調試)選擇項的勾勾上。4-61.5.2 Access數(shù)據庫簡介Access 是微軟公司推出的基于Windows的桌面關系數(shù)據庫管理系統(tǒng),是Office系列應用軟件之一。它提供了表、查詢、窗體、報表、頁、宏、模塊7種用來建立數(shù)據庫系統(tǒng)的對象;提供了多種向導、生成器、模板,把數(shù)據存儲、數(shù)據查詢、界面設計、報表生成等操作規(guī)范化;為建立功能完善的數(shù)據庫管理系統(tǒng)提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分數(shù)據管理的任務。Access能夠存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文軟件公司),或者任何 ODBC 兼容數(shù)據庫內的資料。熟練的軟件設
23、計師和資料分析師利用它來開發(fā)應用軟件,而一些不熟練的程序員和非程序員的"進階用戶"則能使用它來開發(fā)簡單的應用軟件。雖然它支援部分面向對象(OO)技術,但是未能成為一種完整的面向對象開發(fā)工具。1Access的優(yōu)點(1)存儲方式簡單,易于維護管理,Access管理的對象有表、查詢、窗體、報表、頁、宏和模塊,以上對象都存放在后綴為(.mdb或.accdb)的數(shù)據庫文件中,便于用戶的操作和管理。(2)面向對象,Access是一個面向對象的開發(fā)工具,利用面向對象的方式將數(shù)據庫系統(tǒng)中的各種功能對象化,將數(shù)據庫管理的各種功能封裝在各類對象中。它將一個應用系統(tǒng)當作是由一系列對象組成的,對每
24、個對象它都定義一組方法和屬性,以定義該對象的行為和外國,用戶還可以按需要給對象擴展方法和屬性。通過對象的方法、屬性完成數(shù)據庫的操作和管理,極大地簡化了用戶的開發(fā)工作。同時,這種基于面向對象的開發(fā)方式,使得開發(fā)應用程序更為簡便。(3)界面友好、易操作,Access是一個可視化工具,是風格與Windows完全一樣,用戶想要生成對象并應用,只要使用鼠標進行拖放即可,非常直觀方便。系統(tǒng)還提供了表生成器、查詢生成器、報表設計器以及數(shù)據庫向導、表向導、查詢向導、窗體向導、報表向導等工具,使得操作簡便,容易使用和掌握。(4)集成環(huán)境、處理多種數(shù)據信息,Access基于Windows操作系統(tǒng)下的集成開發(fā)環(huán)境,
25、該環(huán)境集成了各種向導和生成器工具,極大地提高了開發(fā)人員的工作效率,使得建立數(shù)據庫、創(chuàng)建表、設計用戶界面、設計數(shù)據查詢、報表打印等可以方便有序地進行。(5)Access支持ODBC(開發(fā)數(shù)據庫互連,Open Data Base Connectivity),利用Access強大的DDE(動態(tài)數(shù)據交換)和OLE(對象的聯(lián)接和嵌入)特性,可以在一個數(shù)據表中嵌入位圖、聲音、Excel表格、Word文檔,還可以建立動態(tài)的數(shù)據庫報表和窗體等。Access還可以將程序應用于網絡,并與網絡上的動態(tài)數(shù)據相聯(lián)接。利用數(shù)據庫訪問頁對象生成HTML文件,輕松構建Internet/Intranet的應用。(6)支持廣泛,
26、易于擴展,彈性較大,能夠將通過鏈接表的方式來打開EXCEL文件、格式化文本文件等,這樣就可以利用數(shù)據庫的高效率對其中的數(shù)據進行查詢、處理。還可以通過以Access作為前臺客戶端,以SQL Server作為后臺數(shù)據庫的方式(如ADP)開發(fā)大型數(shù)據庫應用系統(tǒng)。總之,Access是一個既可以只用來存放數(shù)據的數(shù)據庫,也可以作為一個客戶端開發(fā)工具來進行數(shù)據庫應用系統(tǒng)開發(fā);即可以開發(fā)方便易用的小型軟件,也可以用來開發(fā)大型的應用系統(tǒng)。2Access的缺點(1)數(shù)據庫過大,一般百M以上(純數(shù)據,不包括窗體、報表等客戶端對象)性能會變差。(2)雖然理論上支持255個并發(fā)用戶,但實際上根本支持不了那么多,如果以只
27、讀方式訪問大概在100個用戶左右,而如果是并發(fā)編輯,則大概在10-20個用戶。(3)記錄數(shù)過多,單表記錄數(shù)過百萬性能就會變得較差,如果加上設計不良,這個限度還要降低。(4)不能編譯成可執(zhí)行文件(.exe),必須要安裝Access運行環(huán)境才能使用。第2章 系統(tǒng)總體設計2.1 系統(tǒng)分析 本節(jié)針對計算機游戲防沉迷系統(tǒng)的設計任務進行論述,對整個計算機游戲防沉迷系統(tǒng)進行問題分析,闡述一個比較好的游戲防沉迷系統(tǒng)主要具體的特征。需求分析,預期目標及功能等。2.1.1 問題分析在網絡游戲產業(yè)蓬勃發(fā)展的今天,未成年人沉迷網游已成為突出的社會問題。越來越多的防沉迷系統(tǒng)開始出現(xiàn),他們的核心內容是控制游戲的收益即:未
28、成年人累計3小時以內的游戲時間為“健康”游戲時間,超過3小時后的2小時游戲時間為"疲勞"時間,在此時間段,玩家獲得的游戲收益將減半。如累計游戲時間超過5小時即為"不健康"游戲時間,玩家的收益降為0,以此迫使未成年人下線休息、學習。但是因為青少年長期陷于游戲中,如果沒有一個過渡的過程,防沉迷的效果會微乎其微。所以一個以控制游戲運行時間,并能根據實際的情況來實時調整監(jiān)控時間來防止青少年沉迷的系統(tǒng)就顯得必不可少,隨著這個問題的出現(xiàn),一個比較好的防沉迷系統(tǒng)主要有以下幾個方面的特征:1) 防沉迷系統(tǒng)可以讓管理員根據被監(jiān)控者的沉迷程度隨時更改監(jiān)控的時間,系統(tǒng)會根據管
29、理員的要求,繪制出一個監(jiān)控者最近的游戲時間長短的變化趨勢;2) 防沉迷系統(tǒng)可以監(jiān)控運行的游戲,當游戲運行到預定的時間時,會限制用戶的操作,如屏蔽除存盤之外的其他操作;3) 防沉迷系統(tǒng)可以提供預監(jiān)控游戲的增加和刪除,并根據需要實時更新游戲信息;4) 防沉迷系統(tǒng)可以提供的權限管理機制,包括退出系統(tǒng)和修改信息時需要用戶驗證,并提供修改用戶信息的功能;5) 防沉迷系統(tǒng)可以提供用戶查詢某個游戲,某段時間內的運行時間;6) 防沉迷系統(tǒng)從內核層面提供進程保護功能,不會通過任務管理器等正常手段關閉。目前的計算機游戲防沉迷系統(tǒng)存在一些普遍性問題:1) 對游戲的運行時間是一個既定的限制,沒有因人而異,不夠科學;2
30、) 沒有針對所有的計算機游戲;3) 系統(tǒng)安全性問題較大。綜上所述,計算機游戲防沉迷系統(tǒng)的的設計開發(fā),對于促進青少年投入學習、提高自身實力,提高青少年的社會責任感有十分重要的意義。一個優(yōu)秀的計算機游戲防沉迷系統(tǒng)應能根據不同人,不同時間做出不同的監(jiān)控措施。2.1.2 需求分析計算機游戲防沉迷系統(tǒng)為了防止青少年沉迷在游戲當中,會允許游戲者游戲一段時間的情況下,嚴格控制游戲時間來達到這個目的,系統(tǒng)將從操作系統(tǒng)底層來解決此問題,會涉及到windows編程,故所有的動態(tài)鏈接庫、鉤子函數(shù)都將采用windows的API函數(shù),對累計時間的存取將采用數(shù)據庫的形式,來預防當系統(tǒng)退出時不能準確的統(tǒng)計游戲的時間。系統(tǒng)通
31、過嚴格的限制游戲者的時間來達到防止沉迷的目的,系統(tǒng)運行之后,如果被監(jiān)測的游戲運行,則軟件應該會監(jiān)測到其啟動,在監(jiān)視的列表中標記其運行狀態(tài),并實時更新監(jiān)測游戲的運行時間,然后判斷是否超過規(guī)定的時間,如果超過預定的時間,則用已安裝在動態(tài)鏈接庫的全局鉤子,屏蔽掉存盤(F2)之外的其他任何操作。軟件具有定點更新信息,到零點的時候判斷當天的運行的時間是否為零,如果不為零,則說明該游戲當天運行過,把今天運行過的游戲的時間統(tǒng)計出來,然后在游戲運行時間表中創(chuàng)建一條新的記錄,管理員統(tǒng)計,并作出具體的監(jiān)控措施。系統(tǒng)提供錄入游戲、編輯游戲和刪除游戲的功能。為了方便管理系統(tǒng)的權限,系統(tǒng)提供維護密碼的功能,普通用戶關閉
32、此系統(tǒng)之后將用托盤技術,放在任務欄里,但不能強制將其關閉,管理員用密碼可退出軟件,系統(tǒng)為了解決應用層強制關閉進程的問題,還應該編寫一個額外的驅動文件,通過HOOK系統(tǒng)底層函數(shù)的方法,實現(xiàn)進程保護,在游戲運行前加載這個驅動文件,達到有效的監(jiān)測游戲的目的。系統(tǒng)具有維護游戲信息的功能,為了方便,對各個游戲進行編號,每個編號對應一個游戲關于游戲監(jiān)控時間的描述。每條游戲運行的時間記錄對應一個編號,方便系統(tǒng)統(tǒng)計游戲運行時間和繪制游戲運行時間的變化趨勢。軟件具有友好的界面,便于與用戶交互。2.1.3 預期實現(xiàn)目標及功能系統(tǒng)為了方便監(jiān)控者對沉迷游戲者的游戲時間進行有效的監(jiān)控,軟件具有友好的界面,便于與用戶交互
33、,首先監(jiān)控者增加被監(jiān)控的游戲并添加月、周、日的監(jiān)控時間,軟件由操作系統(tǒng)監(jiān)測游戲運行的時間,當游戲運行的時間超過預定的時間,則強行中止除存盤退出之外的游戲響應。系統(tǒng)自帶游戲運行時間統(tǒng)計功能,并繪制出游戲時間的趨勢,讓監(jiān)控者直觀的看出游戲時間的分布,并可根據具體的情況來修改允許游戲運行時間的長短。通過對用戶需求的分析,可以分析出系統(tǒng)可以實現(xiàn)監(jiān)控游戲的錄入、更新、刪除等,定點更新,實時監(jiān)控,屏蔽除存盤之外的其他操作, 游戲時間查詢模塊,游戲時間繪制模塊,登錄模塊。系統(tǒng)功能的模塊圖,如圖2-1所示:圖2-1 系統(tǒng)功能模塊圖1. 游戲管理模塊:管理員對需監(jiān)控游戲的進行錄入、更新,需要設置是否需要監(jiān)控,以
34、及需監(jiān)控的月周日的時間,以及刪除游戲信息等;2. 游戲監(jiān)控模塊:定點更新,當?shù)竭_零點之后,把當天的游戲運行時間清零、實時監(jiān)控游戲的運行時間是否超過月周日的預定時間、記錄增加,判斷當天游戲是否運行,如果運行創(chuàng)建一條保存運行時間和日期的記錄;3. 時間繪制模塊:某個游戲某個時間段的游戲時間查詢、根據選擇的時間來繪制游戲運行時間的變化趨勢;4. 用戶管理模塊:密碼的修改、當用戶欲修改游戲信息或退出時需要用戶的登錄;5. 驅動模塊:需要先裝載驅動,然后啟動驅動,驅動控制時傳進一個要保護進程的ID開始保護,最后卸載驅動。2.2數(shù)據庫設計在信息世界中,從周圍獲得信息,然后將獲得的信息轉化為數(shù)據,再將數(shù)據返
35、回到現(xiàn)實世界中。而軟件系統(tǒng)的開發(fā)工作需要考慮系統(tǒng)開發(fā)所需要的數(shù)據,以及如何對這些數(shù)據進行操作。這兩個問題貫穿了整個軟件系統(tǒng)的開發(fā)過程,這也就是數(shù)據庫的設計問題,軟件設計的一個核心。2.2.1 概念結構設計將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計。在系統(tǒng)中采用的是自底向上的概念結構設計方法,通過“實體聯(lián)系模型”(E-R模型)來描述數(shù)據庫的結構與語義,以對現(xiàn)實世界進行第一次抽象。E-R模型直接從現(xiàn)實世界抽象出實體類型及實體間聯(lián)系,然后用E-R圖來表示數(shù)據模型。2.2.2 邏輯結構設計(1)數(shù)據庫設計:1) 用戶數(shù)據表:包括用戶名(主要用于登陸),密碼;2) 游戲信息表
36、:此表用來保存游戲的ID,名字,每月、周、日運行的時間,以及月、周、日限制的時間,以及游戲的監(jiān)控狀態(tài);3) 運行時間表:此表用于保存游戲每天運行的時間,主要包括ID,游戲名,游戲日期和運行時間。(2)根據需求分析得到防沉迷系統(tǒng)的E-R圖,如圖2-2所示:圖2-2 游戲防沉迷系統(tǒng)的E-R圖(3)表設計1)用戶表Userinfo:用于存儲能夠登陸系統(tǒng)的用戶的信息。字段設置如表2-1所示:表2-1 用戶信息表中文名稱英文名稱數(shù)據類型數(shù)據長度其他說明用戶名username文本20作為主鍵密碼password文本20不可以為空2) 游戲信息表Gameinfo:此表用來保存游戲的ID,名字,每月、周、日運
37、行的時間,以及月、周、日限制的時間,以及游戲的監(jiān)控狀態(tài)。字段設置如表2-2示:表2-2 游戲信息表中文名稱英文名稱數(shù)據類型數(shù)據長度其他說明信息IDgame id數(shù)字4作為主鍵游戲名稱game name文本20不允許為空月運行時間month run time文本20允許為空續(xù)表2-2中文名稱英文名稱數(shù)據類型數(shù)據長度其他說明周運行時間week run time文本20允許為空日運行時間day run time文本20允許為空月限制時間monthlimittime文本20允許為空周限制時間week limit time文本20允許為空日限制時間day limit time文本20允許為空監(jiān)控狀態(tài)st
38、atus文本20不允許為空3) 運行時間信息表Runtimeinfo:此表用于保存游戲每天運行的時間,主要包括ID,游戲名,游戲日期和運行時間。字段設置如表2-3所示:表2-3 運行時間信息表中文名稱英文名稱數(shù)據類型數(shù)據長度其他說明信息編號ID數(shù)字4作為主鍵游戲名稱game name文本20不允許為空運行日期run data文本20不可以為空運行時間runtime文本20不可以為空第3章 系統(tǒng)詳細設計3.1 系統(tǒng)詳細設計概述 本章主要包括數(shù)據庫的設計,系統(tǒng)詳細設計兩大部分。數(shù)據庫的設計主要概括闡述選擇Microsoft Access數(shù)據庫的原因,系統(tǒng)數(shù)據庫的設計,以及在開發(fā)的過程中使用數(shù)據庫的
39、方法。系統(tǒng)詳細設計主要包括各個模塊的設計方法,以及每個模塊包含的主要代碼。3.2 數(shù)據庫設計系統(tǒng)的數(shù)據庫采用的是Microsoft Access,它既可適用于桌面系統(tǒng)的單用戶數(shù)據庫,也可適用于小型企業(yè)的網絡數(shù)據庫,甚至適用于專業(yè)的WEB站點數(shù)據庫,具有很強的可伸縮性。并且具有很高的可靠性、可用性和可管理性。從經濟和開發(fā)效率上適合中小型網站。它和VC+6.0同屬于微軟公司開發(fā),在開發(fā)接口有一致性,能更好的協(xié)調工作。Access數(shù)據庫具有以下優(yōu)點:存儲方式簡單、易于維護管理,面向對象、界面友好、易操作、集成環(huán)境,處理多種數(shù)據信息、Access支持ODBC、支持廣泛,易于擴展,彈性較大??傊?,Acc
40、ess是一個既可以只用來存放數(shù)據的數(shù)據庫,也可以作為一個客戶端開發(fā)工具來進行數(shù)據庫應用系統(tǒng)開發(fā);即可以開發(fā)方便易用的小型軟件,也可以用來開發(fā)大型的應用系統(tǒng),所以系統(tǒng)采用Access數(shù)據庫來存儲信息。3.2.1 創(chuàng)建數(shù)據表在Access中創(chuàng)建數(shù)據表,過程如下:1. 進入到主頁面,選擇表,并用鼠標右擊使用設計表創(chuàng)建表,選擇設計視圖。2. 定義字段。創(chuàng)建數(shù)據表最重要的步驟,在字段名稱里面輸入字段,然后在數(shù)據類型里面定義類型,并在常規(guī)表單里面設置相應的屬性。3. 定義主鍵字段,關鍵字字段的值在表中是唯一的,并且不允許為NULL。4. 保存數(shù)據表。表的字段定義完成后,單擊的保存按鈕,輸入表名稱后,完成保
41、存操作。11-145. 用同樣的方法創(chuàng)建需要的所有表格。具體表格如表3-1到表3-3所示:表 3-1 UserInfo列名數(shù)據類型長度允許空username1文本20password1文本20表3-2 GameInfo列名數(shù)據類型長度允許空gameid數(shù)字4gamename文本20monthruntime文本20weekruntime文本20daytuntime文本20weeklimittime文本20daylimittime文本20status文本20表3-3 RuntimeInfo列名數(shù)據類型長度允許空ID數(shù)字4gamename文本20rundata文本20runtime文本203.2.2
42、 數(shù)據庫鏈接與使用建完數(shù)據庫之后,接下來就是要進行數(shù)據庫的連接。系統(tǒng)采用ADO鏈接數(shù)據庫的方式,在連接數(shù)據庫之前需要構造一個合理的連接字符串。鏈接數(shù)據庫的代碼:m_pConnection.CreateInstance("ADODB.Connection");CString str;str.Format("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb");m_pConnection->Open(_bstr_t(str),"","",adModeUnkno
43、wn);ADODB.Connection:創(chuàng)建一個ADO的實例db1.mdb:欲鏈接的數(shù)據庫的名稱執(zhí)行查詢語句的代碼:if(m_pConnection=NULL) OnInitADOConn();m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);執(zhí)行增、刪、改語句的代碼:if(m_pConnection = NULL)OnInitADOConn(
44、);m_pConnection->Execute(bstrSQL,NULL,adCmdText);以上就是鏈接和使用數(shù)據庫時所用的代碼,以上所有的代碼都封裝在CADOConn類里面,使用的時候直接調用類里面的方法即可。3.3 系統(tǒng)詳細設計3.3.1 系統(tǒng)主窗體模塊系統(tǒng)主窗體由左右兩個視圖組合而成,左邊的視圖以樹控件負責視圖的切換,右邊主要由MonitorManage、RunInfoCount、UserManege三個視圖之間來回切換組成。該頁面中主要的技術是如何控制視圖之間的切換,主要是通過以下四部分代碼進行實現(xiàn):7-9 15-20(1)在左邊視圖CLeftPaneView的OnInit
45、ialUpdate函數(shù)中創(chuàng)建一個樹控件,然后插入三個節(jié)點。CTreeCtrl& treeCtrl = GetTreeCtrl();treeCtrl.InsertItem("MonitorManage", 0, 0);treeCtrl.InsertItem("RunInfoCount", 1, 1);treeCtrl.InsertItem("UserManage", 2, 2);(2)在主框架CMainFrame類的OnCreateClient函數(shù)中添加創(chuàng)建三個視圖。if(!m_wndSplitter.CreateStatic(
46、this,1,2)return false;if(!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftPaneView),CSize(200,200),pContext)return false;if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMonitorView),CSize(100,100),pContext)return false;(2)在左邊視圖CLeftPaneView的OnSelchanged函數(shù)中判斷選擇的節(jié)點對應的是哪個視圖,然后調用CMainFrame中的SwitchToView
47、切換到不同的視圖。str = treeCtrl.GetItemText(hSelectedItem);if(str.Find("MonitorManage") != -1)pFrame->SwitchToView(MONITORVIEW);else if(str.Find("UserManage") != -1) pFrame->SwitchToView(USERVIEW);else if(str.Find("RunInfoCount") != -1) pFrame->SwitchToView(RUNINFOVIEW
48、); (4)在主框架CMainFrame的SwitchToView函數(shù)中,根據判斷傳進來的nViewType參數(shù)是MONITORVIEW,USERVIEW,RUNINFOVIEW三種類型來切換到不同視圖。switch(nViewType)case MONITORVIEW:if(!pView->IsKindOf(RUNTIME_CLASS(CMonitorView)m_wndSplitter.DeleteView(0,1);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMonitorView),CSize(rcRight.Width(),rcRig
49、ht.Height(),NULL);m_wndSplitter.RecalcLayout();break;case USERVIEW:if(!pView->IsKindOf(RUNTIME_CLASS(CUserView)m_wndSplitter.DeleteView(0,1);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CUserView),CSize(rcRight.Width(),rcRight.Height(),NULL);m_wndSplitter.RecalcLayout();break;case RUNINFOVIEW:if(!p
50、View->IsKindOf(RUNTIME_CLASS(CRunInfoView)m_wndSplitter.DeleteView(0,1);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CRunInfoView),CSize(rcRight.Width(),rcRight.Height(),NULL);m_wndSplitter.RecalcLayout();break;當系統(tǒng)運行時,默認顯示的是監(jiān)控游戲視圖的界面,如圖3-1所示:圖3-1系統(tǒng)主窗體界面當系統(tǒng)運行時,默認的界面是監(jiān)控游戲的界面,當被監(jiān)控的游戲運行時,游戲對應的開始時間那一欄顯示
51、系統(tǒng)的當前時間,游戲運行的時間隨著游戲時間的進行實時的增加,當天游戲還可以運行的剩下時間則實時的減少,游戲的狀態(tài)變成正在運行的狀態(tài)。一直到監(jiān)控的游戲停止游戲或者退出游戲時,狀態(tài)變成了不運行的狀態(tài)。默認界面監(jiān)控游戲視圖中的Add、Edit、Delete三個按鈕分別用來對游戲的信息進行增加、編輯、刪除操作,游戲的信息用一個結構體來操縱,包括游戲的編號,游戲的名稱,開始的時間,已經運行的時間,剩下的時間,以及當前的狀態(tài)。3.3.2 游戲管理模塊(1)游戲信息的添加:主要是添加監(jiān)控游戲的信息。如圖3-2所示:圖3-2 監(jiān)控游戲的添加 因為隨著每年新型游戲不斷的出現(xiàn),需要對新的游戲進行監(jiān)控,添加游戲的工
52、程中,可以拉動游戲的圖標到路徑編輯框中,如果是.exe格式的,系統(tǒng)將自動識別游戲的名稱,減少用戶的輸入,可增加游戲每天、每周、每月限制的時間。根據路徑來獲得名字的代碼如下:CString style = m_gamePath.Mid(strlen(m_gamePath) - 3, strlen(m_gamePath); int n = m_gamePath.ReverseFind(''); CString gamename = m_gamePath.Mid(n + 1, strlen(m_gamePath) - 5 - n); m_gameName = gamename;(2)
53、游戲信息編輯:由于考慮到要實時的觀察被監(jiān)控者的沉迷程度來調整監(jiān)控的時間,所以每個時期游戲需要監(jiān)控的時間應該是不同的,也就是說,如果如果被監(jiān)控者的沉迷程度如果沒有減輕,就可適當?shù)臏p少游戲的運行時間,乃至于禁止游戲運行(只需把限制的時間設置為零即可),如圖3-3所示:圖3-3 游戲信息的編輯因為考慮到方便管理員的使用,所以編輯游戲時只須在列表框中選擇一個游戲,然后點編輯,系統(tǒng)就會自動加載該游戲的數(shù)據,方便管理員的使用,減少不必要的輸入,當點擊列表框的時候獲得一個ID,然后點編輯按鈕,系統(tǒng)根據ID值上數(shù)據庫中查詢,然后獲得游戲的各個屬性,加載顯示到對話框中,并顯示出來。當管理員欲修改游戲的信息時,需
54、要首先登陸系統(tǒng)獲得足夠的權限,然后才能根據實際的情況修改完游戲的信息,點擊提交按鈕,更新數(shù)據庫,其實現(xiàn)的主要代碼如下:void CEditGame:OnSubmit() CLoginDlg dlg;if(dlg.DoModal() = IDOK)UpdateData(TRUE);CString str;str.Format("UPDATE Gameinfo SET monthlimittime='%s', weeklimittime='%s', daylimittime='%s' WHERE gameid= %d " , m_
55、monthLimitTime, m_weekLimitTime, m_dayLimitTime, gameid);m_Adoconn.ExecuteSQL(_bstr_t)str);3.3.3 游戲時間繪制模塊(1)游戲運行時間查詢:游戲運行時間查詢的頁面主要包括查詢和繪制兩個功能,如圖3-4所示:圖3-4 游戲運行時間查詢因為每個時期的控制時間可能不一樣,所以獲得某個游戲一段時間內的游戲時間就顯得非常重要,便于繪制游戲時間變化趨勢。點擊查詢按鈕的時候,首先獲得開始時間和結束時間和輸入的游戲名字,然后上數(shù)據庫中查詢,如果沒有記錄,彈出一個對話框,提示沒有記錄,如果有記錄則獲得各個記錄的字段值,
56、然后插入到列表框中。(2)游戲運行時間的繪制因為要根據實際情況有效的控制游戲的運行時間,所以統(tǒng)計分析某段時間內游戲運行的時間就顯得格外重要,而分析的最直接的手段是讓管理員任意時間,然后繪制游戲運行時間的變化趨勢,由此直觀的獲得監(jiān)控效果,以及為下一步的監(jiān)控調整做好準備。如圖3-5所示:圖3-5 游戲運行時間趨勢1)首先在CRunInfoView的OnDraw函數(shù)中獲得游戲的名字,然后判斷列表框中的選擇框是否被選擇,如果被選擇的項的ID保存在數(shù)組里面,如果選擇的項超過7個,則提示用戶重新選擇,然后調用畫圖的對話框。2)CDrawDlg對話框類得作用主要用來繪圖,在對話框的OnPaint函數(shù)中繪制坐標軸曲線,先進行坐標轉換,然后畫橫縱坐標軸,然后根據ID數(shù)組從數(shù)據庫中取出運行時間和運行日期字段分別保存在runtime和rundata數(shù)組中,并統(tǒng)計總的運行時間,然后根據runtime和rundata的值在已經轉換過的坐標軸上畫出點,并連成線描繪出變化的趨勢。代碼如下:void CDrawDlg:OnPaint() CPaintDC dc(t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025公司與員工解除勞動合同范本
- 2024年春八年級生物下冊 23.1 生物的生存依賴一定的環(huán)境說課稿 (新版)北師大版
- 2025寫字樓租賃合同寫字樓租賃合同模板
- Unit 6 Jobs Lesson 6 story time.(說課稿)-2024-2025學年人教新起點版英語四年級上冊
- 7 《包身工》 說課稿 2024-2025學年統(tǒng)編版高中語文選擇性必修中冊
- Unit5 What do they do(說課稿)-2024-2025學年譯林版(三起)英語五年級上冊
- 西班牙瓦鋪貼施工方案
- 迎春燈飾施工方案
- 20美麗的小興安嶺說課稿-2024-2025學年三年級上冊語文統(tǒng)編版
- 12《富起來到強起來》(說課稿)統(tǒng)編版道德與法治五年級下冊
- 暑假作業(yè) 11 高二英語語法填空20篇(原卷版)-【暑假分層作業(yè)】2024年高二英語暑假培優(yōu)練(人教版2019)
- 小學數(shù)學教學評一體化教學探究
- 2024年江西省南昌市南昌縣中考一模數(shù)學試題(含解析)
- 2024年保安員考試題庫【典型題】
- 人教版數(shù)學八年級下冊第十九章課堂同步練習
- 繪本的分鏡設計-分鏡的編排
- 查干淖爾一號井環(huán)評
- 售后工程師績效考核指南
- 體檢中心分析報告
- 人教版初中英語七八九全部單詞(打印版)
- (新版)非阿片類鎮(zhèn)痛藥治療慢性疼痛病中國指南
評論
0/150
提交評論