首页 基于Android操作系统的中国象棋手机游戏学位论文

基于Android操作系统的中国象棋手机游戏学位论文

举报
开通vip

基于Android操作系统的中国象棋手机游戏学位论文 JIANGXINORMALUNIVERSITY 学 士 学 位 论 文 THESIS OF BACHELOR 基于Android操作系统的中国象棋手机游戏Chinese Chess Application based on Android Mobile OS 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标...

基于Android操作系统的中国象棋手机游戏学位论文
JIANGXINORMALUNIVERSITY 学 士 学 位 论 文 THESIS OF BACHELOR 基于Android操作系统的中国象棋手机游戏Chinese Chess Application based on Android Mobile OS 学位 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 声 明 本人郑重声明: 所呈交的毕业 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 (论文)是本人在指导教师指导下进行的研究工作及取得的研究成果。其中除加以标注和致谢的地方,以及法律规定允许的之外,不包含其他人已经发表或撰写完成并以某种方式公开过的研究成果,也不包含为获得其他教育机构的学位或证书而作的材料。其他同志对本研究所做的任何贡献均已在文中作了明确的说明并表示谢意。 本毕业设计(论文)成果是本人在江西师范大学读书期间在指导教师指导下取得的,成果归江西师范大学所有。 特此声明。 声明人(毕业设计(论文)作者)学号: 声明人(毕业设计(论文)作者)签名: 签名日期:    年  月  日 摘 要 cnChess是运行在Android平台上的一款支持双人联网对局、即时聊天、对弈记录的休闲棋牌类手机游戏。 系统采用面向对象的编程思想进行构思与分析设计;使用UML构建软件模型;使用MVC架构模式实现系统的整体架构及各模块之间的接口设计;在系统的实践过程中还采用了部分GoF的设计模式进行编码与开发。 本文详细系统地阐述了在Android平台上,应用MVC分层架构模式及面向对象的软件开发思想对cnChess游戏系统的分析、设计及实现过程。在项目的实践过程中,主要用到了以下技术:手机布局主要使用了XML设计,程序及其子模块的生命周期管理用到了Activity流程控制,数据储存方面使用的是轻量级数据库SQLite、网络通讯部分使用的是XMPP即时通讯协议进行数据的传输、对弈的画面更新使用的是手机的2D图形编程。本论文的前半部分将简要介绍系统相关的行业信息及基础的技术知识,后半部分将对本人在系统各模块中所使用的关键技术的实现进行了全面的介绍。 关键词:联网对弈;中国象棋;手机游戏 ;Android平台 ABSTRACT CnChess is a Chinese Chess game that running on the Android platform.It support many of the features such as playing games through the network, real-time chat, and play chess records of casual mobile games. The CnChess game is object-oriented programming design and analysis of the idea of thinking; build software models using UML; use of MVC architecture patterns to achieve the overall system and the interface between the module designs; in practice the system also uses some of the GoF's design patterns to coding and development. This paper systematically expounded in the Android platform, the application of MVC pattern and hierarchical structure of object-oriented software development thoughts cnChess game system analysis, design and implementation process. Practice in the course of the project, mainly used in the following technologies: cell phones primarily use XML layout design, process and life cycle management sub-module uses the Activity process control, data storage areas using a lightweight database SQLite, netwrok communication Some use the XMPP instant messaging protocol for data transmission, public debate of the frame using a mobile phone 2D graphics programming. The first part of this paper will briefly introduce the system based on relevant industry information and technical knowledge, the latter part of each module in the system; I will be in the key technology used in the realization of a comprehensive introduction. Keywords: Network of games; Chinese chess; Mobile Games; Android platform 目 录 第1章 绪论 1 1.1问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 的提出 1 1.2相关研究综述 1 1.2.1 Android手机操作系统的发展历程 1 1.2.2 国内外关于Android手机应用程序的研究及开发现状 2 1.3研究目标与内容 2 1.3.1 研究目标 2 1.3.2 研究主要内容 2 第2章 Android程序设计相关技术概述 4 2.1 XUL界面布局 4 2.2 Android的Activity组件 4 2.3 SQLite数据库 5 2.4 XMPP协议 5 2.5 Android 2D图形编程 5 2.6 MVC模式简介 5 第3章 系统的分析与实现 7 3.1系统分析 7 3.1.1 系统功能分析 7 3.1.2 系统流程分析 8 3.1.3 系统数据流分析 9 3.2 系统数据库设计 9 3.2.1 系统E-R图 9 3.2.2 数据库表设计 10 3.3 面向对象的系统设计 10 3.3.1 系统文件组织结构 10 3.3.1 用例的设计 11 3.3.2 类的设计 12 3.3.3 系统交互模式的设计 12 第4章 模块的实现 15 4.1 MVC分层结构 16 4.2 总体控制模块 17 4.3 数据存储模块 18 4.4 数据传输模块 20 4.5 对局模块 22 4.6 XML界面布局模块 24 4.7 系统中关键技术的应用及实现 24 4.7.1 SQLite3的应用 24 4.7.2 XML界面设计 25 4.7.3 cnChess的2D图像编程 25 4.7.4 对弈过程中双方棋盘上棋子的同步 27 4.7.5 XMPP数据传输 27 4.7.6 走棋规则的判断 28 第5章 结束语 30 5.1 后续研究展望 30 参考文献 31 致 谢 32 第1章 绪论 1.1问题的提出 随着3G移动网络应用的推广,手机游戏的规模、复杂程度日益增强;其技术手段、设计思想、系统体系结构都发生了深刻的变化。手机操作系统正朝着高处理能力、多功能、智能化的方向发展。近年来,网络文化市场发展很快,随着互联网的迅速普及、宽带的接入社区和家庭,我国网络游戏市场发展迅速并进入了一个高速增长期,并已经创造了较大的产值,带动了相关产业的发展。 如今网络上的提供免费中国象棋游戏,大多数是单机版的,界面单一,功能单一。本系统将实现在网络上对战的中国象棋功能;还对在下棋界面美化,以及下棋中可能出现的意外进行了处理。这样中国象棋休闲游戏将不在是一个功能单一界面枯燥的游戏,而是一个较完善的休闲游戏。 在国内外Android手机应用开发如火如荼、日益盛行的大背景下,本人决定开发一款界面友好、操作简单,支持双人联网对局、数据记录、智能规则判断的手机休闲游戏。 1.2相关研究综述 近年来,国内外的专家学者以及一线的开发人员从理论、 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 、技术等不同的角度对Android手机操作系统进行了一定的研究。本小节将从Android手机操作系统的发展历程、研究现状、程序开发设计简介四个方面分析总结国内外的相关研究结果。 1.2.1 Android手机操作系统的发展历程 Android是Google于2007年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 表1.1 Android手机操作系统的发展阶段 发展阶段 阶段特征 2007.11.5 Android平台发布 2008.9.22 T-Mobile 2009年1季度 G1销售100万台 2009.3 MWC华为发布Android手机,Moto,三星,LG计划2009年下半年推出Android手机 2009 获得Orange,Vodafone,O2,Telefonica支持 2009 进军上网本 1.2.2 国内外关于Android手机应用程序的研究及开发现状 Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或GPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。2010年1月,Google开始发表自家品牌手机电话的Nexus One,目前最好的是Android2.1。 1.3研究目标与内容 1.3.1 研究目标 本项目主要研究的目标分为:程序设计思想实践改进目标、Android平台手机开发技术的研究目标以及对XMPP网络传输协议的使用与研究目标。 (1)运用面向对象的编程思想及RUP统一过程,对cnChess中国象棋手机游戏的系统结构、过程、功能等要素进行可视化的描述,为Android程序设计的可视化提供方法、技术上的支持,为系统的理论模型和软件建模提供参照。 (2)本系统中使用了多种基于Android平台的软件开发技术,根据要实现的系统功能,系统需要使用到的技术及技术研究的目标主要有: 手机游戏用户界面的人性化、个性化界面布局,给用户以良好的游戏体验; 移动设备上的图形编程,提供流畅靓丽的游戏过程界面; 使用文件、SQLite等数据存储方式,提供游戏配置保存,游戏过程保存、游戏过程回放、游戏结果记录等功能,方便用户查看; (3)使用XMPP即时通讯协议传输数据,提供即时聊天的以及在线探测的功能,实现游戏的实时性。 1.3.2 研究主要内容 项目研究的内容主要有以下四大块: 第一部分是手机游戏的界面设计和背景音效的设计。和PC上的游戏开发有些许不同,手机游戏更加的注重用户体验,一个人性化的、时尚靓丽的游戏界面和优美个性化的音效设计是一个成功的手机游戏要达到的基本要求。 第二部分是手机之间的通信模块设计。3G时代,手机通信受流量的限制很大,所以必须尽可能的使用简洁的通信协议,减少数据的流量,减少用户的通讯资费;再者,双人对局这样的在线游戏,必须体现其即时性,在一方因为电话打入或其他原因导致游戏挂起或掉线时,另一方能及时得知道对方的状态,以便做出处理。另外,为了增加游戏的互动性,项目提供了即时聊天的功能。 第三部分是对局智能程序的设计。在没有朋友在线的情况下,可以和设计好的AI(Artificial Intelligence)算法进行游戏。人工智能程序设计是一项对算法要求很高的程序设计,特别是在手机这种硬件资源紧缺的环境中,更是需要一个高效的算法来提供强大的AI对局支持。 第四部分是逻辑控制模块的设计。当有紧急事件(如电话打入,电池没电等)发生时,需全局模块对当前的游戏状态进行保存或退出等处理,并发送相关信息给对局的伙伴;用户通过触摸屏进行走棋,棋子的走动规则由软件进行智能规则判断;对局结束,软件将对对局的过程及结果使用与国际接轨的棋谱记录格式(PGN,FEN)进行记录,在对局结束后,用户可用软件读入PGN格式的对局过程文件,进行战局的回放。 软件采用面向对象的编程思想进行构思设计,使用UML设计软件的模型,采用了部分GoF的设计模式进行编码与开发。 第2章 Android程序设计相关技术概述 Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次: 图2.1 Android系统架构 2.1 XUL界面布局 XUL 是一种基于 XML 的语言,因此需要对 XML(特别是 XML 名称空间)很熟悉。XUL是英文“XML User Interface Language”的首字母缩写。顾名思义,它是一种应用XML来描述使用者界面的标示语言。 2.2 Android的Activity组件 Activity,一般代表手机屏幕的一屏,相当于浏览器的一个页面。在Activity中添加view,实现应用界面和用户交互。一个应用程序一般由多个Activity构成,这些Activity之间可互相跳转,可进行页面间的数据传递。每个Activity都有自己的生命周期。 2.3 SQLite数据库 在Android平台上,集成了一个嵌入式关系型数据库—SQLite。SQLite是支持结构化查询的轻量级数据库,能很好得适应于移动设备的应用。 Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。 2.4 XMPP协议 1. 什么是XMPP XMPP(可扩展消息处理现场协议)的前身是Jabber,一个开源形式组织产生的网络即时通信协议。具有即时信息传输以及在线现场探测的功能。 2. XMPP的基本网络结构 XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。 3. XMPP通过TCP传输的数据 XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。XMPP的核心部分就是一个在网络上分片断发送XML的流协议,这个流协议是XMPP的即时通讯指令的传递基础。 2.5 Android 2D图形编程 1、Simple Graphics in View:就是直接使用Android已经实现的一些画图操作,比如说images,shapes,colors,pre-defined animation等等。这种方式只能画静态或者极为简单的2D图画,对于实时性很强的动画,高品质的游戏都是没法实现的。2、Canvas:首先我们要明白这个Canvas是一个2D的概念,是在Skia中定义的。也就是说在这个方式下还是说的画2D图形。 2.6 MVC模式简介 整个系统采用了MVC模式进行设计。MVC模式是一种流行的软件设计模式,它把系统分为3个模块:模型(Model)、视图(View)和控制器(Controller)。 各个模块的功能说明参见表2.1 表2.1 MVC的三个模块 MVC模块 描述 模型 代表应用程序状态和业务逻辑 视图 提供可交互界面,向客户显示模型数据 控制器 响应客户的请求,根据客户的请求来操纵模型,并把模型的响应结果经由视图展现给客户 各个模块之间的相互作用如图2.2所示。采用MVC模式有很多好处:一是能将显示、逻辑和数据分开,某一方面的改变不会影响另一方面;其次是可以在不更改视图显示的情况下,更改控制器,以达到更改视图与用户交互的响应模式的目的。 图2.2 MVC模型图 第3章 系统的分析与实现 游戏对用户界面的要求较高,需达到人性化:美观大方、便于操作,个性化:游戏界面时尚靓丽、别具一格,最好能做到自定义皮肤之类的。本游戏是使用即时通讯协议进行通信的,所以,实时的游戏效果、即时聊天以及在线探测是必须做到用户体验良好的。数据存储方面,需存储游戏的配置信息、对局的胜负信息、对局的过程信息。 3.1系统分析 本系统的定位是:cnChess中国象棋手机游戏是运行在Android开源手机操作系统平台上的支持双人联网对战的一款手机游戏。 由于对国际国内3G移动应用的前景看好,另外也对游戏开发有很大的兴趣,决定开发一款基于Android手机操作系统的中国象棋手机游戏。 结合当前移动开发的形式,初步构想之后,定下“基于Android手机操作系统的中国象棋游戏应用”应该是这样一款休闲游戏:以3G方式连入互联网;支持双人之间的游戏互动;支持即使聊天以及在线探测;支持游戏过程记录及回放;支持人机对战;游戏界面布局人性化、个性化;支持紧急事件处理(如电话打入、电池没电等)。可能的话,进行Wi-Fi编程,实现“局域网”对局。 3.1.1 系统功能分析 本系统的基本功能主要有三大块: · 即时聊天:方便玩家的交流学习; · 象棋对弈:游戏的联网互动以及即时性,是本程序与一般的象棋游戏的不同; · 战绩统计:用于统计玩家的对弈胜负情况。 详细的系统功能分析图如图3-1所示。 图3-1 cnChess系统功能结构图 本系统的执行流程较简单,进入系统后有五个选项:联网对局;XMPP设置;查看胜负情况;查看开发者信息及用户帮助信息;退出游戏。在联网对局前,XMPP连接设置必须是已经配置好的,否则无法连接jabber服务器,不能进入对局界面。 系统主要的输入输出及模块间的调用情况用IPO图表示如图3-2: 图3-2 cnChess IPO图(输入一处理一输出图) 3.1.2 系统流程分析 系统流程分析是软件工程图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。本系统采用XMPP协议进行网络的连接、数据的交换。站在用户的角度来看,用户之间的信息交流是端对端的;但是站在程序设计开发者的角度来看,数据其实是要经过jabber服务器的。 从设计开发者的角度描述系统的数据交互模式,如图3-3。 图3-3 系统交互模式图 3.1.3 系统数据流分析 cnChess手机游戏系统需要储存的主要数据有XMPP网络连接的配置信息以及走棋的胜负信息。系统的数据流图如图3-4所示。 图3-4 系统数据流图 3.2 系统数据库设计 3.2.1 系统E-R图 系统使用SQLite轻量级数据库进行数据的储存和管理。用户可根据自己的需要进行XMPP网络连接的配置以及胜负情况的查看和清空。系统的E-R图如图3-5所示。 图3-5 系统E-R图 3.2.2 数据库表设计 本程序采用轻量级数据库SQLite存储管理数据,数据库名称为Datas.db 。 Datas.db数据库含有两张表,两张表的名称以及字段属性等定义如下:scoreTable(id,winning,falling,peace),对局得分表主要用来储存对局的胜负信息;settingsTable(id,host,port,service,partnered,userID,userPWD),网络连接配置表主要用来储存XMPP网络连接配置。 3.3 面向对象的系统设计 本系统使用面向对象的开发思想、UML建模方法、MVC三层架构、GoF的部分设计模式编码设计开发,便于后续的软件扩展。下面将从系统文件组织结构,系统用例图,系统类图以及系统三个角度对系统进行设计方面的说明。 3.3.1 系统文件组织结构 一个Android程序由Android Library、src、Referenced Libraries、res、AndroidManifest.xml组成。其中Android Library为Android系统类库,src内为程序员的代码包,Reserenced Libraries为第三方开发包,res为程序所要用到的资源(如图片,音视频文档,界面布局xml文档等)存放的文件夹,AndroidManifest.xml为程序的主配置声明及版本说明文件。本系统的简要文件组织结构如图3-6所示。 图3-6 项目文件组织结构 3.3.1 用例的设计 系统的用例主要有三大类:游戏逻辑及流程控制类,走棋及聊天类,网络连接类。以下为系统的详细用例图,各用例作用范围及相互间的关系如图3-7所示。 图3-7 系统用例图 3.3.2 类的设计 根据系统用例图,站在类的功能角度进行分析设计,cnChess程序的类主要分以下五种:界面显示类、逻辑及流程控制类、数据管理类、网络连接类、对弈控制类。各种类的Java类主要功能说明如下: 界面显示类:主要用来实现游戏的UI界面布局以及屏幕的刷新等功能,如SettingsDialog、ViewScore、ChatDialog等类; 数据管理类:为保持数据的安全性、完整性及一致性,所有的类必须通过数据管理类进行数据的存取,如SettingsManager、DataManager等类; 逻辑及流程控制类:主要负责协调各模块之间的调用及流程的跳转,传递模块之间的信息等功能,如cnChess、startGame等类; 网络连接类:用于连接网络,对需要发送的数据进行加密解密,发送数据,状态监听,数据接收等功能,如ConnectDial、ogXMPPClient等类; 对弈控制类:主要为对弈过程中各面向对象的抽象模型,也进行必要的数据处理,如BoardView、Umpire等类。 3.3.3 系统交互模式的设计 序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。 序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达[10]。用例常常被细化为一个或者更多的序列图。序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。当把这个系统移交给另一个人或组织时,这个文档很有用。 用例viewScore的顺序图简要的说明了用户是如何与SQLite数据库进行交互,看到自己的战绩这一事件的: 1、 用户按下查看战绩的按钮(view score),系统得知这一指令,发出数据请求给SQLite管理类,数据库管理类查询到数据后,将数据返回给系统查看类,系统查看类将战绩数据显示在手机屏幕上; 2、 用户发出清除战绩请求,逻辑控制类将这一请求信息发送给SQLite管理类,管理类清除数据后,将结构返回给逻辑控制类,逻辑控制类发送屏幕更新指令,用户看到屏幕显示数据已更新。 图3-8 viewScore 用例的顺序图 网络连接设置用例Setting的顺序图: 1、 用户发出查看连接配置请求,SettingsDialog显示类请求数据库管理类去数据库读取数据,数据库管理类读取到数据后,将数据返回给显示类,显示类显示用户请求的配置信息; 2、 用户输入新的XMPP网络连接配置信息,SettingsDialog显示类请求添加或者更新网络配置信息,SQLite管理类获知更新请求后更新数据库。 图3-9 Setting用例的顺序图 游戏对局用例startGame涉及到相关的类较多,如图3-10所示: 1、 用户按下开始游戏键,系统提示是否要联网游戏,用户确认“是”后,系统读取XMPP配置信息建立手机到服务器端的网络连接;若用户确认“否”,则系统退回到游戏主界面(此时系统未连上互联网); 2、 用户选择聊天菜单,startGame进行相应的逻辑处理,启动聊天对话框;用户输入聊天信息,按下发送按钮,消息发送到对方的服务器帐号,与此同时,在用户自己的聊天记录单里面显示; 3、 用户进行走动棋子或者悔棋等请求信息,startGame接收到按键事件或者触摸屏事件后,将相应的信息转交XMPPClient进行信息的发送;XMPPClient还负责客户端监听,当有对方有走棋等信息发送过来时,XMPPClient将分辨是否为cnChess程序格式的信息并进行解码解包之后将信息转交给startGame,startGame对转交过来的信息进行处理。 图3-10 startGame用例的顺序图 第4章 模块的实现 需求分析阶段回答了目标软件系统“要做什么”的问题,而软件设计阶段则需要回答目标软件系统“要怎么做”以实现用户需求的问题[12]。 在cnChess手机游戏系统的软件设计建模阶段,主要是以需求分析阶段的成果(需求分析模型)作为输入,进行系统的体系结构设计、类的详细设计和用例实现设计。总体来说,cnChess系统的软件设计建模阶段是对分析建模结果的进一步精化和调整。 图4-1 cnChess的项目开发流程 项目要实现的模块主要有四部分。 第一部分是手机游戏的界面设计和背景音效的设计。和PC上的游戏开发有些许不同,手机游戏更加的注重用户体验,一个人性化的、时尚靓丽的游戏界面和优美个性化的音效设计是一个成功的手机游戏要达到的基本要求。 第二部分是手机之间的通信模块设计。3G时代,手机通信受流量的限制很大,所以必须尽可能的使用简洁的通信协议,减少数据的流量,减少用户的通讯资费;再者,双人对局这样的在线游戏,必须体现其即时性,在一方因为电话打入或其他原因导致游戏挂起或掉线时,另一方能及时得知道对方的状态,以便做出处理。另外,为了增加游戏的互动性,项目提供了即时聊天的功能。 第三部分是对局智能程序的设计。在没有朋友在线的情况下,可以和设计好的AI(Artificial Intelligence)算法进行游戏。人工智能程序设计是一项对算法要求很高的程序设计,特别是在手机这种硬件资源紧缺的环境中,更是需要一个高效的算法来提供强大的AI对局支持。 第四部分是逻辑控制模块的设计。当有紧急事件(如电话打入,电池没电等)发生时,需全局模块对当前的游戏状态进行保存或退出等处理,并发送相关信息给对局的伙伴;用户通过触摸屏进行走棋,棋子的走动规则由软件进行智能规则判断;对局结束,软件将对对局的过程及结果使用与国际接轨的棋谱记录格式(PGN,FEN)进行记录,在对局结束后,用户可用软件读入PGN格式的对局过程文件,进行战局的回放。 软件采用面向对象的编程思想进行构思设计,使用UML设计软件的模型,采用了部分GoF的设计模式进行编码与开发。 4.1 MVC分层结构 在cnChess系统的设计建模阶段,是回答如何实现系统功能的问题,主要完成软件体系结构设计和详细设计两个方面的工作。 软件体系结构设计是高级设计,主要包括以下步骤: (1)体系结构的层次划分。 (2)体系结构的子系统划分。 (3)建立三层体系结构与类之间的映射关系。 详细设计中首先要详细描述每一个类,包括类的属性、操作、类之间的关系,同时对系统用例进行设计。详细设计包括如下内容: (1)设计实体类的属性和操作。 (2)设计边界类的功能组成和操作。 (3)设计类之间的关系。 (4)构造设计类图模型。 (5)借助交互图实现用例设计。 (6)数据模型的设计。 (7)实现模型的设计。 (8)设计建模的评审。 本系统使用MVC设计模式[13]进行体系的基础架构,如图4-2所示: 图4-2 cnChess的MVC三层架构  Android应用程序的一般架构为:Views + Content Providers + Resource Manager + Notification Manager + Activity Manager ,你可以选择其中的若干项作为你应用的架构元素。 系统的项目文件组织结构如图4-3所示,其中: 源代码包中的View类和Dialog类以及res资源文件夹中的所有XML文件,充当视图的角色,负责手机界面的显示和与用户的交互;cnChess,startGame两个类充当“C”的角色,重要控制程序界面的切换和信息的分发;BoardView,Umpire,XMPPClient分别是棋盘类、裁判类、信息收发类,充当模型的角色,分别负责棋盘模型的显示与更新、裁判对象模型的建立、即时信息通信模型的建立; DataManager,SettingsManager两个类负责与SQLite数据库的沟通,分别负责战绩胜负次数、XMPP联接设置的数据存取。 图4-3 cnChess的文件组织结构 4.2 总体控制模块 软件体系结构是软件在设计构成上基本的、可供设计选择的形态和总体结构,本质上,它是对软件需求的一种抽象解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。在引入了体系结构的软件开发之后,cnChess中国象棋手机游戏系统的构造过程变为“问题定义—软件需求—软件体系结构设计—软件详细设计—软件实现”。本系统的总体控制模块主要有cnChess以及startGame。 cnChess:用于控制各子模块(Activity)的启动、休眠以及消亡; 例如,当用户按下“开始游戏”按钮时,startGame内置的监听器startGame.setOnClickListener将获取onClick事件并调用showStartGame()函数,启动对弈相关的模块。 startGame属于对局子模块,用于协调对局过程中对各中系统信息进行逻辑判断、消息分发,控制、调用、协调各二级子模块的运行。 依据上一阶段中UML设计出来的模型及相关的文档,对系统的各类进行细化后,得出系统各模块的类以及各类之间的相互关联关系。 下面将详细介绍各类模块作用以及类之间的相互关联性。 关于总体流程控制类cnChess,如图4-4所示,各类相关作用简介如下: 负责启动游戏,控制协调各模块的运行;startGame:负责启动对局模块以及对局时候各对局子模块的相互协调;SettingsDialog:负责游戏网络配置的UI显示以及数据获取、数据储存等;ViewScore:负责游戏胜负战绩的UI显示以及管理功能;companyInfo:负责游戏开发商信息的显示以及用户帮助文档的UI显示;ExitGameDialog:负责结束游戏相关进程、线程,保存相关游戏数据,安全退出游戏。 图4-4 总体控制类及相关类的联系图图 4-5 对弈流程控制模块与网络通信模块联系图 关于对弈流程控制类startGame与通信模块的组织联系图,如图4-5所示。对弈流程控制主要作用为协调各对弈子模块的通信与调用。与对弈流程控制有关的模块有网络连接部分中建立连接以及数据发送接收的类,负责数据存取的Manager类,用于聊天的chatDialog窗体类,走棋、棋盘同步更新模块的类、请求回复窗体类等。 4.3 数据存储模块 数据存储模块有四个类,分为储存控制类和界面信息显示两种,说明如下:类SettingsDialog、viewScore用来做用户UI界面输入设置等信息的获取和查看、清除对局胜负情况;类DataManager与SettingsManager是数据管理类。 下面就DataManager()函数简要介绍一个数据管理类是怎样实现的: 1) 变量设置:管理类中有属性为private的变量,存取都必须通过函数内置的get、set函数进行; 2) 判断表是否存在:管理数据,必须先是有你需要管理的表,isScoreTable()函数通过系统API中的query()函数对系统表sysobject进行查询,若系统表中没有所要查找的对象,则需建立scoreTable表; 3) 表的创建与删除、记录的添删修:数据的存取都是通过系统API接口中的execSQL()函数来完成的,例如:当需要删除scoreTable这张表,语句为db.execSQL(sql),db为所要操作的数据库的句柄,sql为所要执行的语句。 Manager的这两个类有些类似JavaBean,是为了保证数据的安全、完整、一致,其他类必须通过数据库Manager类才能与SQLite数据库进行沟通,完成对数据的操作。 实践编程难点在类Umpire、Manager,由分析设计的结果生成各模块的详细编码单元以及各类的模型。Umpire是裁判员类,主要用于判断棋子走动是否规则、对弈的胜负结果。系统源码包中,带Manager后缀的都是属于数据管理相关类。Manager类主要调用系统API如android.database. * 或者android.database.sqlite. * 进行数据的存取。如图4-6所示,各类作用相关作用如下: 图4-6 查看战绩、连接设置以及走棋模块的类图 本程序采用轻量级数据库SQLite[3]存储管理数据,数据库名称为Datas.db 。 Datas.db数据库含有两张表,scoreTable表用来储存对局的胜负信息,settingsTable用来储存XMPP网络连接配置。 表4-1 scoreTable存储对局的胜负信息: 字段 含义 数据类型 是否为空 初始值 id 记录的编号 Int 否 0 winning 获胜次数 Int 否 0 falling 失败次数 Int 否 0 peace 平局次数 Int 否 0 表4-2 settingsTable存储XMPP的连接设置: 字段 含义 数据类型 是否为空 初始值 id(PK) 记录的编号 Int 否 0 host 服务器地址 String 否 Talk.google.com port 服务器端口 Int 否 5222 service Jabber服务提供商 String 否 Gmail.com partnerID 对手gmail帐号 String 否 example@gmail.com userID 用户gmail帐号 String 否 example2@gmail.com userPWD 用户密码 String 是 123456 4.4 数据传输模块 数据传输模块有两个类,很多算法及技术难点都需要用到第三方开发包smack.jar中的XMPP组件及其API完成[9],模块说明如下: ConnectDialog用来连接或者断开XMPP网络连接,当连接上服务器后,启动对局模块,进行游戏; XMPPClite接受startGame模块转交过来的数据,在信息分类、格式化、加密后,发送给网络中的jabber服务器;同时,监听服务器发送过来的cnChess格式化数据,解密、解包分类后转交给startGame模块;另外,也监听对手的在线状态等信息,以便在发生突发情况时进行相应的处理,从而真正的达到即时游戏的效果。 系统在进行联网对局前,必须对网络连接进行有效的配置。游戏的网络连接配置UI界面以及各配置项的说明如图4-7及表4-3所示,配置信息的数据存储流程图如图4-7所示。 图4-7 SettingsDialog对话框输入项 游戏连接配置对话框各输入项的详细定义如表4-3所列。 表4-3 XMPP设置界面各项目详细定义 标识 名称 数据类型 数据值有效范围 输入媒体 安全保密条件 UserID 用户Gmail帐号 String *@gmail.com SettingsDialog SQLite限制访问 Password 用户密码 String * SettingsDialog SQLite限制访问、MD5加密 PartnerID 对方Gmail帐号 String *@gmail.com SettingsDialog SQLite限制访问 Host 提供IM服务的主机 String talk.google.com SettingsDialog SQLite限制访问 Port 提供IM服务主机的端口号 Int 5222 SettingsDialog SQLite限制访问 Service 所用的服务类型 String gmail.com SettingsDialog SQLite限制访问 系统使用SQLite数据库,若无游戏配置信息或者配置信息无效,系统将提示进行正确的网络连接配置,并对正确的配置进行存储。配置信息的存储数据流程图如图4-8所示。 图4-8 XMPP网络连接设置数据流程图 为保证用户手机之间数据传输中各类数据的区分,系统在数据发送前需对各类数据信息进行一定的格式化,待数据信息到达对方的手机后,系统再进行相应的解包。另外,为保证数据在网络间传输的安全性,在手机发送信息至互联网这一段使用了smack.jar类库中的加密函数。 图4-9 Chat聊天模块数据流程图 4.5 对局模块 对局模块是本系统设计编码中较复杂,内容比较多的一个模块。主要有以下子模块: 1) startGame:用来启动对局、网络连接以及对各局子模块进行协调; 2) Umpire:裁判类,定义走棋规则,用来控制走棋的顺序以及对弈双方的同步,判定对局的胜负; 3) AnswerDialog:回话类,回答对方的对局请求等信息; 4) ChatDialog:对话聊天类,走棋的过程中,用来启动对话框以和对方进行即时聊天; 5) RestorePoint:用来记录游戏过程中的一定走棋记录,创建还原点,以方便悔棋时,棋盘上棋子的回滚; 6) companyInfo:用来显示开发商信息以及用户帮助信息的UI类; 7) ErrorDialog:用来显示游戏过程中出现的错误信息; 8) ExitGameDialog:用来结束游戏进程,包括游戏相关的各线程 ; 9) smack.jar:第三方开发包,提供XMPP服务接口,数据加密等功能。 对局模块主要处理的是用户之间对弈的过程同步、规则控制等信息。 用户走棋,产生走棋信息,系统捕获到按键事件或者触摸屏事件后,会进行数据的分类以及格式化,然后加密发送到对手的手机中。 在接收到对手发来的走棋信息时,系统则先通过smack.jar类库进行解密,然后解包,进行走棋信息的逻辑处理,最后通过界面显示类呈现于用户的手机屏幕。 图4-10 走棋模块数据流程图 对弈过程中,可打开聊天框与对手进行即时聊天。聊天框如图4-11所示。对局的棋盘界面以及菜单的设置显示如图4-12所示。 图4-11 chatDialog对话框输入项 图4-12 startGame对弈界面 4.6 XML界面布局模块 cnChess系统使用XML进行游戏界面的基础布局[1],主要有以下布局界面,各界面的布局内容以及与各Java类的映射关系为: 1) answerdialogbox.xml:回复对话框的界面布局; 2) chatdialogbox.xml:聊天对话框的界面布局; 3) companyinfo.xml:显示开发商信息以及用户帮助文件; 4) errordialog.xml:错误信息提示框布局; 5) exitgame.xml:退出游戏提示框; 6) main.xml:游戏主界面布局; 7) settings.xml:游戏XMPP连接配置界面布局; 8) startgame.xml:游戏对局界面布局; 9) sure_connect.xml:确认进行网络连接对话框布局; 10) toconfirm.xml:确认回复对方请求的对话框布局; 11) viewscore.xml:查看战绩界面布局。 图4-13为res文件夹下layout(界面布局资源)的文件组织结构。 图4-13 XML界面布局文件 4.7 系统中关键技术的应用及实现 4.7.1 SQLite3的应用 SQLite是集成在Android平台上的嵌入式关系型数据库。它是一个支持结构化存储、查询轻量级开源数据库。SQLite3支持的数据类型有NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s)等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 在Android系统,为我们提供了一个名为SQLiteOpenHelper的类,该类用于对数据库版本进行管理,该类是一个抽象类,必须继承它才能使用。 为了实现对数据库版本进行管理,SQLiteOpenHelper类有两种重要的方法,分别是onCreate(SQLiteDatabasedb)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。 在项目的实现过程中:DataManager.java和SettingsManager.java两个类都是通过调用Android的SQLiteOpenHelper类对SQLite数据库进行数据库以及其中的数据进行创建、修改和删除。 4.7.2 XML界面设计 在本系统的软件设计开发过程中,xml的布局是最先开始的。 Android的界面[1],需要写在res/layout的xml里面,一般情况下一个xml对应一个界面。做android的界面有点像写html(连注释代码的方式都一样),要先给android定框架,然后再在框架里面放控件,android提供了几种框架,AbsoluteLayout,LinearLayout,RelativeLayout,TableLayout,FrameLayout,FrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角 LinearLayout:里面可以放多个控件,但是一行只能放一个控件 TableLayout:这个要和TableRow配合使用,很像html里面的table AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置 RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置(界面的布局好像还可以直接引用一些view,如ScrollView等)框架的xml 如下: android:id="@+id/widget36" android:layout_width="fill_parent" android:layout_height="fill_parent" 上面代码中以android:开头,表示控件的属性,fill_parent是系统自带参数,表示最大的宽或高,还有一个wrap_content,表示刚好合适的宽或高。除了上面的三个属性外,还有一些其他的属性,如android:background=“#FF0000FF”,设置框架的背景色,androidrientation=“vertical”用来设置这个框架里面的走向属性。 框架弄好,就可以在里面添加控件了,控件的基本写法也和框架一样,后面用到的时候将具体研究各个控件的细节。 4.7.3 cnChess的2D图像编程 本系统的2D图像编程主要用于对局模块中棋盘、棋子、选择框、提示信息等图像元素的更新。 SGL编程是本系统设计中的难点,在系统的开发过程中主要使用了Android系统类库中的2D图形库接口[2],达到了预期的效果,实现了项目的目标。 通过使用Android提供的2D画图API,程序员能一笔一划或者使用Graphic来画所需要的东西了,要画什么要显示什么都完全可控。这种方式根据环境还分为两种:一种就是使用普通View的canvas画图,还有一种就是使用专门的SurfaceView的canvas来画图。两种的主要是区别就是可以在SurfaceView中定义一个专门的线程来完成画图工作,应用程序不需要等待View的刷图,提高性能。前面一种适合处理量比较小,帧率比较小的动画,比如说象棋游戏之类的;而后一种主要用在游戏,高品质动画方面的画图。 本系统使用的是前一种图像处理方式,系统棋盘棋子以及对局信息的绘制、棋盘的显示更新等图像处理部分主要使用了系统API中的android.graphics.* 类库进行处理。 在本项目中,BoardView类主要是做棋盘模型的构建、更行以及图像方面的处理工作。下面简要介绍下在本项目的开发中,是如何构建棋盘模型以及如何实现棋盘图形的重绘。 1) 模型构建:棋盘的模型实际上是一个int[10][9]的二维数组,二维数组中每一个数值代表棋盘上相应十行九列交叉点上的棋子代码。象棋一共32个棋子,每个棋子的代码从1至32不等,棋盘网格线上没有棋子的交叉点代码为0。对弈模块初次启动或者对弈完一局后,将进行棋盘的数学模型以及手机屏幕上棋盘、棋子的初始化,初始化后的棋盘数学模型如图4-14所示。 图4-14 棋盘数学模型 当棋子走动时,棋盘的数学模型里的各项数据随之更新,模型里面的数据每一次的更新,都将使函数调用系统2D函数库中的invalidate()方法,此方法通知系统屏幕已过期无效,需重新取数据绘制屏幕。系统取更新后的棋盘模型中的数据,并调用相关方法把棋盘重新绘制出来。 2) 棋盘、棋子的重绘:本游戏使用到的Android平台的系统2D函数库中的drawLine()、drawCircle()、drawText()三种线条绘制、填充方法。 一个棋盘数学模型的图像绘制过程是这样的:设置桌布底色、在桌布上绘制黑色十行九列的横线和纵线以及棋盘边框、在四个炮的初始点绘制十字架以及“楚河汉界”字样、根据棋盘数学模型在棋盘上相应位置绘制棋子圆圈并填充黑色或者红色、根据棋盘数学模型中棋子的代码绘制出棋子上相应的中文文字、根据触摸屏返回的择点所属区域绘制棋子选择框。至此,完成了一次重绘过程。每一次数学模型的改动,都将使系统进行一次棋盘、棋子的重绘。 图4-15 BoardView中的画面绘制函数 4.7.4 对弈过程中双方棋盘上棋子的同步 当是轮到己方走棋时:己方进行一步合法的走棋后,将由startGame对局控制类将所走棋子的源位置和目标位置通过信息收发类XMPPClient类把m,n,sx,sy发送给对方,对方收到这四个参数后,将改变棋盘模型数组中棋子编号的位置,并调用boardView类中的棋盘更新函数updateChessBoard()进行棋盘画面的重绘; 对方根据更新后棋盘模型数组由裁判函数判别他自己是否死棋; 若未分胜负,则交换己方和对方的角色,继续上面两步的循环,直到一方由裁判判负或选择菜单中的“认输”、“求和”选项。 4.7.5 XMPP数据传输 XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测,最终要实现不同即时通信系统间的互通[5]。 本系统采用开源的XMPP开源即时通信协议进行网络数据的传输。Google Talk是基于XMPP协议,而且它还允许其它IM自由使用XMPP协议。如此一来,任何IM供应商在遵循XMPP协议的前提下,都可以随时与Google Talk实现免费连接[15]。 XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。 cnChess的网络通信模块使用第三方开源开发包smack.jar提供的XMPP接口进行网络部分的开发,较好的实现了XMPP连接的建立,状态的改变控制,消息的即时传递等网络数据的传送。 4.7.6 走棋规则的判断 “棋子选择框”(或称选择域)是以棋盘上每条横线和竖线的交点为中心,并以棋子的直径为边长的正方形,一般情况下,棋子选择框颜色为绿色,当选定己方棋子时,棋子选择框变为蓝色; 选定每个选择域的时候,startGame里的onTouch()函数将返回选择域的中心点作为域的代表点; 根据返回的代表点和棋盘基点(棋盘最左上角点,可确定棋盘在手机屏幕上的位置),可以算出该代表点是棋盘模型数组int[10][9]中的哪个元素(十行九列的整形数组记录了棋盘上每个横竖交叉点是否有棋子,有的话,记录棋子编号,没有记录为0); 走一步棋,需有选定棋子的源位置和目标位置,分别记录为m,n,sx,sy; 根据选定的棋子的源m,n可在棋盘模型数组中查处其为哪类哪个棋子,根据棋子的类别,由Umpire裁判类判断走棋是否合法,合法则允许走棋; 例如,如果选定了“车”,并且选择了目标位置,则系统将调用裁判函数中车的走棋规则函数,进行走棋合法性的判别,走棋合法时,将执行走棋函数,改变该棋子编号在棋盘模型数组中的位置; 对方每走一步,裁判对象根据对方传过来的参数m,n,sx,sy会对对局的胜负进行判断,当某方将或帅被吃,或无路可走的时候,即判定该方为负。 图4-16 车的规则控制代码 举例说明下“车”的规则控制代码,如图4-16所示。 走一步棋,需要有一个原点(orgX, orgY)和目标点(tgtX, tgtY)。 首先,判断车是走纵线还是走横线,以此确定需要检测的是哪条走棋线路; 其次,判断车走的方向,以此确定检测的方向是从哪边开始的; 然后,在原点orgY和目标点tgtY之间共有orgY – tgtY各交叉点,检查在这些交叉点上有没有棋子,若有,则记录棋子个数g; 最后根据原点和目标点之间棋子个数g是否为0判断车在原点和目标点之间是否有棋子间隔。若有棋子间隔,则theRuleOfChe()函数返回fault,系统判定这步棋不能走;若间隔数g为0,则规则函数返回true。系统进行棋盘数据模型的更新以及棋盘界面的重绘。至此,完成了“车”这个对象的一步走棋。 第5章 结束语 5.1 后续研究展望 论文提出了Android平台上中国象棋手机游戏系统的软件建模方法,并以模型为指导开发了cnChess手机有机游戏系统,一定程度上验证了建模方法的正确性和构建模型的有效性。根据目前的研究进展,未来的研究工作将从以下几个方面进一步加强: (1)手机游戏系统模型的进一步改进,包括RUP在对局控制模块、网络信息传输模块上的应用及模型的进一步细化和完善,使模型在迭代、循环、重复的过程中不断改进。 (2)借鉴国内外最新的人工智能技术,在已有工作的基础上进行cnChess系统的迭代增量开发,加入AI智能对局模块等,使用户在离线或者无对手的情况下能够进行人机对战,更好得满足用户的需求。 (3)加强系统的个性化研究。系统目前还没有强大的数据统计功能,用户的帐号与战绩信息的管理、即时聊天的记录、对弈过程的记录这些大量重要的信息还没有全部被保存下来。 提供一个智能化,个性化,具备强大数据记录、统计及分析的中国象棋手机游戏是下一步的工作目标。 参考文献 [1]Nicolas Gramlich.Android Programming. Addison-Wesley[M].2008. [2]Jerome (J. F.) DiMarzio.Android™ A Programmer’s Guide.McGraw-Hill Osborne Media.1 edition (July 30, 2008) [3]高煥堂.Google Android 應用框架原理與程式設計 36技[M].台北:MISOO设计中心,2009. [4]Erich Gamma.Design Patterns:Elements of Reusable Object-Oriented software[M].Addison-Wesley. [5]Chris Haseman. Android Essentials.Apress.Jul 2008 [6]Reto Meier.Professional Android Application Development.WROX.2009 [7]IAIN SHIGEOKA.Instant Messaging in Java-The Jabber Protocols[J].Manning Publications Co. 2009 [8]Android SDK1.1r Docs. Google. 2009 [9]Smack开发文档.SUN SYSTEM INC. 2004. [10]吴炜煜. 面向对象分析设计与编程. 北京:清华大学出版社,007. [11]张海藩.软件工程导论[M].北京:清华大学出版社,2003. [12]张友生.软件体系结构[M].北京:清华大学出版社,2004. [13]余雪丽.软件体系结构及实例分析[M].北京:科学出版社,2002. [14]Karl E. Wiegers. 软件需求. 北京:清华大学出版社,2004. [15]eoe-Android. 【eoe特刊】第九期:android2.0专题特刊发布. 北京:eoe-Android, 2009 致 谢 写到这里,论文已经告一个段落了,时光茬再,四年的生活在这篇论文完成之后很快就要结束了。回想这四年的大学生活,点点滴滴犹在心头。正是有许许多多老师同学朋友的关心,我才能顺利地完成学业;正是家人在这生活中的鼓励和支持,我才能有今天。所以这里我要向所有的老师和我的家人以及所有关心爱护过我的人们表示我最真挚的谢愈。 感谢我的老师们,在课堂上、在工作室以及在毕业设计及毕业论文的撰写期间,您对我们学习上的悉心指导,对我们在学术方面的严格要求让我了解到了作为一个本科生应该具备的基本技能和做事的心态。 感谢四年来与我一起风风雨雨走过的同学以及曾经的和现在的室友们,感谢你们在大学四年这段时间对我的支持和帮助。在大学的四年里,我们一起互相学习,互相讨论,相处得很融洽,也很愉快。感谢他们四年来的帮助和支持,他们每个人身上都有我要学习的优点,特别是他们身上持之以恒和孜孜不倦的学习态度,带动我,鼓励我,使我没有虚度这四年的学习时间。点点滴滴,铭记心头,谢谢你们。 最后,感谢我所有的家人和朋友在我此期间给予我的鼓励、支持和关环。 谢谢大家! 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 二〇一〇年九月二十日   毕业设计(论文)使用授权声明 本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 二〇一〇年九月二十日 基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。 毕业论文的基本教学要求是: 1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。 毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。 毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。 撰写意义:1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。 2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。 3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。 论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。 按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。 按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。 按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。 另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类: 1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。 写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的 总结 性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际 问题 的能力。从文体而言,它也是对某一专业领域的现实问题或 理论 问题进行 科学 研究 探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。 首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。 教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。 第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展 。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。 第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 年 月 日   毕业设计(论文)使用授权声明 本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 年 月 日 基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。 毕业论文的基本教学要求是: 1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。 毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。 毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。 撰写意义:1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。 2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。 3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。 论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。 按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。 按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。 按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。 另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类: 1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。 写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的 总结 性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际 问题 的能力。从文体而言,它也是对某一专业领域的现实问题或 理论 问题进行 科学 研究 探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。 首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。 教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。 第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展 。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。 第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 PAGE 52 _1172039396.doc _1333312258.vsd 参与者引用�
本文档为【基于Android操作系统的中国象棋手机游戏学位论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
不系舟红枫
从教近30年,经验丰富,教学水平较高
格式:doc
大小:864KB
软件:Word
页数:59
分类:工学
上传时间:2019-01-23
浏览量:11