Sakura
Thú CƯng :
Số bài viết : 1124 Điểm : 1688 Được cảm ơn : 35 Ngày sinh : 03/11/1990 Tham gia ngày : 16/03/2010 Tuổi : 34 Đến từ : Bình Dương Ngề nghiệp : IT Student
| Tiêu đề: Chương trình xử lý phân số Client - Server (TCP) 11/3/2011, 08:14 | |
| Yêu cầu là nhập vào 1 chuỗi như thế này: + 1 2 3 4 Trong đó, + là dấu, có thể là + - * / 1 2 3 4 là 1/2 và 3/4 (2 phân số) Nhập sai thì nó tính ra 0 hoặc báo lỗi gì đóPhía Server: Class xử lý phân số: - Code:
-
/** * @(#)PhanSo.java * * Lop xu ly phan so * @author: EDWARD * @version 1.00 2011/3/11 */
public class PhanSo { private double tu; private double mau; public PhanSo() { tu = 0; mau = 1; } public PhanSo(double t, double m) { tu = t; if(m != 0) mau = m; else { tu = 0; mau = 1; } } public PhanSo Cong(PhanSo A) { PhanSo B = new PhanSo(); B.tu = tu * A.mau + mau * B.tu; B.mau = mau * A.mau; return B; } public PhanSo Tru(PhanSo A) { PhanSo B = new PhanSo(); B.tu = tu * A.mau - mau * B.tu; B.mau = mau * A.mau; return B; } public PhanSo Nhan(PhanSo A) { PhanSo B = new PhanSo(); B.tu = tu * B.tu; B.mau = mau * A.mau; return B; } public PhanSo Chia(PhanSo A) { PhanSo B = new PhanSo(); B.tu = tu * A.mau; B.mau = mau * A.tu; return B; } public String toString() { return tu + "/" + mau; } } Class xử lý truyền nhận dữ liệu: - Code:
-
/** * @(#)Server.java * * Server application * Chuong trinh tinh toan xy ly phan so phia Server * Co lop xu ly Phan so rieng biet * @author: EDWARD * @version 1.00 2011/3/10 */ import java.io.*; import java.net.*; import java.util.*; public class Server { public static void main(String[] args) { //Tao 1 ServerSocket ServerSocket serverSocket = null; //Cac tham so String ServerName = "localhost"; int ServerPort = 120; Socket clientSocket = null; //Cac luong gui nhan PrintWriter out = null; BufferedReader in = null; try { //Mo port serverSocket = new ServerSocket(ServerPort); clientSocket = serverSocket.accept(); //Thiet lap cac luong gui nhan out = new PrintWriter(clientSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); //Bat dau nhan, tinh toan, xu ly va tra ve ket qua cho Client String sFromClient = ""; while(((sFromClient = in.readLine()) != "")) { out.println(XuLy(sFromClient)); } } catch(Exception e) { System.out.println (e.getMessage()); } finally { try { //Dong ket noi out.close(); in.close(); clientSocket.close(); serverSocket.close(); } catch(Exception e) { System.out.println (e.getMessage()); } } } //Ham xu ly public static String XuLy(String sFromClient) { //Quy uoc nhap vao: * 3 4 5 6 StringTokenizer k = new StringTokenizer(sFromClient); String dau = k.nextToken(); double a = Double.parseDouble(k.nextToken()); double b = Double.parseDouble(k.nextToken()); double c = Double.parseDouble(k.nextToken()); double d = Double.parseDouble(k.nextToken()); PhanSo A = new PhanSo(a, b); PhanSo B = new PhanSo(c, d); PhanSo C = new PhanSo(); if(dau.equals((Object)String.valueOf("+"))) C = A.Cong(B); else if(dau.equals((Object)String.valueOf("-"))) C = A.Tru(B); else if(dau.equals((Object)String.valueOf("*"))) C = A.Nhan(B); else if(dau.equals((Object)String.valueOf("/"))) C = A.Chia(B); return C.toString(); } } Phía Client: - Code:
-
/** * @(#)Client.java * * Client application * Chuong trinh tinh toan xy ly phan so phia Client * Co lop xu ly Phan so rieng biet * @author: EDWARD * @version 1.00 2011/3/10 */ import java.io.*; import java.net.*; import java.util.*; public class Client { public static void main(String[] args) { //Cac tham so String ServerName = "localhost"; int ServerPort = 120; //Tao Socket Socket clientSocket = null; //Cac luong gui nhan PrintWriter out = null; BufferedReader in = null; try { //1. Ket noi den Server clientSocket = new Socket(ServerName, ServerPort); //2. Thiet lap cac luong gui nhan out = new PrintWriter(clientSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); //Tao luong nhap tu ban phim BufferedReader fromKey = new BufferedReader(new InputStreamReader(System.in)); //3. Bat dau gui qua Server va nhan ket qua tra ve tu Server System.out.print("Nhap vao chuoi theo quy uoc de tinh: "); String s = ""; while(((s = fromKey.readLine()) != "")) { //Gui: * 1 2 3 4 out.println(s); //Nhan ket qua tra ve tu Server va xuat ra System.out.println ("Server tra ve: " + in.readLine()); } } catch(Exception e) { System.out.println (e.getMessage()); } finally { try { //4. DOng ket noi out.close(); in.close(); clientSocket.close(); } catch(Exception e) { System.out.println (e.getMessage()); } } } } |
|
that_true
Member Nhiệt Tình
Thú CƯng :
Số bài viết : 154 Điểm : 187 Được cảm ơn : 0 Ngày sinh : 07/11/1988 Tham gia ngày : 17/09/2010 Tuổi : 36 Đến từ : venus Ngề nghiệp : catch
| Tiêu đề: Re: Chương trình xử lý phân số Client - Server (TCP) 11/3/2011, 08:22 | |
| Chưa chết hả mày! Vẫn đủ sức up bài cơ đấy =)) |
|
con_ca_nho90
Member Nhiệt Tình
Thú CƯng :
Số bài viết : 289 Điểm : 329 Được cảm ơn : 4 Ngày sinh : 17/02/1990 Tham gia ngày : 05/05/2010 Tuổi : 34 Đến từ : Nhà hàng xóm Ngề nghiệp : click chuột định giang sơn :D Chăm ngôn : Giang hồ hiểm ác không bằng mạng lag thất thường
| |
Sponsored content
| Tiêu đề: Re: Chương trình xử lý phân số Client - Server (TCP) | |
| |
|