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


  • 相关阅读:
    Nginx 部署多个 web 项目(虚拟主机)
    Nginx 配置文件
    Linux 安装 nginx
    Linux 安装 tomcat
    Linux 安装 Mysql 5.7.23
    Linux 安装 jdk8
    Linux 安装 lrzsz,使用 rz、sz 上传下载文件
    springMVC 拦截器
    spring 事务
    基于Aspectj 注解实现 spring AOP
  • 原文地址:https://www.cnblogs.com/xyejava/p/10889118.html
Copyright © 2011-2022 走看看