Tải bản đầy đủ - 0 (trang)
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG ANDROID

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG ANDROID

Tải bản đầy đủ - 0trang

Android. Môi trường phát triển này rất dễ cài đặt, thiết lập và có thể tạo ra một dự án

(project) mới chỉ sau vài giây.

Với Android Studio thì có nhiều ưu điểm hơn nhờ các yếu tố sau:

-



Giao diện chỉnh sửa WYSIWYG Editor hỗ trợ Live-layout có thể dựng ứng



-



dụng và xem trước theo thời gian thực.

Có tùy chọn để xem trước giao diện với nhiều thiết lập trên nhiều màn hình khi



-



viết ứng dụng.

Cho phép tạo ra file cài đặt APK (file cài đặt ứng dụng Android) hàng loạt.

Hỗ trợ cơng cụ Lint để kiểm tra tính tương thích, hiệu năng ứng dụng và khả



-



năng hoạt động trên nhiều phiên bản Android...

Hỗ trợ phát triển ứng dụng cho Android Wear, Android TV và Android Auto.

Có thể tích hợp với nền tảng đám mây Google Cloud Platform (App Engine và

Google Cloud Messaging)



3.3. Giao diện chương trình

Giao diện khi chạy ứng dụng Calculator sử dụng LineLayout, Button và TextView để

thiết kế. Giao diện gồm Button số từ 0 – 9, dấu ngoặc (), dấu bằng, dấu chấm và các

tốn tử tính tốn.



Giao diện ứng dụng sau tính 1 biểu thức.



3.4. Source code

Source file InfixToPostfix

package ictu.ttcs.tuanictu97.calplus;

import java.util.Arrays;

import java.util.Stack;

public class InfixToPostfix {

public int priority(char c) {

tu uu tien

if (c == '+' || c == '-') {



// thiet lap thu



return 1;

} else if (c == '*' || c == '/') {

return 2;

}

else {

return 0;

}

}

public boolean isSoAm(char c){

boolean check = false;

try {

Float num =

Float.parseFloat(String.valueOf(c));

if (num < 0){

check = true;

}else

check = false;

}catch (Exception e){

System.out.println("Lỗi");

}

return check;

}

public boolean isOperator(char c) {



// kiem tra



xem co phai toan tu

char operator[] = {'+', '-', '*', '/', ')', '(',

'~'};

Arrays.sort(operator);

if (Arrays.binarySearch(operator, c) > -1) {

return true;

} else {

return false;

}



}

public String[] processString(String sMath) { // xu

ly bieu thuc nhap vao thanh cac phan tu

String s1 = "", elementMath[] = null;

InfixToPostfix IFP = new InfixToPostfix();

sMath = sMath.trim();

sMath = sMath.replaceAll("\\s+", " "); //

chuan hoa sMath

for (int i = 0; i < sMath.length(); i++) {

char c =

sMath.charAt(i);//sMath.substring(i,1);

if (!IFP.isOperator(c)) {

s1 = s1 + c;

} else {

s1 = s1 + " " + c + " ";

}

}

s1 = s1.trim();

s1 = s1.replaceAll("\\s+", " "); //



chuan hoa



s1

elementMath = s1.split(" "); //tach s1 thanh cac

phan tu

//System.out.println(s1);

return elementMath;

}

public String reverseArrayString(String[] elementMath)

{

String string = "";

for (int i = elementMath.length; i


string += elementMath[i];



}

return string;

}

public String[] postfix(String[] elementMath) {

String s1 = "", E[];

Stack S = new Stack();

for (int i = 0; i < elementMath.length; i++) {

// duyet cac phan tu

char c = elementMath[i].charAt(0);



//



c la ky tu dau tien cua moi phan tu

if (!isOperator(c)) // neu c khong la toan tu

{

s1 = s1 + elementMath[i] + " ";



//



xuat elem vao s1

} else {

// c la toan tu

if (c == '(') {

S.push(elementMath[i]);



// c la



"(" -> day phan tu vao Stack

} else {

if (c == ')') {

// c la ")"

char c1;

//duyet lai cac phan tu trong Stack

do {

c1 = S.peek().charAt(0);

// c1 la ky tu dau tien cua phan tu

if (c1 != '(') {

s1 = s1 + S.peek() + " ";

// trong khi c1 != "("

}



S.pop();

} while (c1 != '(');

} else {

while (!S.isEmpty() &&

priority(S.peek().charAt(0)) >= priority(c)) {

// Stack khong rong va trong

khi phan tu trong Stack co do uu tien >= phan tu hien tai

s1 = s1 + S.peek() + " ";

// xuat phan tu trong Stack ra s1

S.pop();

}

S.push(elementMath[i]); //

dua phan tu hien tai vao Stack

}

}

}

}

while (!S.isEmpty()) {



// Neu Stack con phan



tu thi day het vao s1

s1 = s1 + S.peek() + " ";

S.pop();

}

E = s1.split(" ");



//



tach s1 thanh cac



phan tu

return E;

}

public String valueMath(String[] elementMath) {

Stack S = new Stack();

for (int i = 0; i < elementMath.length; i++) {

char c = elementMath[i].charAt(0);

if (!isOperator(c)) {



S.push(elementMath[i]);

} else {

double num = 0f;

double num1 = Float.parseFloat(S.pop());

double num2 = Float.parseFloat(S.pop());

switch (c) {

case '~' :

num = -num1;

break;

case '+':

num = num2 + num1;

break;

case '-':

num = num2 - num1;

break;

case '*':

num = num2 * num1;

break;

case '/':

num = num2 / num1;

break;

default:

break;

}

S.push(Double.toString(num));

}

}

return S.pop();

}

}



KẾT LUẬN



Việc nghiên cứu đề tài “Tìm hiểu ký pháp Ba Lan và xây dựng máy tính

Calculator” chính là tìm hiểu sau hơn về ngơn ngữ và phân tích thuật tốn của

ngành lập trình

Qua đợt thực tập cơ sở lần này em rất cảm ơn các thầy cô đã tạo điều kiện

cho em được làm đề tài nghiên cứu để hiểu sâu sắc hơn về bài toán . Thơng qua

việc phân tích đề tài “Tìm hiểu ký pháp Ba Lan và xây dựng ứng dụng máy tính

Calculator” cho em thấy được cách thức để làm một đề tài thực tập với ngành

học mà mình đang theo đuổi. Ngồi ra còn giúp cho em hiểu hơn được phần nào

về cách phân tích xử lý bài tốn, trau dồi kiến thức cho bản thân mình hơn về

lập trình, biết được sự kết hợp giữa kết nối phân tích giải thuật và thiết kế một

ứng dụng Android.

Tuy nhiên đây là lần đầu làm đề tài về thực tập cơ sở chỉ dựa trên quan

điểm cá nhân nên bài của em cũng khơng thể nào tránh được sai sót như : Ứng

dụng còn nhiều chỗ còn chưa được tối tưu, mới chỉ tính tốn được các phép tính

cơ bản…Vì vậy em rất mong nhận được sự góp của thầy cơ để cho em có được

bài học kinh nghiệm cũng như là các kĩ năng để em có thể hồn thành tốt đợt

báo cáo thực tập chuyên ngành trong những năm tiếp theo.



TÀI LIỆU THAM KHẢO



1.

2.

3.

4.

5.



Sách Android Programming for Beginners

Sách Android Programming: The Big Nerd Ranch Guide (2nd Edition)

Head First Android Development

Advanced Android Application Development (4th Edition)

Android Programming: Pushing the Limits



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG ANDROID

Tải bản đầy đủ ngay(0 tr)

×