欢迎来到天天文库
浏览记录
ID:37852286
大小:986.00 KB
页数:20页
时间:2019-06-01
《java小说人物分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一.实验题目自行下载自己最喜欢的小说1部。存储为文本文档。要求长篇小说,20万字以上。任取其中10个人物,考虑他们的姓名、别名等等一系列因素。(1)统计每个人在小说中出现的次数并排序。(2)统计每个人在小说中出现的篇幅跨度(第一次出现距最后一次出现的篇幅)并排序。(3)如果两人在相距较短的一段文字中出现,我们认为两人有关系,距离越短,关系越近。自行设计统计标准,找出10个人中:1)关系最紧密的两个人,关系最不紧密的两个人。2)输入一个人名,列出该人和其他人关系的紧密程度排名。看与实际是否符合?如果不太符合,说明可能的原因。二.需求分析本演
2、示程序用eclipse编写,完成小说人物的出现次数统计,人物篇幅跨度统计以及人物间亲密程度的统计。①统计人物出现次数:编写一个函数,当传入参数为人物名称时可统计该人物名在小说中的出现次数。②人物篇幅跨度:编写一个函数,当传入参数为人物名称是可统计该人物名在小说中第一次出现的位置以及最后一次出现的位置,将最后一次出现位置减去第一次出现的位置比去小说通篇长度可得该人物名在小说中的人物篇幅跨度。③人物间亲密程度:编写一个函数,当传入参数为人物名一和人物名二时,统计人物名一与人物名二同时在某个字数范围内出现的篇幅占人物名一的篇幅之比就是人物名一与
3、人物名二的亲密程度。④制作功能选择界面:界面包含有十个人物名的下拉列表,三个功能排序按钮,一个文本区域可输出统计结果。三.概要设计1)为了实现上述程序功能,需要定义一下几个类:①Interface类:该程序的功能选择界面,包含main函数。②Novelfunction1类:用来实现程序的第一个功能的类。③Novelfunction2类:用来实现程序的第二个功能的类。④Novelfunction3类:用来实现程序的第三个功能的类。⑤Saver类:用来保存程序运行后的统计结果,结果将统计在result.txt中。在程序运行中,在界面中的下拉列
4、表选定一位人物,选定后在界面的文本区域中会输出该人物在小说中的出现次数,篇幅跨度以及与其他九个人物间的亲密程度;在界面中点击功能按钮“人物出现次数排序”,点击后文本区域会输出十个人物在小说中出现次数的升序排序;在界面中点击功能按钮“人物篇幅跨度排序”,点击后文本区域会输出十个人物在小说中篇幅跨度的升序排序;在界面中点击功能按钮“人物关系密度排序”,点击后文本区域中会输出十个人物间亲密程度最高的一组和亲密程度最低的一组结果。四.源代码:①Interface:packagenovelproject;importjavax.swing.JFra
5、me;importjavax.swing.JPanel;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Font;importjava.awt.GridLayout;importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;i
6、mportjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swing.JButton;importjavax.swing.JTextArea;importjava.io.BufferedReader;importjava.io.FileOutputStream;importjava.io.FileInputStream;importjava.io.File;importjava.io.FileReader;importjava.io.PrintS
7、tream;importjava.util.Arrays;importjava.util.HashMap;publicclassInterfaceextendsJFrameimplementsItemListener,ActionListener{privateJLabeljbl=newJLabel("嫌疑犯X的献身");privateJLabelfunction=newJLabel("功能");privateJPaneljpl=newJPanel();privateBorderLayoutbl=newBorderLayout(10,10
8、);privateJComboBoxjcb=newJComboBox();privateJButtonjbt1=newJButton("出现次数排序");privateJButtonjbt2=
此文档下载收益归作者所有