đồ á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;