ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

暑期第三周总结

2022-07-17 12:35:19  阅读:125  来源: 互联网

标签:总结 arr String get ArrayList 第三周 wrd 暑期 file


  本周是数据结构的第二阶段。

  我选择的是背单词系统,用到了我从来没有使用过的新的jar包json包,里面的函数用来实现对文件的操作十分好用

package EngWord;

import com.alibaba.fastjson.JSON;
import little.EnglishWord.test_.Person;

import java.awt.image.BufferedImage;
import java.io.*;
import java.util.ArrayList;

public class Tools {
    public static String file_path = "C:\\Users\\xiaoguoguo\\Desktop\\小学期\\数据结构小学期\\Word.txt";
    private static String read_file() throws IOException {
        File my_file = create_file_obj();
        String content = null;
        StringBuilder result = new StringBuilder();
        BufferedReader br = new BufferedReader(new FileReader(my_file));
        String s = null;
        while ((s = br.readLine()) != null) {
            result.append(s);
        }
        br.close();
        content = result.toString();
        return content;
    }

    // 写文件
    private static void write_file(String content) throws IOException {
        File file = create_file_obj();
        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
        writer.write(content);
        writer.flush();
        writer.close();
    }

    // 创建文件对象
    private static File create_file_obj() {
        File my_file = new File(file_path);
        return my_file;
    }

    // 将 Word 类 数组对象 转变成 字符串的方法
    private static String arr_to_string(ArrayList<Word> wrd_arr) {
        String res = JSON.toJSONString(wrd_arr);
        return res;
    }

    // 将 Word 数组字符串 装变成 对象的方法
    private static ArrayList<Word> str_to_arr(String content) {
        ArrayList<Word> arr = (ArrayList<Word>) JSON.parseArray(content.toString(),Word.class);
        return arr;
    }
    // 从 文件中 获得 数组对象
    private static ArrayList<Word> file_to_arr() throws IOException {
        String file_con = read_file();
        ArrayList<Word> wrd_arr = str_to_arr(file_con);
        return wrd_arr;
    }

    // 将 对象数组 存入文件
    private static void arr_to_file(ArrayList<Word> wrd_arr) throws IOException {
        String arr_str = arr_to_string(wrd_arr);
        write_file(arr_str);
    }
    // 添加 新人
    public static void add_new_wrd(Word wrd) throws IOException {
        ArrayList<Word> wrd_arr = file_to_arr();
        wrd_arr.add(wrd);
        arr_to_file(wrd_arr);
        System.out.println("添加单词成功!");
    }

    // 查询 中文 单词
    public static String show_wrd_bychinese(String chinese) throws IOException {
        String res = null;
        ArrayList<Word> wrd_arr = file_to_arr();
        for (int i = 0; i < wrd_arr.size(); i++) {
            if(chinese.equals(wrd_arr.get(i).getChinese())){
                res = "单词:" + wrd_arr.get(i).getEnglish() + "词性:" + wrd_arr.get(i).getCixing() +
                        " 释义:" + wrd_arr.get(i).getChinese() + "例句:" + wrd_arr.get(i).getExample();
                System.out.println(res);
                break;
            }
        }
        return res;
    }

    // 查询 英文 单词
    public static String show_wrd_byenglish(String english) throws IOException {
        String res = null;
        ArrayList<Word> wrd_arr = file_to_arr();
        int index = -1;
        for (int i = 0; i < wrd_arr.size(); i++) {
            if(english.equals(wrd_arr.get(i).getEnglish())){
                res = "单词:" + wrd_arr.get(i).getEnglish() + "词性:" + wrd_arr.get(i).getCixing() +
                        " 释义:" + wrd_arr.get(i).getChinese() + "例句:" + wrd_arr.get(i).getExample();
                System.out.println(res);
                index = 1;
                break;
            }
        }
        if (res == null) {
            System.out.println("词库无单词...");
        }
        return res;
    }
    // 删除 单词
    public static void delete_wrd(String english) throws IOException {
        ArrayList<Word> wrd_arr = file_to_arr();
        int english_index = -1;
        for (int i = 0; i < wrd_arr.size(); i++) {
            if(english.equals(wrd_arr.get(i).getEnglish())){
                english_index = i;
                break;
            }
        }
        if (english_index == -1 ){
            System.out.println("没有此单词...");
        } else {
            wrd_arr.remove((english_index));
            System.out.println("删除成功!");
            arr_to_file(wrd_arr);
        }
    }

    // 修改 单词
    public static void update_wrd(String english,String chinese) throws IOException {
        ArrayList<Word> wrd_arr = file_to_arr();
        for (int i = 0; i < wrd_arr.size(); i++) {
            if(english.equals(wrd_arr.get(i).getEnglish())){
                wrd_arr.get(i).setChinese(chinese);
                System.out.println(wrd_arr.get(i).getChinese());
                System.out.println("修改成功....");
                arr_to_file(wrd_arr);
                break;
            }
        }
    }

    // 查询 全部
    public static String show_all_wrd() throws IOException {
        String res = null;
        ArrayList<Word> wrd_arr = file_to_arr();
        for (int i = 0;i < wrd_arr.size();i++){
            System.out.println("单词 :" + wrd_arr.get(i).getEnglish() + " 词性:" + wrd_arr.get(i).getCixing()+" 释义:" +
                    wrd_arr.get(i).getChinese() + " 例句:" + wrd_arr.get(i).getExample());
        }
        return res;
    }
    // 背单词
    public static void recite_wrd(String english,String chinese) throws IOException {
        ArrayList<Word> wrd_arr = file_to_arr();
        int flag = -1;
        for (int i = 0; i < wrd_arr.size(); i++) {
            if(english.equals(wrd_arr.get(i).getEnglish()) && chinese.equals(wrd_arr.get(i).getChinese())){
               wrd_arr.get(i).setVisited(1);
                //System.out.println(wrd_arr.get(i).getChinese());
                System.out.println("记忆成功!");
                arr_to_file(wrd_arr);
                flag = 1;
                break;
            }
        }
        if(flag == -1) {
            System.out.println("出错了哦,继续努力!");
        }
    }

    // 生词本
    public static String show_new_wrd() throws IOException {
        String res = null;
        ArrayList<Word> wrd_arr = file_to_arr();
        for (int i = 0;i < wrd_arr.size();i++){
            if (wrd_arr.get(i).getVisited() == 0){
                System.out.println("单词 :" + wrd_arr.get(i).getEnglish() + " 词性:" + wrd_arr.get(i).getCixing()+" 释义:" +
                        wrd_arr.get(i).getChinese() + " 例句:" + wrd_arr.get(i).getExample());
            }
        }
        return res;
    }
    public static void rate_wrd() throws IOException {
        ArrayList<Word> wrd_arr = file_to_arr();
        int num = 0;
        for (int i = 0;i < wrd_arr.size();i++){
            if (wrd_arr.get(i).getVisited() == 1){
                num++;
            }
        }

        System.out.println("记忆进度:" + num + " / " + wrd_arr.size());
    }
}

  这里实现了单词的录入,删除,查看,根据英文看释义,根据释义差单词,也粗略的完成了背单词功能,单词记忆进度功能。。。

标签:总结,arr,String,get,ArrayList,第三周,wrd,暑期,file
来源: https://www.cnblogs.com/tk203/p/16486255.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有