0
Tải bản đầy đủ (.doc) (49 trang)

Chưa xây dựng các chức năng như giải phương trình, ma trận, vecto ngay trong đồ án này

Một phần của tài liệu BÁO CÁO ĐỒ ÁN LẬP TRÌNH MẠNG ĐỀ TÀI TÌM HIỂU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY VÀ XÂY DỰNG ỨNG DỤNG CALCULATOR TRÊN GOOGLE APP ENGINE (Trang 34 -49 )

đồ án này.

Và một số vấn đề tồn tại khác trong quá trình xây dựng, tìm hiểu và trình bày báo

cáo, xây dựng chương trình mà chúng em chưa thể hoàn chỉnh được.

3. Hướng phát triển

Về phần tìm hiểu và cơ sở lý thuyết, chúng em sẽ tiếp tục tìm hiểu và nghiên cứu

sâu hơn đề tài để phục vụ tốt cho những môn học sau này và đặc biệt có thể áp dụng vào

làm đồ án tốt nghiệp.

Về phần chương trình, sẽ tiếp tục xây dựng, khắc phục và hoàn thiện một số vấn đề

bất cập, bổ sung thên một số tính năng như: giải phương trình bậc hai, bậc ba, các phép

tính ma trận, vecto, tích phân và các phép toán phức tạp khác…

Cuối cùng chúng em xin chân thành cám ơn sự hướng dẫn chu đáo, nhiệt tình của

thầy Huỳnh Công Pháp đã hướng dẫn và nhiệt tình giúp đỡ cho chúng em trong quá trình

làm đồ án để chúng em hoàn thành đồ án một cách tốt nhất.

[2] Jeff Dwyer. Pro Web 2.0 Application Development with GWT. 449 tr

[3] Trang web: http://vi.wikipedia.org/wiki/Điện_toán_đám_mây

[4] Trang web: http://congnghe24h.vn/dien-toan-dam-may-khai-niem-co-ban-va-nhung-

dieu-can-biet-phan1.html

[5] Trang web http://dophuc.wordpress.com/category/cloud-computing/

Mã nguồn chương trình

package one.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; /**

* Entry point classes define <code>onModuleLoad()</code>. */

@SuppressWarnings("deprecation")

public class Calculator implements EntryPoint { Double dFirst; Double dSecond; Double dMem; Boolean bOK; String sOperator; Double d1; Double d2; Double d3; Double d4; Double e1; Double e2; Double e3; Double e4; Double Result;

String sText1, sText2; //Need Variables

final Button c = new Button("C", new ClickListener() {//Xử lý sự kiện ClickListener trên các nút bấm

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("C");

} });

final Button m1 = new Button("M+", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("M+");

} });

final Button mr = new Button("MR", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("MR");

} });

final Button sqrt = new Button("sqrt", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("sqrt");

} });

final Button mod = new Button("mod", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("mod");

} });

final Button so7 = new Button("7", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("7");

} });

final Button so8 = new Button("8", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("8");

} });

final Button so9 = new Button("9", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("9");

} });

final Button sin = new Button("sin", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("sin");

} });

final Button asin = new Button("arcsin", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("arcsin");

} });

final Button so4 = new Button("4", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("4");

} });

final Button so5 = new Button("5", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("5");

} });

final Button so6 = new Button("6", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("6");

} });

final Button nhan = new Button("*", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("*");

} });

final Button acos = new Button("arccos", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("arccos");

} });

final Button so1 = new Button("1", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("1");

} });

final Button so2 = new Button("2", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("2");

} });

final Button so3 = new Button("3", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("3");

} });

final Button tru = new Button("-", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("-");

} });

final Button tan = new Button("tan", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("tan");

} });

final Button so0 = new Button("0", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("0");

} });

final Button am = new Button("+/-", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("+/-");

} });

final Button cham = new Button(".", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay(".");

} });

final Button cong = new Button("+", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("+");

} });

final Button bang = new Button("=", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("=");

} });

final Button radians = new Button("rad", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("rad");

addToDisplay("lnx"); }

});

final Button ex = new Button("e^x", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("e^x");

} });

final Button xy = new Button("x^y", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("x^y");

} });

final Button x2 = new Button("x^2", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("x^2");

} });

