Java+Swing实现医院管理系统(上)

简介: Java+Swing实现医院管理系统

一、系统介绍


本系统实现的以下功能


管理员功能:登录系统、病人信息的增删改查、就医档案的录入、医生信息的增删改查、科室信息的增删改查、收费统计功能、修改密码。

医生功能:登录系统、病人信息的增删改查、医生信息的增删改查、科室信息的增删改查、收费统计功能、修改密码。

收费员功能:价格管理、收费管理、修改密码。

JDK版本:1.8

数据库:Mysql8.0.13


数据库用到的表

cashier

charge

department

doctor

drugtable

manager

medical_records

patient

price


工程截图


image.jpeg


二、系统展示


1.登录页


2021050317295257.jpg


2.主页面


20210503173005232.jpg


3.病人信息录入


20210503173018429.jpg


4.病人信息操作


20210503173052976.jpg


5.就医档案录入


20210503173108639.jpg


6.处方单录入


20210503173124938.jpg


7.就医档案操作


20210503173235374.jpg


8.医生信息录入


20210503173303310.jpg


9.医生信息操作


20210503173331302.jpg


10.科室信息录入


20210503173350718.jpg


11.科室信息操作


2021050317345215.jpg


12.收费操作


20210503173501853.jpg


13.收费统计


20210503173512961.jpg


14.修改密码


20210503173526731.jpg


15.医生主页面


20210503173536429.jpg


16.收费员主页面


20210503173545809.jpg


三、系统实现


Login.java

