Andriod毕业实习报告

毕业实习报告

说明:

1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实习答辩、实习成绩评定、给出实习评语等工作。

2、 实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于学院各专业),各专业教研室和指导教师可根据本专业特点及实习内容做适当的调整,学生须按指导教师下达的实习报告格式认真进行填写。

3、 实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。

4、 指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、实习答辩的情况等。

5、 学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格处理。实习答辩小组应由2人及以上教师组成,其中校内指导教师必须参加,否则视作无效答辩。

6、 实习报告正文字数应不少于5000字,实习日记字数不少于200字/天。

7、 实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可由指导教师统一给出(自主实习除外)。学生自主实习的,可根据实习的情况自行填写以上内容。

8、 自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实习报告一起装订,作为参加实习答辩和评定成绩的依据。


毕业实习成绩评定表

学生姓名:        学号:    班级:     


毕业实习答辩记录表

指导教师评语


一、实习目的与任务

毕业实习是计算机软件工程专业学生在完成基础课学习和部分专业课学习阶段后的一个极其重要的实践教学环节。其目的是通过实地参与项目开发和听取专业报告等多种方式,使学生进一步了解本专业及相关领域的发展现状,以及相关产品的研发过程和管理手段。

具体的任务包括:

1.实习方向:计算机软件

2.主流Android安装

3. Android的基本操作

4.了解Android 的基础知识,这些包含了界面的布局,数据库的使用等;

5.掌握Sqlite数据库和Eclipse等软件的安装方法

6.学习体会IT企业规范化、专业化、标准化、规模化系统项目流程;

7.学习体验课堂理论知识在实际工程项目中的应用,积累项目实战经验;

8.感受IT企业对员工知识结构、技术技能、综合素质的要求,体验企业的文化氛围;

9.加速由学生向员工的身份转变,增强同学的就业能力和信心。

二、实习地点

*************

三、实习内容和要求

本次实习以开发给定的实训项目为主线,结合具体专业知识在IT企业系统集成过程中的实际运用,归纳出各种类型的“关键知识点”和技能要求,安排成系统的实习内容供学生们具体实践和练习。

1.实习内容由针对各项“关键知识点”的讲座、案例分析和项目实践三部分内容构成。在时间安排上主要以项目实践为主。

2.案例分析采用的内容全部来自IT企业多年来承担完成的实际计算机网络系统集成项目,学生将有机会体验真实IT项目的开发要求与各种规范。

实习指导老师由经验丰富的技术管理人员、项目经理、资深技术人员担任。

本次生产实习任务,是由我校与北大青鸟培训公司共同合作完成的。其间,要求同学们做到如下几点:

(1)学生遵守学校教学纪律,按时参加生产实习的教学活动。在实习单位进行实习期间遵守实习单位的劳动纪律。(具体来讲,首先要遵守时间,即不要出现迟到、早退等现象。)

(2)学生要主动阅读浏览技术书籍、资料,掌握各种操作技能,提高和培养解决问题的能力。

(3)学生应对软件开发的过程进行系统的实践训练,包括需求分析、系统设计、程序语言(编码)、软件测试与管理。

(4)听课笔记、实习日记齐全,并撰写认识实习报告。实习报告正文字数应不少于5000字,实习日记字数不少于200字/天。

四、实习总结及分析

4.1 课题意义

毕业实习是为了培养我们综合运用所学知识和动手实践经验,分析和解决工程技术问题的能力,提高我们在理论计算、查阅资料、运用相关理论进行软硬件设计等方面的能力。这个课题是基于Android的一些基本知识,运用Eclipse和Sqlite数据库开发的火车车次查询系统。

由于全国客运列车提速,快速列车、旅游列车等多种车型投入运行,主要干线列车夕发朝至,朝发夕归列车运行时刻随之调整,广大旅客出门旅行将拥有更多的选择,得到更多的方便。但是旅客在出门旅行时,往往面对众多的选择无法决定适合自己的列车,因而在购买车票时常常向售票员询问每趟列车的详细信息,这样就会增加正常售票业务的单位服务时间。人们正处于高节奏的生活,基于Android火车车次查询系统不仅为人们节省了时间,而且也可以提高售票员的工作效率。

