安 徽 工 业 大 学
决策支持系统课程设计
* 名: * * 学 号: ********* 班 级: 息 111 班 专 业:信息管理与信息系统 指导老师: * *
决策支持系统实验报告书
决策支持系统实验报告
一:实验简介:
本实验是利用JAVA语言编写的简单小程序,可以用Eclipse运行。在本实验中,用String[] 数组代替数据库,也可以得到相同的结果。其中,Stirng[]数组 每一个数组单元都是String类型,可以存储相关的数据,类似于数据库的功能。
二:代码功能:
该代码可以实现“正向推理”,“逆向推理”,还有“退出”确定等选项;可以进行正向推理,逆向推理还有退出。
三.相关代码:
代码一:(knowledgeActivity类)
package knowledgeActivity;
import java.awt.event.* ; import java.awt.* ; import javax.swing.* ;
public class KnowledgePractise { JFrame frame ;
public KnowledgePractise(){
frame = new JFrame (\"知识库测试窗口\") ; //以下设置菜单项
JMenuBar menubar = new JMenuBar () ; frame.setJMenuBar (menubar) ;
JMenu forward_menu = new JMenu (\" 正向推理 \") ; JMenu backward_menu = new JMenu (\" 逆向推理 \") ; JMenu edit_menu = new JMenu(\"编辑\") ; menubar.add (forward_menu) ; menubar.add (backward_menu) ; menubar.add (edit_menu) ;
JMenuItem newf_item = new JMenuItem (\"新建正向推理\") ; JMenuItem newb_item = new JMenuItem (\"新建逆向推理\") ; JMenuItem exit_item = new JMenuItem (\"退出\") ; forward_menu.add (newf_item) ; backward_menu.add (newb_item) ; edit_menu.add (exit_item) ;
1
决策支持系统实验报告书
//设置窗口出现位置
Toolkit kit = Toolkit.getDefaultToolkit() ; Dimension screenSize = kit.getScreenSize () ; int width = screenSize.width ; int height = screenSize.height ; int x = (width-500)/2 ; int y = (height-400)/2 ;
//添加事件监听
newf_item.addActionListener (new ActionListener (){ @Override
public void actionPerformed(ActionEvent e) { new NewF() ; } }) ;
newb_item.addActionListener (new ActionListener () { @Override
public void actionPerformed(ActionEvent e) { new NewB() ; } }) ;
exit_item.addActionListener(new ActionListener () {
@Override
public void actionPerformed(ActionEvent e) {
int i = JOptionPane.showConfirmDialog(null,\"是否真的退出系统\",\"退出系统对话框\",JOptionPane.YES_NO_CANCEL_OPTION) ; if (i == 0){
frame.dispose () ; } } }) ;
JPanel panel = new JPanel () ;
panel.setLayout (new BorderLayout ()) ; frame.setContentPane (panel) ; JPanel panel1 = new JPanel () ;
panel1.setLayout (new GridLayout (4,1)) ;
JLabel label1 = new JLabel (\" 欢迎进入知识库系统!
2
决策支持系统实验报告书
\") ;
JLabel label2 = new JLabel (\" welcom to knowledge system!\") ; \") ;
JLabel label3 = new JLabel (\" 作者: 束 豪
JLabel label4 = new JLabel (\" 学号: 119094277 \") ;
panel1.add (label1) ; panel1.add (label2) ; panel1.add (label3) ; panel1.add (label4) ;
panel.add (panel1,\"North\") ;
frame.setSize (500,400) ; frame.setLocation (x,y) ;
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ; frame.setVisible (true) ; }
public static void main (String[] args){ ; }
try {//以下设置窗口的显示风格
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) }
} catch (Exception e){}
new KnowledgePractise() ;
本代码是本实验的核心内容,控制代码的大部分界面,还有事件监听等动作,包括主函数 代码二:(NewF类)
package knowledgeActivity;
import java.awt.event.* ;
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.* ;
public class NewF { String[] tiger = {\"动物\四足行走\有毛发\吃肉\黄褐色\黑色条纹\ String[] chicken = {\"动物\双足行走\有羽毛\不吃肉\各色\均可\
3
决策支持系统实验报告书
String[] human = {\"动物\双足行走\有毛发\吃肉\黄色\无条纹\String[] bird = {\"动物\会飞\有羽毛\不吃肉\各色\均可\String[] fish = {\"动物\会游泳\有鳞片\不吃肉\银色\无条纹\String[] selected = new String[6] ; JButton btn_continue ; JLabel text_label ; JComboBox combox ; JLabel title_label ; JPanel panel ;
public NewF (){ JFrame frame = new JFrame (\"正向推理窗口\") ; panel = new JPanel () ; frame.setContentPane (panel) ; panel.setLayout (new BorderLayout ()) ; Toolkit kit = Toolkit.getDefaultToolkit() ; Dimension screenSize = kit.getScreenSize () ; int width = screenSize.width ; int height = screenSize.height ; int x = (width-450)/2 ; int y = (height-350)/2 ; title_label = new JLabel (\"请输入符合的条件:\") ; panel.add (title_label,\"North\") ; text_label = new JLabel (\"是否为动物?\") ; panel.add (text_label,\"Center\") ; combox = new JComboBox () ; combox.addItem (\"动物\") ; combox.addItem (\"植物\") ; panel.add (combox,\"East\") ; btn_continue = new JButton (\"第一步\") ; panel.add (btn_continue,\"South\") ; btn_continue.addActionListener (new ActionListener () {
@Override
public void actionPerformed(ActionEvent e) { if (btn_continue.getText().equals(\"第一步\")){ selected[0] = combox.getSelectedItem().toString() ; title_label.setText(\"上次您选择的是:\"+selected[0]) ; btn_continue.setText (\"第二步\") ;
4
决策支持系统实验报告书
text_label.setText (\"行走方式:\") ; combox.removeItem(\"植物\") ; combox.removeItem(\"动物\") ; combox.addItem (\"四足行走\") ; combox.addItem (\"双足行走\") ; combox.addItem (\"会飞\") ; combox.addItem (\"会游泳\") ; }else if ( btn_continue.getText().equals(\"第二步\")){ selected[1] = combox.getSelectedItem().toString() ; title_label.setText(\"上次您选择的是:\"+selected[1]) ; btn_continue.setText (\"第三步\") ; text_label.setText (\"有无毛发:\") ; combox.removeItem (\"四足行走\") ; combox.removeItem (\"双足行走\") ; combox.removeItem (\"会飞\") ; combox.removeItem (\"会游泳\") ; combox.addItem (\"有毛发\") ; combox.addItem (\"有羽毛\") ; combox.addItem (\"有鳞片\") ;
}else if (btn_continue.getText().equals(\"第三步\")){ selected[2] = combox.getSelectedItem().toString() ; title_label.setText(\"上次您选择的是:\"+selected[2]) ; btn_continue.setText (\"第四步\") ; text_label.setText (\"是否吃肉:\") ; combox.removeItem (\"有毛发\") ; combox.removeItem (\"有羽毛\") ; combox.removeItem (\"有鳞片\") ; combox.addItem (\"吃肉\") ; combox.addItem (\"不吃肉\") ;
}else if (btn_continue.getText().equals(\"第四步\")){ selected[3] = combox.getSelectedItem().toString() ; title_label.setText(\"上次您选择的是:\"+selected[3]) ; btn_continue.setText (\"第五步\") ; text_label.setText (\"身体颜色:\") ; combox.removeItem (\"吃肉\") ; combox.removeItem (\"不吃肉\") ; combox.addItem (\"黄褐色\") ; combox.addItem (\"各色\") ; combox.addItem (\"黄色\") ; combox.addItem (\"银色\") ;
}else if (btn_continue.getText().equals(\"第五步\")){ selected[4] = combox.getSelectedItem().toString() ; title_label.setText(\"上次您选择的是:\"+selected[4]) ;
5
决策支持系统实验报告书
btn_continue.setText (\"最终结果\") ; text_label.setText (\"身体条纹颜色:\") ; combox.removeItem (\"黄褐色\") ; combox.removeItem (\"各色\") ; combox.removeItem (\"黄色\") ; combox.removeItem (\"银色\") ; combox.addItem (\"黑色条纹\") ; combox.addItem (\"均可\") ; combox.addItem (\"无条纹\") ; panel.add (combox,\"East\") ; }else if (btn_continue.getText().equals(\"最终结果\")){ selected[5] = combox.getSelectedItem().toString() ; JLabel label = new JLabel () ; panel.remove(text_label) ; panel.remove(combox) ; panel.remove(btn_continue) ; panel.remove(title_label) ; panel.add (label) ; if ((selected[0] == tiger[0])&&(selected[1] ==
tiger[1])&&(selected[2] == tiger[2])&&(selected[3] == tiger[3])&&(selected[4] == tiger[4])&&(selected[5] == tiger[5])){ label.setText(\"您选择的是: 老虎 \") ; }else if
((selected[0].equals(chicken[0]))&&(selected[1].equals(chicken[1]))&&(selected[2].equals(chicken[2]))&&(selected[3].equals(chicken[3]))&&(selected[4].equals(chicken[4]))&&(selected[5].equals(chicken[5]))){ label.setText(\"您选择的是: 小鸡 \") ; }else if ((selected[0] == human[0])&&(selected[1] ==
human[1])&&(selected[2] == human[2])&&(selected[3] == human[3])&&(selected[4] == human[4])&&(selected[5] == human[5])){ label.setText(\"您选择的是: 人类 \") ; }else if ((selected[0] == bird[0])&&(selected[1] ==
bird[1])&&(selected[2] == bird[2])&&(selected[3] == bird[3])&&(selected[4] == bird[4])&&(selected[5] == bird[5])){ label.setText(\"您选择的是: 小鸟 \") ; }else if ((selected[0] == fish[0])&&(selected[1] ==
fish[1])&&(selected[2] == fish[2])&&(selected[3] == fish[3])&&(selected[4] == fish[4])&&(selected[5] == fish[5])){ label.setText(\"您选择的是: 鱼 \") ; }else{ label.setText(\"抱歉,您选择的物种暂不在数据库中! \") ; }
6
决策支持系统实验报告书
} } }) ; frame.setSize (200,100) ; frame.setLocation (x,y) ; frame.setVisible (true) ; } }
该类实现正向推理
代码三:(NewB类)
package knowledgeActivity;
import javax.swing.* ; import java.awt.* ;
import java.awt.event.* ;
import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel;
public class NewB { String[] tiger = {\"老虎\食肉动物\黄褐色\黑色条纹\有爪\有犬齿\目盯前方\哺乳动物\有奶\ String[] chicken = {\"小鸡\食草动物\多色\均可\有爪\有喙\目盯前方\非哺乳动物\无奶\ String[] human = {\"人类\食肉动物\黄色\无条纹\有爪\有犬齿\目盯前方\哺乳动物\有奶\ String[] bird = {\"小鸟\食草动物\多色\均可\有爪\有喙\目盯前方\非哺乳动物\无奶\ String[] fish = {\"鱼\食草动物\银色\无条纹\无爪\有齿\目盯前方\非哺乳动物\无奶\ String[] selected = new String[1] ; JButton btn_continue ; JLabel text_label ; JComboBox combox ; JLabel title_label ; JPanel panel ; public NewB () { JFrame frame = new JFrame (\"反向推理窗口\") ;
7
决策支持系统实验报告书
panel = new JPanel () ; frame.setContentPane (panel) ; panel.setLayout (new BorderLayout ()) ; Toolkit kit = Toolkit.getDefaultToolkit() ; Dimension screenSize = kit.getScreenSize () ; int width = screenSize.width ; int height = screenSize.height ; int x = (width-450)/2 ; int y = (height-350)/2 ; title_label = new JLabel (\"请选择相关动物:\") ; panel.add (title_label,\"North\") ; text_label = new JLabel (\"该动物是:\") ; panel.add (text_label,\"Center\") ; combox = new JComboBox () ; combox.addItem (\"老虎\") ; combox.addItem (\"小鸡\") ; combox.addItem (\"人类\") ; combox.addItem (\"小鸟\") ; combox.addItem (\"鱼\") ; panel.add (combox,\"East\") ; btn_continue = new JButton (\"相关信息\") ; panel.add (btn_continue,\"South\") ; btn_continue.addActionListener (new ActionListener () { @Override public void actionPerformed(ActionEvent e) { if (btn_continue.getText().equals(\"相关信息\")){ selected[0] = combox.getSelectedItem ().toString() ; panel.remove(btn_continue) ; panel.remove(combox) ; panel.remove(title_label) ; if(selected[0].equals(\"老虎\")){ text_label.setText (\"\"+tiger[0]+\":
\"+tiger[1]+\+\ }else if (selected[0].equals(\"小鸡\")){ text_label.setText (\"\"+chicken[0]+\":
\"+chicken[1]+\n[6]+\
8
决策支持系统实验报告书
}else if (selected[0].equals(\"人类\")){ text_label.setText (\"\"+human[0]+\":
\"+human[1]+\6]+\ }else if (selected[0].equals(\"小鸟\")){ text_label.setText (\"\"+bird[0]+\":
\"+bird[1]+\bird[8]) ; }else if (selected[0].equals(\"鱼\")){ text_label.setText (\"\"+fish[0]+\":
\"+fish[1]+\h[8]) ; } } } }) ; frame.setSize (200,100) ; frame.setLocation (x,y) ; frame.setVisible (true) ; } }
该代码可以实现逆向查询。
四、相关截图:
(1)正向推理:
9
决策支持系统实验报告书
(2)逆向推理:
10
决策支持系统实验报告书
五、备注:
虽然三个代码可以合并成一个,但为了实现代码的高可读性,故分成3部分。
11
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务