基于Android平台C语言自测系统.docx

上传人:b****5 文档编号:4369382 上传时间:2022-12-01 格式:DOCX 页数:50 大小:676.25KB
下载 相关 举报
基于Android平台C语言自测系统.docx_第1页
第1页 / 共50页
基于Android平台C语言自测系统.docx_第2页
第2页 / 共50页
基于Android平台C语言自测系统.docx_第3页
第3页 / 共50页
基于Android平台C语言自测系统.docx_第4页
第4页 / 共50页
基于Android平台C语言自测系统.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

基于Android平台C语言自测系统.docx

《基于Android平台C语言自测系统.docx》由会员分享,可在线阅读,更多相关《基于Android平台C语言自测系统.docx(50页珍藏版)》请在冰豆网上搜索。

基于Android平台C语言自测系统.docx

基于Android平台C语言自测系统

 

基于Android平台C语言自测系统

设计与实现

 

学院

计算机学院

专业

计算机科学与技术

(嵌入式系统方向)

班级

14010105

学号

2011040101218

姓名

彭博文

指导教师

王丹

负责教师

沈阳航空航天大学

2015年6月

摘要

C语言自测系统是帮助学生在日常的学习中巩固知识,增强C语言的能力,使学生更加方便和快捷的检测C语言的掌握情况。

本文主要说明在Android平台上,C语言自测系统软件的开发过程。

基于Android平台的C语言自测系统主要包括以下功能:

知识点练习、章节练习、顺序练习、随机练习、模拟考试、错题回顾、排除某些熟练掌握的题、C语言的经验分享、掌握情况评估。

其主要由知识点练习模块、章节练习模块、考试模块、判断模块、排除模块、评分模块、数据分析模块组成。

本自测系统采用XML语言和Java语言这两种编程语言,使用Eclipse工具和ADT插件进行系统开发。

按照软件编程中的结构化设计思想设计与开发,本管理系统的开发过程包括需求分析、总体设计、详细设计、以及编码实现和调试等步骤。

关键词:

自测系统;Android平台;C语言;学习软件;

 

TheDesignandImplementationoftheCProgrammingLanguageTestSystemBasedontheAndroidPlatform

Abstract

TheClanguagetestingsystemhelpsstudentstoconsolidateknowledgeindailystudy,enhanceClanguageabilityandmakethestudentsmoreconvenientandquickdetectionofClanguagetograspthesituation.ThisarticlefocusesonthedevelopmentprocessofClanguageselftestingsystemsoftwareontheAndroidplatform.

BasedontheAndroidplatformClanguagetestingsystemmainlyincludesthefollowingfunctions:

practiceknowledge,chapterexercises,orderedpractice,randompractice,simulatedtest,reviewthewrongquestion,excludesomeproficiencyintheproblem,Clanguageexperiencesharing,graspthesituationassessment.Itmainlyconsistsofknowledgepointpracticemodule,chapterexercisemodule,examinationmodule,judgmentmodule,exclusionmodule,scoringmodule,dataanalysismodule..

TheClanguageselftestingsystemusesXMLlanguageandJavalanguageandincludesEclipsetoolsandADTplug-insystemdevelopment.Inaccordancewiththeprogrammingsoftwarestructureddesignideaanddevelopment,thedevelopmentprocessofthemanagementsystemincludesdemandanalysis,overalldesign,detaileddesign,aswellasthecoderealizationanddebuggingsteps.

Keywords:

Selftestingsystem;Androidplatform;Cprogramminglanguage;learningsoftware;

目录

1绪论1

1.1项目背景1

1.2项目内容及要求1

1.3研究意义2

2需求分析及相关技术3

2.1需求分析3

2.1.1功能需求3

2.1.2环境需求4

2.2相关技术4

2.2.1Java语言4

2.2.2XML语言4

2.2.3Eclipse工具5

2.2.4Android系统5

3总体设计6

3.1系统主界面设计6

3.2程序整体结构6

3.3程序主流程7

4数据库设计10

4.1SQLite简介10

4.2概念模型设计10

4.3系统数据模型设计11

5详细设计13

5.1系统主界面设计13

5.2顺序练习模块15

5.3随机练习模块18

5.4知识点练习模块21