在智能手机软件不断发展的今天,很多传统PC机上的应用正在向智能手机客户端转移。将传统PC机上的火车车次查询应用移植至智能终端已成为必然。

在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。如今,不管是学生或是成人,每人都有一部手机,并且Android系统的手机也越来越受大家的喜爱。

网络电子的发展,为人们的生活提供了许多的便利,也已逐渐深入到人们的生活当中。目前的信息查询服务主要是通过互联网以有线的方式进行,随着高性能手机的普及,移动数据业务的飞速发展,以其方便快捷、人性化、低成本的优势,开始被越来越多的人们所关注、接纳。从有线的方式向无线的方式过渡,其市场份额占有率也必将越来越大。因此,开发出可以在移动终端设备上使用的,具备功能强大、兼容性强、用户界面友好、操作简易的手机应用程序,是一件很具有意义的事。

同时随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着重要的作用。

基于Android火车车次查询系统,信所采用的平台是Eclipse,语言是Java,数据库是Sqlite,这个系统可以进行简单的信息查询,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。

4.2开发平台

本系统是在Windows XP 环境下开发的,使用的开发软件是Eclipse和Sqlite数据库。

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。

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

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,20##年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 20##年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 20##年6月,稳定版3.3发布。20##年6月发布代号为Ganymede的3.4版。

Eclipse的基础是富客户机平台(Rich Client Platform, 即RCP)。RCP包括下列组件:

核心平台(启动Eclipse,运行插件)

OSGi(标准集束框架)

SWT(可移植构件工具包)

JFace(文件缓冲,文本处理,文本编辑器)

Eclipse工作台(即Workbench ,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))

Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语 言。 已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到 现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。

Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API (SWT/Jface), Java开发环境插件(JDT ),插件开发环境(PDE)等。

SQLite是遵守ACID的关联式数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。

不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。

特征是库实现了多数的SQL-92标准,包括事务,就是代表原子性、一致性、隔离性和持久性的(ACID),触发器和多数的复杂查询。不进行类型检查。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。

多个进程或线程可以访问同一个数据而没有问题。可以并行的满足多个读访问。只有在其他访问当前不被服务的时候才能满足写访问;否则写访问失败并带有一个错误代码(也可以在可配置的超时过期之后自动的重试)。

提供了叫做sqlite的一个独立程序用来查询和管理SQLite数据库文件。 它也充当写使用SQLite库的应用的一个例子。

4.2.1本系统在Windows下Android开发环境的搭建

  1).JDK安装

下载(jdk-6u25-windows-i586.exe)之后进行安装,按默认安装,完成后可以检查是否安装成功,单击“开始”选“运行”输入CMD运行,打开CMD窗口输入java -version如果下图显示信息,说明JDK安装成功了。

图4.1 JDK安装

  2).Eclipse安装

 安装好JDK后,就可以接着安装Eclipse了。 下载(eclipse-java-galileo-win32.zip)下载完成后解压即可使用。

  3).Android SDK安装

在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Manager.exe,之后出现如图:

图4.2 SDK安装

点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https://..."这项,再点击Available Packages 。 选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包 在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:\android-sdk-windows\tools)(会等很长时间)。


4).ADT安装

打开Eclipse,Help->Install New Software。将看到如下图4.3所示Install对话框:

图4.3ADT安装

点Add按钮,将弹出如下对话框,填好Name和Location,点ok。

图4.4ADT的安装路径

现在应该回到了Install对话框中,在Work with下拉列表中选择刚填好的地址,下方将列出可供更新的源,如上图:全部勾选,然后一路next即可(下载插件需要的时间可能会非常长,耐心等). 完成之后:选择Window > Preferences... 在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:D:\AndroidDevelop\android-sdk-windows 点击Apply、OK。配置完成。

5).创建AVD

为使Android应用程序可以在模拟器上运行,必须创建AVD。在Eclipse中。选择Windows Android SDK and AVD Manager 如图:

4.5 启动ADV

点击左侧面板的Virtual Devices,再右侧点击New 会弹出:

4.6创建Android环境

填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创建AVD 。

在每次启动一个Android程序,首先创建一个AVD Manager,然后new AVD name,最后start这个AVD,当我们启动这个虚拟机时,我们会看到如图4.7所示进入虚拟机的状态。

