版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、文檔供參考,可復(fù)制、編制,期待您的好評(píng)與關(guān)注! 蘇州科技學(xué)院電子與信息工程學(xué)院移動(dòng)互聯(lián)網(wǎng)開發(fā)技術(shù)大作業(yè)報(bào)告專業(yè)年級(jí)班級(jí) 學(xué)號(hào) 姓名 成績(jī)2015年6月19日19 / 21大作業(yè)任務(wù)完成以下任務(wù)(時(shí)間一周)。1、剪刀石頭布游戲要求:(1)人機(jī)對(duì)弈;(2)人人對(duì)弈;2、新聞閱讀軟件要求:(1)讀取新浪國內(nèi)新聞欄目的新聞列表;(2)閱讀指定列表項(xiàng)的新聞;【任務(wù)1】1 需求分析1.1用戶需求不同年齡段的人都可以玩這款游戲界面友好、簡(jiǎn)單易用1.2功能需求人和人之間能進(jìn)行對(duì)戰(zhàn)人和計(jì)算機(jī)之間能進(jìn)行對(duì)戰(zhàn)人人對(duì)戰(zhàn)和人機(jī)對(duì)戰(zhàn)界面可以切回主界面2 系統(tǒng)分析與建模2.1概要設(shè)計(jì)2.1.1系統(tǒng)用例圖2.1.2系統(tǒng)類圖2
2、.1.3系統(tǒng)時(shí)序圖2.1.4系統(tǒng)活動(dòng)圖3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)人人對(duì)戰(zhàn)界面Second_main.xml3.1界面設(shè)計(jì)模式選擇界面Activity_main.xml人機(jī)對(duì)戰(zhàn)界面Third_main.xml3.2模塊設(shè)計(jì)3.2.1模式選擇模塊本模塊是用戶進(jìn)入程序的入口??梢赃x擇人機(jī)對(duì)戰(zhàn)或者人人對(duì)戰(zhàn)。3.2.2人機(jī)對(duì)戰(zhàn)模塊為了保證公平性,人人對(duì)戰(zhàn)模塊只有一個(gè)界面,點(diǎn)擊"開始游戲"按鈕人人對(duì)戰(zhàn)的雙方同時(shí)由系統(tǒng)隨機(jī)出拳,其中一人點(diǎn)擊"結(jié)束"按鈕結(jié)束本局游戲并計(jì)算比分3.2.3人人對(duì)戰(zhàn)模塊點(diǎn)擊剪刀/石頭/布按鈕后人出相應(yīng)的拳,系統(tǒng)隨機(jī)出拳,雙方出拳后本局游戲自動(dòng)結(jié)束并計(jì)
3、算比分,"結(jié)束"按鈕變成"開始"按鈕【任務(wù)2】1 需求分析1.1用戶需求使人們隨時(shí)了解國內(nèi)新聞;簡(jiǎn)單易用;1.2功能需求讀取新浪國內(nèi)新聞欄目的新聞列表;閱讀指定列表項(xiàng)的新聞;2 系統(tǒng)分析與建模2.1概要設(shè)計(jì)2.1.1系統(tǒng)用例圖2.1.2系統(tǒng)類圖2.1.3系統(tǒng)時(shí)序圖2.1.4系統(tǒng)活動(dòng)圖3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1界面設(shè)計(jì) 閱讀新聞界面Activity_show_news.xml主界面Activity_main.xmlNews_item.xml3.2 模塊設(shè)計(jì)3.2.1讀取新聞列表模塊讀取新聞列表模塊通過解析新浪新聞的XML文件獲取新聞標(biāo)題3.2.2 閱讀新聞模
4、塊閱讀新聞模塊通過解析新浪新聞的XML文件讀取新聞的部分內(nèi)容,并提供新聞原文鏈接供用戶查閱,另有返回按鈕可返回主界面查看其他新聞3.3 核心模塊的實(shí)現(xiàn)代碼MainActivity.javapackage com.example.sinanews;import java.io.ByteArrayInputStream;import java.util.List;import com.example.sinanews.R;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.AsyncHttpResp
5、onseHandler;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;impo
6、rt android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity public final String RSS_URL = "private ListView lv_news;private List<NewsInfo> newsInfos;private class NewsAdapter extends BaseAdapterOverridepublic int getCoun
7、t() return newsInfos.size();Overridepublic Object getItem(int position) / TODO Auto-generated method stubreturn null;Overridepublic long getItemId(int position) / TODO Auto-generated method stubreturn 0;Overridepublic View getView(int position, View convertView, ViewGroup parent) View view=View.infl
8、ate(MainActivity.this, R.layout.news_item, null);TextView tv_title=(TextView) view.findViewById(R.id.tv_title);NewsInfo newsInfo=newsInfos.get(position);tv_title.setText(newsInfo.getTitle();return view;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setC
9、ontentView(R.layout.activity_main);lv_news=(ListView) findViewById(R.id.lv_news); /創(chuàng)建AsyncHttpClient實(shí)例AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); /使用GET方式請(qǐng)求 asyncHttpClient.get(RSS_URL, new AsyncHttpResponseHandler() public void onSuccess(String content) /訪問成功super.onSuccess(content); b
10、yte bytes = content.getBytes(); /將Byte數(shù)組轉(zhuǎn)換成輸入流ByteArrayInputStream bais = new ByteArrayInputStream(bytes); /調(diào)用NewsInfoService工具類解析xml文件newsInfos = NewsInfoService.getNews(bais);if (newsInfos = null) / 解析失敗 彈出toastToast.makeText(MainActivity.this, "解析失敗", 0).show(); else / 更新界面lv_news.setAd
11、apter(new NewsAdapter();lv_news.setOnItemClickListener(new AdapterView.OnItemClickListener() Overridepublic void onItemClick(AdapterView<?> parent,View view, int position, long id) Intent intent = new Intent(MainActivity.this, ShowActivity.class);Bundle b = new Bundle(); b.putString("titl
12、e", 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(inten
13、t); ); /請(qǐng)求失敗public void onFailure(Throwable error, String content) super.onFailure(error, content);Log.e("error",RSS_URL);Log.e("error", error.toString();Toast.makeText(MainActivity.this, "請(qǐng)求失敗", 0).show(););private void fillData() /創(chuàng)建AsyncHttpClient實(shí)例AsyncHttpClient as
14、yncHttpClient = new AsyncHttpClient(); /使用GET方式請(qǐng)求 asyncHttpClient.get(RSS_URL, new AsyncHttpResponseHandler() public void onSuccess(String content) /訪問成功super.onSuccess(content); byte bytes = content.getBytes(); /將Byte數(shù)組轉(zhuǎn)換成輸入流ByteArrayInputStream bais = new ByteArrayInputStream(bytes); /調(diào)用NewsInfoSe
15、rvice工具類解析xml文件newsInfos = NewsInfoService.getNews(bais);if (newsInfos = null) / 解析失敗 彈出toastToast.makeText(MainActivity.this, "解析失敗", 0).show(); else / 更新界面lv_news.setAdapter(new NewsAdapter(); /請(qǐng)求失敗public void onFailure(Throwable error, String content) super.onFailure(error, content);Log
16、.e("error",RSS_URL);Log.e("error", error.toString();Toast.makeText(MainActivity.this, "請(qǐng)求失敗", 0).show(););NewsInfo.javapackage com.example.sinanews;public class NewsInfo private String title;/ 標(biāo)題private String description;/ 描述private String link;/ 鏈接private String pubda
17、te;/ 出版時(shí)間public NewsInfo() super();public NewsInfo(String title, String description, String link,String pubdate) super();this.title = title;this.description = description;this.link = link;this.pubdate = pubdate;public String getTitle() return title;public void setTitle(String title) this.title = tit
18、le;public String getDescription() return description;public void setDescription(String description) this.description = description;public String getLink() return link;public void setLink(String link) this.link = link;public String getPubdate() return pubdate;public void setPubdate(String pubdate) th
19、is.pubdate = pubdate;NewsInfoServices.javapackage com.example.sinanews;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;pu
20、blic class NewsInfoService public static List<NewsInfo> getNews(InputStream is) NewsInfo i = null; List<NewsInfo> list = null; XmlPullParserFactory factory; try factory = XmlPullParserFactory.newInstance(); XmlPullParser parser; parser = factory.newPullParser(); parser.setInput(is, "
21、;UTF-8"); int eventType = parser.getEventType(); /產(chǎn)生第一個(gè)事件 while (eventType != XmlPullParser.END_DOCUMENT) / 只要不是文檔結(jié)束 String name = parser.getName(); / 獲取解析器當(dāng)前指向的元素名稱 switch (eventType) case XmlPullParser.START_DOCUMENT: list = new ArrayList<NewsInfo>(); break; case XmlPullParser.START_TAG
22、: if ("item".equals(name) i = new NewsInfo(); 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".equa
23、ls(name) i.setDescription(parser.nextText(); break; case XmlPullParser.END_TAG: if ("item".equals(name) list.add(i); i = null; eventType = parser.next();/ 進(jìn)入下一個(gè)元素 catch (XmlPullParserException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); return list; ShowActivity.java
24、package com.example.sinanews;import com.example.sinanews.R;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;public class ShowActivity extends Activity private TextView textView;private
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工勞動(dòng)合同協(xié)議書格式
- 廠房租賃合同范本版(18篇)
- 農(nóng)業(yè)機(jī)械購買補(bǔ)貼合同
- 技術(shù)開發(fā)服務(wù)合同案例
- 企業(yè)培訓(xùn)就業(yè)協(xié)議書編寫技巧
- 2第二章-血液一般檢驗(yàn)-02-血栓與止血、血型
- 室內(nèi)清潔合作合同格式
- 員工個(gè)人合同書范本
- 投資合作協(xié)議范本:2024投資合作協(xié)議范本
- 場(chǎng)地游戲安全協(xié)議書
- 項(xiàng)目工程退出申請(qǐng)書
- 3.1DNA是主要的遺傳物質(zhì)課件20232024高一下學(xué)期生物人教版必修二
- 2024年03月故宮博物院2024年度社會(huì)公開招考筆試上岸試題歷年典型考題與考點(diǎn)剖析附帶答案解析
- ICP備案網(wǎng)站建設(shè)方案書
- 醫(yī)院陪檢外送人員管理方案
- 部編版《道德與法治》一年級(jí)上冊(cè)教案(全冊(cè))
- 2024年紀(jì)檢監(jiān)察綜合業(yè)務(wù)知識(shí)題庫及完整答案(歷年真題)
- 基于STM32的智能家居控制系統(tǒng)的設(shè)計(jì)與開發(fā)
- 2024-2029年中國心理咨詢行業(yè)發(fā)展分析及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 醫(yī)療事故的心得體會(huì)(18篇)
- 現(xiàn)實(shí)與理想-西方古典繪畫 課件-2023-2024學(xué)年高中美術(shù)人美版(2019)美術(shù)鑒賞
評(píng)論
0/150
提交評(píng)論