第一篇:Android實(shí)驗(yàn)格式簡(jiǎn)易計(jì)算器實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)報(bào)告
2013-2014 學(xué)年第2學(xué)期
課程名稱(chēng):嵌入式操作系統(tǒng)
實(shí)驗(yàn)題目:簡(jiǎn)易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)
專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù)、信息處理(是什么專(zhuān)業(yè),寫(xiě)什么專(zhuān)業(yè))班級(jí):計(jì)算本1101(按自己班級(jí)填寫(xiě))
日期填寫(xiě) 2014年4月 8日
實(shí)驗(yàn)題目:簡(jiǎn)易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)
實(shí)驗(yàn)類(lèi)型:上機(jī)實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康募耙?/p>
1.掌握線(xiàn)性布局的應(yīng)用;
2.掌握表格布局的應(yīng)用;
3.掌握數(shù)組的應(yīng)用;
4.掌握如何Button組件的使用;
5.掌握代碼中訪(fǎng)問(wèn)布局組件的方法;
6.掌握特定組件的事件設(shè)計(jì)方法。
二、實(shí)驗(yàn)儀器設(shè)備與軟件環(huán)境
1、電腦。
2、Android集成開(kāi)發(fā)工具adt-bundle。
三、實(shí)驗(yàn)過(guò)程
1、布局設(shè)計(jì)
…這部分自己填
2.程序設(shè)計(jì)
…這部分自己填
第二篇:AVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)-
JAVA課程設(shè)計(jì)
簡(jiǎn)易計(jì)算器的設(shè)計(jì)
學(xué)號(hào): 姓名: 班級(jí): 指導(dǎo)教師:完成日期:第1頁(yè)(共11頁(yè))
2016-12-
31JAVA課程設(shè)計(jì)
目 錄
簡(jiǎn)易計(jì)算器課程設(shè)計(jì).......................................................................................................................1 1.課程設(shè)計(jì)目的...........................................................................................................................1 2.課程設(shè)計(jì)任務(wù)與要求...............................................................................................................1
2.1課程設(shè)計(jì)內(nèi)容....................................................................................................................1 2.2課程設(shè)計(jì)要求....................................................................................................................1 2.3課程設(shè)計(jì)環(huán)境....................................................................................................................1 3.設(shè)計(jì)方案...................................................................................................................................1
3.1程序功能............................................................................................................................1 3.2設(shè)計(jì)的具體實(shí)現(xiàn)................................................................................................................2
3.2.1界面設(shè)計(jì)..................................................................................................................2 3.3各模塊功能的介紹和實(shí)現(xiàn).................................................................................................2
3.3.1所用到的Java類(lèi)庫(kù)包:............................................................................................2 3.3.2按鈕,歸零,初始狀態(tài),面板布局......................................................................2 3.3.3添加監(jiān)視器..............................................................................................................3 3.3.4 計(jì)算.........................................................................................................................4
4.程序測(cè)試...................................................................................................................................5
4.1測(cè)試內(nèi)容與結(jié)果................................................................................................................5 4.2程序運(yùn)行效果圖................................................................................................................5 5.課程設(shè)計(jì)總結(jié)...........................................................................................................................5 附錄...................................................................................................................................................7
附錄A:主要源程序................................................................................................................7
(1)
第1頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
1.課程設(shè)計(jì)目的
通過(guò)JAVA課程設(shè)計(jì),使學(xué)生能將學(xué)到的面向?qū)ο蟮某绦蛟O(shè)計(jì)思想應(yīng)用到具體的工作和學(xué)習(xí)中,加深對(duì)類(lèi)與對(duì)象的理解,要求學(xué)生能夠?qū)ΜF(xiàn)實(shí)生活中許多具體的事物抽象出類(lèi),并掌握類(lèi)、對(duì)象、繼承、方法等概念與抽象方法和多態(tài)性的概念。
2.課程設(shè)計(jì)任務(wù)與要求
2.1課程設(shè)計(jì)內(nèi)容
編寫(xiě)一個(gè)java簡(jiǎn)易計(jì)算器程序 2.2課程設(shè)計(jì)要求
設(shè)計(jì)一個(gè)簡(jiǎn)單swing窗口的計(jì)算器,具有一般計(jì)算功能,能進(jìn)行基本的加、減、乘、除運(yùn)算,運(yùn)行結(jié)果能正確顯示,可以清除數(shù)據(jù)。并且能隨時(shí)清除計(jì)算器結(jié)果進(jìn)行下一次計(jì)算。
2.3課程設(shè)計(jì)環(huán)境
Win 7, eclipse,JDK開(kāi)發(fā)包
3.設(shè)計(jì)方案
3.1程序功能
本次設(shè)計(jì)的簡(jiǎn)易計(jì)算器,具有一般計(jì)算功能,能進(jìn)行基本的加、減、乘、除運(yùn)算,運(yùn)行結(jié)果能正確顯示,可以清除數(shù)據(jù)。并且能隨時(shí)清除計(jì)算器結(jié)果進(jìn)行下一次計(jì)算。并且能隨時(shí)清除計(jì)算器結(jié)果進(jìn)行下一次計(jì)算。
第1頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
3.2設(shè)計(jì)的具體實(shí)現(xiàn)
3.2.1界面設(shè)計(jì)
3.3各模塊功能的介紹和實(shí)現(xiàn) 3.3.1所用到的Java類(lèi)庫(kù)包: java.awt.*;
基本的圖形界面組件來(lái)源于awt包。
java.awt.event.*;
事件的屬性處理來(lái)源于awt.event包。
3.3.2按鈕,歸零,初始狀態(tài),面板布局
public void frame(){ Frame fm = new Frame(“簡(jiǎn)單計(jì)算器”);for(int i = 0;i <= 16;i++){ b[i] = new Button(ss[i]);
第2頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
} for(int i = 0;i <= 15;i++){ p2.add(b[i]);} //創(chuàng)建按鈕 并添加到P
2b[16].setBackground(Color.yellow);txt = new TextField(15);txt.setEditable(false);for(int i = 0;i <= 16;i++){ b[i].addActionListener(new buttonlistener());//添加監(jiān)聽(tīng)器 } b[16].addActionListener(new close());fm.addWindowListener(this);fm.setBackground(Color.red);p1.setLayout(new BorderLayout());p1.add(txt, “North”);p2.setLayout(new GridLayout(4, 4));p3.setLayout(new BorderLayout());p3.add(b[16]);fm.add(p1, “North”);fm.add(p2, “Center”);fm.add(p3, “South”);fm.pack();fm.setVisible(true);//都是些窗中設(shè)置 添加相關(guān)組件和監(jiān)聽(tīng)器 }
public void windowClosing(WindowEvent e){ System.exit(0);//退出系統(tǒng) } 3.3.3添加監(jiān)視器
class buttonlistener implements ActionListener {//編寫(xiě)監(jiān)聽(tīng)器事件 通過(guò)按鍵得出給果
public void actionPerformed(ActionEvent e){
Button btn =(Button)e.getSource();
if(btn.getLabel()== “=”){
jisuan();
str = String.valueOf(a);
txt.setText(str);
s = “";
} else if(btn.getLabel()== ”+“){
jisuan();
txt.setText(”“);
s = ”+“;
} else if(btn.getLabel()== ”-“){
第3頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
jisuan();
txt.setText(”“);
s = ”-“;
} else if(btn.getLabel()== ”/“){
jisuan();
txt.setText(”“);
s = ”/“;
} else if(btn.getLabel()== ”*“){
jisuan();
txt.setText(”“);
s = ”*“;
} else {
txt.setText(txt.getText()+ btn.getLabel());
if(btn.getLabel()== ”清空“)
txt.setText(”“);
}
}
3.3.4 計(jì)算
public void jisuan(){//編寫(xiě)具體計(jì)算方法
if(s == ”+“)
a += Double.parseDouble(txt.getText());
else if(s == ”-“)
a-= Double.parseDouble(txt.getText());
else if(s == ”*“)
a *= Double.parseDouble(txt.getText());
else if(s == ”/“)
a /= Double.parseDouble(txt.getText());
else
a = Double.parseDouble(txt.getText());
}
第4頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
4.程序測(cè)試
4.1測(cè)試內(nèi)容與結(jié)果
4.2程序運(yùn)行效果圖
1.輸入“50”,“-”,“45”,“*”,“2”,“=”,在程序中操作結(jié)果 如下圖:
5.課程設(shè)計(jì)總結(jié)
1.存在的不足及預(yù)期的解決方法:
不足之處:
(1):計(jì)算器的操作界面不是很美觀(guān);(2):目前只能用于+,-,*,/四則運(yùn)算;
(3):連續(xù)多次進(jìn)行運(yùn)算會(huì)有計(jì)算錯(cuò)誤的現(xiàn)象;
第5頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
預(yù)期解決辦法:
(1):查詢(xún)資料學(xué)習(xí)了解操作界面的制作方法及需要的技巧;
(2):查詢(xún)相關(guān)資料了解處理字符數(shù)組賦值的相關(guān)問(wèn)題(即處理字符數(shù)組
賦值只取到預(yù)定的位置);
(3):學(xué)習(xí)了解相關(guān)的庫(kù)函數(shù)的功能以增加計(jì)算器的計(jì)算功能(如計(jì)算器 的次方,開(kāi)方,圓周率,等運(yùn)算符).2.心得體會(huì):
這次的程序設(shè)計(jì),從一個(gè)簡(jiǎn)單的計(jì)算器就可以看出JAVA的程序設(shè)計(jì)不是那么簡(jiǎn)單,僅僅是一個(gè)小小的計(jì)算器,就已經(jīng)有很多需要注意的問(wèn)題,一不小心就會(huì)出錯(cuò),還會(huì)有很多地方?jīng)]怎么明白,而計(jì)算器的設(shè)計(jì)是最簡(jiǎn)單的幾個(gè)設(shè)計(jì)其中之一,可見(jiàn),平時(shí)的知識(shí)積累是很重要的。沒(méi)有知識(shí)的積累,再簡(jiǎn)單的東西也不可能設(shè)計(jì)出來(lái)。課程設(shè)計(jì)還讓我們練習(xí)了動(dòng)手能力,使我們平時(shí)學(xué)習(xí)的知識(shí)得以在實(shí)際中應(yīng)用,不會(huì)學(xué)死書(shū),活學(xué)活用,很大程度上提高了我們的能力,對(duì)以后的學(xué)習(xí)、工作、生活也會(huì)有一定的幫助。
通過(guò)此次的程序設(shè)計(jì),讓我了解了JAVA的更多知識(shí),使平時(shí)的知識(shí)可以運(yùn)用,更好的理解了JAVA這門(mén)課程。
參考文獻(xiàn)
《java基礎(chǔ)入門(mén)》
第6頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
附錄
附錄A:主要源程序
package 小程序;
import java.awt.*;import java.awt.event.*;
public class JiSuanQi extends WindowAdapter { Panel p1 = new Panel();Panel p2 = new Panel();Panel p3 = new Panel();TextField txt;private Button[] b = new Button[17];private String ss[] = { ”7“, ”8“, ”9“, ”+“, ”4“, ”5“, ”6“, ”-“, ”1“, ”2“, ”3“, ”*“, ”清空“, ”0“, ”=“, ”/“, ”關(guān)閉“ };static double a;static String s, str;//定義變量 創(chuàng)建對(duì)像
public static void main(String args[]){(new JiSuanQi()).frame();}
public void frame(){ Frame fm = new Frame(”簡(jiǎn)單計(jì)算器“);for(int i = 0;i <= 16;i++){ b[i] = new Button(ss[i]);} for(int i = 0;i <= 15;i++){ p2.add(b[i]);} //創(chuàng)建按鈕 并添加到P2
b[16].setBackground(Color.yellow);txt = new TextField(15);txt.setEditable(false);for(int i = 0;i <= 16;i++){ b[i].addActionListener(new buttonlistener());//添加監(jiān)聽(tīng)器 } b[16].addActionListener(new close());fm.addWindowListener(this);fm.setBackground(Color.red);p1.setLayout(new BorderLayout());
第7頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
p1.add(txt, ”North“);p2.setLayout(new GridLayout(4, 4));p3.setLayout(new BorderLayout());p3.add(b[16]);fm.add(p1, ”North“);fm.add(p2, ”Center“);fm.add(p3, ”South“);fm.pack();fm.setVisible(true);//都是些窗中設(shè)置 添加相關(guān)組件和監(jiān)聽(tīng)器 }
public void windowClosing(WindowEvent e){ System.exit(0);//退出系統(tǒng) }
class buttonlistener implements ActionListener {//編寫(xiě)監(jiān)聽(tīng)器事件 通過(guò)按鍵得出給果
public void actionPerformed(ActionEvent e){ Button btn =(Button)e.getSource();if(btn.getLabel()== ”=“){ jisuan();str = String.valueOf(a);txt.setText(str);s = ”“;} else if(btn.getLabel()== ”+“){ jisuan();txt.setText(”“);s = ”+“;} else if(btn.getLabel()== ”-“){ jisuan();txt.setText(”“);s = ”-“;} else if(btn.getLabel()== ”/“){ jisuan();txt.setText(”“);s = ”/“;
} else if(btn.getLabel()== ”*“){ jisuan();txt.setText(”“);s = ”*“;} else { txt.setText(txt.getText()+ btn.getLabel());
第8頁(yè)(共11頁(yè))
JAVA簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
if(btn.getLabel()== ”清空“)txt.setText(”“);} }
public void jisuan(){//編寫(xiě)具體計(jì)算方法
if(s == ”+“)a += Double.parseDouble(txt.getText());else if(s == ”-“)a-= Double.parseDouble(txt.getText());else if(s == ”*“)a *= Double.parseDouble(txt.getText());else if(s == ”/")a /= Double.parseDouble(txt.getText());else
a = Double.parseDouble(txt.getText());} } }
class close implements ActionListener {//退出
public void actionPerformed(ActionEvent e){ System.exit(0);} }
第9頁(yè)(共11頁(yè))
第三篇:android實(shí)驗(yàn)報(bào)告
移動(dòng)應(yīng)用開(kāi)發(fā)實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)名稱(chēng)
音樂(lè)播放器
班
級(jí)
學(xué)
號(hào)
姓
名
指導(dǎo)教師
實(shí)驗(yàn)成績(jī)
2016 年04月
一、實(shí)驗(yàn)?zāi)康?/p>
本項(xiàng)目是一款基于A(yíng)ndroid手機(jī)平臺(tái)的音樂(lè)播放器,使Android手機(jī)擁有個(gè)性的多媒體播放器,使手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地處于音樂(lè)視頻的旋律之中。使人們的生活更加多樣化。也使設(shè)計(jì)者更加熟練Android的技術(shù)和其它在市場(chǎng)上的特點(diǎn)。
二、實(shí)驗(yàn)內(nèi)容及要求
在其中寫(xiě)清楚這個(gè)實(shí)驗(yàn)具體要你做什么,怎么做,要達(dá)到什么樣的效果等。本設(shè)計(jì)實(shí)現(xiàn)的主要功能是播放Mp3,Wav多種格式的音樂(lè)文件,并且能夠控制播放,暫停,停止,下一首,上一首播放列等基本播放控制功能,界面簡(jiǎn)明,操作簡(jiǎn)單。
三、實(shí)驗(yàn)方案設(shè)計(jì)
在其中寫(xiě)清楚你的程序的詳細(xì)設(shè)計(jì),用流程圖配文字的形式描述。如果其中涉及到算法,一定要把算法闡述清楚。
3.1.1假設(shè)安裝了音樂(lè)播放器的用戶(hù)是系統(tǒng)的主要設(shè)計(jì)對(duì)象,其擁有以下操作,啟動(dòng)軟件、播放音樂(lè)、暫停播放、停止播放、退出軟件,其用例圖如下
圖2.1 播放器基本用例圖
3.1.2用例分析 ?用例名稱(chēng):?jiǎn)?dòng)軟件 參與者:用戶(hù)
目標(biāo):使得用戶(hù)啟動(dòng)軟件并加載手機(jī)和sd卡上的音頻文件到播放列表 前置條件:無(wú)
基本事件流:1.用戶(hù)啟動(dòng)軟件
2.播放器將播放列表中的當(dāng)前的歌曲
?用例名稱(chēng):播放 參與者:用戶(hù)
目標(biāo):使得用戶(hù)可以播放在播放列表中選中的歌曲 前置條件:播放器正在運(yùn)行
基本事件流:1.用戶(hù)單擊“播放”按鈕
2.播放器將播放列表中的當(dāng)前的歌曲
?用例名稱(chēng):暫停 參與者:用戶(hù)
目標(biāo):使得用戶(hù)可以暫停正在播放的歌曲 前置條件:歌曲正在播放且未停止和暫停 基本事件流:1.用戶(hù)單擊“暫?!卑粹o
2.播放器將暫停當(dāng)前的歌曲
④用例名稱(chēng):停止 參與者:用戶(hù)
目標(biāo):使得用戶(hù)可以停止正在播放的歌曲 前置條件:歌曲正在播放或暫停 基本事件流:1.用戶(hù)單擊“停止”按鈕
2.播放器將停止當(dāng)前播放的歌曲
⑤用例名稱(chēng):推出 參與者:用戶(hù)
目標(biāo):使得用戶(hù)退出或者后臺(tái)播放音樂(lè) 前置條件:程序在運(yùn)行
基本事件流:1.用戶(hù)按返回鍵
2.播放器退出或者進(jìn)入后臺(tái)播放
四、實(shí)驗(yàn)測(cè)試
Step1.啟動(dòng)軟件后,軟件自動(dòng)檢索手機(jī)和sd卡的音頻文件,并組織顯示成列表.Step2.點(diǎn)擊列表的歌曲名字。
Step3.播放音樂(lè)。
Step4.點(diǎn)擊暫停,音樂(lè)暫停
Step5.點(diǎn)擊播放 轉(zhuǎn)到step3 Step6.點(diǎn)擊停止 停止播放音樂(lè)
Step7.點(diǎn)擊退出,若音樂(lè)處于播放狀態(tài),則音樂(lè)轉(zhuǎn)向后臺(tái)播放,界面退出。
Step8.點(diǎn)擊退戶(hù),若音樂(lè)處于暫停或者停止?fàn)顟B(tài),直接退出。
音樂(lè)播放器流程圖
4.1MusicInfoController類(lèi)
這個(gè)類(lèi)繼承于service,是播放音樂(lè)的服務(wù)類(lèi)。播放音樂(lè),暫停音樂(lè),停止播放等操作都封裝在這個(gè)類(lèi)中。
主要的執(zhí)行動(dòng)作有:
4.1.1.類(lèi)啟動(dòng) onCreate(){
mMediaPlayer = new MediaPlayer();//分配一個(gè)播放對(duì)象
mMediaPlayer.setOnPreparedListener(mPrepareListener);//綁定之前
mMediaPlayer.setOnCompletionListener(mCompleteListener);//綁定之 后
}
4.1.2.服務(wù)綁定activity
MediaPlayer.OnCompletionListener mCompleteListener = new
MediaPlayer.OnCompletionListener()//實(shí)例化一個(gè)綁定監(jiān)聽(tīng)器的匿名類(lèi)
{
public void onCompletion(MediaPlayer mp)//完成綁定后
{
broadcastEvent(PLAY_COMPLETED);//廣播消息
}
};
4.2MusicInfoController類(lèi)
這個(gè)類(lèi)主要用于獲取android系統(tǒng)中的音頻文件,并提供訪(fǎng)問(wèn)接口,它是一個(gè)單例類(lèi)。
4.2.1獲得播放文件列表
private Cursor query(Uri uri, String[] prjs, String selections, String[] selectArgs, String order){ ContentResolver resolver = pApp.getContentResolver();//取得一個(gè)連接對(duì)象if(resolver == null){
return null;
}
return resolver.query(uri, prjs, selections, selectArgs, order);} public Cursor getAllSongs(){
return query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);//查詢(xún)ContentResolver 的所有音頻文件
} 4.3MusicList類(lèi)
改類(lèi)繼承于ListActivity,主要用于顯示歌曲列表,并且封裝部分操作,以及與父級(jí)目標(biāo)通信。
4.3.1播放
protected void onListItemClick(ListView l, View v, int position, long id){ //歌曲列表的某項(xiàng)被點(diǎn)擊
super.onListItemClick(l, v, position, id);
if(mCursor == null ||mCursor.getCount()== 0){
return;
}
mCursor.moveToPosition(position);//游標(biāo)移動(dòng)到當(dāng)前路徑
String url = mCursor.getString(mCursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));//取得絕對(duì)路徑
mMusicPlayerService.setDataSource(url);//傳遞絕對(duì)路徑
mMusicPlayerService.start();//播放音樂(lè)
}
4.3.2暫停/播放
mPlayPauseButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
if(mMusicPlayerService!= null &&
mMusicPlayerService.isPlaying()){
mMusicPlayerService.pause();//音樂(lè)播放的服務(wù)暫停
mPlayPauseButton.setText(R.string.play);//改變按鈕文字
} else if(mMusicPlayerService!= null){
mMusicPlayerService.start();//如果已經(jīng)是暫停,則播放音樂(lè)
mPlayPauseButton.setText(R.string.pause);//改變文字
}
}
});
4.3.3停止
mStopButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
// Perform action on click
if(mMusicPlayerService!= null){
mTextView.setVisibility(View.VISIBLE);//改變文字狀態(tài)
mPlayPauseButton.setVisibility(View.INVISIBLE);//隱藏按鈕
mStopButton.setVisibility(View.INVISIBLE);//隱藏停止按鈕
mMusicPlayerService.stop();//后臺(tái)音樂(lè)停止播放
}
}
});4.4MusicPlayerApp類(lèi)
該類(lèi)繼承與Application,是程序的生存類(lèi)??梢詷?biāo)識(shí)音樂(lè)播放器的生命周期,包括音樂(lè)在后臺(tái)播放等。
4.4.1單例模式
public void onCreate(){
super.onCreate();
mMusicInfoController = MusicInfoController.getInstance(this);//返回該類(lèi)的一個(gè)唯一實(shí)例
}
public MusicInfoController getMusicInfoController(){
return mMusicInfoController;}
五、程序的使用手冊(cè)
系統(tǒng)編譯生成apk文件,將apk文件拷到手機(jī)或者sd卡中,直接打開(kāi)即可安裝,或者安裝360手機(jī)助手通過(guò)usb調(diào)試的方式進(jìn)行安裝。
啟動(dòng)軟件后,加載歌曲列表現(xiàn)在這個(gè)界面上,如01表示歌曲名,unknown表示歌曲的演唱者
軟件啟動(dòng)界面
從加載的歌曲列表中點(diǎn)擊要播放的歌曲,開(kāi)始播放
音樂(lè)播放界面
六、心得體會(huì)
通過(guò)對(duì)Android手機(jī)平臺(tái)的音樂(lè)播放器軟件的開(kāi)發(fā),使我對(duì)Android音樂(lè)播放器系統(tǒng)的整體設(shè)計(jì)有一個(gè)深入的了解,對(duì)整個(gè)流程也會(huì)有一個(gè)清晰的認(rèn)識(shí)。開(kāi)發(fā)Android音樂(lè)播放器,要抓住開(kāi)發(fā)的核心部分,音樂(lè)播放器大體由播放主界面、播放列表、菜單、播放設(shè)置、文件瀏覽、歌曲搜索六大核心組成,只要掌握了這六部分的開(kāi)發(fā),音樂(lè)播放器就能初具規(guī)模。而其它的功能都是在這六個(gè)功能的基礎(chǔ)上去補(bǔ)充添加的,但是這是功能的確是必不可少的功能,否則就不能算是音樂(lè)播放器了。
第四篇:Android實(shí)驗(yàn)報(bào)告—網(wǎng)絡(luò)通信
實(shí)驗(yàn)三
Android網(wǎng)絡(luò)通信
實(shí)驗(yàn)?zāi)康模?/p>
本實(shí)驗(yàn)的目的是使學(xué)生深入了解利用Intent實(shí)現(xiàn)進(jìn)程間的通信過(guò)程。學(xué)會(huì)利用Intent進(jìn)行Activity的跳轉(zhuǎn),以及鏈接網(wǎng)頁(yè)信息;學(xué)會(huì)利用Intent將其他Activity的信息返回到Activity中的方法。體會(huì)Activity間通信的過(guò)程。
實(shí)驗(yàn)要求:
編程實(shí)現(xiàn)下述功能:主界面上有一個(gè)“登錄”按鈕和“鏈接網(wǎng)頁(yè)”按鈕,點(diǎn)擊“登錄”按鈕后打開(kāi)一個(gè)新的Activity;新的Activity上面有輸入用戶(hù)名和密碼的控件(如下圖所示)點(diǎn)擊“鏈接網(wǎng)頁(yè)”按鈕,新的Activity上面有輸入U(xiǎn)ri信息的控件,可以鏈接到相應(yīng)的網(wǎng)站,在用戶(hù)關(guān)閉這個(gè)Activity后,返回到主界面中
程序界面如下圖所示:
[實(shí)現(xiàn)提示]
1、建立Android工程,其中 工程名稱(chēng):WebCommunication579
包名稱(chēng):cn.edu.bistu.dj1001.WebCommunication579 Activity名稱(chēng):WebCommunication579
2、工程建立完畢后,首先進(jìn)行界面設(shè)計(jì),建立相應(yīng)的子Layout界面
3、在工程中添加相應(yīng)的.java文件,處理各個(gè)Activity的事件響應(yīng)
4、在Manifest中添加新建的Activity信息,進(jìn)行注冊(cè)。
程序源碼:
主界面java文件代碼: package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;
public class WebCommunication579 extends Activity { private Button btnLogin,btnGoToWeb;private TextView show;private static final int SUBACTIVITY1 = 1;@Override
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);btnLogin=(Button)findViewById(R.id.btnLogin);btnGoToWeb=(Button)findViewById(R.id.btnGoToWeb);show=(TextView)findViewById(R.id.A1show);
btnLogin.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(WebCommunication592.this, activity1.class);
startActivityForResult(intent, SUBACTIVITY1);
}});btnGoToWeb.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(WebCommunication592.this, activity2.class);startActivity(intent);}});} protected void onActivityResult(int requestCode, int resultCode, Intent data){ super.onActivityResult(requestCode, resultCode, data);switch(requestCode){ case SUBACTIVITY1: if(resultCode == RESULT_OK){Uri uriData = data.getData();show.setText(uriData.toString());} break;}};} 界面一java文件代碼:
package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;
public class activity1 extends Activity { private Button btnOK,btnCancel;private EditText edtInput;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity1);edtInput=(EditText)findViewById(R.id.edtA1Input);btnOK=(Button)findViewById(R.id.btnA1OK);btnCancel=(Button)findViewById(R.id.btnA1Cancel);btnOK.setOnClickListener(new OnClickListener(){
public void onClick(View v){ String uriString = edtInput.getText().toString();Uri data = Uri.parse(uriString);Intent result = new Intent(null, data);setResult(RESULT_OK, result);finish();}});btnCancel.setOnClickListener(new OnClickListener(){ public void onClick(View view){ finish();}});}} 界面二java文件代碼:
package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;
import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;
public class activity2 extends Activity { private EditText edtInput;private Button btnOK,btnCancel;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity2);edtInput=(EditText)findViewById(R.id.edtA2Input);btnOK=(Button)findViewById(R.id.btnA2OK);btnCancel=(Button)findViewById(R.id.btnA2Cancel);btnOK.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(edtInput.getText().toString()));startActivity(intent);}});btnCancel.setOnClickListener(new OnClickListener(){
public void onClick(View v){
finish();
}});}} 主界面的xml文件代碼:
xmlns:android=“http://schemas.android.com/apk/res/android” android:orientation=“Horizontal” android:layout_width=“fill_parent” android:layout_height=“fill_parent”> android:text=“" android:id=”@+id/A1show“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“>
界面一的xml文件代碼:
android:orientation=”Horizontal“ android:layout_width=”fill_parent“ android:layout_height=”fill_parent“ xmlns:android=”http://schemas.android.com/apk/res/android“> android:layout_width=”wrap_content“ android:layout_height=”wrap_content“> android:text=”用戶(hù)名和密碼:“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“> android:text=”“ android:id=”@+id/edtA1Input“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“> android:layout_width=”wrap_content“ android:layout_height=”wrap_content“>
界面二的xml文件代碼: xmlns:android=”http://schemas.android.com/apk/res/android“> android:text=”“ android:id=”@+id/edtA2Input“ android:layout_width=”match_parent“ android:layout_height=”wrap_content“>
程序運(yùn)行結(jié)果:
程序包:
主界面:
點(diǎn)擊登錄按鈕后:
點(diǎn)擊確定按鈕后:
點(diǎn)擊鏈接網(wǎng)頁(yè)按鈕后:
點(diǎn)擊確定按鈕后:
實(shí)驗(yàn)心得體會(huì):
通過(guò)本次實(shí)驗(yàn)深入了解了Intent實(shí)現(xiàn)進(jìn)程間的通信過(guò)程。熟悉了利用Intent將其他Activity的信息返回到Activity中的方法,可以更熟練的使用安卓編程軟件。
第五篇:計(jì)算器實(shí)驗(yàn)心得
院
系:計(jì) 算 機(jī) 學(xué) 院
實(shí)驗(yàn)課程:計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn) 實(shí)驗(yàn)項(xiàng)目:計(jì)算器 指導(dǎo)老師:宋桂琴
開(kāi)課時(shí)間:2010 ~ 2011第 2學(xué)期
專(zhuān) 業(yè):軟件工程(數(shù)字媒體)班 級(jí):10本8班 學(xué) 生:史文林 學(xué) 號(hào):20102003056
華南師范大學(xué)教務(wù)處
在這個(gè)實(shí)驗(yàn)中,我首先按照《程序設(shè)計(jì)實(shí)驗(yàn)課程指導(dǎo)》中的步驟做,然后再在 “calculatorDlg.cpp”文件中增加不同的算法功能,在實(shí)驗(yàn)過(guò)程中出現(xiàn)了一些問(wèn)題,但都通過(guò)自己檢查或者其他同學(xué)的幫助解決了,以下就是我實(shí)驗(yàn)過(guò)程中碰到的問(wèn)題:
(1)在按照指導(dǎo)書(shū)中的步驟做完后,再在“ calculatorDlg.cpp”文件中增加了“atan”“exp”“sqrt”“l(fā)og”這四個(gè)功能,一開(kāi)始以為增加了功能就完事 華 南 師 范 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告
學(xué)生姓名
史文林
學(xué)
號(hào)
20102003056
專(zhuān)
業(yè)
軟件工程(數(shù)字媒體)
年級(jí)、班級(jí)
10本8班
課程名稱(chēng)
計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)
實(shí)驗(yàn)項(xiàng)目
計(jì)算器
實(shí)驗(yàn)時(shí)間
2011 年 月日
實(shí)驗(yàn)指導(dǎo)老師
宋桂琴
實(shí)驗(yàn)評(píng)分
了,就點(diǎn)擊“build”健,但結(jié)果顯示程序存在多個(gè)錯(cuò)誤,然后才知道沒(méi)有在“calculatorDlg.h”文件中寫(xiě)“include
void CCalculatorDlg::OnRadio5(){ // TODO: Add your control notification handler code here m_edit1=atan(result);UpdateData(FALSE);}
void CCalculatorDlg::OnRadio6(){ // TODO: Add your control notification handler code here m_edit1=exp(result);UpdateData(FALSE);}
void CCalculatorDlg::OnRadio7(){ // TODO: Add your control notification handler code here m_edit1=sqrt(result);UpdateData(FALSE);}
void CCalculatorDlg::OnRadio8(){ // TODO: Add your control notification handler code here m_edit1=log(result);UpdateData(FALSE);} 華 南 師 范 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告
學(xué)生姓名
史文林
學(xué)
號(hào)
20102003056
專(zhuān)
業(yè)
軟件工程(數(shù)字媒體)
年級(jí)、班級(jí)
10本8班
課程名稱(chēng)
計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)
實(shí)驗(yàn)項(xiàng)目
計(jì)算器
實(shí)驗(yàn)時(shí)間
2011 年 月日
實(shí)驗(yàn)指導(dǎo)老師
宋桂琴
實(shí)驗(yàn)評(píng)分
(2)在增加完算法功能之后,點(diǎn)擊“build”健,仍然顯示出存在多個(gè)錯(cuò)誤,一直找不到原因,后來(lái)問(wèn)了同學(xué)之后才知道在沒(méi)有在“calculatorDlg.h”寫(xiě)出應(yīng)用程序框架:
afx_msg void OnButton1();afx_msg void OnButton2();afx_msg void OnButton3();afx_msg void OnButton4();afx_msg void OnButton5();afx_msg void OnButton6();afx_msg void OnButton7();afx_msg void OnButton8();afx_msg void OnButton9();afx_msg void OnBUTTONplus();afx_msg void OnBUTTONminus();afx_msg void OnBUTTONmulti();afx_msg void OnBUTTONzero();afx_msg void OnBUTTONequal();afx_msg void OnBUTTONclean();afx_msg void OnBUTTONdiv();afx_msg void OnRadio1();afx_msg void OnRadio2();afx_msg void OnRadio3();afx_msg void OnRadio4();afx_msg void OnRadio5();afx_msg void OnRadio6();afx_msg void OnRadio7();afx_msg void OnRadio8();afx_msg void OnChangeEdit1();
(3)在改正以上錯(cuò)誤之后,點(diǎn)擊“build”后結(jié)果顯示0錯(cuò)誤,便開(kāi)始運(yùn)行程序,但是不知道為什么,運(yùn)行程序之后點(diǎn)擊計(jì)算器上的按鍵時(shí)計(jì)算器不能運(yùn)行,后華 南 師 范 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告
學(xué)生姓名
史文林
學(xué)
號(hào)
20102003056
專(zhuān)
業(yè)
軟件工程(數(shù)字媒體)
年級(jí)、班級(jí)
10本8班
課程名稱(chēng)
計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)
實(shí)驗(yàn)項(xiàng)目
計(jì)算器
實(shí)驗(yàn)時(shí)間
2011 年 月日
實(shí)驗(yàn)指導(dǎo)老師
宋桂琴
實(shí)驗(yàn)評(píng)分
來(lái)經(jīng)過(guò)檢查才發(fā)現(xiàn)沒(méi)有在“calculatorDlg.cpp”中寫(xiě)出映射ID及函數(shù):
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)ON_BN_CLICKED(IDC_BUTTON4, OnButton4)ON_BN_CLICKED(IDC_BUTTON5, OnButton5)ON_BN_CLICKED(IDC_BUTTON6, OnButton6)ON_BN_CLICKED(IDC_BUTTON7, OnButton7)ON_BN_CLICKED(IDC_BUTTON8, OnButton8)ON_BN_CLICKED(IDC_BUTTON9, OnButton9)ON_BN_CLICKED(IDC_BUTTON_plus, OnBUTTONplus)ON_BN_CLICKED(IDC_BUTTON_minus, OnBUTTONminus)ON_BN_CLICKED(IDC_BUTTON_multi, OnBUTTONmulti)ON_BN_CLICKED(IDC_BUTTON_zero, OnBUTTONzero)ON_BN_CLICKED(IDC_BUTTON_equal, OnBUTTONequal)ON_BN_CLICKED(IDC_BUTTON_clean, OnBUTTONclean)ON_BN_CLICKED(IDC_BUTTON_div, OnBUTTONdiv)ON_BN_CLICKED(IDC_RADIO1, OnRadio1)ON_BN_CLICKED(IDC_RADIO2, OnRadio2)ON_BN_CLICKED(IDC_RADIO3, OnRadio3)ON_BN_CLICKED(IDC_RADIO4, OnRadio4)ON_BN_CLICKED(IDC_RADIO5, OnRadio5)ON_BN_CLICKED(IDC_RADIO6, OnRadio6)ON_BN_CLICKED(IDC_RADIO7, OnRadio7)ON_BN_CLICKED(IDC_RADIO8, OnRadio8)
在經(jīng)過(guò)上面幾次更正后,計(jì)算器終于可以運(yùn)行了,但是有一個(gè)問(wèn)題就是每次運(yùn)行點(diǎn)擊數(shù)字健時(shí),在結(jié)果框里首先顯示出“1.#INF”,然后再按其他健時(shí)才能正常運(yùn)算。問(wèn)了幾個(gè)同學(xué),他們也出現(xiàn)了同樣的問(wèn)題,就是不知道如何去解決。
華 南 師 范 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告
學(xué)生姓名
史文林
學(xué)
號(hào)
20102003056
專(zhuān)
業(yè)
軟件工程(數(shù)字媒體)
年級(jí)、班級(jí)
10本8班
課程名稱(chēng)
計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)
實(shí)驗(yàn)項(xiàng)目
計(jì)算器
實(shí)驗(yàn)時(shí)間
2011 年 月日
實(shí)驗(yàn)指導(dǎo)老師
宋桂琴
實(shí)驗(yàn)評(píng)分