毕业设计(论文)-面向Android平台的计算机二级答题系统的设计与开发.doc_第1页
毕业设计(论文)-面向Android平台的计算机二级答题系统的设计与开发.doc_第2页
毕业设计(论文)-面向Android平台的计算机二级答题系统的设计与开发.doc_第3页
毕业设计(论文)-面向Android平台的计算机二级答题系统的设计与开发.doc_第4页
毕业设计(论文)-面向Android平台的计算机二级答题系统的设计与开发.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

盐城师范学院毕业设计盐 城 师 范 学 院毕业设计面向Android平台的计算机二级答题系统的设计与开发学生姓名 学 院 信息工程学院 专 业 数字媒体技术 班 级 12(2) 学 号 指导教师 年 月 日面向Android平台的计算机二级答题系统的设计与开发摘 要 互联网和移动设备正处在高速发展阶段,智能手机成为人们获取信息的主要工具。以往大学生主要使用书本或者电脑来获取计算机二级考试的学习资料,但是传统的学习资料具有题量小且无法随身携带等缺点。本设计是面向Android平台开发的计算机二级答题系统,跨越时空限制,让大学生可以充分利用碎片化时间,实现移动学习。本系统主要利用MyEclipse进行开发、Java语言编写相应代码、SQLite数据库存储数据。根据计算机二级考试内容,本人设计了选择题和非选择题两种题型,其中选择题有顺序练习、随机练习、我的测验等模块,大学生可以根据需求自行选择作答题型和答题模式,进行针对性的练习,从而提高学习效率。【关键词】计算机二级答题系统;SQLite数据库;Android;Java;MyEclipse全套设计加扣 3012250582Development and design of National ComputerRank Examination Grade II answering system for Android platformAbstractThe Internet and mobile devices are in the stage of rapid development, smart phones become the main tool for people to get information.In the past,college students mainly used books or computers to obtain the study materials of the Computer Examination Band II,but the traditional learning materials have the disadvantages of small quantity questions and can not carry on.This design is developed for the Android platform of the computer grade exam system, it acrosses time and space distance, so that college students can make full use of the fragmentation of time and realize mobile learning.This system mainly uses MyEclipse platform as a development tool,Java language write the corresponding code, SQLite database store data.According the contents of the Computer Examination Band II, I design the choice and non choice of two types of questions, the choice question has the sequential practice, the random practice, my test and other functions,college students can choose the type of the answer questions and answer mode according to the demand, so that they can carry out targeted exercises and improve the efficiency of learning. Key words computer two level answering system; SQLite database;Android;Java;MyEclipse 目 录1 绪论11.1 研究背景及意义11.2 研究的应用前景11.3 研究的思路与内容12 开发工具与相关技术介绍12.1 Java语言介绍12.2 Android介绍22.3数据库介绍22.4开发工具介绍22.4.1 MyEclipse开发工具22.4.2 SQLite Database Browser23 需求分析和总体设计33.1系统可行性分析33.1.1 技术可行性33.1.2 运行的可行性33.1.3 经济的可行性33.2 总体设计33.2.1 设计流程33.2.3 设计原则53.2.4 功能模块设计53.2.5 数据库设计54详细设计与编码实现64.1 数据库导入与显示64.1.1本地数据库的导入64.1.2 显示数据库内容74.2 用户功能模块设计84.2.1 顺序练习模块设计94.2.2 随机练习模块设计94.2.3 分类练习功能设计104.2.4 我的收藏功能模块设计104.2.5 自我测验功能模块设计114.2.6 非选择题练习功能模块设计115 系统测试125.1 测试环境125.2 界面测试125.3 功能测试125.3.1 顺序练习与分类练习测试125.3.2自我测验测试135.3.3 我的收藏测试145.3.4 随机练习测试155.3.5 非选择题练习测试156 总结166.1系统小结166.2 个人小结17参考文献18致 谢191 绪论1.1 研究背景及意义目前,安卓操作系统在智能手机市场上占有的份额超过百分之七十,使用安卓智能手机及其应用程序的人越来越多。但是对于大部分的学生来说,手机上可利用的学习型软件还比较匮乏。本系统就是一款学习软件,其主要目的是帮助大学生通过计算机二级考试。计算机二级考试对于现在的大学生来说具有十分重要的意义,尤其在当前激烈的就业环境下,取得计算机二级证书可为毕业找工作添砖加瓦。以往学生主要通过书本或者电脑来获取这方面的知识,但是当大学生在等车或乘公交车时,使用书本或电脑就很不方便,而智能手机的出现就可以帮助他们把这些碎片化的时间充分利用起来,提高自己学习效率。1.2 研究的应用前景 安卓智能手机及其应用程序现在市场中占有很重要的位置。本软件是以安卓为平台进行开发的,目的是帮助大学生顺利通过计算机二级考试,学生只要随身携带手机就可以练习题目,快速熟悉相关知识点,不受时间与空间的限制。本软件的出现顺应了时代发展且具有鲜明的教育性,因此它具有很好的发展前景。1.3 研究的思路与内容 本课题设计的答题系统,主要帮助在校大学生熟悉计算机二级考试的题型和相关知识点。根据计算机二级考试的内容,本系统把题型分为选择题和非选择题两种,其中选择题分为顺序练习、分类练习、自我测验、我的收藏、随机练习等五个模块,让大学生可以根据自己的需要来选择作答题型和答题形式,满足了他们各个方面的需求。本系统的研究包含了软件需求、前景、数据库等分析模块,利用Android平台下的SDK和MyEclipse开发环境,以及嵌入式数据库SQLite开发接口1,实现了各种功能。2 开发工具与相关技术介绍2.1 Java语言介绍 Java与C+语言相似,都是面向对象的。由于Java语言结构比较简单、运行效率高、安全性好,发展势头比较猛烈,十分受程序员的喜爱。Java语言具有很好的应用前景且应用广泛,如电子政务,手机游戏、个人PC、数据中心、移动应用等2。从这些方面可以看出它具有显著的优势和广阔的前景。2.2 Android介绍 近几年来,Android系统发展迅猛,在全球市场占有率达一半以上,而且因为Android系统开源免费的特点3,很多人投入到安卓手机应用的开发中。Android平台包括了操作系统、中间件和核心应用等4。Android系统具有界面美观,通知栏丰富,程序体验较好等特点,深受广大用户的推崇。2.3数据库介绍数据库是用来存储数据的,用户之间可以共享。本次开发使用的是SQLite数据库,SQLite与其它数据库相比,它比较轻型,系统占有量也比较低。SQLite主要目的是嵌入,在很多嵌入式产品中广泛使用。它在系统内存消耗与软件整体简单设计方面有一定的长处5。SQLite在大多数的操作系统上都可以使用,不仅仅是电脑操作系统,在如安卓,苹果等移动设备的操作系统上也能够很好的运行6。所以本次开发把它作为数据存储的工具。2.4开发工具介绍2.4.1 MyEclipse开发工具 MyEclipse是在Eclipse的基础上开发的功能强大的企业级集成开发工具。可以开发Java程序和移动应用等,它支持多项功能,应用十分广泛。要想把MyEclipse作为Android应用程序的开发工具,首先要安装相关插件,并且配置运行环境。2.4.2 SQLite Database BrowserSQLite Database Browser是一款针对SQLite数据库开发的一个可视化数据库浏览器,它可以帮助用户以最简单、最便捷的方式创建、编辑、处理SQLite数据库,并且生成db文件,在安卓应用程序开发的过程中可以对其加以利用。3 需求分析和总体设计3.1系统可行性分析3.1.1 技术可行性 本答题系统是基于Android平台的手机应用程序,是利用MyEclipse作为开发工具,以及SQLite Database Browser来设计数据库和实现数据的存储。从开发工具来看,无论前者还是后者都是当前安卓开发的主流。因此,本次开发从技术上来看是可行的。3.1.2 运行的可行性 本系统是在安卓智能手机上运行的,随着社会的进步,安卓手机越来越普遍,几乎发展到人手一部,并且安卓系统在市场占有率达百分之七十以上,所以从运行的平台来看是可行的的。从用户群来看,本设计针对的主要是大学生,大学生需要通过计算机二级考试,拿到证书才能顺利毕业,所以从这一点看来开发的目标群体庞大,而且不会缺少使用对象。3.1.3 经济的可行性 计算机二级答题系统基于本地数据利用MyEclipse开发,不需要使用大型服务器,也没有太多复杂的结构。它只是为了方便用户在没有条件携带书本的情况下,利用手机来复习相关知识点和熟悉题型。本次设计只要有开发工具以及相对应开发环境就可以。因此,从经济来看,本次开发不需要太多的金钱来支撑。3.2 总体设计3.2.1 设计流程(1)系统分析:分析软件系统结构,知道将要开发软件主体功能。(2)市场调查:调查用户目前对此类软件的需求,并且上网下载并查看类似软件。(3)需求分析:根据调查的结果,来判定系统需要哪些模块,以方便用户操作。(4)界面设计:查看当前市场类似软件的界面布局,查找素材,设计界面。(5)代码编写:编写代码,实现相关功能。(6)软件测试:检查软件是否可以正常运行,是否与预期目标一致。3.2.2 概要设计 计算机二级答题系统是一款旨在帮助大学生通过计算机二级考试的学习性软件。它的主要功能就是答题,有选择题和非选择题两种题型,其中选择题分为顺序练习、随机练习、分类练习、我的收藏、自我测验等五个模块,方便大学生在任何时间、任何地点都可以练习题目来加强对知识点的记忆,以达到通过考试的目的。 数据库在本系统的地位比较重要,所有的功能都要基于数据库来实现。经过分析研究主要有选择题表和和非选择题表。选择题表中有题目ID,问题,答案A,答案B,答案C,答案D,正确答案,解析等信息。非选择题表中有题目ID,问题,参考答案等信息。总体框架图如图3-1所示:图3-1 总体框架图3.2.3 设计原则 实用性原则:计算机二级答题系统从用户的各方面的需求出发,满足做题的主要功能外,还分为几个模块,使软件操作起来更简便,简洁明了。界面美观与用户友好原则:人机界面是用户与学习资源间信息交互的主要通道7,并且使用者喜欢简洁的界面、方便的操作。所以,本系统在界面设计上以简洁为主,在操作上以方便用户为主。可扩展性:本系统的设计充分考虑了未来用户的需求,如果用户有需求,开发者可以及时更新数据库,满足用户对题量的需求。3.2.4 功能模块设计 该答题系统的题型有选择题和非选择题两种,其中选择题分为顺序练习、随机练习、分类练习、我的收藏、自我测验等五种模式,各部分主要内容如下:顺序练习:在这个模块下,用户可以按照题库中题目的顺序来做题,方便用户学习各个知识点和记忆。分类练习:该功能是在顺序练习的基础上,把题库中的题目按照考试科目来分类,用户可以根据自己的需要来选择何种科目学习。随机练习:此模块是把题库中的题目打乱顺序,随机抽取15题来方便用户作答。用此模块可以检验用户是否真的记住知识点而不是题目的答案顺序。自我测验:此功能是模拟真实考场,从题库中选取40道题目,用来检测用户的学习情况。我的收藏:在顺序练习和分类练习中有收藏选项,用户在此功能下可以查看自己收藏的题目,来强化记忆。非选择题练习:在此模式下,用户可以进行非选择题的练习,本人根据二级考试的题型把其分为填空题,程序改错题,程序编程题,操作题等。3.2.5 数据库设计在本人所设计的计算机二级答题题软件中,其题库是基于本地的数据库,属于非联网性,数据的结构比较简单,根据题目的编号可以定位到具体的题目列表。根据题型分为选择题目表和非选择题目表,而选择题中的分类练习、顺序练习、随机练习用的是同一数据库,而我测验用的是另外一套由真实考场的真题组成的题库,但是它们的数据结构类似。所以它们的结构表和E-R图如下:表3-1 选择题目表字段名类型是否主键描述IDinteger是题目编号questiontext否问题描述answerAtext否选项AanswerBtext否选项BanswerCtext否选项CanswerDtext否选项Danswernumeric否正确答案explaintiontext否解析 表3-1 非选择题目表 字段名类型是否主键描述IDinteger是题目编号questiontext否问题描述answernumeric否正确答案E-R图如下:题目问题描述题目编号正确答案问题描述题目题目编号选项B选项A选项C选项D解析正确答案 图3-2 选择题E-R图 图3-2 非选择题E-R图4详细设计与编码实现4.1 数据库导入与显示 由于本次设计的非联网性,数据库需要在开发时使用SQLite Database Browser来创建以及实现数据的输入。创建好数据库和输入数据后,生成db文件,放到工程文件目录的assest文件夹下,以便在后面开发的中使用。4.1.1本地数据库的导入 数据库的导入是接下来开发的首要环节,只有把数据库成功导入到应用中,接下来的步骤才能够实现。数据库导入主要代码如下: String db_PATH = ; /数据库在手机中存放的路径 String db_NAME = question.db; /定义名称 if() = false) /检查数据库文件是否存在 /检查目录的存在 if () /如果文件目录不存在,新建该目录 try InputStream is = getBaseContext().getAssets().open(DB_NAME); /得到assets目录下之前准备好的数据库作为输 入流 OutputStream os = new FileOutputStream(db_PATH + db_NAME); /输出流 while(length = is.read() 0) os.write(); /文件写入 /关闭文件流4.1.2 显示数据库内容 (1) 数据库内容获取的实现:利用Cursor的一个子类把从数据库中查询到的结果包装在其中并返回,可以实现对数据库的访问。而后,借助Cursor把数据库中的每条信息添加进Question类型的的list列表中,返回list列表中的值,实现数据库中内容的获取。数据库内容获取的方法DBseverice的关键性代码如下: List list = new ArrayList(); /新建存放数据的list列表 Cursor cursor = db.rawQuery(select * from question, null); /把查询到每行的结果赋值给cursor Question question = new Question(); /定义一个Question类的对象,Question类包括 数据表中各个字段名 question.answerA = cursor.getString(cursor.getColumnIndex(answerA); /利用getColumnIndex返回answerA这一列的值 /返回answerA、answerB等其它列的值 list.add(question); /把此条信息添加进list列表中 (2) 数据库中内容显示的实现:利用上面创建好的DBseverice,获取数据库中的内容,把数据库中内容赋值给list列表。再利用findViewById实例化显示题目界面中的各个控件,获取该控件,再使用setText显示list列表中内容,关键性代码如下 DBseverice dbService = new DBseverice(); /调用DBseverice方法,获取数据 final List list = dbService.getQuestions(); /调用DBseverice中getQuestions()方法,把之前封装好 的内容赋值给Question类型的list列表 TextView tv_question = (TextView)findViewById(R.id.question); /从设计界面获取控件和tv_question绑定,实例化对象 /实例化界面中其他控件,如answerA等 Question q = list.get(0); /定义Question类型的对象,获得list列表中第一组元素 tv_question.setText(q.question); /显示question内容。 /显示answerA,answerB等4.2 用户功能模块设计用户点击进入系统之后,会有选择题型的菜单,用户可以根据自己需要来选择是作答选择题还是非选择题,如果用户点击选择题按钮,会转到顺序练习等功能的菜单如图4-1,如果选择非选择题,用户也可以根据自己的需要选择作答哪中题目如图4-2所示。界面的跳转利用Intent来实现,Intent是用来连接俩个不同的组件,通过它可以向安卓表达某种意图,Android会根据这种意图来选择运行何种组件。各个界面之间的跳转代码如下:Intent intent=new Intent(MainActivity.this,Order.class); /界面跳转 startActivity(intent); /启动intent 图4-1 选择题界面 图4-2 非选择题界面4.2.1 顺序练习模块设计在此模块下,用户可以根据题库中的题目顺序进行答题。点击页面的下一题按钮可以看到下一个题目;如果用户想查看自己的对错可以点击确定按钮,显示用户做题的正确与否和解析;如果用户对于当前的题目还不熟悉,可以点击收藏按钮,之后可以在我的收藏中看见它(有关收藏功能的实现见我的收藏模块)。待用户全部答完后会提示当前已是最后一题,提示是否退出,如点击退出返回主菜单,否留在当前页面,可以继续查看之前做的题目,加强记忆。下一题按钮功能的实现: if (currentcount-1) /判断当前是否为最后一题current+; /current与题号对应,用来定位到list列表哪一组 数据,当点击下一题就是加一,点击上一题减一Question q=list.get(current); /current代表当前题目的ID,也代表list列表中第 几组数据tv_question.setText(q.question); /显示q.question内容 /显示answerA,answerB等的内容 点击确定按钮,可以显示解析与对错。解析在点击确定按钮之前其内容是隐藏的,点击确定,就可以显现内容,关键性代码如下: if(list.get().answer != list.get().selectedAnswer) /判断对错 /显示对错 Tv_explaination.setVisibility(View.VISIBLE); /显示解析 4.2.2 随机练习模块设计 此模块是随机从题库来抽取15道题目给用户作答,当用户遇到一样的题目时,避免用户是只背选项,而不是记住知识点。此模块是用来检验用户做题是背答案还是记住知识点的,所以此模块没有收藏按钮。 每一种计算机语言都提供一种用来生成随机数的函数8。而Java语言就是利用Math.random()方法来产生随机数,通过此方法可以随机生成题目的ID。之后,要把生成的ID放入到一个集合中,使用此集合可以来控制在随机练习模块中的题目顺序。选取随机数代码如下: private int creatrdm() /随机数产生方法 int number = 125; /控制随机数产生的范围 List rad= new ArrayList(); /创建数组 for (int i = 0; i 125; i+) rad.add(i + 1); /为arr添加元素 for (int j = 0; j random.length; j+) /控制产生多少个随机数 int index = (int) (Math.random() * number); /产生一个随机数 randomj = (Integer) arr.get(index); /把产生的随机数放到数组中 rad.remove(index); /移除已经取过的元素 number-; /将随机数范围缩小1 return random; /返回数组4.2.3 分类练习功能设计分类练习功能是把题库中的题目分为五个科目,用户根据需要选择何种科目作答,页面显示等功能与顺序练习一致,在此不多做赘述。界面的跳转也是使用Intent机制来完成。分类界面如图4-3所示: 图4-3 分类界面4.2.4 我的收藏功能模块设计在我的收藏中,用户可以看到之前在分类练习和顺序练习模块中收藏的题目。如果用户没有收藏题目则会提示当前没有题目,请做题;如有,则会按照用户收藏的顺序依次显示题目。在界面的最下端还有移除按钮,如果不想要此题目可以点击移除。收藏功能的主要代码如下: public () /点击收藏按钮发生的事件 colleList.add(current); /把当前题号添加进colleList列表中 ShowToast(); /提示加入成功 for(int i = 0;icolleList.size();i+) /循环colleList,如果添加进的元素,之前已 经收藏过,则删除 for(int j = i+1;jcolleList.size();j+)/循环列表 if(colleList.get(i).equals(list.get(j) /判断元素是否相等 colleList.remove(i); /删除一样的元素 ;4.2.5 自我测验功能模块设计 此功能模块是用来检验用户在多次练习后是否能通过考试的,点击我的测验按钮后用户可以进入到模拟考试状态。如果用户需要交卷,则点击右上角的交卷按钮,会显示用户得了多少分,失了多少分,然后会提示是否查看错题,点击是,则可以看到自己做的错题情况。关键性代码如下: if(list.get(i).answer != list.get(i).selectedAnswer) /判断题目是否做错wrongList.add(i); /错题添加进wrongList中 /利用上面提到过的方法显示 wrongList中内容,查看错题 list.size() - wronglist.size() /获得对了多少道题目,计算得分4.2.6 非选择题练习功能模块设计此模块是进行非选择题的练习,主要有填空题、程序题改错题、程序编程题、操作题等题型。由于安卓平台一些局限性,是无法实现在手机上作答操作题,因此,用户只可以看见操作题题目和其解题步骤,熟悉解题步骤后用户可自行在电脑上操作。其他题型利用可编辑文本框EditText来实现答案的录入,点击确定按钮可以看见正确答案,根据答案来判断正确与否。由于此模块的一些功能按钮与如上所述的按钮功能一致,在此不多做赘述,界面展示如下: 图4-3 答题界面5 系统测试5.1 测试环境 本软件是在windows 7操作系统上使用MyEclipse开发的,所以测试的时候也是在此环境下进行测试。运行的平台为安卓平台,在后期测试时还需一部版本为Andriod 4.0的智能手机。5.2 界面测试 界面测试就是检验各个页面的跳转是否正常,检查页面的排版是否出错。经测试,各个界面成功跳转,排版显示正常。5.3 功能测试5.3.1 顺序练习与分类练习测试 顺序练习与分类练习操作方法类似,所以放在一起描述,测试用例表如下: 表5-1 测试表操作结果是否与预期一致点击上一题按钮成功显示上一题,上一题选择的选项也成功保存;当前是第一题时候,不发生跳转。 一致点击下一题按钮成功显示,当到达最后一题提示退出一致点击确定显示对错与解析一致点击收藏提示收藏成功一致测试如图5-1、5-2如下: 图5-1 确定与下一题按钮测试 图5-2收藏按钮测试5.3.2自我测验测试 自我检测模块(界面如图5-5)是用来检测学生水平,该模块主要测试点击提交按钮是否会正常显示分数和显示分数后能否显示错题,测试用例表如下: 表5-2测试表操作结果是否与预期一致点击交卷成功显示该用户得了多少分如图5-3,5-4一致查看分数后点击查看错题成功显示用户做错的题目如图5-5,5-6一致测试截图如下: 图5-3 自我测验界面 图5-4 交卷按钮测试 图5-5 得分测试 图5-6得分后查看错题测试 5.3.3 我的收藏测试点击我的收藏图标,便能看到用户之前收藏的题目;点击移除,可以删除当前的题目如图5-7,移除成功后,退出重进下就可以看到当前题目移除成功,没有收藏,如图5-8。 图5-7 移除按钮测试 图5-8 移除后测试5.3.4 随机练习测试 该模块主要测试点击随机练习按钮,题目会不会随机显示。经测试,题目随机出现,与上面顺序练习出现的题目顺序不一致,如图5-9所示: 图5-9 随机练习测试5.3.5 非选择题练习测试此模块主要测试题目的答案和输入的文本是否能正确显示,测试表如下:表5-3测试表操作结果是否与预期一致点击确定按钮成功显示题目的答案一致在可编辑文本框中输入文字成功显示输入内容一致图5-10 非选择题答题测试 综合以上测试,本系统的主要功能都已经基本实现,没有出现运行错误,达到预期目标。6 总结6.1系统小结 本次面向Android平台开发的计算机二级答题系统基本满足用户答题需求,如可以选择作答的题型和在选择题部分能选择作答模式。与此同时,界面和操作也很简洁,但是本系统还有许多不足之处,比如无法智能判断用户在非选择题部分所作答的题目正确与否,只能根据参考答案自行判断;因为安卓平台的一些局限性,不能在手机端作答操作题;在选择题作答模块中的自我测验部分没有计时功能,不能提醒用户做题时间;基于本地数据库开发,没有实现与互联网的连接等。这些不足在日后的工作中还有待于完善。6.2 个人小结 通过自己的不断摸索,本设计圆满完成。虽然在开发的过程中遇到很多困难,如本地数据库无法导入到手机、题目的内容不能正确显示等,但是经过自己查阅资料和询问老师及同学,最终获

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论