package com.sjsq;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class Login extends JFrame {
  public static String namew;
  // 输入的用户Id
  public static String userId;
  // 输入的用户名
  public static String username;
  // 输入的密码
  public static String password;
  // 验证标识
  int loginFlag = 0;
  private static final long serialVersionUID = 1L;
  DBUtil dbUtil = new DBUtil();
  Connection con = dbUtil.getConnection();
  // 账号
  JLabel accountJLabel = new JLabel("账号:");
  // 错误提示标签
  JLabel errorJLabel = new JLabel("用户名或者密码不对,请重新输入");
  // 密码
  JLabel passwordJLabel = new JLabel("密码:");
  // r1:管理员 r2:收费员 r3:医生
  public JRadioButton r1, r2, r3;
  ImageIcon bg = new ImageIcon("picture/login_bg.jpg");
  JLabel bgJLabel = new JLabel(bg);
  JButton loginJButton = new JButton("登录");
  JButton cancelJButton = new JButton("取消");
  private boolean flag;
  static JTextField usernameJTextField = new JTextField();
  static JPasswordField passwordJPasswordField = new JPasswordField();
  Login(String sTitle) {
    super(sTitle);
    this.setLayout(null);
    this.add(errorJLabel); // 添加控件
    this.add(accountJLabel);
    this.add(passwordJLabel);
    this.add(loginJButton);
    this.add(cancelJButton);
    this.add(usernameJTextField);
    this.add(passwordJPasswordField);
    final JRadioButton r1 = new JRadioButton("管理员");
    final JRadioButton r2 = new JRadioButton("收费员");
    final JRadioButton r3 = new JRadioButton("医生");
    ButtonGroup rg = new ButtonGroup();
    this.add(r2);
    rg.add(r1);
    this.add(r3);
    rg.add(r3);
    this.add(r1);
    rg.add(r2);
    r1.setBounds(150, 180, 80, 30);
    r2.setBounds(230, 180, 80, 30);
    r3.setBounds(310, 180, 80, 30);
    r1.setFocusPainted(false);
    r2.setFocusPainted(false);
    r3.setFocusPainted(false);
    r3.setContentAreaFilled(false);
    r1.setContentAreaFilled(false);
    r2.setContentAreaFilled(false);
    errorJLabel.setBounds(100, 130, 200, 50);
    errorJLabel.setForeground(Color.black);
    errorJLabel.setVisible(false);
    bgJLabel.setBounds(0, 0, 592, 350);
    // 登录监听
    loginJButton.addActionListener(new ActionListener() {
      public boolean flag = false;
      public void actionPerformed(ActionEvent e) {
        // 医生
        if (r3.isSelected()) {
          try {
            String usernameText = usernameJTextField.getText().toString(); // 获取帐号文本框内容
            String passwordText = passwordJPasswordField.getText().toString(); // 获取密码文本框内容
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select * from doctor"); // 执行SQL语句,返回结果集
            while (rs.next()) {
              userId = rs.getString("DrId"); // 获取登录的用户编号,
              username = rs.getString("DrName");// 获取登录的用户姓名
              password = rs.getString("Password"); // 获取数据库中的数据项的密码
              if (userId.equals(usernameText) && password.equals(passwordText)) {// 判断数据库的用户编号以及密码是否与文本框的值相同
                loginFlag = 1;
                break;
              }
            }
            if (loginFlag == 1) {
              JOptionPane.showMessageDialog(null, "登录成功");
              // 显示系统主界面
              MainPanelDoctor a = new MainPanelDoctor("医生界面"); 
              a.setVisible(true);
              Login.this.setVisible(false);// 关闭登录按钮
            } else {
              usernameJTextField.setText(""); // 错误的话则文本框内容设置为空,显示错误标签
              passwordJPasswordField.setText("");
              JOptionPane.showMessageDialog(null, "登陆错误");
            }
          } catch (SQLException e2) {
            System.out.println(e2);
          }
        }
        // 管理员
        else if (r1.isSelected()) {
          try {
            String usernameText = usernameJTextField.getText().toString(); // 获取帐号文本框内容
            String passwordText = passwordJPasswordField.getText().toString(); // 获取密码文本框内容
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select * from manager"); // 执行SQL语句,返回结果集
            while (rs.next()) {
              userId = rs.getString("ManagerID"); // 获取登录的用户编号,
              username = rs.getString("ManagerName");// 获取登录的用户姓名
              password = rs.getString("MaPassWord"); // 获取数据库中的数据项的密码
              if (userId.equals(usernameText) && password.equals(passwordText)) {// 判断数据库的用户编号以及密码是否与文本框的值相同
                loginFlag = 1;
                break;
              }
            }
            // 登录成功
            if (loginFlag == 1) {
              JOptionPane.showMessageDialog(null, "登录成功");
              new MainPanelManager("管理员界面"); // 显示系统主界面
              Login.this.setVisible(false);// 关闭登录按钮
            // 登录失败
            } else {
              usernameJTextField.setText(""); // 错误的话则文本框内容设置为空,显示错误标签
              passwordJPasswordField.setText("");
              JOptionPane.showMessageDialog(null, "登陆错误");
            }
          } catch (SQLException e3) {
            System.out.println(e3);
          }
        }
        // 收费员
        else if (r2.isSelected()) {
          try {
            String usernameText = usernameJTextField.getText().toString(); // 获取帐号文本框内容
            String passwordText = passwordJPasswordField.getText().toString(); // 获取密码文本框内容
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select * from cashier"); // 执行SQL语句,返回结果集
            while (rs.next()) {
              userId = rs.getString("cashierId"); // 获取登录的用户编号,
              username = rs.getString("cashierName");// 获取登录的用户姓名
              password = rs.getString("cashierPassWord"); // 获取数据库中的数据项的密码
              if (userId.equals(usernameText) && password.equals(passwordText)) {// 判断数据库的用户编号以及密码是否与文本框的值相同
                loginFlag = 1;
                break;
              }
            }
            if (loginFlag == 1) {
              JOptionPane.showMessageDialog(null, "登录成功");
              new MainPanelCashier("收费员页面"); // 显示系统主界面
              Login.this.setVisible(false);// 关闭登录按钮
            } else {
              usernameJTextField.setText(""); // 错误的话则文本框内容设置为空,显示错误标签
              passwordJPasswordField.setText("");
              JOptionPane.showMessageDialog(null, "登陆错误");
            }
          } catch (SQLException e3) {
            System.out.println(e3);
          }
        } else if (r1.isSelected() == false && r2.isSelected() == false && r3.isSelected() == false) {
          JOptionPane.showMessageDialog(null, "请选择用户类型");
        }
      }
    });
    // 登录按钮添加功能事件
    // 账号
    accountJLabel.setBounds(150, 50, 100, 50);
    accountJLabel.setFont(new Font("", 1, 20));
    // 密码
    passwordJLabel.setBounds(150, 120, 100, 50);
    passwordJLabel.setFont(new Font("", 1, 20));
    // 登录
    loginJButton.setBounds(150, 220, 100, 40);
    loginJButton.setBackground(Color.CYAN);
    // 取消
    cancelJButton.setBounds(280, 220, 100, 40);
    cancelJButton.setBackground(Color.CYAN);
    // 账号输入框
    usernameJTextField.setBounds(250, 60, 150, 30);
    // 密码输入框
    passwordJPasswordField.setBounds(250, 120, 150, 30);
    this.add(bgJLabel);
    this.setVisible(true);
    this.setSize(600, 350); // 设置窗口大小
    this.setResizable(false); // 设置不可调整窗口大小
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  public static void main(String args[]) {
    Login login = new Login("医院管理系统");
  }
}
在这里插入代码片

HomePage.java

package com.sjsq;
import java.awt.Font;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class HomePage extends JFrame {
  JPanel homePage = new JPanel();
  private JLabel la1, la2;
  private Font laFont = new Font("隶书", Font.BOLD, 100);
  public HomePage() {
    homePage.setLayout(null);
    // 获取项目路径
    ImageIcon background = new ImageIcon("picture/right_bg.jpg");
    JLabel label = new JLabel(background);
    la1 = new JLabel("欢迎使用");
    la2 = new JLabel("医院信息管理系统");
    la1.setBounds(330, 0, 800, 300);
    la1.setFont(laFont);
    la2.setBounds(120, 150, 1000, 300);
    la2.setFont(laFont);
    homePage.add(la1);
    homePage.add(la2);
    homePage.add(label);
    label.setBounds(0, 0, 1100, 700);
  }
}

Charge.java

package com.sjsq;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
public class Charge extends JFrame implements ActionListener {
  private JComboBox box1;
  private JScrollPane JScrollPane5 = new JScrollPane();
  JPanel panel2 = new JPanel();
  Font f2 = new Font("隶书", Font.BOLD, 30);
  private JLabel la0, la1, la2, la3, la4, la5, la6, la7, la8, la9, la10, la11, la12, la13, l14, l15, la14, la15;
  private JTextField tx13, tx0, tx1, tx2, tx3, tx4, tx5, tx6, tx7, tx8, tx9, tx10, tx11, tx12, tx14;
  public static JTable table3;
  public static DefaultTableModel dtm3;
  private JButton btn1, btn2;
  private double suma = 0;
  private double sumd = 0;
  private double sumb = 0;
  private double sume = 0;
  private double sumc = 0;
  private double sumf = 0;
  String b;
  private String columnNames[] = { "就医档案编号", "病人编号", "病人姓名", "就医科室" };
  Charge() {
    // 获取时间
    Date now = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
    String dateString = sdf.format(now);
    ImageIcon background = new ImageIcon("picture/right_bg.jpg"); // 背景图片
    JLabel label = new JLabel(background);
    panel2.setLayout(null);
    // 控件的定义
    btn1 = new JButton("确定结算");
    btn2 = new JButton("撤销结算");
    la0 = new JLabel("费用总计 :");
    la1 = new JLabel("就医档案编号 :");
    la2 = new JLabel("姓名: ");
    la3 = new JLabel("编码: ");
    la4 = new JLabel("姓名: ");
    la5 = new JLabel("科室: ");
    la6 = new JLabel("用药费用: ");
    la7 = new JLabel("治疗费用: ");
    la8 = new JLabel("检查费用: ");
    la9 = new JLabel("挂号费: ");
    la10 = new JLabel("处置费: ");
    la11 = new JLabel("化验费: ");
    la12 = new JLabel("押金累计: ");
    la13 = new JLabel("押金余额: ");
    la14 = new JLabel("结账日期: ");
    la15 = new JLabel("收费操作 ");
    la13.setForeground(Color.red);
    la12.setForeground(Color.red);
    tx0 = new JTextField();
    tx1 = new JTextField();
    tx2 = new JTextField();
    tx3 = new JTextField();
    tx4 = new JTextField();
    tx5 = new JTextField();
    tx6 = new JTextField();
    tx7 = new JTextField();
    tx8 = new JTextField();
    tx9 = new JTextField();
    tx10 = new JTextField();
    tx11 = new JTextField();
    tx12 = new JTextField();
    tx13 = new JTextField();
    tx14 = new JTextField(dateString);
    la15.setFont(f2);
    // 设置文本框的边缘不显示
    tx0.setBorder(null);
    tx2.setBorder(null);
    tx3.setBorder(null);
    tx4.setBorder(null);
    tx14.setBorder(null);
    tx14.setEditable(false);
    // 设置一个新的面板
    final JPanel panel1 = new JPanel();
    JPanel panel12 = new JPanel();
    JPanel panel13 = new JPanel();
    panel13.setBackground(Color.pink);
    panel12.setBackground(Color.pink);
    panel1.setLayout(null);// 设置空布局
    panel1.setBorder(new TitledBorder(null, "收费结算", TitledBorder.DEFAULT_JUSTIFICATION,
        TitledBorder.DEFAULT_POSITION, null, null));
    panel1.setBounds(10, 100, 800, 500);
    panel1.setBackground(Color.WHITE);
    panel1.add(panel12);
    panel12.setBounds(600, 0, 10, 500);
    panel1.add(panel13);
    panel13.setBounds(0, 330, 600, 10);
    btn1.addActionListener(this); // 设置按钮事件
    btn2.addActionListener(this);
    // 默认表格模版的设置,添加表头和设置表格不可编辑
    dtm3 = new DefaultTableModel(columnNames, 0);
    table3 = new JTable(dtm3) {
      public boolean isCellEditable(int row, int column) {
        return false;
      }// 表格不允许被编辑 }
    };
    String sql = "select MrId,PaId,PaName,DeptName from Medical_records";
    databaseSearch1(sql, 4);
    JScrollPane5.setViewportView(table3);// 给表格添加滚动条
    panel1.add(JScrollPane5);
    JScrollPane5.setBounds(10, 0, 400, 100);
    JScrollPane5.setVisible(false);
    // 面板添加控件,设置位置
    panel2.add(tx0);
    tx0.setBounds(290, 60, 100, 30);
    panel1.add(btn1);
    btn1.setBounds(650, 100, 100, 50);
    panel1.add(btn2);
    btn2.setBounds(650, 200, 100, 50);
    panel1.add(tx2);
    tx2.setBounds(150, 70, 70, 30);
    panel1.add(tx3);
    tx3.setBounds(150, 120, 70, 30);
    panel1.add(tx4);
    tx4.setBounds(150, 170, 70, 30);
    panel1.add(tx5);
    tx5.setBounds(180, 220, 70, 30);
    panel1.add(tx6);
    tx6.setBounds(180, 270, 70, 30);
    panel1.add(tx7);
    tx7.setBounds(475, 70, 70, 30);
    panel1.add(tx8);
    tx8.setBounds(460, 120, 70, 30);
    panel1.add(tx9);
    tx9.setBounds(460, 170, 70, 30);
    panel1.add(tx10);
    tx10.setBounds(460, 220, 70, 30);
    panel1.add(tx11);
    tx11.setBounds(270, 350, 70, 30);
    panel1.add(tx12);
    tx12.setBounds(470, 350, 70, 30);
    panel1.add(tx13);
    tx13.setBounds(80, 350, 70, 30);
    panel2.add(la1);
    la1.setBounds(20, 50, 100, 50);
    panel2.add(la2);
    la2.setBounds(250, 50, 100, 50);
    panel2.add(tx1);
    tx1.setBounds(110, 58, 120, 30);
    panel1.add(la3);
    la3.setBounds(100, 70, 100, 30);
    panel1.add(la4);
    la4.setBounds(100, 120, 100, 30);
    panel1.add(la5);
    la5.setBounds(100, 170, 100, 30);
    panel1.add(la6);
    la6.setBounds(100, 220, 100, 30);
    panel1.add(la7);
    la7.setBounds(100, 270, 100, 30);
    panel1.add(la8);
    la8.setBounds(400, 70, 100, 30);
    panel1.add(la9);
    la9.setBounds(400, 120, 100, 30);
    panel1.add(la10);
    la10.setBounds(400, 170, 100, 30);
    panel1.add(la11);
    la11.setBounds(400, 220, 100, 30);
    panel1.add(la0);
    la0.setBounds(10, 350, 100, 30);
    la15.setBounds(30, 0, 200, 50);
    panel2.add(la15);
    la12.setBounds(200, 350, 100, 30);
    panel1.add(la12);
    la13.setBounds(400, 350, 100, 30);
    panel1.add(la13);
    panel2.add(panel1);
    panel2.add(la14);
    la14.setBounds(400, 60, 100, 30);
    panel2.add(tx14);
    tx14.setBounds(480, 60, 100, 30);
    // 设置文本框不可编辑
    tx0.setEditable(false);
    tx2.setEditable(false);
    tx3.setEditable(false);
    tx4.setEditable(false);
    tx11.setEditable(false);
    tx12.setEditable(false);
    tx13.setEditable(false);
    panel2.add(label);// 面板添加背景图片,设置位置
    label.setBounds(-30, 0, 1100, 700);
    tx1.addMouseListener(new MouseAdapter() {// 给tx1的文本框添加按钮事件,显示一个表格
      public void mouseClicked(MouseEvent e) {
        if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键
          JScrollPane5.setVisible(true);
      }
    });
    // tx1文本框添加事件,根据文本框内容的改变模糊查询到数据库内容,显示到表格中
    tx1.getDocument().addDocumentListener(new DocumentListener() {
      @Override
      public void removeUpdate(DocumentEvent e) {
        updata_combobox();
      }
      @Override
      public void insertUpdate(DocumentEvent e) {
        updata_combobox();
      }
      @Override
      public void changedUpdate(DocumentEvent e) {
        updata_combobox();
      }
      private void updata_combobox() {
        String s1 = null;
        s1 = tx1.getText(); // 根据S1的内容模糊查询数据库对应的数据
        JScrollPane5.setVisible(true);
        String sql = "select MrId,PaId,PaName,DeptName from Medical_records where MrId like  '%" + s1 + "%'";
        databaseSearch1(sql, 5);
      }
    });
    // 根据你选择表格的某一行内容,输入到对应的文本框内。
    table3.addMouseListener(new MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键
          if (e.getClickCount() == 1) {
            String sum1 = null;
            String sum3 = null;
            String sum6 = null;
            String sum2 = null;
            String sum4 = null;
            String sum5 = null;
            int row = table3.getSelectedRow();
            String ao = (String) table3.getValueAt(row, 2);
            String bo = (String) table3.getValueAt(row, 0);
            String do1 = (String) table3.getValueAt(row, 1);
            String co = (String) table3.getValueAt(row, 3);
            tx2.setText(do1);
            tx3.setText(ao);
            tx1.setText(bo);
            tx0.setText(ao);
            tx4.setText(co);
            JScrollPane5.setVisible(false);
            // 连接数据库,查询对应的价格
            DBUtil dbUtil = new DBUtil();
            Connection con = dbUtil.getConnection();
            ResultSet rs;
            try {
              // 查询数据库中用药的费用
              String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
                  + "' and PeClass='诊断类'or PeClass='药品类'and MrId='" + tx1.getText() + "'";
              Statement stmt = con.createStatement();
              rs = stmt.executeQuery(sql1);
              while (rs.next()) {
                String a = rs.getString(1);
                String b = rs.getString(2);
                double a1 = Double.valueOf(a).doubleValue();
                int b1 = Integer.valueOf(b).intValue();
                double d = a1 * b1;
                suma = suma + d;
                sum1 = String.valueOf(suma);
              }
              suma = 0;// 设置为0,否则会应为再次输入而无法清楚原来的数值
              if (sum1 != null) {
                tx5.setText(sum1);
              } else {
                tx5.setText("0.0");
              }
            } catch (Exception ex) {
              ex.printStackTrace();
            }
            try {
              String sql2 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
                  + "' and PeClass='其他类'and PeName not in('检查费','挂号费','处置费','化验费')";
              Statement stmt = con.createStatement();
              rs = stmt.executeQuery(sql2);
              while (rs.next()) {
                String a = rs.getString(1);
                String b = rs.getString(2);
                double a1 = Double.valueOf(a).doubleValue();
                int b1 = Integer.valueOf(b).intValue();
                double d = a1 * b1;
                sumb = sumb + d;
                sum3 = String.valueOf(sumb);
                System.out.println(a);
                System.out.println(b);
              }
              sumb = 0;
              if (sum3 != null) {
                tx6.setText(sum3);
              } else {
                tx6.setText("0.0");
              }
            } catch (Exception ex) {
              ex.printStackTrace();
            }
            try {
              String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
                  + "' and PeName='检查费'";
              Statement stmt = con.createStatement();
              rs = stmt.executeQuery(sql1);
              while (rs.next()) {
                String a = rs.getString(1);
                String b = rs.getString(2);
                double a1 = Double.valueOf(a).doubleValue();
                int b1 = Integer.valueOf(b).intValue();
                double d = a1 * b1;
                sumc = sumc + d;
                sum2 = String.valueOf(sumc);
              }
              sumc = 0;
              if (sum2 != null) {
                tx7.setText(sum2);
              } else {
                tx7.setText("0.0");
              }
            } catch (Exception ex) {
              ex.printStackTrace();
            }
            try {
              String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
                  + "' and PeName='挂号费'";
              Statement stmt = con.createStatement();
              rs = stmt.executeQuery(sql1);
              while (rs.next()) {
                String a = rs.getString(1);
                String b = rs.getString(2);
                double a1 = Double.valueOf(a).doubleValue();
                int b1 = Integer.valueOf(b).intValue();
                double d = a1 * b1;
                sumd = sumd + d;
                sum4 = String.valueOf(sumd);
              }
              sumd = 0;
              if (sum4 != null) {
                tx8.setText(sum4);
              } else {
                tx8.setText("0.0");
              }
            } catch (Exception ex) {
              ex.printStackTrace();
            }
            try {
              String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
                  + "' and PeName='处置费'";
              Statement stmt = con.createStatement();
              rs = stmt.executeQuery(sql1);
              while (rs.next()) {
                String a = rs.getString(1);
                String b = rs.getString(2);
                double a1 = Double.valueOf(a).doubleValue();
                int b1 = Integer.valueOf(b).intValue();
                double d = a1 * b1;
                sume = sume + d;
                sum5 = String.valueOf(sume);
              }
              sume = 0;
              if (sum5 != null) {
                tx9.setText(sum5);
              } else {
                tx9.setText("0.0");
              }
            } catch (Exception ex) {
              ex.printStackTrace();
            }
            try {
              String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
                  + "' and PeName='化验费'";
              Statement stmt = con.createStatement();
              rs = stmt.executeQuery(sql1);
              while (rs.next()) {
                String a = rs.getString(1);
                String b = rs.getString(2);
                double a1 = Double.valueOf(a).doubleValue();
                int b1 = Integer.valueOf(b).intValue();
                double d = a1 * b1;
                sumf = sumf + d;
                sum6 = String.valueOf(sumf);
              }
              sumc = 0;
              if (sum6 != null) {
                tx10.setText(sum6);
              } else {
                tx10.setText("0.0");
              }
            } catch (Exception ex) {
              ex.printStackTrace();
            }
            try {
              String sql1 = "select   PaPay from Patient  where PaId='" + tx2.getText() + "'";
              Statement stmt = con.createStatement();
              rs = stmt.executeQuery(sql1);
              while (rs.next()) {
                String a = rs.getString(1);
                if (a != null) {
                  tx11.setText(a);
                } else {
                  tx11.setText("0.0");
                }
              }
            } catch (Exception ex) {
              ex.printStackTrace();
            }
            String t;
            String y;
            String u;
            String u1;
            String u2;
            String u3;
            String u4;
            t = tx5.getText();
            u1 = tx6.getText();
            u2 = tx8.getText();
            u3 = tx9.getText();
            u4 = tx10.getText();
            u = tx7.getText();
            y = tx11.getText();
            float c = Float.parseFloat(u);
            float c1 = Float.parseFloat(t);
            float c2 = Float.parseFloat(y);
            float c4 = Float.parseFloat(u1);
            float c5 = Float.parseFloat(u2);
            float c6 = Float.parseFloat(u3);
            float c7 = Float.parseFloat(u4);
            float q = (float) (c2 - (c7 + c6 + c5 + c4 + c1 + c));// 减除押金后需要交的钱
            float q1 = (float) ((c7 + c6 + c5 + c4 + c1 + c));// 费用总计
            String s = String.valueOf(q);
            String s1 = String.valueOf(q1);
            tx12.setText(s);
            tx13.setText(s1);
            tx12.setForeground(Color.BLUE);
            tx11.setForeground(Color.BLUE);
          }
      }
    });
  }
  private void databaseSearch1(String sql, int i) {
    // TODO Auto-generated method stub
    DBUtil dbUtil = new DBUtil();
    Connection con = dbUtil.getConnection();
    ResultSet rs;
    try {
      int rowcount = dtm3.getRowCount() - 1;
      if (rowcount != -1) {
        for (int i1 = rowcount; i1 >= 0; i1--) {
          dtm3.removeRow(i1); // 删除Jtable中的所有行
        }
        dtm3.setRowCount(0); // 将Jtable中的行数设为零
      }
      Statement stmt = con.createStatement();
      rs = stmt.executeQuery(sql);
      String[] data = new String[4];
      while (rs.next()) {
        for (int j = 1; j <= 4; j++) {
          data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中
        }
        dtm3.addRow(data); // 在Jtabl
      }
      con.close();
      // 设置表格隔行背景色(隔行背景色不同)
    } catch (Exception err) {
    }
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if (e.getSource() == btn1) {
      // 把费用表录入到收费表中
      try {
        DBUtil dbUtil = new DBUtil();
        Connection con = dbUtil.getConnection();
        Statement stmt = con.createStatement();
        String sql = "INSERT INTO Charge(MrId,PaId,PaName,DeptName,Drugfee,treatmentfee,checkfee,registrationfee,disposalfee,assayfee,sum,time)VALUES(?,?,?,?,?,?,?,?,?,?,?,?)";
        PreparedStatement parepare = con.prepareStatement(sql);
        parepare.setString(1, tx1.getText());
        parepare.setString(2, tx2.getText());
        parepare.setString(3, tx3.getText());
        parepare.setString(4, tx4.getText());
        parepare.setString(5, tx5.getText());
        parepare.setString(6, tx6.getText());
        parepare.setString(7, tx7.getText());
        parepare.setString(8, tx8.getText());
        parepare.setString(9, tx9.getText());
        parepare.setString(10, tx10.getText());
        parepare.setString(11, tx13.getText());
        parepare.setString(12, tx14.getText());
        // 判断是否有输入错误的,做提示操作
        if (tx1.getText().equals("")) {
          JOptionPane.showMessageDialog(null, "请输入结算的档案号", "错误", JOptionPane.INFORMATION_MESSAGE);
        } else {
          parepare.executeUpdate();
          JOptionPane.showMessageDialog(null, "结账成功,需要交(退)" + tx12.getText() + "", "结账成功",
              JOptionPane.INFORMATION_MESSAGE);
          String sql1 = "delete from Patient where PaId='" + tx2.getText() + "'";
          try {
            stmt.executeUpdate(sql1);
            tx0.setText("");
            tx1.setText("");
            tx2.setText("");
            tx3.setText("");
            tx4.setText("");
            tx5.setText("");
            tx6.setText("");
            tx7.setText("");
            tx8.setText("");
            tx9.setText("");
            tx10.setText("");
            tx11.setText("");
            tx12.setText("");
            tx13.setText("");
            tx14.setText("");
            JScrollPane5.setVisible(false);
          } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
          }
        }
      } catch (Exception e2) {
        e2.printStackTrace();
      }
    } else if (e.getSource() == btn2) {
      tx0.setText("");
      tx1.setText("");
      tx2.setText("");
      tx3.setText("");
      tx4.setText("");
      tx5.setText("");
      tx6.setText("");
      tx7.setText("");
      tx8.setText("");
      tx9.setText("");
      tx10.setText("");
      tx11.setText("");
      tx12.setText("");
      tx13.setText("");
      tx14.setText("");
      JScrollPane5.setVisible(false);
    }
  }
}

