学号 2017-2018-20172309 《程序设计与数据结构》课堂测试修改报告

学号 2017-2018-20172309 《程序设计与数据结构》课堂测试修改报告

课程:《程序设计与数据结构》
班级: 1723
姓名: 王志伟
学号:20172309
实验教师:王志强老师
实验日期:2018年5月9日
必修/选修: 必修

实验内容及要求

  1. 从键盘可以输入任意个整数(int);
  2. 写入文件;
  3. 从文件读取所有的整数;
  4. 使用插入排序对读取的整数进行排序,并将排序的结果写入原文件。
  5. 使用try-catch语句处理IO异常,例如文件创建异常.

第一次测试的思路想法及存在的问题:

  • 思路:让用户首先输入三个数据(也就是说要进行排序至少得三个及以上的数据,因为两个数据谁都能排出来),然后让用户选择是否想要输入更多的数据进行排序(y/n).直到用户输入n.

  • 问题一:输入的整型数据范围为0~9,不支持双位数的数据进行排序。

  • 问题二:存入文件是,显示为看不懂的字符。

修改后程序:

  • 完善了不能尽量两位数的bug。

  • 解决了文件中不会显现出数字的问题。

    出现这个问题的原因是我存到文件的数据类型为byte型,因此不能显现出来。

程序编写过程中出现的问题:

  • 问题一:最大的问题!IO流怎么运用?
  • 解决方案:这部分可以说是费了很大的功夫,在网上也搜集了许多资料。但是还是不明白,知道自己编代码才总结出了一些用法(可能不全)。

    > //就拿写入文件举例吧
    >       FileWriter fileWriter = null;
    >       try{
    >            fileWriter = new FileWriter("F://week10Test2.txt");//首先创建一个文件week10Test2.txt。
    >         } catch (IOException e) {
    >            e.printStackTrace();//创建文件中可能出现的问题
    >        }
    >        BufferedWriter fw = new BufferedWriter(fileWriter);//创建BufferedWriter 并使其指向咋们创建的文件。
    >        fw.write(“数据”)//写入数据
    >        fw.flush()//刷新数据
    >        fw.close()//关闭流
    >        后面的try-catch语句我都去掉了   在后面的代码链接中有详细的代码
  • 问题二:代码变好以后文件中显示不全面!
  • 解决方案:原来是自己在把排好序的数组输入到文件的时候出现了问题:

    >        //前面的代码已将数组nums排好序了
    >        String result=" ";
    >        for(int i=0;i<nums.length();i++)
    >            result=nums[i]+" ";  //此处出现错误,正确为:result+=nums[i]+" ";
    >        //后面的代码的作用是将result 写入到文件中

代码链接

https://gitee.com/CS-IMIS-23/20172309_javaProgramming/commit/d6edcaef5b80294db594c98ba9de99f1efb3b437

思想与感悟

这次测试出现错误是因为自己对IO操作的不熟悉,可以说是没学似的。不过经过这次错误,我自我感觉对IO的操作有了个大部分的了解,关键的是:当提及IO时,不再像以前一样心虚了。还有,就是在代码不会编的时候不应该去死看书,应该去动手,在动手中学习!嗯,没错!就算不会也要动手!自我感觉是这样的。

参考的资料

  1. 助教给的评价
  2. IO流标准输入流、标准输出流

猜你喜欢

转载自www.cnblogs.com/dky-wzw/p/9036946.html