5.5章节模块24

5.6排除的题模块30

5.7我的错题模块32

5.8模拟考试模块34

5.9练习统计模块36

5.10更多模块37

6系统测试40

6.1测试方法40

6.2详细测试40

6.2.1功能测试40

6.2.2兼容性测试42

7总结43

参考文献44

致谢45

1绪论

1.1项目背景

2008年9月22日,Google公司推出了自己的开源手机平台Android,该平台主要由linux内核、中间件、用户界面和应用软件四部分组合而成,Google公司对外宣称这是第一个为移动终端打造的真正开放和完整的移动平台。

Android系统具有许多优点:

应用程序运行速度快,开发限制少,平台开放;程序多任务性能优秀,切换迅速等优点。

在这之后,国内科技公司在Android基础上进行深度修剪,形成了自己的操作系统,如熟知的小米的MIUI,魅族的FlyMe等操作系统像春笋般推出来。

2014年Android占据全球智能手机市场份额的90%,并在本年第一季度Android平台已占所有移动广告流量来源的42.8%,首度超越IOS,2015年谷歌开发的操作系统Android已经到了5.2版本,全世界采用这款系统的设备数量已经达到10亿。

学习是学生所必须面对的问题,而C语言作为大学生基础课,特别是对于计算机专业的学生而言,C语言是入门的编程语言,扮演着非常重要的角色。

如果有一个APP可以方便学生利用空闲的时间来练习,温故而知新,时而学习之,相信学习的效果会更加明显,掌握知识更牢固,是提高学习成绩的一个好办法。

随着智能手机的普及,越来越多的人通过手机进行学习各种知识,然而光学习而不进行有效的自我检测,则很难了解自己对于相关知识的掌握程度。

开发一款基于Android手机的C语言自测系统,目的在于使学习C语言的学生平时就可以自我检测学习的情况。

1.2项目内容及要求

基于Android平台开发一个C语言自测系统软件是一项方便学生学习工作,同时方便学生充分利用空闲时间复习所学知识,提供多样的学习方式,取得良好的学习成绩。

所要开发的C语言自测系统主要内容包括:

知识点练习、章节练习、顺序练习、随机练习、排除的题、我的错题、模拟考试、练习统计、C语言相关考研题、面试题、编程经验的分享。

知识点练习是根据把题分为四种类型,基础理论、基础技能、编程经验、基础算法分别进行练习;章节练习是根据把题分为5个章节,基本概念、数组、结构体、指针、文件这5个章节分别进行练习;顺序练习是根据题目的编号依次练习;随机练习是根据在整个题库范围内一个随机数进行练习;排除的题是根据平时练习的时候是否排除一道十分熟悉的题;我的错题是根据最近这次是否做错某道题自动归入我的错题中;练习统计是根据平时的练习情况,反馈给一个分析结果;模拟考试根据自己定义的选题策略在题库里面挑选一部分题进行模拟考试,考试完成之后会有一个模拟考试结果;C语言相关考研题,面试题,编程经验的分享是一个和C语言相关信息的浏览。

系统设计要求如下:

(1)熟悉Android开发平台,掌握Android开发平台的特点;

(2)学习Java编程语言,掌握该语言开发软件的特点;

(3)熟练掌握Android应用程序开发相关技术;

(4)利用Java进行系统应用程序的开发;

(5)完成程序在模拟器上运行,然后在Android手机上运行。

1.3研究意义

现如今已是信息时代,手机的发展有了质的变化,手机的功能已经超出的了人们的想象,现在的智能手机中,Android系统的手机占了很大一部分,约为80%。

近十年是手机发展的飞速时期,智能手机普及率很高,品牌上由当初的诺基亚、摩托罗拉、索尼爱立信领衔到现在的三星、苹果、lenovo、华为为主;从操作系统来说由一开始的没有到塞班和WindowsMobile过渡到现在的Android、Windows8和IOS,移动互联早已翻天覆地,逐渐改变我们的生活习惯、学习方式、甚至会影响人们的心智发展。

