zoukankan      html  css  js  c++  java
  • MySort作业与IO-Myhead

    一、MySort

    1.题目要求

    • 模拟实现Linux下Sort -t : -k 2的功能。
    • 要有伪代码,产品代码,测试代码(注意测试用例的设计)
    • 参考 Sort的实现。提交博客链接。

    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.实验截图

    二、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”, 每行除了有数据外,还要添加行号,提交代码和生成文件
    • 课上无法完成的课下完成需要答辩

    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.实验截图


  • 相关阅读:
    开源围棋A.I. FoolGo
    再写围棋的MC模拟
    棋串的数据结构
    一种Lua到C的封装
    用vim写ios程序
    一种C函数到Lua的封装
    Unix命令
    RSA java rsa加密,解密,生成密钥对工具类
    UOS 开启远程登录
    UOS 设置 java 程序开机启动
  • 原文地址:https://www.cnblogs.com/xyejava/p/10889118.html
Copyright © 2011-2022 走看看