图4.7Android开发的虚拟机

4.3 本系统功能简介

本系统采用了C/S 结构,基于Android开发的一个简单的火车车次查询系统,为我们读者提供了一套操作简单,应用广泛,扩展性强的查询功能,以提高客户的信息速度的能力及效率的目的。系统最终实现的主要功能如下:始末站车次查询,车次详细信息的查询:

1.始末站车次查询模块

用户输入始发站和终点站,点击查询,进入另外一个Activity,即查询结果界面,显示这段路程的车次信息。

2.车次详细信息的查询

进入查询结果显示界面后,点击每一列,即可显示此车次的详细信息。

4.4详细设计与分析

4.4.1目录结构

在运行实例前,首先配置好Eclipse的AVD Manager 环境,接着运行项目,项目的目录结构如下图4.1所示:

图4.8系统的目录结构

src: 放置源文件。

gen:ADT这个插件,也就是eclipse 的Android开发插件给我自动生成的一个

android 1.6:android提供的jar文件,我们所引用的所有的类都来自这个jar文件。

assert:可以放置任何的文件,不会生成相应的ID。

res:res是resource的意思,在res中放置的文件都会在R.java中生成相应的ID,

AndroidManifest.xml:这个项目的配置文件,保存相关的配置信息其根标签是<manifest>,其中有package,配置文件的包名。<application>是对应用程序的配置,其中android:icon="@drawable/icon" 配置整个应用程序的图标,表示引用资源文件夹drawable中的icon图标,android:label="@string/app_name"配置整个应用程序的标签。activity android:name=".HelloActivity"说明这个Activity的类名是什么,该类名加上之前的包名就是该文件的位置。<intent-filter> 指明从哪个Activity开始运行,一个应用程序里面有很多Activity。<uses-sdk android:minSdkVersion="4" />表示最小的SDK版本是4。

右击项目名称,选择[Run as]->[Android Application]即可运行该文件。

4.4.2模块介绍

启动项目,首先展示我们的是车次查询系统,如图4.2所示,客户输入启始车次和到达车次,然后点击确定按扭,即可进去详细信息界面。

图4.9车次查询系统首界面

该界面的设计主要是运用了Android中的布局知识,我在这里首先用的是LinearLayout线形布局,让控件从上往下布局,然后用了一个绝对布局,让TextView,EditView和Button可以调放到我们满意的位置。然后在LuchengActivity中调用这些布局控件,同时当客户点击确定按扭时,在LuchengActivity中设置了一个监听器OnClickListener(),来响应这个按扭事件,同时在这个监听器中,运用到了两个Activity之间传递数据的知识,核心代码如下:

Intent intent = new Intent();

                     intent.putExtra("start", startStr);

                     intent.putExtra("end", endStr);

                     intent.setClass(LuchengActivity.this , SqliteoneActivity.class);

                     startActivity(intent);        

这就实现了两个Activity之间传递数据了,接着进入了详细车次查询界面,如图4.3所示:

图4.10车次查询系统的详细车次界面

该界面的设计主要用到了Android中的ListView控件,首先在mian2.xml中定义了一个ListView,然后在listitem中定义存放在ListView中的控件如TextView 。在这个界面的实现过程中主要用到了Sqlite数据库,以及数据库与Activity中的ListView配器作为桥梁的,首先定义一个DBHelper类来继承SQLiteOpenHelper,重写onCreate()方法来创建数据库和表。接着在SqliteoneActivity中SQLiteDatabase来接受数据和数据库的操作,接着使用一个SimpleAdapter适配器把数据传递到ListView中。核心代码如下:

DBHelper helper=new DBHelper(this,"train.db",null,1);

        SQLiteDatabase db=helper.getWritableDatabase();

        String sqlstr="select 0 as _id, a.train_number as number,a.station as start,b.station as end,abs((b.price-a.price)) as price from  train as a inner join train as b on a.station=? and b.station=? and a.train_number=b.train_number";

        String[] di={start,end};

        Cursor cursor=db.rawQuery(sqlstr, di);

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.listitem, cursor,

              new String[]{"number","start","end","price"},

              new int[]{R.id.id,R.id.start,R.id.end,R.id.price});

        lstshow.setAdapter(adapter);

        lstshow.setOnItemClickListener(myItem );

 这就实现了数据的传递,接着点击列表中的每一列,即可出现车次的具体信息,如图4.4所示:

