苏州科技学院移动互联网开发技术大作业.docx
- 文档编号:26348540
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:15
- 大小:32.68KB
苏州科技学院移动互联网开发技术大作业.docx
《苏州科技学院移动互联网开发技术大作业.docx》由会员分享,可在线阅读,更多相关《苏州科技学院移动互联网开发技术大作业.docx(15页珍藏版)》请在冰豆网上搜索。
苏州科技学院移动互联网开发技术大作业
苏州科技学院电子与信息工程学院
移动互联网开发技术 大作业报告
专业年级
班 级
学 号
姓 名
成 绩
2015年6月19日
大作业任务
完成以下任务(时间一周)。
1、剪刀石头布游戏
要求:
(1)人-机对弈;
(2)人-人对弈;
2、新闻阅读软件
要求:
(1)读取新浪国内新闻栏目的新闻列表;
(2)阅读指定列表项的新闻;
【任务1】
1需求分析
1.1用户需求
不同年龄段的人都可以玩这款游戏
界面友好、简单易用
1.2功能需求
人和人之间能进行对战
人和计算机之间能进行对战
人人对战和人机对战界面可以切回主界面
2系统分析与建模
2.1概要设计
3系统设计与实现
3.1界面设计
3.2模块设计
本模块是用户进入程序的入口。
可以选择人机对战或者人人对战。
为了保证公平性,人人对战模块只有一个界面,点击"开始游戏"按钮人人对战的双方同时由系统随机出拳,其中一人点击"结束"按钮结束本局游戏并计算比分
点击剪刀/石头/布按钮后人出相应的拳,系统随机出拳,双方出拳后本局游戏自动结束并计算比分,"结束"按钮变成"开始"按钮
【任务2】
1需求分析
1.1用户需求
使人们随时了解国内新闻;
简单易用;
1.2功能需求
读取新浪国内新闻栏目的新闻列表;
阅读指定列表项的新闻;
2系统分析与建模
2.1概要设计
3系统设计与实现
3.1界面设计
3.2模块设计
读取新闻列表模块通过解析新浪新闻的XML文件获取新闻标题
3.2.2阅读新闻模块
阅读新闻模块通过解析新浪新闻的XML文件读取新闻的部分内容,并提供新闻原文链接供用户查阅,另有返回按钮可返回主界面查看其他新闻
3.3核心模块的实现代码
MainActivity.java
package;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
import;
publicclassMainActivityextendsActivity{
publicfinalStringRSS_URL=".cn/news/china/focus15.xml";
privateListViewlv_news;
privateList
privateclassNewsAdapterextendsBaseAdapter{
@Override
publicintgetCount(){
returnnewsInfos.size();
}
@Override
publicObjectgetItem(intposition){
//TODOAuto-generatedmethodstub
returnnull;
}
@Override
publiclonggetItemId(intposition){
//TODOAuto-generatedmethodstub
return0;
}
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
Viewview=View.inflate(MainActivity.this,,null);
TextViewtv_title=(TextView)view.findViewById(;
NewsInfonewsInfo=newsInfos.get(position);
tv_title.setText(newsInfo.getTitle());
returnview;
}
}
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(;
lv_news=(ListView)findViewById(;
//创建AsyncHttpClient实例
AsyncHttpClientasyncHttpClient=newAsyncHttpClient();
//使用GET方式请求
asyncHttpClient.get(RSS_URL,
newAsyncHttpResponseHandler(){
publicvoidonSuccess(Stringcontent){
//访问成功
super.onSuccess(content);
byte[]bytes=content.getBytes();
//将Byte数组转换成输入流
ByteArrayInputStreambais=newByteArrayInputStream(
bytes);
//调用NewsInfoService工具类解析xml文件
newsInfos=NewsInfoService.getNews(bais);
if(newsInfos==null){
//解析失败弹出toast
Toast.makeText(MainActivity.this,
"解析失败",0).show();
}else{
//更新界面
lv_news.setAdapter(newNewsAdapter());
lv_news.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView
>parent,
Viewview,intposition,longid){
Intentintent=newIntent(MainActivity.this,
ShowActivity.class);
Bundleb=newBundle();
b.putString("title",newsInfos.get(position).getTitle());
b.putString("discription",newsInfos.get(position).getDescription());
b.putString("link",newsInfos.get(position).getLink());
b.putString("pubdate",newsInfos.get(position).getPubdate());
intent.putExtras(b);
startActivity(intent);
}
});
}
}
//请求失败
publicvoidonFailure(Throwableerror,Stringcontent){
super.onFailure(error,content);
Log.e("error",RSS_URL);
Log.e("error",error.toString());
Toast.makeText(MainActivity.this,"请求失败",0).show();
}
});
}
privatevoidfillData(){
//创建AsyncHttpClient实例
AsyncHttpClientasyncHttpClient=newAsyncHttpClient();
//使用GET方式请求
asyncHttpClient.get(RSS_URL,
newAsyncHttpResponseHandler(){
publicvoidonSuccess(Stringcontent){
//访问成功
super.onSuccess(content);
byte[]bytes=content.getBytes();
//将Byte数组转换成输入流
ByteArrayInputStreambais=newByteArrayInputStream(
bytes);
//调用NewsInfoService工具类解析xml文件
newsInfos=NewsInfoService.getNews(bais);
if(newsInfos==null){
//解析失败弹出toast
Toast.makeText(MainActivity.this,
"解析失败",0).show();
}else{
//更新界面
lv_news.setAdapter(newNewsAdapter());
}
}
//请求失败
publicvoidonFailure(Throwableerror,Stringcontent){
super.onFailure(error,content);
Log.e("error",RSS_URL);
Log.e("error",error.toString());
Toast.makeText(MainActivity.this,"请求失败",0).show();
}
});
}
}
NewsInfo.java
package;
publicclassNewsInfo{
privateStringtitle;//标题
privateStringdescription;//描述
privateStringlink;//链接
privateStringpubdate;//出版时间
publicNewsInfo(){
super();
}
publicNewsInfo(Stringtitle,Stringdescription,Stringlink,
Stringpubdate){
super();
this.title=title;
this.description=description;
this.link=link;
this.pubdate=pubdate;
}
publicStringgetTitle(){
returntitle;
}
publicvoidsetTitle(Stringtitle){
this.title=title;
}
publicStringgetDescription(){
returndescription;
}
publicvoidsetDescription(Stringdescription){
this.description=description;
}
publicStringgetLink(){
returnlink;
}
publicvoidsetLink(Stringlink){
this.link=link;
}
publicStringgetPubdate(){
returnpubdate;
}
publicvoidsetPubdate(Stringpubdate){
this.pubdate=pubdate;
}
}
NewsInfoServices.java
package;
import;
import;
import;
import;
import;
import;
import;
publicclassNewsInfoService{
publicstaticList
{
NewsInfoi=null;
List
XmlPullParserFactoryfactory;
try
{
factory=XmlPullParserFactory.newInstance();
XmlPullParserparser;
parser=factory.newPullParser();
parser.setInput(is,"UTF-8");
inteventType=parser.getEventType();//产生第一个事件
while(eventType!
=XmlPullParser.END_DOCUMENT)
{
//只要不是文档结束
Stringname=parser.getName();//获取解析器当前指向的元素名称
switch(eventType)
{
caseXmlPullParser.START_DOCUMENT:
list=newArrayList
break;
caseXmlPullParser.START_TAG:
if("item".equals(name))
{
i=newNewsInfo();
}
if(i!
=null)
{
if("title".equals(name))
{
i.setTitle(parser.nextText());
}
if("link".equals(name))
{
i.setLink(parser.nextText());
}
if("pubDate".equals(name))
{
i.setPubdate(parser.nextText());
}
if("description".equals(name))
{
i.setDescription(parser.nextText());
}
}
break;
caseXmlPullParser.END_TAG:
if("item".equals(name))
{
list.add(i);
i=null;
}
}
eventType=parser.next();//进入下一个元素
}
}
catch(XmlPullParserExceptione)
{
e.printStackTrace();
}
catch(IOExceptione)
{
e.printStackTrace();
}
returnlist;
}
}
ShowActivity.java
package;
import;
import;
import;
import;
import;
import;
import;
import;
import;
publicclassShowActivityextendsActivity{
privateTextViewtextView;
privateButtonbackbutton;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(;
textView=(TextView)findViewById(;
Stringcontent=null;
Intentintent=getIntent();
if(intent!
=null){
Bundlebundle=intent.getExtras();
if(bundle==null){
content="程序错误";
}else{
content=bundle.getString("title")+"\n\n"
+bundle.getString("pubdate")+"\n\n"
+bundle.getString("discription")+"\n\n"
+"\n\n详情:
\n"
+bundle.getString("link");
}
}else{
content="程序错误";
}
textView.setText(content);
backbutton=(Button)findViewById(;
backbutton.setOnClickListener(newButton.OnClickListener(){
publicvoidonClick(Viewv){
finish();
}
});
}
}
4测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 苏州 科技学院 移动 互联网 开发 技术 作业