Android手机迅猛的发展,学习软件市场方更是兴未艾,各种学习软件像雨后春笋一般,人们使用手机的时间呈指数增长,影响人们的生活方式和学习方式,这款基于Android平台开发一款C语言自测系统软件是主要是针对需要了解和想要提高C语言基础知识的人,方便他们在利用空闲的时间做点练习,然后检验学习的成果。

2需求分析及相关技术

2.1需求分析

2.1.1功能需求

主要功能需求如下:

(1)进入主界面,布局中包括以下功能按钮:

知识点练习、章节练习、顺序练习、随机练习、排除的题、我的错题、模拟考试、练习统计、更多(考研题、面试题、经验分享),总共9项功能。

(2)点击主界面上的知识点练习,会跳转到另一个界面,包括:

基础理论、基础技能、编程技巧、基础算法共4个功能,单击其中的一个就会进入到对应的知识点练习题当中。

(3)点击主界面的章节练习,会跳转到另一个界面,包括:

基础概念、数组、结构体、指针、文件共5个章节的练习,单击其中的一个就会进入到对应的章节练习题当中。

(4)点击主界面的顺序练习,会根据题库里面的题目编号依次做练习。

(5)点击主界面的随机练习,会根据题库里面的题目的总量,产生一个在这个范围里面的随机整数作为题目的编号,选择出这个编号对应的题做练习。

(6)点击主界面的排除的题,会根据在练习的过程中,你是否标记了这个题为排除的题,如果标记了这个题是排除的题,使用这个功能就会显示排除的题是一些什么题目,方便自己了解学习的情况。

(7)点击主界面的我的错题,会根据在练习的过程中,最近一次练习此题是否做对来标记是否添加到错题里面,如果做对了,之前的错题就会被移除我的错题中,如果下一次做错了,又会把此题添加。

(8)点击主界面的模拟考试,会根据题库里面的题目的所属知识点选择10道题作为练习题。

(9)点击主界面的练习统计,会根据记录在数据库当中的练习情况,统计对了多少题,以及正确率。

(10)点击主界面的更多,会展示C语言的考研题、面试题、经验分享等信息。

2.1.2环境需求

硬件需求:

(1)一台可以运行开发工具Eclipse和安卓虚拟机的电脑。

(2)Android真机三台,用于最终的测试,系统要求在Android4.0以上。

软件需求:

(1)开发工具Eclipse和ADT插件。

(2)使用Java语言的JDK和开发Android的SDK。

2.2相关技术

C语言自测系统采用了Java语言书写逻辑代码,使用XML语言实现布局从而控制前端界面。

使用的开发工具是Eclipse和ADT的合成版本,利用AVD模拟器和USB真机进行调试运行。

2.2.1Java语言

Java是可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE、JavaEE、JavaME)的总称。

Java技术有卓越的通用性、高效性、平台移植性和安全性,广泛应用在个人电脑、数据中心、游戏控制台、科学超级计算机、移动电话与互联网,而且同时拥有全球最大的开发者社群。

在全球云计算和移动互联网的产业环境下,Java具备了更明显优势和广阔前景。

2.2.2XML语言

XML代表ExtensibleMarkupLanguage的缩写,译为可扩展的标记语言。

XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。

它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。

程序的前台页面是用XML开发,XML的诸多优势可以很好的对页面进行布局,达到想要的结果。

2.2.3Eclipse工具

Eclipse是著名的跨平台的自由集成开发环境(IDE)。

最初主要用Java语言开发,通过安装不同的插件,Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。

许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse最初由OTI与IBM两家公司的开发组创建,起始于1999年4月。

IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。

近期还有包括Oracle在内的许多大公司也加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集成平台,使用者只需下载各种语言的插件即可。

2.2.4Android系统

在Android开发过程中,会用到Android自己写好的工具包,即Android的SDK(SoftwareDevelopmentKit),它被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。

在开发中可以用到的很多类,例如用于显示的View类,用于数据存储的ListView类,还有用于页面布局的Widget类等等,都是Android新定义或重写了Java中的类。

Android是一个完整的系统,它的开发需要用到很多的技术,在一个完整的项目中,会用到XML进行页面布局和配置信息,用到Java写后台的逻辑代码,当然也会用到它自己的特有的技术,它就是很多技术的一个融合。

3总体设计

3.1系统主界面设计

