Java combat the relatives calculator (JavaFX version) (6) - to achieve computing capabilities

This section outlines: Calculate achieve kinship

A function: to achieve computing capabilities

Creating RelationShipData.java file in the data folder, which is mainly a two-dimensional array, that is, the relationship chain data.

It reads as follows:

package kindredCalculator.data;
public class RelationShipData {
    public String[][] getRelationShipData() {
        String[][] relationshipData = {
                {"我", "爸爸", "妈妈", "哥哥", "弟弟", "姐姐", "妹妹", "儿子", "女儿", "妻子", "丈夫", "未知亲戚"},
                {"爸爸", "爷爷", "奶奶", "伯父", "叔叔", "姑妈", "姑妈", "我", "妹妹", "妈妈", "不存在该种关系", "未知亲戚"},
                {"妈妈", "外公", "外婆", "大舅", "小舅", "大姨妈", "小姨妈", "我", "妹妹", "不存在该种关系", "爸爸", "未知亲戚"},
                {"哥哥", "爸爸", "妈妈", "哥哥", "我", "姐姐", "妹妹", "侄儿", "侄女", "嫂子", "不存在该种关系", "未知亲戚"},
                {"弟弟", "爸爸", "妈妈", "我", "弟弟", "姐姐", "妹妹", "侄儿", "侄女", "弟妹", "不存在该种关系", "未知亲戚"},
                {"姐姐", "爸爸", "妈妈", "哥哥", "我", "姐姐", "妹妹", "外甥", "外甥女", "不存在该种关系", "姐夫", "未知亲戚"},
                {"妹妹", "爸爸", "妈妈", "我", "弟弟", "姐姐", "妹妹", "外甥", "外甥女", "不存在该种关系", "妹夫", "未知亲戚"},
                {"儿子", "我", "妻子", "哥哥", "弟弟", "姐姐", "妹妹", "孙子", "孙女", "儿媳", "不存在该种关系", "未知亲戚"},
                {"女儿", "我", "妻子", "哥哥", "弟弟", "姐姐", "妹妹", "外孙", "外孙女", "不存在该种关系", "女婿", "未知亲戚"},
                {"妻子", "岳父", "岳母", "大舅子", "小舅子", "大姨子", "小姨子", "儿子", "女儿", "不存在该种关系", "我", "未知亲戚"},
                {"丈夫", "不存在该种关系", "不存在该种关系", "不存在该种关系", "不存在该种关系", "不存在该种关系", "不存在该种关系", "不存在该种关系", "不存在该种关系",
                        "不存在该种关系", "不存在该种关系", "未知亲戚"},
                {"爷爷", "曾祖父", "曾祖母", "伯祖父", "伯祖父", "姑奶奶", "姑奶奶", "爸爸", "姑妈", "奶奶", "不存在该种关系", "未知亲戚"},
                {"奶奶", "曾外祖父", "曾外祖母", "舅公", "舅公", "姨奶奶", "姨奶奶", "爸爸", "姑妈", "不存在该种关系", "爷爷", "未知亲戚"},
                {"伯父", "爷爷", "奶奶", "伯父", "叔叔", "姑妈", "姑妈", "堂哥", "堂姐", "伯母", "不存在该种关系", "未知亲戚"},
                {"叔叔", "爷爷", "奶奶", "伯父", "叔叔", "姑妈", "姑妈", "堂弟", "堂妹", "婶婶", "不存在该种关系", "未知亲戚"},
                {"姑妈", "爷爷", "奶奶", "伯父", "叔叔", "姑妈", "姑妈", "姑表哥", "姑表姐", "不存在该种关系", "姑丈", "未知亲戚"},
                {"外公", "外曾祖父", "外曾祖母", "伯外祖父", "叔外祖父", "姑姥姥", "姑姥姥", "舅舅", "妈妈", "外婆", "不存在该种关系", "未知亲戚"},
                {"外婆", "外曾外祖父", "外曾外祖母", "外舅公", "外舅公", "姨姥姥", "姨姥姥", "舅舅", "妈妈", "不存在该种关系", "外公", "未知亲戚"},
                {"大舅", "外公", "外婆", "大舅", "舅舅", "大姨", "妈妈", "舅表哥", "舅表姐", "大舅妈", "不存在该种关系", "未知亲戚"},
                {"小舅", "外公", "外婆", "舅舅", "小舅", "妈妈", "小姨", "舅表弟", "舅表妹", "小舅妈", "不存在该种关系", "未知亲戚"},
                {"大姨妈", "外公", "外婆", "大舅", "舅舅", "大姨", "妈妈", "姨表哥", "姨表姐", "不存在该种关系", "大姨父", "未知亲戚"},
                {"小姨妈", "外公", "外婆", "舅舅", "小舅", "妈妈", "小姨", "姨表弟", "姨表妹", "不存在该种关系", "小姨父", "未知亲戚"},
                {"侄儿", "哥哥", "嫂子", "侄儿", "侄儿", "侄女", "侄女", "侄孙子", "侄孙女", "侄媳", "不存在该种关系", "未知亲戚"},
                {"侄女", "哥哥", "嫂子", "侄儿", "侄儿", "侄女", "侄女", "外侄孙", "外侄孙女", "不存在该种关系", "侄女婿", "未知亲戚"},
                {"嫂子", "姻伯父", "姻伯母", "姻兄", "姻弟", "姻姐", "姻妹", "侄儿", "侄女", "不存在该种关系", "哥哥", "未知亲戚"},
                {"弟妹", "姻叔父", "姻叔母", "姻兄", "姻弟", "姻姐", "姻妹", "侄儿", "侄女", "不存在该种关系", "弟弟", "未知亲戚"},
                {"外甥", "姐夫", "姐姐", "外甥", "外甥", "外甥女", "外甥女", "外甥孙", "外甥孙女", "外甥媳妇", "不存在该种关系", "未知亲戚"},
                {"外甥女", "姐夫", "姐姐", "外甥", "外甥", "外甥女", "外甥女", "外甥孙", "外甥孙女", "不存在该种关系", "外甥女婿", "未知亲戚"},
                {"姐夫", "姻世伯", "姻伯母", "姻兄", "姻弟", "姻姐", "姻妹", "外甥", "外甥女", "姐姐", "不存在该种关系", "未知亲戚"},
                {"妹夫", "姻世伯", "姻伯母", "姻兄", "姻弟", "姻姐", "姻妹", "外甥", "外甥女", "妹妹", "不存在该种关系", "未知亲戚"},
                {"孙子", "儿子", "儿媳", "孙子", "孙子", "孙女", "孙女", "曾孙", "曾孙女", "孙媳", "不存在该种关系", "未知亲戚"},
                {"孙女", "儿子", "儿媳", "孙子", "孙子", "孙女", "孙女", "曾外孙", "曾外孙女", "不存在该种关系", "孙女婿", "未知亲戚"},
                {"儿媳", "亲家公", "亲家母", "姻侄", "姻侄", "姻侄女", "姻侄女", "孙子", "孙女", "不存在该种关系", "儿子", "未知亲戚"},
                {"外孙女", "女婿", "女儿", "外孙", "外孙", "外孙女", "外孙女", "外曾外孙", "外曾外孙女", "不存在该种关系", "外孙女婿", "未知亲戚"},
                {"外孙", "女婿", "女儿", "外孙", "外孙", "外孙女", "外孙女", "外曾孙", "外曾孙女", "外孙媳", "不存在该种关系", "未知亲戚"},
                {"女婿", "亲家公", "亲家母", "姻侄", "姻侄", "姻侄女", "姻侄女", "外孙", "外孙女", "女儿", "不存在该种关系", "未知亲戚"},
                {"岳父", "太岳父", "太岳母", "伯岳", "叔岳", "姑岳母", "姑岳母", "大舅子", "大姨子", "岳母", "不存在该种关系", "未知亲戚"},
                {"岳母", "外太岳父", "外太岳母", "舅岳父", "舅岳父", "姨岳母", "姨岳母", "小舅子", "小姨子", "不存在该种关系", "岳父", "未知亲戚"},
                {"大舅子", "岳父", "岳母", "大舅子", "小舅子", "大姨子", "小姨子", "内侄", "内侄女", "舅嫂", "不存在该种关系", "未知亲戚"},
                {"小舅子", "岳父", "岳母", "大舅子", "小舅子", "老婆", "小姨子", "内侄", "内侄女", "舅弟媳", "不存在该种关系", "未知亲戚"},
                {"大姨子", "岳父", "岳母", "大舅子", "小舅子", "大姨子", "老婆", "内甥", "姨甥女", "不存在该种关系", "大姨夫", "未知亲戚"},
                {"小姨子", "岳父", "岳母", "大舅子", "小舅子", "老婆", "小姨子", "内甥", "姨甥女", "不存在该种关系", "小姨夫", "未知亲戚"},
                {"曾祖父", "高祖父", "高祖母", "曾伯祖父", "曾叔祖父", "曾姑奶奶", "曾姑奶奶", "爷爷", "姑奶奶", "曾祖母", "不存在该种关系", "未知亲戚"},
                {"曾祖母", "高外祖父", "高外祖母", "舅曾祖父", "舅曾祖父", "姨曾祖母", "姨曾祖母", "爷爷", "姑奶奶", "不存在该种关系", "曾祖父", "未知亲戚"},
                {"伯祖父", "曾祖父", "曾祖母", "伯祖父", "爷爷", "姑奶奶", "姑奶奶", "堂伯", "堂姑", "伯祖母", "不存在该种关系", "未知亲戚"},
                {"姑奶奶", "曾祖父", "曾祖母", "爷爷", "叔祖父", "姑奶奶", "姑奶奶", "姑表伯父", "姑表姑母", "不存在该种关系", "姑爷爷", "未知亲戚"},
                {"曾外祖父", "曾外曾祖父", "曾外曾祖母", "伯曾外祖父", "叔曾外祖父", "姑曾外祖母", "姑曾外祖母", "舅公", "奶奶", "曾外祖母", "不存在该种关系", "未知亲戚"},
                {"曾外祖母", "曾外曾外祖父", "曾外曾外祖母", "舅曾外祖父", "舅曾外祖父", "姨曾外祖母", "姨曾外祖母", "舅公", "奶奶", "不存在该种关系", "曾外祖父", "未知亲戚"},
                {"舅公", "曾外祖父", "曾外祖母", "舅公", "舅公", "姨奶奶", "奶奶", "舅表伯父", "舅表姑母", "舅婆", "不存在该种关系", "未知亲戚"},
                {"姨奶奶", "曾外祖父", "曾外祖母", "舅公", "舅公", "姨奶奶", "奶奶", "姨表伯父", "姨表姑母", "不存在该种关系", "姨爷爷", "未知亲戚"},
                {"堂哥", "伯父", "伯母", "堂哥", "堂弟", "堂姐", "堂妹", "堂侄", "堂侄女", "堂嫂", "不存在该种关系", "未知亲戚"},
                {"堂弟", "叔叔", "婶婶", "堂哥", "堂弟", "堂姐", "堂妹", "堂侄", "堂侄女", "堂弟媳", "不存在该种关系", "未知亲戚"},
                {"堂姐", "伯父", "伯母", "堂哥", "堂弟", "堂姐", "堂妹", "堂外甥", "堂外甥女", "不存在该种关系", "堂姐夫", "未知亲戚"},
                {"堂妹", "叔叔", "婶婶", "堂哥", "堂弟", "堂姐", "堂妹", "堂外甥", "堂外甥女", "不存在该种关系", "堂妹夫", "未知亲戚"},
                {"伯母", "姻伯公", "姻伯婆", "姻世伯", "姻世伯", "姻伯母", "姻伯母", "堂哥", "堂姐", "不存在该种关系", "伯父", "未知亲戚"},
                {"婶婶", "姻伯公", "姻伯婆", "姻世伯", "姻世伯", "姻伯母", "姻伯母", "堂弟", "堂妹", "不存在该种关系", "叔叔", "未知亲戚"},
                {"舅表伯父", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨表伯父", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅表姑母", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨表姑母", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅婆", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨爷爷", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂侄", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂侄儿", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂嫂", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂弟媳", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂外甥", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂外甥女", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂姐夫", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂妹夫", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻世伯", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻伯母", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑表哥", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑表姐", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑丈", "", "", "", "", "", "", "", "", "", "", ""},
                {"外曾祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"外曾祖母", "", "", "", "", "", "", "", "", "", "", ""},
                {"伯外祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"叔外祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑姥姥", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅舅", "", "", "", "", "", "", "", "", "", "", ""},
                {"外舅公", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨姥姥", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅表哥", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅表姐", "", "", "", "", "", "", "", "", "", "", ""},
                {"大舅妈", "", "", "", "", "", "", "", "", "", "", ""},
                {"小舅妈", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅表弟", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅表妹", "", "", "", "", "", "", "", "", "", "", ""},
                {"大姨", "", "", "", "", "", "", "", "", "", "", ""},
                {"小姨", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨表哥", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨表弟", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨表姐", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨表妹", "", "", "", "", "", "", "", "", "", "", ""},
                {"大姨父", "", "", "", "", "", "", "", "", "", "", ""},
                {"小姨父", "", "", "", "", "", "", "", "", "", "", ""},
                {"侄孙子", "", "", "", "", "", "", "", "", "", "", ""},
                {"外侄孙", "", "", "", "", "", "", "", "", "", "", ""},
                {"侄孙女", "", "", "", "", "", "", "", "", "", "", ""},
                {"外侄孙女", "", "", "", "", "", "", "", "", "", "", ""},
                {"侄媳", "", "", "", "", "", "", "", "", "", "", ""},
                {"侄女婿", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻伯父", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻叔父", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻伯母", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻叔母", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻兄", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻弟", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻姐", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻妹", "", "", "", "", "", "", "", "", "", "", ""},
                {"叔祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂伯", "", "", "", "", "", "", "", "", "", "", ""},
                {"堂姑", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑表伯父", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑表姑母", "", "", "", "", "", "", "", "", "", "", ""},
                {"伯祖母", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑爷爷", "", "", "", "", "", "", "", "", "", "", ""},
                {"曾外曾祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"曾外曾祖母", "", "", "", "", "", "", "", "", "", "", ""},
                {"伯曾外祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"叔曾外祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅曾外祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑曾外祖母", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨曾外祖母", "", "", "", "", "", "", "", "", "", "", ""},
                {"外甥孙女", "", "", "", "", "", "", "", "", "", "", ""},
                {"外甥孙", "", "", "", "", "", "", "", "", "", "", ""},
                {"外甥媳妇", "", "", "", "", "", "", "", "", "", "", ""},
                {"外甥女婿", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻师伯", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻伯母", "", "", "", "", "", "", "", "", "", "", ""},
                {"曾孙", "", "", "", "", "", "", "", "", "", "", ""},
                {"曾外孙", "", "", "", "", "", "", "", "", "", "", ""},
                {"曾孙女", "", "", "", "", "", "", "", "", "", "", ""},
                {"曾外孙女", "", "", "", "", "", "", "", "", "", "", ""},
                {"孙媳", "", "", "", "", "", "", "", "", "", "", ""},
                {"孙女婿", "", "", "", "", "", "", "", "", "", "", ""},
                {"亲家公", "", "", "", "", "", "", "", "", "", "", ""},
                {"亲家母", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻侄", "", "", "", "", "", "", "", "", "", "", ""},
                {"姻侄女", "", "", "", "", "", "", "", "", "", "", ""},
                {"外曾外孙", "", "", "", "", "", "", "", "", "", "", ""},
                {"外曾外孙女", "", "", "", "", "", "", "", "", "", "", ""},
                {"外孙女婿", "", "", "", "", "", "", "", "", "", "", ""},
                {"外孙媳", "", "", "", "", "", "", "", "", "", "", ""},
                {"太岳父", "", "", "", "", "", "", "", "", "", "", ""},
                {"外太岳父", "", "", "", "", "", "", "", "", "", "", ""},
                {"太岳母", "", "", "", "", "", "", "", "", "", "", ""},
                {"外太岳母", "", "", "", "", "", "", "", "", "", "", ""},
                {"伯岳", "", "", "", "", "", "", "", "", "", "", ""},
                {"叔岳", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅岳父", "", "", "", "", "", "", "", "", "", "", ""},
                {"姑岳母", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨岳母", "", "", "", "", "", "", "", "", "", "", ""},
                {"内侄", "", "", "", "", "", "", "", "", "", "", ""},
                {"内侄女", "", "", "", "", "", "", "", "", "", "", ""},
                {"内甥", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨甥女", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅嫂", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅弟媳", "", "", "", "", "", "", "", "", "", "", ""},
                {"大姨夫", "", "", "", "", "", "", "", "", "", "", ""},
                {"小姨夫", "", "", "", "", "", "", "", "", "", "", ""},
                {"高祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"高祖母", "", "", "", "", "", "", "", "", "", "", ""},
                {"高外祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"高外祖母", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅伯祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅叔祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"舅曾祖父", "", "", "", "", "", "", "", "", "", "", ""},
                {"曾姑奶奶", "", "", "", "", "", "", "", "", "", "", ""},
                {"姨曾祖母", "", "", "", "", "", "", "", "", "", "", ""},
                {"未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚", "未知亲戚"}
        };
        return relationshipData;
    }
}

Followed by a method in which the Controller.java:

    /**
     * 操作结果:判断某个值在二维数组中的行首值中是否存在
     *
     * @param value 某个值
     * @param array 二维数组
     * @return 如果存在返回true,否则返回false
     */
    public boolean isExist(String value, String[][] array) {
        for (int i = 0; i < array.length; i++) {
            if (value.equals(array[i][0])) {
                return true;
            }
        }
        return false;
    }

Then calculate button is to write event listeners, so the content do_countButton_event method is as follows:

    @FXML
        // 【计算】按钮的事件监听器
    void do_countButton_event(ActionEvent event) {
        String[][] relationshipData = new RelationShipData().getRelationShipData();
        String[] array = inputTextArea.getText().split("的");
        int column = 0, row = 0;
        String resultValue = array[0];
        for (int i = 1; i < array.length; i++) {
            for (int m = 0; m < relationshipData.length; ++m) {
                if (relationshipData[m][0].equals(resultValue)) {
                    row = m;
                }
            }
            for (int n = 0; n < relationshipData[0].length; n++) {
                if (relationshipData[0][n].equals(array[i])) {
                    column = n;
                }
            }
            resultValue = relationshipData[row][column];
            if (!isExist(resultValue, relationshipData)) {
                resultValue = "未知亲戚";
                break;
            }
        }
        outputTextArea.setText(resultValue);
    }

Click on "Calculate" button effect is as follows:

to sum up

Until now, all functions have been achieved.

This is the realization of a project is not the same, the main function is to calculate and rollback functions and interface implementation is not the same.

Here the comparative analysis:

(1) a interface project is to use the swing to achieve, write code more but also for style decoration interface is too much trouble single, this project is the use of JavaFX implemented, JavaFX can be designed interface by Scene Builder, you can drag and drop controls to implement the interface layout is more convenient, and easier to use interface style to the front of people learned, the use of CSS syntax to decorate the interface is beautiful and diverse.

Retract function (2) a small project is to use the swing of undo class to achieve, and this project is customized to implement a stack Stack fallback function, the stack feature is the last out.

The realization of a function of computing projects (3) is to have a corresponding relationship chain to query relational, and if the processing complex and changing relationship chain, to list all of the chain of significantly greater than the engineering and cumbersome, this project uses one kind of tricky way - two-dimensional array, using the properties of two-dimensional array index to continue to traverse the results obtained.

To summarize here, perhaps there is time to think more optimal algorithm.

 

Searchable public micro-channel number [ Java example program ] or scan the Fanger Wei code number to get more public attention.

Note: Reply to [the public number background 20191128 ] This section can get the source code.

发布了394 篇原创文章 · 获赞 41 · 访问量 9万+

Guess you like

Origin blog.csdn.net/cnds123321/article/details/103738129