final Button x3 = new Button("x^3", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("x^3");

} });

final Button x1 = new Button("1/x", new ClickListener() {

@Override

public void onClick(Widget sender) { // TODO Auto-generated method stub addToDisplay("1/x");

} });

final TextBox displayArea = new TextBox();

final VerticalPanel mainPanel = new VerticalPanel();//Mặt phẳng thẳng đứng vùng chứa

numtable.setWidget(0, 1,m1); m1.addStyleName("m1"); numtable.setWidget(0, 2,m2); m2.addStyleName("m2"); numtable.setWidget(0, 3,mr); mr.addStyleName("mr"); numtable.setWidget(0, 4,sqrt); sqrt.addStyleName("sqrt"); numtable.setWidget(0, 5,mod); mod.addStyleName("mod"); numtable.setWidget(1, 0,so7); so7.addStyleName("so7"); numtable.setWidget(1, 1,so8); so8.addStyleName("so8"); numtable.setWidget(1, 2,so9); so9.addStyleName("so9"); numtable.setWidget(1, 3,chia); chia.addStyleName("chia"); numtable.setWidget(1, 4,sin); sin.addStyleName("sin"); numtable.setWidget(1, 5,asin); asin.addStyleName("asin"); numtable.setWidget(2, 0,so4); so4.addStyleName("so4"); numtable.setWidget(2, 1,so5); so5.addStyleName("so5"); numtable.setWidget(2, 2,so6); so6.addStyleName("so6"); numtable.setWidget(2, 3,nhan); nhan.addStyleName("nhan"); numtable.setWidget(2, 4,cos); cos.addStyleName("cos"); numtable.setWidget(2, 5,acos); acos.addStyleName("acos"); numtable.setWidget(3, 0,so1); so1.addStyleName("so1"); numtable.setWidget(3, 1,so2); so2.addStyleName("so2"); numtable.setWidget(3, 2,so3); so3.addStyleName("so3"); numtable.setWidget(3, 3,tru); tru.addStyleName("tru"); numtable.setWidget(3, 4,tan);

numtable.setWidget(4, 2,cham); cham.addStyleName("cham"); numtable.setWidget(4, 3,cong); cong.addStyleName("cong"); numtable.setWidget(4, 4,bang); bang.addStyleName("bang"); numtable.setWidget(4, 5,radians); radians.addStyleName("radians"); numtable.setWidget(5, 0,ln); ln.addStyleName("ln"); numtable.setWidget(5, 1,ex); ex.addStyleName("ex"); numtable.setWidget(5, 2,xy); xy.addStyleName("xy"); numtable.setWidget(5, 3,x2); x2.addStyleName("x2"); numtable.setWidget(5, 4,x3); x3.addStyleName("x3"); numtable.setWidget(5, 5,x1); x1.addStyleName("x1"); displayArea.setReadOnly(true); displayArea.addStyleName("displayArea"); mainPanel.add(displayArea); mainPanel.add(numtable);

RootPanel.get("Calc").add(mainPanel); }

// Add a handler to calculate Values

public boolean addToDisplay(Object btn) {

if ("C".equals(btn)) //Clear variables { dFirst = 0.0d; dSecond = 0.0d; sOperator = ""; displayArea.setText("0"); bOK = true;

} else if (("0".equals(btn)) | ("1".equals(btn)) | ("2".equals(btn)) | ("3".equals(btn)) | ("4".equals(btn)) | ("5".equals(btn))

| ("6".equals(btn)) | ("7".equals(btn)) | ("8".equals(btn)) | ("9".equals(btn)) | (".".equals(btn))) { if (bOK) //Calculations sText2 = (String) btn; else sText2 = displayArea.getText() + btn; displayArea.setText(sText2);

dSecond = (Double.valueOf(sText1)).doubleValue(); dFirst = Calculation(sOperator, dFirst, dSecond); Double dTemp = new Double(dFirst);

sText2 = dTemp.toString(); displayArea.setText(sText2); sOperator = (String) btn; bOK = true; }

else if ("MR".equals(btn)) //memory reference {

Double dTemp = new Double(dMem); sText2 = dTemp.toString(); displayArea.setText(sText2); sOperator = ""; bOK = true; }

else if ("x^2".equals(btn)) //square calculation {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Result*Result;