设计的C语言自测系统主界面采用表格的样式,色块布局,表格样式是为了给用户较好的体验感,色块布局是为了冲击眼球减少疲劳感,另外绚丽、大方的主界面会吸引用户的眼球,主界面是否美观会直接影响了用户的心情。

C语言自测系统的主界面的主要部分如图3.1所示:

A区为顺序练习按钮,实现顺序练习功能;B区随机练习按钮,实现随机练习功能;C区为知识点练习按钮;D区为章节练习按钮;E区为排除题按钮;F区是我的错题按钮;G区为模拟考试按钮;H区为练习统计按钮;I区为更多按钮。

如果想退出应用,双击返回键也可以退出应用。

图3.1系统主界面设计图

3.2程序整体结构

C语言自测系统主要由九部分组成,分别为:

知识点练习、章节练习、顺序练习、随机练习、排除的题、我的错题、模拟考试、练习统计、更多。

每个模块在组织形式上是相互独立的,在内容上是有一定联系的。

知识点练习、章节练习、顺序练、随机练习、模拟考试的题目都是出自一个数据库当中,然后根据不同的功能挑选一些符合要求的题目,排除的题和我的错题是根据练习过程中的练习情况,挑选符合条件的题目,练习统计是根据在使用应用的时候,根据练习的情况,反馈出一个结果,更多则是扩展应用的功能,了解一下C语言在考研和面试过程中都会涉及的知识点以及考核的方式。

系统的功能模块图如图3.2所示:

图3.2系统功能模块图

3.3程序主流程

用户打开应用之后,进入到软件主界面,由主界面所给的信息可知该自测系统包含九个模块,分别是:

知识点练习、章节练习、顺序练习、随机练习、排除的题、我的错题、模拟考试、练习统计、更多。

用户点击知识点练习,跳转到另一个页面,会出现四个选择:

基础理论、基础技能、编程技巧、基础算法这四个选择,单击其中的任意一个,就会根据选择获取对应的数据,然后逐条填充到做题的界面,供练习用。

用户点击章节练习,跳转到另一个界面,会出现五个选择:

基本概念、数组、结构体、指针、文件,这五个章节,其中把C语言中像二进制转换、程序的三大结构(顺序结构、循环结构、选择结构),基本的输入输出都归结为基本概念里面,剩下的四个章节和C语言的划分是对应的。

用户点击顺序练习,会直接进入做题界面按照的题目编号,从第一个题到最后一个题开始练习,在练习的过程中,可以选择排除正在练习的道题。

用户点击随机练习,会直接进入做题的界面,产生一个在零到数据库大小的整数,把这个整数当做题目编号来选择一道题目练习。

用户点击排除的题,排除的题主要功能是当用户在使用过程中,感觉某道题已经很熟悉,不需要练习的时候,可以按排除此题按钮,排除后的这道题不会出现在以后的任何一个练习中和模拟考试当中,也可以恢复某一个排除的题。

用户点击我的错题,是根据练习过程中,是否做对此题来判断是否将这道题标记为做错的题,判断的原则是最近的一次练习是否最对,比如说之前做某一道题很多次,但是这次练习中做对了,就会把这道题标记成错题,如果下一次练习的时候,做错了这道题,又会将这道题标识成错题。

用户点击模拟考试,模拟考试会有一个五分钟的定时器,计时时间到了,会自动提交试卷,在界面的右上角有一个交卷按钮,如果点击交卷的话,会弹出一个对话框,告诉这次模拟考试一共完成了多少道题,错的题是哪些,得分多少。

用户点击练习统计,统计是根据在练习的时候做了多少次练习,其中错了多少,对了多少,算出一个正确率之后,根据正确率的值,判断出使用者的水平,如果低于60%,会弹出一个提示框,显示“你是菜鸟,继续努力”,如果高于80%,就会提示“你是牛人”,在60%~80%之间,就会告诉“登峰造极,一步之遥”。

用户点击更多,在这里提供了四个选择,考研题、面试题、编程经验、注意事项,考研题是展示C语言的考研题,面试题是提供面试过程中涉及的C语言知识,编程经验是一些大牛们分享的编程过程中总结出来的一些经验,注意事项是告诉一些在编写C语言程序的过程中容易出错的地方。