ChargeQuery.java

package com.sjsq;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
public class ChargeQuery {
  Font f1 = new Font("隶书", Font.BOLD, 30);
  public static JTable table;
  public static DefaultTableModel dtm;
  private JScrollPane JScrollPane = new JScrollPane();
  JPanel panel2 = new JPanel();
  private JLabel la1, la2, la3, la4, la5;
  private JTextField tx1, tx2;
  private String columnNames[] = { "就医档案编号", "病人编号", "病人姓名", "就医科室", "用药费用", "治疗费", "检查费", "挂号费", "处置费", "化验费",
      "费用总额", "结账时间" };
  ChargeQuery() {
    // 添加背景
    ImageIcon background = new ImageIcon("picture/right_bg.jpg"); // 背景图片
    JLabel label = new JLabel(background);
    panel2.setLayout(null);
    // 设置默认表格面板
    dtm = new DefaultTableModel(columnNames, 0);
    table = new JTable(dtm) {
      public boolean isCellEditable(int row, int column) {
        return false;
      }// 表格不允许被编辑 }
    };
    String sql = "select * from Charge";
    databaseSearch(sql, 12);
    JScrollPane.setViewportView(table);// 给表格添加滚动条
    panel2.add(JScrollPane);
    JScrollPane.setBounds(30, 200, 950, 300);
    setbgcolor();
    JLabel label1 = new JLabel("收费统计");
    panel2.add(label1);
    label1.setBounds(30, 10, 400, 50);
    label1.setFont(f1);
    la1 = new JLabel("总费用统计:");
    la2 = new JLabel("人数统计:");
    tx1 = new JTextField();
    tx2 = new JTextField();
    la1.setBounds(30, 80, 100, 50);
    la2.setBounds(30, 120, 100, 50);
    tx1.setBounds(100, 90, 100, 30);
    tx2.setBounds(100, 130, 100, 30);
    panel2.add(la1);
    panel2.add(la2);
    panel2.add(tx1);
    panel2.add(tx2);
    tx1.setEditable(false);
    tx2.setEditable(false);
    panel2.add(label);// 面板添加背景图片,设置位置
    label.setBounds(-30, 0, 1100, 700);
    DBUtil dbUtil = new DBUtil();
    Connection con = dbUtil.getConnection();
    ResultSet rs, rs1;
    try {
      String sql2 = "select Sum(sum) from Charge ";
      String sql1 = "select count(*) from Charge ";
      Statement stmt = con.createStatement();
      Statement stmt1 = con.createStatement();
      rs = stmt.executeQuery(sql1);
      rs1 = stmt1.executeQuery(sql2);
      while (rs.next()) {
        String a = rs.getString(1);
        tx2.setText(a);
      }
      while (rs1.next()) {
        String a = rs1.getString(1);
        tx1.setText(a);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  private void setbgcolor() {
    // TODO Auto-generated method stub
    try {
      DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
            boolean hasFocus, int row, int column) {
          if (row % 2 == 0)
            setBackground(new Color(223, 220, 239)); // 设置奇数行底色
          else if (row % 2 == 1)
            setBackground(Color.white); // 设置偶数行底色
          return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        }
      };
      for (int i = 0; i < table.getColumnCount(); i++) {
        table.getColumn(table.getColumnName(i)).setCellRenderer(tcr);
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  private void databaseSearch(String sql, int i) {
    // TODO Auto-generated method stub
    DBUtil dbUtil = new DBUtil();
    Connection con = dbUtil.getConnection();
    ResultSet rs;
    try {
      int rowcount = dtm.getRowCount() - 1;
      if (rowcount != -1) {
        for (int i1 = rowcount; i1 >= 0; i1--) {
          dtm.removeRow(i1); // 删除Jtable中的所有行
        }
        dtm.setRowCount(0); // 将Jtable中的行数设为零
      }
      Statement stmt = con.createStatement();
      rs = stmt.executeQuery(sql);
      String[] data = new String[12];
      while (rs.next()) {
        for (int j = 1; j <= 12; j++) {
          data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中
        }
        dtm.addRow(data); // 在Jtable中添加数据行
      }
      con.close();
      // 设置表格隔行背景色(隔行背景色不同)
    } catch (Exception err) {
    }
  }
}

ChufangModify.java

package com.sjsq;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.DefaultCellEditor;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
public class ChufangModify extends JFrame implements ActionListener, ItemListener {
  JButton button6 = new JButton("增加");
  JButton button7 = new JButton("确定");
  JButton button8 = new JButton("删除");
  private String columnNames[] = { "编码", "名称", "单价", "数量", "计数单位", "类别", "档案编号" };
  private String columnNames1[] = { "编码", "名称", "单价", "计数单位", "类别" };
  private JLabel la0;
  private JComboBox box1, box2;
  JPanel panel2 = new JPanel();
  public static JTable table2, table3;
  public static DefaultTableModel dtm2, dtm3;
  private JScrollPane JScrollPane3 = new JScrollPane();
  private JScrollPane JScrollPane5 = new JScrollPane();
  String y;
  ChufangModify(String Stitle) {
    super(Stitle);
    panel2.setLayout(null);
    ImageIcon ic; // 按钮图片
    ic = new ImageIcon("picture/right_bg.jpg");
    JLabel label = new JLabel(ic);// 把背景图片显示在一个标签里面
    dtm2 = new DefaultTableModel(columnNames, 0) {// dtm2是项目收费表格模版
      public boolean isCellEditable(int row, int column) {
        if (column == 1 || column == 3)
          return true;// 这个是可以编辑的列
        // if(rowIndex!=0) return false;
        return false;
      }// 表格不允许被编辑 }
    };
    String fontSize1[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "12" };
    table2 = new JTable(dtm2);// JScrollPane4 项目表
    JScrollPane JScrollPane4 = new JScrollPane(table2);
    TableColumn a1 = table2.getColumn("名称");
    TableColumn a2 = table2.getColumn("数量");
    JTextField box3 = new JTextField();
    box2 = new JComboBox(fontSize1);
    box2.addActionListener(this);
    box2.addItemListener(this);
    box3.getDocument().addDocumentListener(new DocumentListener() {
      @Override
      public void removeUpdate(DocumentEvent e) {
        System.out.println("removeUpdate");
        updata_combobox();
      }
      @Override
      public void insertUpdate(DocumentEvent e) {
        System.out.println("insertUpdate");
        updata_combobox();
      }
      @Override
      public void changedUpdate(DocumentEvent e) {
        updata_combobox();
      }
      private void updata_combobox() {
        String s1 = null;
        s1 = box3.getText();
        String sql = "select * from Price where PeName like  '%" + s1 + "%'and PeClass='其他类'";
        databaseSearch1(sql, 5);
      }
    });
    box3.setEditable(true);
    DefaultCellEditor dce2 = new DefaultCellEditor(box3);
    a1.setCellEditor(dce2);
    box2.setEditable(true);
    box2.setMaximumRowCount(5);
    DefaultCellEditor dce3 = new DefaultCellEditor(box2);
    a2.setCellEditor(dce3);
    box2.addActionListener(this);
    final JPanel panel = new JPanel();
    panel.setLayout(null);
    panel.setBorder(new TitledBorder(null, "诊疗项目单", TitledBorder.DEFAULT_JUSTIFICATION,
        TitledBorder.DEFAULT_POSITION, null, null));
    panel.setBounds(20, 150, 530, 180);
    panel.setBackground(Color.WHITE);
    panel.add(JScrollPane4);
    JScrollPane4.setBounds(10, 20, 400, 150);
    panel2.add(panel);
    button6.setBounds(420, 20, 100, 40);
    panel.add(button6);
    button7.setBounds(420, 70, 100, 40);
    panel.add(button7);
    button8.setBounds(420, 120, 100, 40);
    panel.add(button8);
    button6.addActionListener(this);
    button7.addActionListener(this);
    button8.addActionListener(this);
    dtm3 = new DefaultTableModel(columnNames1, 0);// 项目明细表
    table3 = new JTable(dtm3) {
      public boolean isCellEditable(int row, int column) {
        return false;
      }// 表格不允许被编辑 }
    };
    JScrollPane5.setViewportView(table3);
    panel2.add(JScrollPane5);
    JScrollPane5.setBounds(30, 50, 400, 100);
    JScrollPane5.setVisible(false);
    String SQL1 = "select * from Price where PeClass='其他类'";
    databaseSearch1(SQL1, 5);
    JScrollPane4.setViewportView(table2);
    box3.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件
      public void mouseClicked(MouseEvent e) {
        if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键
          JScrollPane5.setVisible(true);
      }
    });
    button8.addMouseListener(new MouseAdapter() { // 删除按钮实现删除记录的功能
      public void mouseClicked(MouseEvent e) {
        int row = table2.getSelectedRow();// 这句选择要删除的行
        DBUtil dbUtil = new DBUtil();
        Connection con = dbUtil.getConnection();
        Statement stmt;
        String val = (String) table2.getValueAt(row, 6);
        String val1 = (String) table2.getValueAt(row, 0);
        String sql = "delete from DrugTable where MrId='" + val + "'and PeNo='" + val1 + "'";
        try {
          stmt = con.createStatement();
          stmt.executeUpdate(sql);
          button6.setEnabled(true);
          JOptionPane.showMessageDialog(null, " 删除成功!", "注意", JOptionPane.INFORMATION_MESSAGE);
        } catch (SQLException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        }
        if (row != -1) { // 这句判断是否有选中的行
          dtm2.removeRow(row);
        } // 这句删除指定行
      }
    });
    table3.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件
      public void mouseClicked(MouseEvent e) {
        if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键
          if (e.getClickCount() == 2) {
            int o = table3.getSelectedRow();
            int row = table2.getSelectedRow();
            String ao = (String) table3.getValueAt(o, 1);
            String bo = (String) table3.getValueAt(o, 0);
            String co = (String) table3.getValueAt(o, 2);
            String eo = (String) table3.getValueAt(o, 4);
            String qo = (String) table3.getValueAt(o, 3);
            System.out.println(ao);
            box3.setText(ao);
            table2.setValueAt(bo, row, 0);
            table2.setValueAt(co, row, 2);
            table2.setValueAt(eo, row, 5);
            table2.setValueAt(qo, row, 4);
            y = co;
            JScrollPane5.setVisible(false);
          }
      }
    });
    panel2.add(label);
    label.setBounds(0, 0, 600, 400);
    this.add(panel2);
    this.setSize(600, 400); // 设置窗口大小
    this.setResizable(false); // 设置不可调整窗口大小
    this.setLocationRelativeTo(null);
    this.setVisible(true);
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if (e.getSource() == button7) {
      try {
        String s = (String) box2.getSelectedItem();
        int i = Integer.valueOf(s).intValue();
        DBUtil dbUtil = new DBUtil();
        Connection con = dbUtil.getConnection();
        int row = table2.getSelectedRow();
        String b = (String) table2.getValueAt(row, 3);
        String sql = "INSERT INTO DrugTable(PeNo,PeName,PePrice,PeNumber,PeUnit,PeClass,MrId)VALUES(?,?,?,?,?,?,?)";
        PreparedStatement parepare = con.prepareStatement(sql);
        parepare.setString(1, (String) table2.getValueAt(row, 0));
        parepare.setString(2, (String) table2.getValueAt(row, 1));
        parepare.setString(3, (String) table2.getValueAt(row, 2));
        parepare.setString(4, (String) table2.getValueAt(row, 3));
        parepare.setString(5, (String) table2.getValueAt(row, 4));
        parepare.setString(6, (String) table2.getValueAt(row, 5));
        parepare.setString(7, (String) table2.getValueAt(row, 6));
        if (i <= 0 || b == "") {
          JOptionPane.showMessageDialog(null, "数量不能小于0或为空", "错误", JOptionPane.INFORMATION_MESSAGE);
        }
        else {
          parepare.executeUpdate();
          JOptionPane.showMessageDialog(null, "录入成功", "录入成功", JOptionPane.INFORMATION_MESSAGE);
          button6.setEnabled(true);
        }
      } catch (Exception et) {
        et.printStackTrace();
      }
    }
  }
  public void databaseSearch1(String SQL1, int i) {
    // TODO Auto-generated method stub
    DBUtil dbUtil = new DBUtil();
    Connection con = dbUtil.getConnection();
    ResultSet rs;
    try {
      int rowcount = dtm3.getRowCount() - 1;
      if (rowcount != -1) {
        for (int i1 = rowcount; i1 >= 0; i1--) {
          dtm3.removeRow(i1); // 删除Jtable中的所有行
        }
        dtm3.setRowCount(0); // 将Jtable中的行数设为零
      }
      Statement stmt = con.createStatement();
      rs = stmt.executeQuery(SQL1);
      String[] data = new String[5];
      while (rs.next()) {
        for (int j = 1; j <= 5; j++) {
          data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中
        }
        dtm3.addRow(data); // 在Jtabl
      }
      con.close();
      // 设置表格隔行背景色(隔行背景色不同)
    } catch (Exception err) {
    }
  }
  public void addrow(JTable table) {
    // TODO Auto-generated method stub
    int row = table.getSelectedRow();
    String b = (String) table.getValueAt(row, 0);
    button6.addActionListener(new ActionListener() {// 添加事件
      public void actionPerformed(ActionEvent e) {
        String[] da1 = { "", "" };
        String[] rowValues = da1;
        dtm2.addRow(rowValues); // 添加一行
        int row1 = table2.getRowCount() - 1;
        table2.setRowSelectionInterval(row1, row1);
        table2.setValueAt(b, row1, 6);
        button6.setEnabled(false);
      }
    });
  }
  public void databaseSearch2(String SQL, int i) {
    DBUtil dbUtil = new DBUtil();
    Connection con = dbUtil.getConnection();
    ResultSet rs;
    try {
      int rowcount = dtm2.getRowCount() - 1;
      if (rowcount != -1) {
        for (int i1 = rowcount; i1 >= 0; i1--) {
          dtm2.removeRow(i1); // 删除Jtable中的所有行
        }
        dtm2.setRowCount(0); // 将Jtable中的行数设为零
      }
      Statement stmt = con.createStatement();
      rs = stmt.executeQuery(SQL);
      String[] data = new String[7];
      while (rs.next()) {
        for (int j = 1; j <= 7; j++) {
          data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中
        }
        dtm2.addRow(data); // 在Jtabl
      }
      con.close();
      // 设置表格隔行背景色(隔行背景色不同)
    } catch (Exception err) {
    }
  }
  @Override
  public void itemStateChanged(ItemEvent e) {
    // TODO Auto-generated method stub
  }
}
相关文章
|
2天前
|
小程序 Java PHP
Java毕设之高校四六级报名管理系统
Java毕设之高校四六级报名管理系统
19 3
|
1天前
|
监控 前端开发 Java
Java基于B/S医院绩效考核管理平台系统源码 医院智慧绩效管理系统源码
医院绩效考核系统是一个关键的管理工具,旨在评估和优化医院内部各部门、科室和员工的绩效。一个有效的绩效考核系统不仅能帮助医院实现其战略目标,还能提升医疗服务质量,增强患者满意度,并促进员工的专业成长
8 0
|
1天前
|
Java 云计算
Java智能区域医院云HIS系统SaaS源码
云HIS提供标准化、信息化、可共享的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。优化就医、管理流程,提升患者满意度、基层首诊率,通过信息共享、辅助诊疗等手段,提高基层医生的服务能力构建和谐的基层医患关系。
16 2
|
2天前
|
前端开发 Java 关系型数据库
Java医院绩效考核系统源码B/S架构+springboot三级公立医院绩效考核系统源码 医院综合绩效核算系统源码
作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
20 2
|
2天前
|
小程序 Java 关系型数据库
Java毕设之社区生活超市管理系统
Java毕设之社区生活超市管理系统
12 1
|
2天前
|
小程序 Java 关系型数据库
Java毕设之人事管理系统
Java毕设之人事管理系统
11 3
|
2天前
|
小程序 Java PHP
Java毕设之人才公寓管理系统
Java毕设之人才公寓管理系统
8 2
|
2天前
|
JavaScript Java 数据库
Java毕设之学院党员管理系统的设计与实现
Java毕设之学院党员管理系统的设计与实现
9 3
|
2天前
|
JavaScript 小程序 Java
Java毕设之学生社团管理系统的设计与实现
Java毕设之学生社团管理系统的设计与实现
9 2
|
4月前
|
Java
Java Swing猜英文单词游戏(java+面向对象编程+swing+awt+io流)
Java Swing猜英文单词游戏(java+面向对象编程+swing+awt+io流)