⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newbagapplet.java

📁 动态规划策略实现0-1背包问题的JAVA源程序
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;

public class newBagApplet extends JApplet
	  implements ActionListener{
	private JTextField jtfweight=new JTextField();
	private JTextField jtfvalue=new JTextField();
	private JTextField jtfcontain=new JTextField();
	private JTextField jtfnumber=new JTextField();
	private JTextField jtfsumValue=new JTextField();
	private JButton jbtComputeValue=new JButton("运行");
	
	public void init(){
		jtfsumValue.setEditable(false);
		
		jtfweight.setHorizontalAlignment(JTextField.LEFT);
		jtfvalue.setHorizontalAlignment(JTextField.LEFT);
		jtfcontain.setHorizontalAlignment(JTextField.RIGHT);
		jtfnumber.setHorizontalAlignment(JTextField.RIGHT);
		jtfsumValue.setHorizontalAlignment(JTextField.RIGHT);
		
		JPanel p1=new JPanel();
		p1.setLayout(new GridLayout(5,2));
		p1.add(new JLabel("输入物品体积(中间逗号隔开)"));
		p1.add(jtfweight);
		p1.add(new JLabel("输入物品价值(中间逗号隔开)"));
		p1.add(jtfvalue);
		p1.add(new JLabel("输入背包容积"));
		p1.add(jtfcontain);
		p1.add(new JLabel("输入物品数"));
		p1.add(jtfnumber); 
		p1.add(new JLabel("最大价值"));
		p1.add(jtfsumValue);
		p1.setBorder(new TitledBorder("背包问题"));
		
		JPanel p2=new JPanel();
		p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
		p2.add(jbtComputeValue);
		
		getContentPane().add(p1,BorderLayout.CENTER);
		getContentPane().add(p2,BorderLayout.SOUTH);
		
		jbtComputeValue.addActionListener(this);
	}
	
	
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==jbtComputeValue){
			
			char[]charsw=jtfweight.getText().toCharArray();
			char[]charsv=jtfvalue.getText().toCharArray();
			char[]charsw1=new char[charsw.length+2];
			char[]charsv1=new char[charsv.length+2];
			for(int i=charsw.length+1;i>1;i--)
				charsw1[i]=charsw[i-2];
			for(int j=charsv.length+1;j>1;j--)
				charsv1[j]=charsv[j-2];
			charsw1[0]='0';charsw1[1]=',';
			charsv1[0]='0';charsv1[1]=',';
			//int[]v=jtfvalue.getText();
				/*
			int []w={80,82,85,70,72,70,
					 66,50,55,25,50,55,
					 40,48,50,32,22,60,
					 30,32,40,38,35,32,
					 25,28,30,22,50,30,
					 45,30,60,50,20,65,
					 20,25,30,10,20,25,
					 15,10,10,10,4,4,2,1};
			int []v={220,208,198,192,180,180,
					 165,162,160,158,155,130,
					 125,122,120,118,115,110,
					 105,101,100,100,98,96,
					 95,90,88,82,80,77,
					 75,73,70,69,66,65,
					 63,60,58,56,50,30,
					 20,15,10,8,5,3,1,1};
					 */
			//int n=50;
			//int c=1000;
			int countw,countv;
			
			int c=Integer.parseInt(jtfcontain.getText());
			int n=Integer.parseInt(jtfnumber.getText());
			int []take=new int[n+1];
			int [][]m=new int[n+1][c+1];
			newBag newbag=new newBag();
			countw=newbag.count(charsw1);
			countv=newbag.count(charsv1);
			int[]w=new int[countw+1];
			int[]v=new int[countv+1];
			
			newbag.charToInt(charsw1,w);
			newbag.charToInt(charsv1,v);
			m=newbag.putbag(w,v,c,n);
			newbag.putin(m,w,c,n,take);
			newbag.display(w,v,take);
			jtfsumValue.setText(""+(int)m[n][c]);
		}
	}
	public static void main(String[]args){
		JFrame frame=new JFrame("Running a program");
		newBagApplet bagapplet=new newBagApplet();
		frame.getContentPane().add(bagapplet,BorderLayout.CENTER);
		
		bagapplet.init();
		bagapplet.start();
		
		frame.setSize(400,300);
		frame.setVisible(true);
		}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -