lab4

mail@pastecode.io avatar
unknown
java
12 days ago
6.2 kB
1
Indexable
Never
package q1;

class PhepToan {
    private int a;
    private int b;
    private String info;

    // Constructor
    public PhepToan(int a, int b) {
        this.a = a;
        this.b = b;
        this.info = "";
    }

    // Getters and Setters for a, b, and info
    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public int getB() {
        return b;
    }

    public void setB(int b) {
        this.b = b;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    // add() method
    public void add() {
        int result = a + b;
        this.info = a + " + " + b + " = " + result;
    }

    // sub() method
    public void sub() {
        int result = a - b;
        this.info = a + " - " + b + " = " + result;
    }

    // mul() method
    public void mul() {
        int result = a * b;
        this.info = a + " * " + b + " = " + result;
    }

    // div() method
    public void div() {
        if (b == 0) {
            this.info = "divide by Zero";
        } else {
            int result = a / b;
            this.info = a + " / " + b + " = " + result;
        }
    }
}






package q1;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class Q1 {
    //Change the name of input and output file based on practical paper
    String inputFile = "input.txt";
    String outputFile = "output.txt";

    //--VARIABLES - @STUDENT: DECLARE YOUR VARIABLES HERE:
    int n;
    String result = "";
    ArrayList<String> operations = new ArrayList<>();
    PhepToan pt;



	//--FIXED PART - DO NOT EDIT ANY THINGS HERE--
	//--START FIXED PART--------------------------    
    String fi, fo;
    
    /**
     * Set input and output file for automatic rating
     * @param args path of input file and path of output file
     */
    public void setFile (String[] args){
        fi = args.length>=2? args[0]: inputFile;
        fo = args.length>=2? args[1]: outputFile;
    }
    
    /**
     * Reads data from input file
     */
    public void read(){
        try (Scanner sc  = new Scanner(new File(fi))){
    //--END FIXED PART----------------------------

            //INPUT - @STUDENT: ADD YOUR CODE FOR INPUT HERE:
            // Đọc số lượng phép toán từ dòng đầu tiên của file
            n = Integer.parseInt(sc.nextLine());
            
            // Đọc dòng tiếp theo chứa hai số a và b, sau đó chia nhỏ thành mảng a,b
            String[] ab = sc.nextLine().split(" ");
            
            // Chuyển đổi giá trị a và b từ chuỗi sang kiểu số nguyên
            int a = Integer.parseInt(ab[0]);
            int b = Integer.parseInt(ab[1]);
            
            // Tạo một đối tượng PhepToan mới với hai số a và b
            pt = new PhepToan(a, b);
            
            // Lặp qua số lượng phép toán n
            for (int i = 0; i < n; i++) {
                // Kiểm tra xem còn dòng nào trong file không
                if (sc.hasNextLine()) {
                     // Nếu có, đọc dòng tiếp theo và thêm phép toán vào danh sách operations
                    operations.add(sc.nextLine());
                } else {
                    // Nếu không đủ phép toán trong file, in thông báo lỗi và thoát
                    System.out.println("Not enough operations in the file.");
                    return; // Kết thúc phương thức nếu không đủ phép toán
                }
            }


	//--FIXED PART - DO NOT EDIT ANY THINGS HERE--
	//--START FIXED PART--------------------------    
            sc.close();
        }catch(FileNotFoundException ex){
            System.out.println("Input Exception # " + ex);
        }
    }
    //--END FIXED PART----------------------------
    
    //ALGORITHM - @STUDENT: ADD YOUROWN METHODS HERE (IF NEED):
    

    
	//--FIXED PART - DO NOT EDIT ANY THINGS HERE--
	//--START FIXED PART--------------------------    
    /**
     * Main algorithm
     */
    public void solve(){
    //--END FIXED PART----------------------------

        //ALGORITHM - @STUDENT: ADD YOUR CODE FOR OUTPUT HERE:
        // Kiểm tra loại phép toán và thực hiện phép toán tương ứng
        for (String operation : operations) {
            switch (operation) {
                case "add":
                    pt.add();
                    break;
                case "sub":
                    pt.sub();
                    break;
                case "mul":
                    pt.mul();
                    break;
                case "div":
                    pt.div();
                    break;
                default:
                    break;
            }
            result += pt.getInfo() + "\n";
        }


	//--FIXED PART - DO NOT EDIT ANY THINGS HERE--
	//--START FIXED PART-------------------------- 
    }
    
    /**
     * Write result into output file
     */
    public void printResult(){
	    try{
            FileWriter fw = new FileWriter(fo);
	//--END FIXED PART----------------------------
                
        	//OUTPUT - @STUDENT: ADD YOUR CODE FOR OUTPUT HERE:
            fw.write(result);



	//--FIXED PART - DO NOT EDIT ANY THINGS HERE--
	//--START FIXED PART-------------------------- 
            fw.flush();
            fw.close();
        }catch (IOException ex){
            System.out.println("Output Exception # " + ex);
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Q1 q = new Q1();
        q.setFile(args);
        q.read();
        q.solve();
        q.printResult();
    }
	//--END FIXED PART----------------------------    
}
Leave a Comment