图4.11车次查询系统的车次详细界面

这个界面主要用到了监听器,数据库语句的查询和对话框的知识,首先当客户点击列表的每一列时,就响应了OnItemClickListener()事件,然后在事件中得到点击每列的ID,通过查询语句和SimpleCursorAdapter()把数据传递给每一个AlertDialog(),核心代码如下:

               new AlertDialog.Builder(SqliteoneActivity.this)

                                .setTitle(itemId.getText().toString()+"车次详情")

                                .setAdapter(adapter, null)

                                .setPositiveButton("确定", null)

                                .setNegativeButton("取消", null)

                                .show();

当客户不在查询时,点击Android虚拟机的返回按钮时,触发了OnKeyDown()事件,如图4.5所示:

图4.12 退出系统界面

该界面的实现主要实现Activity中的onKeyDown()方法,主要核心代码如下:

private void checkExit() {

           new AlertDialog.Builder( SqliteoneActivity.this)

           .setTitle("退出")

           .setMessage("确定退出车次查询吗?")

           .setPositiveButton("确定",new DialogInterface.OnClickListener(){

           public void onClick(DialogInterface dialog, int which) {

           finish();

当客户点击确定按钮,就返回到前面一个Activity,一步一步的退出车次查询系统。

五、实习体会

毕业实习是为了培养我们综合运用所学知识和动手实践经验,分析和解决工程技术问题的能力,提高我们在理论计算、查阅资料、运用相关理论进行软硬件设计等方面的能力。这个课题是基于Android的一些基本知识,运用Eclipse和Sqlite数据库开发的火车车次查询系统。

本次系统主要运用了Android集成开发环境Eclipse和Sqlite数据库实现了火车车次查询和车次的详细信息的查询。根据客户提供的发站和到站的信息,从发站到站间的所有可以乘客的列车信息展示出来。

学习Android有一段时间了,了解到在智能手机软件不断发展的今天,很多传统PC机上的应用正在向智能手机客户端转移。将传统PC机上的火车车次查询应用移植至智能终端已成为必然。但是在学习的过程中有出错的操作以及随之而来的全英文报错内容,让人感觉到非常的郁闷和烦躁!可是随着时间的推移,随着掌握的知识的增加,不知道从哪天开始忽然发现从最初的面对Android时的烦躁到现在居然对Android有了一探究竟的兴趣!总结了一下自己学习Android以来的一些心得,和大家分享一下!

1、首先在学习Android的时候要有一份永不放弃的决心,从某些方面来说,学习Android是一件非常枯燥的事情,尤其是刚开始的时候,面对全英文的黑白操作界面,所以,持之以恒是最重要的!

2、自己创造一个Android学习的环境!由于Android有大量的操作需要记忆,很显然,靠死记硬背是不科学的!最好的方法就是实践,多操作,联系的多了,自然而然的就记住了,而且还是记得最牢靠的!

3、细微处着眼。Android是很严肃的,也许一个命令大小写的错误就可能导致出错,甚至多一个少一个空格,或者小符号,它也会给你个“小脸色”看看,这就要求我们在操作Android虚拟机的时候非常的细心,有足够的耐心!

4、留意Android代码的报错。出现操作错误的时候,它会报错,告诉你哪里出问题了,可能有的同学英语能力比较差,碰到报错的时候看不懂,也就不去管它,这就导致了排错非常的困难。所以,碰到报错的时候即使我们看不懂,我们也努力的去读,然后根据一字半字的去“猜”,然后等找到错误了它就会潜意识的让我们明白那句全英文的报错的大体意思,时间长了,碰到的次数多了,就算我们英语能力差,我们也可以“读懂”它报错的意思!

写在最后我想告诉大家的就是学习Android要多实践,即使刚开始失败了也要继续,再失败再继续,再失败再------学习Android失败是很正常的事情,希望大家能坚持,不要害怕失败。遇到问题的时候先尝试着自己解决,等解决不了的时候再请教别人!

不仅学Android要如此,学习其他方面的东西也应该如此。学习靠积累,持之以恒方能见效。

相关推荐