学号 2017-2018-20172309 《程序设计与数据结构》课堂测试修改报告
课程:《程序设计与数据结构》
班级: 1723
姓名: 王志伟
学号:20172309
实验教师:王志强老师
实验日期:2018年5月9日
必修/选修: 必修
实验内容及要求
- 从键盘可以输入任意个整数(int);
- 写入文件;
- 从文件读取所有的整数;
- 使用插入排序对读取的整数进行排序,并将排序的结果写入原文件。
- 使用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 写入到文件中
代码链接
思想与感悟
这次测试出现错误是因为自己对IO操作的不熟悉,可以说是没学似的。不过经过这次错误,我自我感觉对IO的操作有了个大部分的了解,关键的是:当提及IO时,不再像以前一样心虚了。还有,就是在代码不会编的时候不应该去死看书,应该去动手,在动手中学习!嗯,没错!就算不会也要动手!自我感觉是这样的。