📄 代码.txt
字号:
/*
* apriori.java
*
* Created on 2008年5月12日, 下午9:16
*/
/**
*
* @author june
*/
import com.sun.org.apache.bcel.internal.generic.ConversionInstruction;
import javax.swing.JOptionPane;
import javax.swing.*;
import javax.swing.JMenu;
import java.sql.*;
import java.lang.*;
import MyPackage.NumberCount;
import MyPackage.Terms;
import MyPackage.Different;
import java.net.URI;
public class apriori extends javax.swing.JFrame {
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fangji";
String userName = "sa";
String userPwd = "850122";
String query = "select 方编号,药名 from 药物表";
int i=0,l=0,k=0,p=0;
String queryName = "select 药名 from 药物表 group by 药名 order by 药名 ";
String queryId = "select 方编号 from 方剂表";
String drugName[]= new String[405];
String fangjiId[] = new String[1060];
String temp[] = new String[27]; //一个方剂中最大的药物数
NumberCount OneNumberCount[]=null;
NumberCount TwoNumberCount[]=null;
NumberCount ThreeNumberCount[]=null;
char matrix[][] = new char[1060][405];
/** Creates new form apriori */
public apriori() {
initComponents();
jPanel1.setVisible(false);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jTextField1 = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jScrollPane3 = new javax.swing.JScrollPane();
jTextPane2 = new javax.swing.JTextPane();
jButton2 = new javax.swing.JButton();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenuItem2 = new javax.swing.JMenuItem();
jMenu3 = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("\u6700\u5c0f\u652f\u6301\u5ea6");
jLabel3.setText("\u6700\u5c0f\u7f6e\u4fe1\u5ea6");
jLabel4.setText("% \u6700\u5927\u9879\u6570");
jButton1.setText("Apriori\u5173\u8054\u7b97\u6cd5");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jScrollPane3.setViewportView(jTextPane2);
jButton2.setText("\u5173\u8054\u89c4\u5219");
jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton2MouseClicked(evt);
}
});
jButton2.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
jButton2KeyTyped(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextField1))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(165, 165, 165)
.addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, 139, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 19, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(25, 25, 25))
.addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 614, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(12, 12, 12)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton2)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(33, 33, 33)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 274, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jMenu1.setText("\u6587\u4ef6");
jMenuItem1.setText("\u9000\u51fa");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1);
jMenuBar1.add(jMenu1);
jMenu2.setText("\u6570\u636e\u6316\u6398");
jMenuItem2.setText("\u5173\u8054\u89c4\u5219\u6316\u6398");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem2);
jMenuBar1.add(jMenu2);
jMenu3.setText("\u5e2e\u52a9");
jMenuBar1.add(jMenu3);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
//找关联规则
if(!CheckPass())
{
return;
}
SetTable();
double persent_d =(Float.valueOf(jTextField1.getText()))/100.0;
float persent_t = Float.valueOf(String.valueOf( persent_d)); //把double型转换成float型,必须先转换为字符串型
double persent_d_g =(Float.valueOf(jTextField3.getText()))/100.0;
float persent_t_g = Float.valueOf(String.valueOf( persent_d_g));
String Result_g="";
switch(Integer.valueOf(jTextField4.getText()))
{
case 2:
{
Result_g= GetTwoItem(persent_t,persent_t_g);
break;
}
default :
{
Result_g= GetTwoItem(persent_t,persent_t_g);
Result_g+=GetThreeItem(persent_t,persent_t_g);
break;
}
}
if(Result_g.trim().equals("")) //去掉字符串两端的空格
{
Result_g="没有找到适当的数据!!!";
}
jTextPane2.setText(Result_g );
}
private void jButton2KeyTyped(java.awt.event.KeyEvent evt) {
// TODO 将在此处添加您的处理代码:
}
private boolean CheckPass() //验证输入数据的正确性
{
String a1=jTextField1.getText();
String a3=jTextField3.getText();
String a4=jTextField4.getText();
if(a1.length()==0||a3.length()==0||a4.length()==0)
{
JOptionPane.showMessageDialog(this,"请输入数据! 输入框不能为空!","警告对话框",JOptionPane.WARNING_MESSAGE);
return false;
}
for(int i=0;i<a1.length();i++)
{
if(a1.charAt(i)<'0'||a1.charAt(i)>'9')
{
JOptionPane.showMessageDialog(this,"非法字符! 请输入数字!","警告对话框",JOptionPane.WARNING_MESSAGE);
jTextField1.setText(null); jTextField1 .setText(null);
return false;
}
}
for(int i=0;i<a3.length();i++){
if(a3.charAt(i)<'0'||a3.charAt(i)>'9'){
JOptionPane.showMessageDialog(this,"非法字符! 请输入数字!","警告对话框",JOptionPane.WARNING_MESSAGE);
jTextField3.setText(null); jTextField3.setText(null);
return false;
}
}
for(int i=0;i<a4.length();i++){
if(a4.charAt(i)<'0'||a4.charAt(i)>'5'){
JOptionPane.showMessageDialog(this,"非法字符! 请输入数字!","警告对话框",JOptionPane.WARNING_MESSAGE);
jTextField4.setText(null); jTextField4.setText(null);
return false;
}
}
return true;
}
private void SetTable() //建立位图
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection dbConn = DriverManager.getConnection(dbURL, userName, userPwd); //连接到数据库,提供相应的用户名、密码
Statement stmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); //用dbConn连接创建SQL语句对象
ResultSet rsName = stmt.executeQuery(queryName);
i=0;
while(rsName.next())
{
if(i<405)
{
drugName[i] = rsName.getString("药名");
}
i++;
}
System.out.println("共有"+i+"味药 :");
ResultSet rsId = stmt.executeQuery(queryId);
i=0;
while(rsId.next()){
fangjiId[i++] = rsId.getString("方编号"); //把方编号存入数组
}
for(int i = 0; i<1060;i++)
{
for(int j = 0 ;j<405;j++)
{
matrix[i][j] = '0';
}
}
for(int i=0;i<1060;i++)
{
String queryName1 = "select 药名 from 药物表 where 方编号="+fangjiId[i]+" group by 药名 order by 药名";
ResultSet rsName1 = stmt.executeQuery(queryName1);
l=0;
while(rsName1.next())
{ //把每次查找出的一种方剂的所有药名存放在临时数组'temp'中.
temp[l] = rsName1.getString("药名");
l++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -