预习报告
任务:完成User类的创建,添加参赛信息等属性,通过User类实现用户登录系统和添加新用户,将已有的team.txt的数据进行整理,并实现读取和写入功能,通过登录类(Log)、注册类(Reg)来实现登录和注册功能
1.实现文件的读取功能,作品使用commons.io来实现,通过在依赖项中添加依赖:
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.10.0</version>
</dependency>
</dependencies>
通过FileUtils.readFileToString函数读取,编码使用UTF-8,例如读取txt中文件,
测试结果如下:
2.通过文件流来对team.txt 文件进行添加删除和修改。使用的FileOutputStream,通过OutputStreamWriter和BufferedWriter实现写入。代码如下:
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(usersFile, true), "utf-8"));//userFile是自己定义的File对象,这里用的编码是UTF-8.
bufferedWriter.newLine(); //别忘了换行后再写入
bufferedWriter.write(newString);//newString是写入的字符串。
bufferedWriter.close();
这里的写入有个问题,就是不能动txt文件,否则就会写入到鼠标指定的下一行,会报错。
3.创建User类,通过User类调用参赛队编号#参赛作品名称#参赛学校#赛事类别#参赛者#指导教师信息。
4.通过二叉树来存储User对象,利用参赛编号构造二叉排序树,并通过二叉树来进行查找参赛队伍的信息。最后计算二叉排序树的ASL(平均查找长度)。
5.根据提供的学校名称来得到该学校所有参赛队伍的信息。
6.叫号系统,计设比赛总共分为九个大类分别进行比赛,该系统模拟比赛的叫号,通知每一组进行进场,并给出每一组队伍的比赛时间,按顺序进出赛场。
7.导航系统,地图如下:
图为江科大长山校区地图
换为带权值的无向图,如下图:
通过上图模拟导航系统,通过输入1-10的编号,得到最短路径和路径长度。本次用的是Floyd算法进行最短路径的查找 。