基于Java开发(PC)小说自检测系统【100010061】

Java 语言与系统设计课程(小说自检测系统)

一、目的与要求

? 该软件支持从服务器载入小说,对小说中的文本进行分析。举例说明:服务器端保存《三国演义》,客户端进行分析。

? 首先运行服务器。服务器运行之后,可以连接 1 个客户端。

? 运行客户端。用户能够输入昵称,确定,则连接到服务器。连接成功,即可出现功能界面。

客户端功能界面如下:

  • 功能 1:载入小说。能够选择服务器端的小说。举例说明:客户端点击按钮,选择服务器端的文件名,《三国演义》传输到客户端。

  • 功能 2:任意设置 10 个人姓名(可以预设置在客户端界面上),将这 10 个人在小说中的存在感进行排名,用柱状图表示。如何计算存在感己定义。点击按钮,存在感排名的柱状图可以保存到服务器端。举例说明:界面上设置“刘备、曹操、张飞、关羽、赵云、诸葛亮、吕布、貂蝉、董卓、孙权”,点击按钮,出现一个柱状图,显示存在感排名为:刘备、曹操、张飞、关羽、诸葛亮、赵云、孙权、吕布、董卓、貂蝉(只是举例说明)。

  • 每个人在小说中活跃的位置是不一样的。任意输入 10 人中的 1 人,显示他在小说中出现的密度,画出密度图。建议用颜色深浅表示密度。点击按钮,密度图可以保存到服务器端。举例说明:输入“刘备”,在小说中前面部分密度大,后面部分密度小。

  • 如果两人在相距较短的一段文字中出现,我们认为两人有关系,距离越短,关系越近;如果多次在较短篇幅出现,则关系更近。对这 10 个人,根据他们关系的紧密程度进行归类,看看可以归为哪几类用图形形式直观表示。如何定义关系紧密程度己定义。点击按钮,紧密程度归类的图像内容,可以保存到服务器端。举例说明:这 10 个人,自动分为“刘备、张飞、关羽、赵云、诸葛亮”以及“曹操”、“吕布、董卓、貂蝉”、“孙权”(只是举例)。

  • 附加题,不检查,做了不加分不减分。任意输入一个人,显示他最恨谁,最喜欢谁,最喜欢吃什么,经常去哪里活动,杀人多不多,是好人还是坏人与你的直觉是否符合果不太符合,说明可能的原因。

二、操作环境

硬件: PC

软件:eclipse

三、实验内容

server 包

  • Server.java:

    主要的服务器功能,为客户端打开连接端口,并实现向客户端传输数据和接受客户端的数据传输功能。

client 包

  • Client.java:

    主要是客户端主函数,负责与服务器进行连接,有一个文本框,可以输入使用者姓名,输入之后点击连接即可连接到服务器,跳转到主功能界面。

myframe 包

  • Fun1Frame.java:

    功能一界面,主要负责完成功能一的下载小说功能。有两个按键,下载小说和返回按键。当点击下载小说后,客户端向服务器传输指定数值,服务器接收后开始向客户端传输小说内容,客户端接受服务端传来的小说内容,并将其贮存在指定的文件夹下。点击返回按键即可返回主功能界面。

  • Fun2Frame.java:

    功能二界面,主要负责完成功能二以柱状图的形式反应人物出现的频率大小的功能。有两个按键,生成柱状图和返回按键。当点击生成柱状图按键时,客户端向服务器传输指定参数,服务器接收后调用 name 包里的函数对小说进行分析,之后生成相应的柱状图。点击返回按键返回主功能选择界面。

  • Fun3Frame.java:

    功能三界面,主要负责完成功能三按照每章出现次数来生成密度图。在界面上预设好了十个人的名字以及对应的序 ,在一个文本输入框中输入你想查询的人名对应的序 ,然后点击保存密度图,客户端向服务器传输对应的参数,服务器接收到参数以后调用 name 包,生成对应的密度图。

  • Fun4Frame.java:

    功能四界面,主要是负责完成功能四对预设好的十个人进行分类的功能。有两个按钮,保存归类内容和返回按键。点击保存归类内容以后,客户端向服务端传入指定参数,服务端接收以后调用 name 包显示并保存分类内容。点击返回按键返回主功能选择界面。

  • MainFrame.java:

    主功能选择界面,主要是负责功能的选择。当 client 连接成功后会跳转到主功能选择界面。有四个按键,每个按键对应着不同的四个功能,点击之后即可跳转到指定的功能。

name 包

  • Name.java:

    对文本进行分析的主函数。预设有十个人的姓名,在 Name.java 里给又设置了一个新的 MainName 类,用来存放每个人的主要信息,并用 map 函数进行贮存。其中存放的主要信息有姓名,每章出现次数,总共出现次数等。对文本的每章进行扫描,并贮存每个人每章出现的次数,结束后,采用冒泡排序对 map 进行排序。

当调用它时生成不同的图表。

  • BarChart.java:

    主要是用来生成柱状图的图表。Name.java 调用该类来生成对应的柱状图,由于功能二和功能三均需要柱状图,则通过改变构造函数参数的不同来区分要生成功能几的柱状图。生成柱状图的方法主要是调用外引入的包 JFreeChart。

  • PieChart.java:

    主要是生成对应的密度图,并通过他们每章出现次数的多少来设置对应章节区域的颜色深浅,生成饼状图的方法也是调用外引入的包 JFreeChart 来实现。

四、实验结果

客户端连接成功界面

MainFrame 界面

Fun2Frame 界面

Fun4Frame 界面

功能二生成柱状图界面

功能四进行分类界面

功能三生成密度图

五、实验源代码

server 包

  • Server.java:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年11月22日
下一篇 2022年11月22日

相关推荐