学号20172328《程序设计与数据结构》第十一周学习总结

学号20172328《程序设计与数据结构》第十一周学习总结

教材学习内容总结 (Java和Anroid开发学习指导)

  • 1.初识Anroid
  • studio中的应用程序结构:Project窗口中有两个主要的节点,app和Gradle Scripts。
    • app :包含应用程序中全部的组件,有三个节点 manifests、java、res。
      • manifests:包含了一个AndroidManifests.xml文件,它描述了应用程序。
      • java:包含了全部的Java应用程序和测试类。
      • res:包含了资源文件。在这个目录下还有一些目录:drawable(包含了用于各类屏幕分辨率的图像)、layout(包含了布局文件)、menu(包含了菜单文件)、mipmap(包含了用于各类屏幕分辨率的app图标)、还有value(包含了字符串和其余值)
  • R类:一个通用的Java类,能够在项目的app/bulid/generated/source目录下找到。R包含了嵌套的类,该类反过来包含了你的全部的资源的资源ID。每次你添加、修改、删除资源的时候,都会生成R。
  • 2.Anroid清单文件:每一个Android应用程序都必须有一个叫作AnroidManifests的清单文件,它用来描述应用程序。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.secondactivitydemo" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.secondactivitydemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.secondactivitydemo.ThirdActivity"
            android:label="@string/title_activity_second" >
        </activity>
    </application>

</manifest>

清单文件是一个XML文件,使用manifest做为其根元素。html

  • 3.活动是包含了用户界面组件的一个窗口,用户能够和这些用户界面组件交互。启动一个活动,每每意味着显示一个窗口。Anroid应用程序能够包含多个活动,而且经过在应用程序清单文件中声明来指定主活动。
  • 4.启动另外一个活动
  • 启动另外一个活动很简单,能够经过调用startActivity(intent)其中intent是Anroid.content.Intent类的一个实例。能够看书本上的SecondActivityDemo项目。
  • 5.UI(user interface)组件
  • 使用Anroid studio建立UI很容易,打开一个活动的布局文件(res/layout),而且将UI组件拖曳到中间的活动屏幕上便可。当咱们完成插入组件后,咱们能够在项目的清单文件中看修改的部分。
android:icon="@drawable/ic_launcher"    
android:label="@string/app_name"
android:theme="@style/AppTheme"

drawable一般指一个图像文件,String都是指字符串引用。前端

  • 6.Toast
  • Toast是一个小的弹出对话框,用于显示一条消息给用户。当预约时间段后,Toast气泡会本身消失。
  • anroid.wedget.Toast类是建立Toast的模板,要建立一个Toast,调用它的构造方法,接收Context做为一个参数。
  • Toast还提供了两个静态的makeText方法来建立Toast实例。
Toast toast = Toast.makeText(this.TextValue.toast LENGTH_LONG);
toast.shouw();

通常状况下,一个toast会显示在靠近激活活动的底部。可是,也能够调用其show方法以前调用其setGravity方法从而修改其位置。java

public void setGravity(int gravity,int xoffset,int yoffset)
  • 通知:
  • 通知是出如今状态栏的一条消息。和toast不一样的是,通知是长久的,而且将保持显示,直到关闭它或者关闭设备。
  • 通知是Andriod.app.Noficiation的实例,建立一个通知最简便的方法,是使用一个叫作Bulider的嵌套类,能够传递一个Context来实例化该类。而后能够在该Bulider上调用bulid方法来建立一个Nofication。
Notification n = new Notification.Builder(context).bulid();

