MySort做業與IO-Myhead

1、MySort

1.題目要求

  • 模擬實現Linux下Sort -t : -k 2的功能。
  • 要有僞代碼,產品代碼,測試代碼(注意測試用例的設計)
  • 參考 Sort的實現。提交博客連接。java

    2.產品代碼

import java.util.*;
public class MySort {
    public static void main(String [] args) {
        String [] toSort = {"aaa:10:1:1",
                "ccc:30:3:4",
                "bbb:50:4:5",
                "ddd:20:5:3",
                "eee:40:2:20"};

        System.out.println("Before sort:");
        for (String str: toSort) {
            System.out.println(str);
        }
        int [] a = new int[toSort.length];
        for (int i = 0; i < toSort.length; i++){
            String [] tmp = toSort[i].split(":");
            a[i] = Integer.parseInt(tmp[1]);
        }
        Arrays.sort(a);
        System.out.println("After sort:");
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < toSort.length; j++) {
                if (a[i] == Integer.parseInt((toSort[j].split(":"))[1])) {
                    System.out.println(toSort[j]);
                }
            }
        }
    }
}

3.設計思路

  • 首先將所輸入的字符串放入一個數組當中
  • 輸出排序前
  • 將字符穿中的第二列數字一次錄入另一個數組a[]中並調用程序對第二列進行排序額
  • 將排序好的數組依次輸出完成

4.實驗截圖

2、IO-myhead

1.題目要求

  • 編寫代碼GenNumber.java生成一個文本文件 「你的學號.txt」, 一共「你的學號的後三位行」,每行一個數字,該數字是1-你的學號後四位的一個隨機數,提交代碼和生成文件
  • 研究linux的head命令, 實現head -n 的功能MyHead.java, 用「你的學號.txt」進行測試,執行 java MyHead n 打印「你的學號.txt」前n行
  • 編寫T2B.java, 將 「你的學號.txt」的前十行轉化成二進制文件「你的學號.bin」 ,能夠用Linux 下od命令或Windows下的winhex工具查看轉化結果,提交代碼和生成文件
  • 編寫B2T.java, 將 「你的學號.bin」的轉化成文本文件「你的學號.txt」, 每行除了有數據外,還要添加行號,提交代碼和生成文件
  • 課上沒法完成的課下完成須要答辯linux

    2.設計思路

  • 首先創建學號.txt 文件
  • 選則文件輸入輸出的方法,這裏GenNumer ,MyHead 和T2B 選擇了字符輸入輸出流,B2T選擇了緩衝流,目的是爲了讀取文件中的行數
  • 將生成的隨機數寫入學號.txt 中
  • 從學號.txt 中讀取內容,利用換行符將讀取到的內容分隔,從命令行輸入想要讀取的行數,依次讀取並輸出
  • 從學號.txt 中讀取內容,讀取前十行內容轉化爲二進制並輸入至學號.bin 中,這裏用到了toBinaryString 方法,做用是將十進制轉化爲二進制,這個方法在前面也用到過
  • 從學號.bin 中讀取內容,轉化爲十進制數輸出至學號_1.txt 中,用到了bufferedReaded 類中的readLine() 和newLine() 方法數組

    3.實驗代碼

import java.io.*;
import java.util.Random;

public class GenNumber {
    public static void main(String[] args) {
        String filepath = System.getProperty("user.dir");
        filepath += "\\20175329.txt";
        System.out.println(filepath);

        try {
            File file = new File(filepath);
            if (!file.exists()) {   //若是不存在data.txt文件則建立
                file.createNewFile();
                System.out.println("20175329.txt建立完成");
            }
            FileWriter fw = new FileWriter(file);       //建立文件寫入
            BufferedWriter bw = new BufferedWriter(fw);

            //產生隨機數據,寫入文件
            Random random = new Random();
            for (int i = 1; i < 329; i++) {
                int randint = (int) Math.floor((random.nextDouble() * 5329.0));
                bw.write(String.valueOf(randint));      //寫入一個隨機數
                bw.newLine();       //新的一行
            }
            bw.close();
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

4.實驗截圖


相關文章
相關標籤/搜索