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



最新文章

  1. websocket初探
  2. Grpc微服务从零入门
  3. 使用NodeList
  4. 在网页中使用H1标记的须注意的事项
  5. JMeter2.13进行压力测试
  6. *[hackerrank]Cut the tree
  7. QM课程01-功能概述
  8. FineUI页面级别的参数配置
  9. C# 移动端与PC端的数据交互
  10. hrbustoj 2013 Play Game 2(博弈)
  11. 说说如何用js实现一个模板引擎
  12. 1001. Exponentiation高精度运算总结
  13. 使用HttpClient4.5实现HTTPS的双向认证
  14. 【css】怎么让Chrome支持小于12px 的文字
  15. sass个人学习笔记
  16. 2016.3.24 OneZero站立会议
  17. oracle alter
  18. 安装 nginx
  19. noip第7课资料
  20. Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】

热门文章

  1. 使用SSH连接AWS服务器
  2. DDOS攻击脚本
  3. 帝国cms 加载更多的实现(父栏目以及子栏目都可以实现)
  4. 绑定css样式,点击高亮
  5. python WordCloud 实现词云
  6. PKGSRC
  7. win10 修改文件夹右击默认打开程序
  8. 最简单webview跳转
  9. 一键登录已成大势所趋,Android端操作指南来啦!
  10. IO框架:asyncio 上篇