代码调试中的问题和解决过程

  • 问题1.刚开始安装Anroid studio的时候一路next下来,错误不是不少,而后打开后就和别人的界面不一样,运行的按键是灰色的。
  • 问题1的解决方案:当时就不知道怎么解决,百度了一下,是个人gradle包没有导入。因而找到网址去下载喽,顺顺利利地解决了本身的问题。
  • 问题2:想要导入文件,结果显示失败了,忘记没有截图,大概的步骤是我这会截下的图。File —— New —— import Modulenode

  • 问题2的解决方案:去找老师答疑,可是可能本身晃了晃神,后面本身又没有练习,因此就不能导入了。搜索获得的结果是android

    简单,打开你的studio,左上角点击“File”->"New"->"Import Project",而后在出现的目录选择界面找到你的代码,就是你上边那个图的,看见里边有一个build.gradle了么,直接点击这个就OK,studio会帮你直接生成相应的文件,固然你也能够直接把整个代码导进去,都同样.数据库

  • 问题2的解决方案:我跟着作了一遍,看起来很顺利的样子可是仍是没法导入,出现的问题都一模一
    样,因此多次失败的馨雨同窗暂时的放弃了高级导入方法,乖乖的去两个文件夹中复制、粘贴,作了一名搬运工。
  • 问题3:2018年5月30日傍晚时间7点左右,正在作实验2做业的我开了太多后台进程,因而乎Anroid studio卡死在我怀里。我不忍心关上本身的笔记本电脑,硬生生的打开任务管理器关掉了它,而后再打开它的时候安卓小绿就不在了,当时包着一丝幻想,反复打开屏幕,点击省略框,但是就是没有个人小绿。当时也不知道问题出在那里?运行不能够,看不到andriod小绿的目录。搜索也搜不到,就请教了王文彬同窗,(ノ´▽`)ノ♪(请不要问我为何没有截图,当时都慌的不行,固然是忙着解决问题啦
  • 问题3的解决方案:通过王文彬同窗大约两个小时(很是感激)的调试,最终解决了问题。我在询问他解决过程的时候,他其实经历了两个小时的修补,改的东西不少,因此不是一个单因素问题。是多方面缘由,可是最主要的就是当我关掉进程后个人配置文件自动脱离了,因此须要从新下载或者找到导入个人Anroid studio。
  • 问题4:当我觉得万事大吉准备好好作实验的时候,我导入的书上代码统统变红,像是我妈妈作的青虾放入沸水中秒秒钟变成红虾。仔细一看,R是红的,menu也是红的。

    编程

  • 问题4的解决方案:看截图呦呦呦
    数组

上周错题总结

  • 问题1: Abstract Data Types have which of the following object-oriented features?(抽象数据结构有什么面对对象的特性?)
    A .information hiding(信息隐藏)
    B .inheritance(继承)
    C .polymorphism(多态)
    D .message passing(消息传递)
    E .all of the above(以上全部)数据结构

  • 问题1分析和领悟:正确答案A。我当时选择B。虽然全部这些答案都是面向对象的特色,但抽象数据类型封装了数据结构和操做数据结构的方法,也就是信息隐藏。所以,全部的ADT都使用隐藏的信息,这样数据结构就不能直接从ADT外部操纵,其余面向对象的特性是不符合ADT的。
  • 问题2:One operation that we might want to implement on a Stack and a Queue is full, which determines if the data structure has room for another item to be added. This operation would be useful(咱们可能想要在已经满的堆栈和队列上实现一个操做,怎么作才能让这个数据结构有容纳另外一个条目的空间?)
    A .only if the Queue or Stack is implemented using an array(只有当这个队列或者栈是用数组实现的时候)
    B .only if the Queue or Stack is implemented using a linked list(只有当这个队列或者栈是用列表实现的时候)
    C .only for a Queue(只有队列能够)
    D .only for a Stack(只有堆栈能够)
    E .none of the above, a full operation is not useful at all
    (上述都不能够,对已满的操做都不能够)
  • 问题2分析和领悟:正确答案选A,我当时选择E。因为队列是一个静态大小的物体,若是它被填满,那么任何添加类型的操做,都应该被阻止。这能够经过首先检查结构是否完整来肯定。若是数据结构是使用链表来实现的,这是没必要要的,由于(咱们假设)老是会有动态内存来添加新元素。
  • 问题3:In a linked list in Java(Java中的链表里面)
    A .the link is an object(link是一个对象)
    B .the link is a node(link是一个节点)
    C .the link is a reference(link是一个引用)
    D .the link is an int(link是一个整数)
    E .the link is a class(link是一个类)app

  • 问题3分析和领悟:正确答案选C,我当时选择的是A。在一个链表中,连接是对下一个节点的引用。经过检查参考资料的内容,经过“取消引用”来跟踪连接。节点对象。对象是类的实例。节点的数据部分极可能是int,以及其余类型的数据。
  • 问题4: A linear data structure
    A .always has more than one link per node(每一个节点老是有多个连接)
    B .is sometimes represented as a tree or a graph(有时被表示为树或图形)
    C .can have but a single link per node(每一个节点只能有一个连接)
    D .almost always is kept in sorted order either ascending or descending(几乎老是按顺序排列,要么上升,要么降低)
  • 问题4分析和领悟:正确答案选择C。我当时选择A。线性数据结构是指当你绘制它的图像时,它显示为一个链接节点的行。它是“线性的”即看起来像一条直线。一个简单的列表就是这样一个数据结构的一个例子,所以一个线性数据结构可能只有一个节点的一个连接。显示为树或图形的数据结构不是线性的,它们是二维的(至少)。没有要求线性数据结构以任何顺序、排序或其余方式保存。
  • 问题5:A simple linear list(一个简单的线性表

    A .is an example of a degenerate tree(是退化树的一个例子)
    B .is an example of a degenerate graph(是一个简并图的例子)
    C .is an example of a degenerate digraph(是一个退化的digraph的例子)
    D .cannot be represented as a degenerate tree, graph or digraph(不能表示为退化树,图或双图)
    E .none of the above(以上都不对)

  • 问题5分析和领悟:正确答案A,我当时的选项D,一个简单的线性列表被定向,从它的起始节点到它的结束节点。图和图都没有起始节点,可是树确实是树的根。因此,一个简单的线性列表就是一个退化树的例子,它有一个分支因子,每一个节点都有一个单独的继承者,从根开始,到单个叶子(结束节点)结束。
  • 问题6: The push and enqueue operations are essentially the same operations, push is used for Stacks and enqueue is used for Queues.(push和enqueue本质上是相同的操做,push被用于堆栈和enqueue用于队列。)
    A .true
    B .false
  • 问题6分析和领悟: 正确答案选B,当时我选的是A,真的是很理解不透彻啊!虽然这两个操做都是为各自的抽象数据类型“添加”或“插入”操做,但它们的不一样之处在于,老是在堆栈的顶部(或前端)添加,而enqueue老是在队列的后面添加。

结对及互评

  • 20172301:由于电脑自身的问题耽误了他的正常学习,我在作数据库时也是这样,别人都进行的很顺利,很快速,可是我被端口、内部配置、没法打开所困扰,第一步都走不下去,这种感受快要抹掉我全部的热情。可是,快要不表明彻底抹杀热情,人是须要有点执念的就像老人与海中所说的:一我的能够被毁灭,但不能被战胜;况且只是学习过程当中一点小小的挫折呢!我期待看到他补好的、和以前同样流光溢彩的博客。
  • 20172304:依旧简约风,确实不太上心,虽然已经学期末尾,但仍是有始有终的好。

其余(感悟、思考等,可选)

这学期立刻就要结束了,程序设计与数据结构这门课也是陪伴了我整整一个学期。绝不夸张的讲,我在这门课上花的时间是最多的,但仍是因为能力不足、了解不够在学习深度方面很欠缺。在学习过程当中也是困难不断、各类问题,有时候都以为这不只考验个人学习水平,还在极大程度上考验个人心态和情绪控制度。

    经过学习这门课确实看到了我本身的自学能力和实践应用能力稍有欠缺。在学习的过程当中,也看到了好多同窗的优秀之处,不只仅是编程能力,更是对同窗的无私帮助,乐于分享,敢于发问,勤于思考感到深深地由衷地敬佩。

    还有一两周这学期就要进入尾声的。就像本身很喜欢的一句话同样“靡不有初,鲜克有终”,我必定会坚持去完成这门课的学习。固然课程还会在下学期继续,那就迎接它拥抱它吧。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 100/100 1/1 15/15
第二周 377/477 1/2 20/35
第三周 280/757 2/4 22/57
第四周 973/1730 1/5 35/92
第五周 1000/2730 1/6 40/132
第六周 729 /3459 1/7 40/172
第七周 660/4119 2/9 30/192
第八周 1417/5536 3/12 40/232
第九周 1139/6675 2/14 60/292
第十周 758/7433 2/14 40/332

参考资料

相关文章
相关标签/搜索