系统的主流程图如图3.3所示。

图3.3系统主流程图

4数据库设计

4.1SQLite简介

Android平台的一大好处就是内置了一个轻量级的关系数据库,即SQLite数据库。

SQLite数据库遵守了原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)等基本要素。

它占用资源低,只需要几百K的内存空间就够了,这种特性让它在嵌入式设备中应用广泛,与此同时,它不仅能够支持Windows/Linux/Unix等主流的操作系统,还能够跟很多的程序语言相结合。

C语言自测系统采用的是SQLite数据库。

4.2概念模型设计

E-R(EntityRelationshipDiagram)图也称实体-联系图。

概念模型是对信息世界的建模,所以模型可以方便、准确的表示信息世界,E-R图就是描述现实世界的概念模型。

C语言自测系统是由一个练习和考试系统组成,有许多信息需要存储。

分析用户需求可知,本系统主要由三个实体构成,分别是题目实体、错题实体、排除题实体。

题目实体中要包含以下属性:

题目编号、章节号、所属知识点号、答案A、答案B、答案C、答案D、正确答案、答案解释。

错题实体中要包含以下属性:

题目号、练习的次数、错题次数。

排除题实体中要包含以下属性:

题目号、排除题标识。

系统E-R图如图4.1所示。

其中题目实体和错题是一一对应关系,题目中的题目号是主键,错题中的主键是题目号参照题目中的题目号,题目实体和排除题是一一对应关系,题目中的题目号是主键,排除题中的主键是题目号参照题目中的题目号。

图4.1系统ER图

4.3系统数据模型设计

SQLite是Android自带的数据库,Android的SDK中提供了一个类SQLiteOpenHelper,使用SQLiteOpenHelper类对象,调用onCreate()方法打开数据库,就可以很容易实现常用的数据库的增、删、改、查等功能。

根据ER图可知,需要建立三张表就能达到设计需求,从而满足用户的需要。

题目表exerciseTable,用来存放题目的一些基本信息,其中所属知识点用四个不同的字符分别代表四类知识点,1代表基础理论、2代表基本技能、3代表编程技巧、4代表基本算法。

其中章节号用五个不同的字符分别代表五个章节,1代表基本概念、2代表字符串、3代表数组、4代表指针、5代表文件。

题目表属性见表4.1。

表4.1题目表

描述

字段名

类型

备注

题目编号

KeyId

integer

主键

章节号

chapterId

text

非空

描述

字段名

类型

备注

所属知识点

belongWhat

varchar(4)

非空

题目内容

exerciseContent

text

非空

答案A

answerA

text

非空

答案B

answerB

text

非空

答案C

answerC

text

非空

答案D

answerD

text

非空

正确答案

rightAnswer

text

非空

解释

explianation

text

非空

为了完成查看排除题功能,因此需要一个排除题表excludeTable来标识那些题是排除的,其中excludeId是参考题目表中的keyId的,其属性见表4.2。

表4.2排除题表

描述

字段名

类型

备注

题目编号

excludeId

integer

主键

排除题标识

excludeFlag

varchar(4)

非空

为了完成错题回顾和练习统计两个功能,要建立一张名为wrongTable的数据表,错题表用来存储错题信息,其中wrongId是参考题目表中的keyId的,其属性见表4.3。

表4.3错题表

描述

字段名

数据类型

备注

题目编号

wrongId

integer

主键

练习次数

practiceTime

integer

非空

错误次数

wrongTime

integer

非空

错误标识

wrongFlag

text

非空

5详细设计

C语言自测系统由主界面展开,主要功能模块有:

知识点练习、章节练习、顺序练习、随机练习、排除的题、我的错题、模拟考试、练习统计、更多。

以下是这个C语言自测系统的详细的分析设计。

5.1系统主界面设计

系统主界面是整个APP的入口,其流程图如图5.1所示。

主要是由九个普通按钮组成,知识点练习、章节练习、顺序练习、随机练习、排除的题、我的错题、模拟考试、练习统计这八个按钮分成四行两列,更多按钮是独占一行。

用户可以根据自己的想要的功能进行选择操作。

主界面如图5.1所示,其中各个控件的属性及功能见表5.1。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1