移动终端大作业

一、题目要求

本次大作业2道题。

第1题 网络通信程序。

用PC作服务器、移动端作客户机,编程实现服务器和客户端的非阻塞通信。

第2题 图形变换。

有若干个点、线段、圆和三角形,对这些图形进行平移和绕任意的旋转变换。如:
对点的操作:
点

对线段的操作:
线段

对圆的操作:
圆
对三角形的操作:
三角形

如果是旋转操作,则要给出旋转参考点和角度,如:
输入相应的数据后,要用另外一个Activity进行变换计算,如:
变化
变化
点击按钮“用另一个ACTIVITY完成变换计算”,则切换到另一个ACTIVITY:
在这里插入图片描述

按“变换”后:
在这里插入图片描述
按“返回”后:
返回后

二、实现过程

第1题

一、 分析与设计

本题要实现PC端作服务器和android端作客户端之间的非阻塞通信。(从android端发送一条信息到PC端,PC端可以接受,并可以把这条信息返回到android端并且显示出来。)

首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。
1、PC服务器启用ServerSocket
两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求。使用ServerSocket对象监听来自客户端的Socket连接。 如果没有连接,则将一直处于等待状态。
2、Android终端使用Socket通信
客户端使用Socket的构造器连接服务器,指定服务器IP和端口号就可以了。
IP为无线局域网适配器 WLAN的IPv4 地址
Socket s = new Socket(“192.168.43.190”, 12345);
这样服务器端的accept()方法就得到响应,从而向下执行,服务器端和客户端就形成了一对互相连接的Socket。再进行通信时就没有服务器和客户端之分了,都是通过输入输出流进行通信。

注意点:
1、由于程序里面需要Socket进行网络通信,所有程序里面只需要一个Socket,切不可使用多个Socket,既Socket的new对象只需要一个就好了。
2、记得要在android中添加访问网络的权限
3、在android端中没有流和socket的关闭,在PC使用的是ServerSocket;android端使用的是Socket
4、只有客户端发送了信息给服务器后,服务器才能响应客户端的输入,然后返回信息给客户端,这时客户端才能读取服务器返回的信息。如果客户端和服务器都处于等待对方的信息,那样就会造成阻塞,导致ANR了。

二、 程序结构

MainActivity.java
在这里插入图片描述
TcpSocketServer.java
在这里插入图片描述

三、实现方法

socket是指在一个特定编程模型下,进程之间通信链路的端口。一个socket包括两个流,一个输入流和一个输出流。
实现思路
1、服务器分配一个端口号,监听端口是否有连接请求。如果客户端请求一个连接,服务器使用accept()方法打开socket连接。
2、客户在host的port端口建立连接。
3、服务器和客户使用InputStream和OutputStream进行通信。

服务器端ServerSocket的实现
在该实例中,我们在Eclipse中新建了一个Java工程作为服务器端。在该Java工程中,我们应该完成以下的操作。
(1)指定端口实例化一个ServerSocket,并调用ServerSocket的accept()方法在等待客户端连接期间造成阻塞。
(2)每当接收到客户端的Socket请求时,服务器端也相应的创建一个Socket,并将该Socket存入ArrayList中。与此同时,启动一个ServerThread线程来为该客户端Socket服务。
(3)在启动的newCachedThreadPool线程池的线程中,我们需要将读到的客户端内容(也就是某一个客户端Socket发送给服务器端的数据),发送给其他的所有客户端Socket,实现信息的广播。

客户端Socket的实现
(1)在Android工程中,创建一个客户端Socket,并在newCachedThreadPool线程池中启动一个客户端线程来监听服务器发来的数据。
(2)利用Runnable自定义线程
Runnable创建步骤:

  1. 自定义一个类实现Runnable接口。
  2. 实现Runnable接口 的run方法,把自定义线程的任务定义在run方法上。
  3. 创建Runnable实现类对象。

四、运行与界面

在这里插入图片描述
在这里插入图片描述

第2题

一、 分析与设计

有若干个点、线段、圆和三角形,对这些图形进行平移和绕任意的点旋转变换。
由本题意可知,要实现四种图形点,线段,圆和三角形,和任意图形的两种变化(平移或旋转)
因为要实现动态页面设置,所有要实现一个主页面,一个计算界面,一个跳转页面,四个图形框,两个变化框。其中运用RadioGroup控件实现唯一选择,运用inflate函数把选择的图形布局和变化布局添加至主页面,然后再运用intent组件实现页面的跳转。
所有一个需要实现八个布局页面,两个java运行代码,主函数java用于输入数据,跳转页面,计算函数java用于计算变化图形,返回界面。

