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



MySort作业与IO-Myhead的更多相关文章

  1. 20155213 第十二周课堂作业MySort

    20155213 第十二周课堂作业MySort 作业要求 模拟实现Linux下Sort -t : -k 2的功能 参考 Sort的实现 提交码云链接和代码运行截图 初始代码 1 import java ...

  2. c语言-遍历pci设备(1)io访问

    前言 最近楼主比较苦逼啊,主管布置了一道访问pci的作业,这个作业使用io方式还可以非常浪地将所有的东西都给读取出来,虽然不能读取出pci-e设备的所有信息,但是还是可以将256位的其他东西给读出来的 ...

  3. MySort(选做)

    一.题目要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实 ...

  4. python的进程与线程(一)

    摘要: 源地址:https://www.cnblogs.com/yuanchenqi/articles/6248025.html 如有侵权,立即删除 操作系统 学习进程和线程的知识,先了解一下底层操作 ...

  5. 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #20 使用fio进行I/O的基准测试

    HACK #20 使用fio进行I/O的基准测试 本节介绍使用fio进行模拟各种情况的I/O基准测试的操作方法.I/O的基准测试中有无数需要考虑的因素.是I/O依次访问还是随机访问?是通过read/w ...

  6. 20155212 2016-2017-2《Java程序设计》课程总结

    每周博客 每周作业链接汇总 预备作业一:专业理解.未来展望.期望的师生关系. 预备作业二:HOMEWORK-2 预备作业三:HOMEWORK-3 第一周作业:学习教材Chapter 1 Java平台概 ...

  7. 20155204 2016-2017-2《Java程序设计》课程总结

    20155204 2016-2017-2<Java程序设计>课程总结 目录 作业链接汇总 作业总结 实验报告链接汇总 代码托管链接 课堂项目实践 学习经验 问卷调查 链接二维码 (按顺序) ...

  8. MapReduce源代码分析之JobSubmitter(一)

    JobSubmitter.顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外.对外提供的唯一一个非private成员变量或方法就是submitJobInter ...

  9. MapReduce源码分析之JobSubmitter(一)

    JobSubmitter,顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外,对外提供的唯一一个非private成员变量或方法就是submitJobInter ...

随机推荐

  1. init是一个自定义方法名

    init是一个自定义方法名,用于初始化页面变量.上面的代码表示初始化方法是在当前网页加载后执行的(当浏览器打开网页时,触发窗口对象的onload方法,用上面的代码执行名为init的初始化方法).事实上 ...

  2. MySQL 5.7.18 zip版本的安装使用方法

    转自:https://www.cnblogs.com/nepulgh/p/7152618.html MySQL 5.7.18 zip版本的安装使用方法 这个版本的MySQL不像那种点击就可以立即安装, ...

  3. 安装grafna已经grafna对接zabbix

    安装插件 grafana-cli plugins install alexanderzobnin-zabbix-app 重启grafna systemctl restart grafana-serve ...

  4. 第十章、os模块

    目录 第十章.os模块 一.os模块 第十章.os模块 一.os模块 方法 详解 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirn ...

  5. shell查询MySQL并将结果写入文件中

    背景 说下需求,自己搭建的一个接口开放平台,包含API文档和功能测试,部分内网地址需要修改hosts文件 准备 新建表 然后查看服务器中hosts文件 命令:cat /etc/hosts 我们要做的就 ...

  6. 解决 /etc/init.d/php-fpm no such file or directory等相关问题

    vi /etc/init.d/php-fpm #! /bin/sh # Comments to support chkconfig on CentOS # chkconfig: 2345 65 37 ...

  7. malloc/calloc/realloc/alloca内存分配函数

    calloc(), malloc(), realloc(), free(),alloca() 内存区域可以分为栈.堆.静态存储区和常量存储区,局部变量,函数形参,临时变量都是在栈上获得内存的,它们获取 ...

  8. MySQL查询多行重复数据SQL

    1 详见如下 SELECT day_time,`city_code`,count(1) as num FROM t_user_register_analyse GROUP BY `day_time`, ...

  9. 06-【servletconfig、servletContext 】

    ServletConfig.ServletContext 1.ServletConfig获取web.xml中的配置信息:java代码: @Override public void init(Servl ...

  10. Windows Server 2016分层式存储,使用PowerShell修改底层介质类型

    新部署的备份服务器,需要做分层式存储,按照网上最常见一个作者叫刘兵的文档,名叫<Windows Server2016分层存储技术详细拆解手册>,做到使用PowerShell修改磁盘的Med ...