• 大小: 11KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Java
  • 标签: pangrank  java  

资源简介

可读入文件,更可按你的要求生成随机的矩阵,全图形操作界面!绝对的高大上!!!!! PageRank算法及Java代码实现,加入阻尼系数变量,可轻松修改迭代次数及阻尼变量,并且输出时提示是第几次的迭代输出. 对输入的格式要求有很详细的介绍!

资源截图

代码片段和文件信息

package cn.wx.PageRank;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 * 求取PageRank值的代码 用户可以通过文件选择器选择读入指定的文件进行计算,文件的第一行为初始PR值,
 * 
 * 余下的行为矩阵,其中矩阵行元素间用“,”隔开,行与行之间无需分隔符。
 * 
 * 也可以通过选择随机来输入矩阵的维数、初始PR值以及矩阵的复杂度(矩阵中有多少个1)生成矩阵进行计算。
 */

public class newPageRank {
static JTextField jtf;// 显示文件路径的框
static JTextArea jta;// 显示计算结果的框
static Jframe jf;// 显示的窗体
static Jframe jf1;// 显示输入矩阵的窗体
static float[] data;// 存数输入数据的数组
static int time = 20;// 指定的运行次数
static float alpha = 0.85f; // 阻尼系数d或称为alpha 

public static void main(String[] args) {
newPageRank mine = new newPageRank();
mine.showUI();
}

/**
 * 展示计算结果的界面
 */
public void showUI() {
// 初始化界面以及按钮、输入框等
jf = new Jframe();
jf.settitle(“PR值计算~~“);
jf.setSize(500 500);
jf.setDefaultCloseOperation(3);
jf.setResizable(false);
jf.setLayout(null);
jf.setLocationRelativeTo(null);

JButton btn = new JButton(“打开“);
btn.setActionCommand(“Open“);
btn.setBounds(20 20 80 30);

JButton btn1 = new JButton(“随机“);
btn1.setActionCommand(“Input“);
btn1.setBounds(110 20 80 30);

jtf = new JTextField();
jtf.setBounds(200 20 260 30);
jtf.setEditable(true);
jtf.setActionCommand(“Over“);

jta = new JTextArea();
jta.setEditable(false);
jta.setLineWrap(true);
jta.setAutoscrolls(true);

JScrollPane jsp = new JScrollPane(jta);// 创建滚动条
jsp.setBounds(20 70 460 380);

// 添加监听器
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals(“Open“)) {
// 弹出选择框
jta.setText(““);// 每次重新选择之前清空输入框
JFileChooser fc = new JFileChooser();
int value = fc.showOpenDialog(null);
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
if (value == JFileChooser.CANCEL_OPTION) {
return;
}
File file = fc.getSelectedFile();
jtf.setText(file.getAbsolutePath());
readFile(file);
}
if (e.getActionCommand().equals(“Input“)) {
init();// 初始化窗体,获取值
}
if (e.getActionCommand().equals(“Over“)) {
jta.setText(““);
// 输入路径结束,执行以下操作
File file = new File(jtf.getText());
readFile(file);
}
}

};

jf.add(btn);
jf.add(btn1);
jf.add(jtf);
jf.add(jsp);
btn.addActionListener(al);
btn1.addActionListener(al);
jtf.addActionListener(al);

jf.setVisible(true);
}

/**
 * 读取相应路径文件的方法 定义文件中第一行是节点对应的初始化PR值,
 * 接下来是N*N的矩阵 同行数据之间均通过“,“分隔,不同行无需分隔符
 * 
 * @param file
 *            :文件
 */
public st

评论

共有 条评论