二、程序结构

在这里插入图片描述

三、实现方法

要实现RadioButton由两部分组成,也就是RadioButton和RadioGroup配合使用,其中RdioGroup是单选组合框,可以容纳多个RadioButton的一个容器。在没有RadioGroup的情况下,RadioButton可以全部被选中;当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以选择一个,从而达到了单选的目的。并用setOnCheckChangeLinstener()来对单选按钮进行监听。

inflate函数的作用
作用一:可以获取某个xxx.xml布局文件,这个函数的返回值就是获取的布局文件
findViewById()函数是获取布局文件中的某个控件,这个函数就是获取布局文件。
作用二:将布局文件添加到某个布局中。

使用Intent能够使程序在不同活动中跳转,意及能够使用不同界面。Intent用法分为显示和隐式。
Intent概念:Intent是Android程序中各组件之间进行交互的一种重要方式,不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。
Intent一般可被用于启动活动、启动服务、以及发送广播等场景

四、运行与界面

对点的平移操作:
在这里插入图片描述
在这里插入图片描述

对线段的平移操作:
在这里插入图片描述
在这里插入图片描述

对圆的平移操作:

在这里插入图片描述
在这里插入图片描述

对三角形的旋转操作:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、文档撰写

代码:
MainActivity.java:通过inflate函数通过点击单选按钮实现布局的添加,然后输入数据,传入数据并跳转页面至main_ac.java。

main_ac.java:接收MainActivity.java传至的数据,并进行处理,然后按照之前的选择,对数据进行平移或旋转操作,并显示原始图形数据,和变化后的数据,实现计算功能和跳转页面功能。

布局:
activity_main.xml:添加三个文本框,添加一个单选框四个单选按钮,添加一个单选框两个单选按钮,添加一个按钮用于跳转页面。
main.xml:添加两个文本框用于显示原始图形,再添加两个文本框用于显示变化后的图形,添加一个按钮用于计算得到变化后的图形,添加一个按钮用于返回至acticity_main.xml页面。

dian.xml:添加文本框和输入框,实现点的坐标的输入。
xianduan.xml: 添加两个文本框和输入框,实现起点的坐标和终点坐标的输入。
yuan.xml: 添加两个文本框和输入框,实现圆的坐标和圆的半径的输入。
sanjiaoxing.xml: 添加三个文本框和输入框,实现三角形的三个坐标的输入。

pingpy.xml: 添加文本框和输入框,实现x和y平移量的输入。
xuanzhuan.xml: 添加两个文本框和输入框,实现旋转参考点的坐标和旋转角度的输入。

三、大作业报告及源码

android大作业

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
android开发期末大作业(项目源码,任务书,实验大报告,apk文件) 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 一、实验项目名称 Android手机应用开发课程大作业 二、实验目的 1.通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的Android手机应用开发知识。 2.为学生综合应用本专业所学习的多门课程知识(例如,软件工程、数据库、Java语言、Java Web开发等)创造实践机会。为学生提供主动学习、积极探索与大胆创新的机会。 3.掌握Android手机应用设计的方法与技巧。 三、实验内容及要求 1、设计内容 题目、设计内容自拟,工作量适中,要求学生应用课程所学知识,采用JAVA语言和Android手机应用开发技术实现一个完整的系统。 ①完成大作业报告。 ②实现各系统功能,并完成调试运行。 2、主要技术 采用Java语言并不仅限于Java语言实现系统。 开发环境与工具:Android Studio 3.2以上版本; 操作系统:Win7/Win10或其他; 4、设计成果: 材料上交:电子文档(大作业任务书+大作业报告+源代码,电子稿请刻在光盘上)、打印稿(大作业任务书+大作业报告)。 四、成绩评定: 考核标准包括: 1、选题的工作量,难度和新颖程度 2、系统架构设计是否良好,运行过程是否报错 3、界面设计的合理性和美观程度 4、基本功能的实现 分值60 (包括布局、组件、Activity、Intent等使用) 数据存储的使用 分值10 网络功能 分值10 Service、ContentProvider或BroadCastReceiver等的使用 分值10 附加分: 图形图像处理、多媒体处理等 分值10 5、考核方式为面对面答辩,在课程的后两周内集中进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里 Jess

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值