displayArea.setText(String.valueOf(Result)); bOK = true;

}

else if ("x^3".equals(btn)) //cube calculation {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Result*Result*Result;

displayArea.setText(String.valueOf(Result)); bOK = true;

}

else if ("1/x".equals(btn)) //Inverse Numbers equation

{

Result = (new Double(displayArea.getText())).doubleValue(); Result = 1/Result; displayArea.setText(String.valueOf(Result)); bOK = true; } else if ("+/-".equals(btn)) {

Result = (new Double(displayArea.getText())).doubleValue(); Result = 0-Result;

displayArea.setText(String.valueOf(Result)); bOK = true;

}

else if ("lnx".equals(btn)) //logarithmic function {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Math.log(Result);

displayArea.setText(String.valueOf(Result)); bOK = true;

}

else if ("sin".equals(btn)) //sinus calculation {

String S = displayArea.getText();

if ((S != "0")) {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Math.sin(Result*3.1415926535897932384626433832795/180); displayArea.setText(String.valueOf(Result)); bOK = true; } }

else if ("cos".equals(btn)) //cosinus calculation {

String S = displayArea.getText();

if ((S != "0")) {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Math.cos(Result*3.1415926535897932384626433832795/180); displayArea.setText(String.valueOf(Result)); bOK = true; } }

else if ("tan".equals(btn)) //tangent calculation {

String S = displayArea.getText();

if ((S != "0")) {

Result = (new Double(displayArea.getText())).doubleValue();

Result = Math.tan(Result*3.1415926535897932384626433832795/180); displayArea.setText(String.valueOf(Result));

if ((S != "0")) {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Math.atan(Result)*180/3.1415926535897932384626433832795; displayArea.setText(String.valueOf(Result)); bOK = true; }

} else if ("sqrt".equals(btn)) //square root calculation {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Math.sqrt(Result);

displayArea.setText(String.valueOf(Result)); }

else if ("arccos".equals(btn)) //arcos calculation {

String S = displayArea.getText();

if ((S != "0")) {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Math.acos(Result)*180/3.1415926535897932384626433832795; displayArea.setText(String.valueOf(Result)); bOK = true; } }

else if ("arcsin".equals(btn)) //arcsin calculation {

String S = displayArea.getText();

if ((S != "0")) {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Math.asin(Result)*180/3.1415926535897932384626433832795; displayArea.setText(String.valueOf(Result)); bOK = true; } }

else if ("radians".equals(btn)) //Convertion to rads {

String S = displayArea.getText();

}

else if ("arcsin".equals(btn)) { String S = displayArea.getText(); if ((S != "0")) {

Result = (new Double(displayArea.getText())).doubleValue(); Result = Math.asin(Result)*180/3.1415926535897932384626433832795; displayArea.setText(String.valueOf(Result)); bOK = true; } }

else if ("M+".equals(btn)) //Add to memory {

sText1 = displayArea.getText();

dSecond = (Double.valueOf(sText1)).doubleValue(); dFirst = Calculation(sOperator, dFirst, dSecond); Double dTemp = new Double(dFirst);

sText2 = dTemp.toString(); displayArea.setText(sText2); dMem = dMem + dFirst;

sOperator = ""; bOK = true; }

else if ("M-".equals(btn)) //Removal from memory {

sText1 = displayArea.getText();

dSecond = (Double.valueOf(sText1)).doubleValue(); dFirst = Calculation(sOperator, dFirst, dSecond); Double dTemp = new Double(dFirst);

sText2 = dTemp.toString(); displayArea.setText(sText2); dMem = dMem - dFirst;

sOperator = ""; bOK = true; } return true; } // Evaluation method

private double Calculation(String sOperator, double dFirst, double dSecond) { if ("+".equals(sOperator)) dFirst = dFirst + dSecond;

else if ("-".equals(sOperator)) dFirst = dFirst - dSecond; else if ("*".equals(sOperator)) dFirst = dFirst * dSecond;

Một phần của tài liệu BÁO CÁO ĐỒ ÁN LẬP TRÌNH MẠNG ĐỀ TÀI TÌM HIỂU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY VÀ XÂY DỰNG ỨNG DỤNG CALCULATOR TRÊN GOOGLE APP ENGINE (Trang 34 -49 )

×