Datenbank-Kursdesign (3)

1. Themen zur Kursgestaltung

Krankenhausmanagementsystem

2. Zweck der Kursgestaltung

Der Datenbanksystemkurs ist so konzipiert, dass er mit dem Studium der Datenbanksystemprinzipien und der Anwendungsentwicklung koordiniert wird. Es handelt sich um eine Lehrverbindung, die sich auf die Praxis der Informatik und Technologie, Big Data, Informationssicherheit, Internet-of-Things-Engineering, Software-Engineering und Intelligenz konzentriert Fertigung und anderen Hauptfächern. Es ist eine Verbindung zwischen der Beziehung Eine wichtige Verbindung bei der Umwandlung von datenbanktheoretischem Wissen in die Fähigkeit, praktische Probleme zu lösen. Der Datenbanksystemkurs soll Ihr Verständnis der theoretischen Kenntnisse relationaler Datenbanken vertiefen. Durch die Verwendung eines bestimmten DBMS können Sie ein tatsächliches Datenbankverwaltungssystem und seine Betriebstechniken beherrschen und sich mit der Verwendung von Datenbank-Frontend-Entwicklungstools (z. B (z. B. VB, C++, Java, JSP, Delphi, PowerBuilder usw.), um die Fähigkeit der Studierenden, Datenbanktechnologie zur Lösung praktischer Probleme einzusetzen, weiter zu verbessern.

3. Gesamtdesign

1. Hintergrundwissen

  (1) Java-GUI-Schnittstellendesign
AWT, Javas früheste Schnittstellenbibliothek, muss lokale Systemmethoden aufrufen, um Funktionen zu implementieren, und ist eine Schwergewichtssteuerung. Swing ist eine Erweiterung von AWT. (javax.swing: Eine Reihe grafischer Schnittstellensysteme auf Basis von AWT, die mehr Komponenten bereitstellen und vollständig in Java implementiert sind. Sie verbessern die Portabilität und sind eine leichtgewichtige Komponente.) Und JavaFX, JDK1. Die neue Schnittstellenbibliothek, die in 8 eingeführt wurde.
In diesem Design habe ich Swing und AWT verwendet, um die Benutzeroberfläche zu entwerfen. Entwicklung der grafischen Java Swing-Schnittstelle
  (2) Javas JDBC-Verbindungsdatenbank
JDBC: Java DataBase Connectivity (Java-Datenbankverbindungstechnologie), eine Anwendungsprogrammierschnittstelle, die Java mit SQL kombiniert und unabhängig von einem bestimmten Datenbanksystem ist. Ich habe Ideal und MySQL verwendet. JDBC vom Einstieg bis zur Kompetenz – ausführliche Erläuterung der Funktionsklassen, CRUD, SQL-Injection, Transaktionen, Verbindungspooling

2. Moduleinführung
  1. Auf der Hauptanmeldeseite und der Hauptregistrierungsseite
    werden unterschiedliche Mitarbeiter für die Anmeldung verwendet. Beispielsweise können Krankenschwestern und Ärzte den Krankenhausaufenthalt abwickeln, während leitende Führungskräfte auf das Mitarbeiterverwaltungsmodul zugreifen können. Nur Apotheker können auf das Materialmodul zugreifen. Auf der Registrierungsseite sind nur Krankenhausaufenthalte erforderlich Es können sich nur Benutzer anmelden, die keine Mitarbeiter des Krankenhauses sind. Anderen Mitarbeitern außerhalb des Krankenhauses ist die Registrierung und Anmeldung nicht gestattet.
  2. Menüoberfläche des Krankenhausverwaltungsmoduls.
    Die Krankenhausverwaltung umfasst Patientenverwaltung und Bettenverwaltung, und Ärzte und Krankenschwestern können diese hinzufügen, löschen, ändern und überprüfen.
  3. Menüoberfläche des Mitarbeiterverwaltungsmoduls
    Die Mitarbeiterverwaltung verfügt über Menüs für die Mitarbeiterübersicht, Gehaltsberichte und Personalübertragungen. Nur übergeordnete Führungskräfte können Eingaben und Ergänzungen, Löschungen, Änderungen und Überprüfungen vornehmen.
  4. Menüseite des Moduls „Materialliste“
    Die Materialliste umfasst eine Medikamentenliste und eine Instrumentenliste. Apotheker können das System betreten und hinzufügen, löschen, ändern und überprüfen, andere Mitarbeiter können jedoch nicht zugreifen.
3. Designschritte

(1) Erstellen Sie zunächst die Datenbanktabelle

(2) Entwerfen Sie die Schnittstelle jedes Moduls

(3) Java stellt eine Verbindung zur Datenbank her und verwendet die Daten (d. h. mithilfe von JDBC).
(4) Debuggen und Ändern
Fügen Sie hier eine Bildbeschreibung ein
(beheben Sie einige vorhandene Fehler oder melden Sie Erinnerungen)

4. Detailliertes Design

1 Analyse der Systemanforderungen

  Durch ein Krankenhausmanagementsystem kann die Krankenhausmanagementarbeit systematisiert, standardisiert und automatisiert werden, wodurch das Ziel erreicht wird, die Effizienz des Krankenhausmanagements zu verbessern.
1.1 Systemfunktionsanalyse
Zu den Hauptfunktionen, die das Krankenhausmanagementsystem erfüllen muss, gehören:

  • Geben Sie verschiedene Mitarbeiterinformationen ein, einschließlich grundlegender Mitarbeiterinformationen, Berufsbezeichnung, Position usw.
  • Fragen Sie verschiedene Mitarbeiterinformationen ab und ändern Sie sie, einschließlich grundlegender Mitarbeiterinformationen, Berufsbezeichnung, Position, Gehalt usw.
  • Personaltransfermanagement der Mitarbeiter.
  • Verwaltung von Patienteninformationen.
  • Verwaltung von Krankenhausbetten.
  • Ressourcenmanagement für Apotheken.
  • Instrumentenressourcenmanagement.
  • Systembenutzerverwaltung und Berechtigungsverwaltung.

1.2 Design (Aufteilung) von Systemfunktionsmodulen
  Entsprechend den Systemfunktionsanforderungen kann das System in mehrere Module zerlegt werden, um jeweils die Anwendungsprogrammschnittstelle zu entwerfen, wie in Abbildung 1 dargestellt. Der Designer kann nur die relevanten Funktionen der Module Stationärabteilung und Mitarbeiterverwaltung implementieren, unter denen die Module Ambulanz, Medizin und Instrumente nach Zeit ausgewählt werden können.
Fügen Sie hier eine Bildbeschreibung ein
1.3 Beziehung zu anderen Systemen
1.4 Datenflussdiagramm
  Der Datenfluss des Krankenhausverwaltungssystems ist in Abbildung 2 dargestellt (vom Designer ausgefüllt).
Fügen Sie hier eine Bildbeschreibung ein

2 Datenbankdesign

2.1 Analyse der Datenbankanforderungen
Durch die Analyse der Inhalte und Datenbeziehungen des Krankenhausmanagements haben wir die Datenelemente und Datenstrukturen wie folgt entworfen:

  • Zu den im Grundstatus der Mitarbeiter enthaltenen Datenelementen gehören Mitarbeiternummer, Mitarbeitername, Geschlecht, Abteilung, ID-Nummer, Geburtstag, Herkunftsort, Nationalität, ethnische Zugehörigkeit, Familienstand, Gesundheitszustand, Arbeitszeit, Mitarbeiterstatus, Wohnadresse, Kontakt Nummer usw. .
  • Zu den im Grundstatus der Mitarbeiter enthaltenen Datenelementen gehören Mitarbeiternummer, Mitarbeitername, Geschlecht, Abteilung, ID-Nummer, Geburtstag, Herkunftsort, Nationalität, ethnische Zugehörigkeit, Familienstand, Gesundheitszustand, Arbeitszeit, Mitarbeiterstatus, Wohnadresse, Kontakt Nummer usw. .
  • Zu den im Gehaltsstatus des Mitarbeiters enthaltenen Datenelementen gehören die Mitarbeiternummer, die Gehaltskategorie, die Gehaltshöhe usw.
  • Zu den Jobinformationen im Krankenhaus gehören Datenbankelemente wie Jobcode, Jobname usw.
  • Zu den Krankenhausabteilungsinformationen gehören Datenelemente wie Abteilungscode, Abteilungsname, Abteilungsleiter usw.
  • Zu den in den Patienteninformationen enthaltenen Datenelementen gehören Patientenname, Patientengeschlecht, Aufnahmezeit, Patientenabteilung, Patientenstatus, behandelnder Arzt des Patienten, Zimmerfragezeichen, Bettennummer usw.
  • Zu den Datenelementen, die in den Informationen zur Verwaltung pharmazeutischer Ressourcen enthalten sind, gehören die Arzneimittelcodenummer, der Arzneimittelname, der Arzneimittelpreis, die Arzneimittelbestandsmenge, Bemerkungen usw.
  • Die Verwaltung medizinischer Instrumente umfasst Datenelemente wie Instrumentencode, Instrumentenname, Instrumentenpreis, Instrumentenmenge, Bemerkungen usw.
    Mit der oben genannten Datenstruktur, Datenelementen und Datenbeziehungen können wir den folgenden Datenbankentwurf durchführen.
    2.2 Entwurf der konzeptionellen Datenbankstruktur
    Zu den von diesem System auf der Grundlage des oben genannten Entwurfs geplanten Entitäten gehören Mitarbeiterentitäten, Abteilungsentitäten, Positionsentitäten, Patientenentitäten, pharmazeutische Entitäten und Instrumentenentitäten. Das ER-Diagrammmodell von Entitäten und die Beziehung zwischen Entitäten ist in Abbildung 3 dargestellt.

2.3 Entwurf der logischen Datenbankstruktur
  Basierend auf den oben genannten Entitäten und den Beziehungen zwischen Entitäten können wir die Tabellen in der Datenbank und die Beziehungen zwischen den einzelnen Tabellen bilden. Die Entwurfsergebnisse jeder Tabelle in der Datenbank des Krankenhausverwaltungssystems sind in den Tabellen 1 bis 7 aufgeführt.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung einFügen Sie hier eine Bildbeschreibung ein
2.4 Aufbau der Datenbank
2.4.1 Aufbau der Datenbank

2.4.2 Eingabe der Ausgangsdaten

3 Design und Implementierung jedes Funktionsmoduls

3.1 Funktionsbeschreibung
1. Verwaltung von Mitarbeiterinformationen.
2. Verwaltung von Patienteninformationen.
3. Verwaltung von Krankenhausbetten.
4. Verwaltung der Ressourcen pharmazeutischer Instrumente.
5. Systembenutzerverwaltung und Berechtigungsverwaltung.
3.2 Design der Benutzeroberfläche
  Nach Abschluss der Datenbankerstellung und Funktionsbeschreibung können wir mit dem nächsten Schritt fortfahren, dem Design der Benutzeroberfläche. Wir unterteilen die Form des Krankenhausmanagementsystems in fünf Hauptteile, wie in der Abbildung dargestellt.
1. System-Willkommensschnittstelle und Anmeldeschnittstellendesign

Hauptcode:

button1.addActionListener(new ActionListener() {
    
    
    @Override
    public void actionPerformed(ActionEvent e) {
    
    
        new regest();
        f.dispose();
    }
});
    button2.addActionListener(new ActionListener() {
    
    
            @Override
            public void actionPerformed(ActionEvent e) {
    
    
                    String username=id.getText().trim();
                  String  password1= String.valueOf(password.getPassword())/*password.getPassword().toString()*/;
                        System.out.println(password.getPassword());
                String pass=String.valueOf(password.getPassword());
                  if (j.getSelectedItem().equals("住院办理")) {
    
    
                      connection_mysql connection = new connection_mysql();
                      Connection conn = connection.getConnect();
                      PreparedStatement pr = null;
                      ResultSet rs = null;
                      try {
    
    
                          pr = conn.prepareStatement("select * from tms_1 where TMS_user=? and TMS_paswd=?");
                          pr.setString(1, id.getText());
                          pr.setString(2, pass);
                          rs = pr.executeQuery();
                          if(rs.next()) {
    
    
                                  new inpatien_system();
                                  f.dispose();

                          }
                          else {
    
    
                                  JOptionPane.showMessageDialog(null, "密码或用户或用户类型错误", "提示", JOptionPane.WARNING_MESSAGE);
                          }
                          pr.close();
                          rs.close();
                          conn.close();
                      } catch (SQLException e1) {
    
    
                          e1.printStackTrace();
                      }
                  }
                  else if (j.getSelectedItem().equals("员工管理"))
                  {
    
    
                      connection_mysql connection = new connection_mysql();
                      Connection conn = connection.getConnect();
                      PreparedStatement pr = null;
                      ResultSet rs = null;
                      try {
    
    
                          pr = conn.prepareStatement("select * from tms_2 where tms2user=? and tms2paswd=?");
                          pr.setString(1, id.getText());
                          pr.setString(2, pass);
                          rs = pr.executeQuery();
                          if(rs.next())
                          {
    
    
                                  new employee_managemwnt();
                                   f.dispose();
                          } else
                          {
    
    
                              JOptionPane.showMessageDialog(null, "密码或用户或用户类型错误", "提示", JOptionPane.WARNING_MESSAGE);
                          }
                          pr.close();
                          rs.close();
                          conn.close();
                      } catch (SQLException e1) {
    
    
                          e1.printStackTrace();
                      }
                  }else if(j.getSelectedItem().equals("物资清单"))
                  {
    
    
                      connection_mysql connection = new connection_mysql();
                      Connection conn = connection.getConnect();
                      PreparedStatement pr = null;
                      ResultSet rs = null;
                      try {
    
    
                          pr = conn.prepareStatement("select * from tms_3 where tms3user=? and tms3paswd=?");
                          pr.setString(1, id.getText());
                          pr.setString(2, pass);
                          rs = pr.executeQuery();
                          if(rs.next()) {
    
    
                                  new material_list();
                                  f.dispose();
                          }
                          else {
    
    
                              JOptionPane.showMessageDialog(null, "密码或用户或用户类型错误", "提示", JOptionPane.WARNING_MESSAGE);
                          }
                          pr.close();
                          rs.close();
                          conn.close();
                      } catch (SQLException e1) {
    
    
                          e1.printStackTrace();
                      }
                  }



2. Hauptcode der Registrierungsmodulschnittstelle :

button1.addActionListener(new ActionListener() {
    
    
    @Override
    public void actionPerformed(ActionEvent e) {
    
    
        String username = id.getText().trim();
        String password1 = String.valueOf(password.getPassword());
        String password3 = String.valueOf(password2.getPassword());
        System.out.print(password1.equals(password3));
        if (password1.equals(password3)) {
    
    
            connection_mysql connection = new connection_mysql();
            Connection conn = connection.getConnect();
            PreparedStatement pr = null;
            PreparedStatement pr1 = null;
            ResultSet rs = null;
            try {
    
    
                pr = conn.prepareStatement("select * from personnel where per_name=?");
                pr1 = conn.prepareStatement("insert into tms_all values(?,?)");
                pr.setString(1, id.getText());
                //pr.setString(2, String.valueOf(password.getPassword()));
                rs = pr.executeQuery();
                if (rs.next()) {
    
    
                    pr1.setString(1, id.getText());
                    pr1.setString(2, String.valueOf(password.getPassword()));
                    pr1.execute();
                    JOptionPane.showMessageDialog(null, "注册成功!", "提示", JOptionPane.WARNING_MESSAGE);
                    new login();
                    f.dispose();
                } else {
    
    
                    JOptionPane.showMessageDialog(null, "你不是该医院的员工,请退出!", "警告", JOptionPane.WARNING_MESSAGE);
                }
                pr.close();
                rs.close();
                conn.close();
            } catch (SQLException e1) {
    
    
                e1.printStackTrace();
            }
        } else {
    
    
            JOptionPane.showMessageDialog(null, "两次密码不一样,请重新输入!", "提示", JOptionPane.WARNING_MESSAGE);
        }
    }
});

2.

Anzeige des Hauptschnittstellencodes des Verwaltungsmoduls für stationäre Abteilungen:

public inpatien_system() {
    
    
    JFrame f = new JFrame("住院办理界面");//相当html的<body></body>启动设置
    //设置窗口大小
    f.setSize(700, 500);//css中的height,width设置
    //使窗口居中
    f.setLocationRelativeTo(null);//css的left,right
    //设置窗口背景图案
    ImageIcon i = new ImageIcon("src/files/4_1.png");//相当url地址格式
    JLabel jLable = new JLabel(i);//JLabel类似<a></a><p></p>等块、行、行块级等标签
    jLable.setBounds(0, -45, 600, 600);
    JPanel panel1 = new JPanel();//JPanel相当网页中div标签
    JPanel panel2 = new JPanel();
    JPanel panel3 = new JPanel();
    JPanel panel4 = new JPanel();
    JPanel panel5 = new JPanel();
    JPanel panel6 = new JPanel();
    /*添加大标题:图书管理系统*/
    JLabel lable = new JLabel("请选择住院办理类型");
    Font font = new Font("宋体", Font.BOLD, 40);//设置字体
    lable.setFont(font);
    panel1.add(lable);
    panel1.setBounds(140, 60, 400, 300);//设置面板大小
    f.add(panel1);//类似body中加div
    //类似设置一个div方便修改位置和大小内容因为有标签修改有限制,然后把<p></p>等放进div中

    JRadioButton rb1=new JRadioButton("病床管理");
    JRadioButton rb2=new JRadioButton("病人管理");
    rb1.setFont(font);
    rb2.setFont(font);
    panel2.add(rb1,BorderLayout.EAST);
    panel3.add(rb2,BorderLayout.EAST);
    panel2.setBounds(140, 120, 400, 300);
    panel3.setBounds(140,200,400,300);
    panel3.add(rb2);
    panel2.add(rb1);
    f.add(panel2);
    f.add(panel3);
    ButtonGroup bg=new ButtonGroup();
    bg.add(rb1);
    bg.add(rb2);
    /*注册登陆按钮*/
    JButton button1 = new JButton("确定");
    JButton button2 = new JButton("取消");
    Font font3 = new Font("宋体", Font.BOLD, 20);
    button1.setFont(font3);
    button2.setFont(font3);
    Dimension dimension2 = new Dimension(100, 50);
    button1.setPreferredSize(dimension2);
    button2.setPreferredSize(dimension2);
    panel5.add(button1);
    panel6.add(button2);
    panel5.setBounds(170, 310, 170, 400);
    panel6.setBounds(350, 310, 170, 400);
    f.add(panel5);
    f.add(panel6);
    //把组件变成透明
    panel1.setOpaque(false);//类似浮动隐藏display:block的作用很重要
    panel2.setOpaque(false);
    panel3.setOpaque(false);
    panel4.setOpaque(false);
    panel5.setOpaque(false);
    panel6.setOpaque(false);
    f.add(jLable);
    button1.addActionListener(new ActionListener() {
    
    
        @Override
        public void actionPerformed(ActionEvent e) {
    
    
            if(rb1.isSelected())
            {
    
    
                new patientroom();
                f.dispose();
            }
            else
            {
    
    
                new patient();
                f.dispose();
            }
        }
    });
    button2.addActionListener(new ActionListener() {
    
    
        @Override
        public void actionPerformed(ActionEvent e) {
    
    
            Object[] option={
    
    "是","否"};
            int n=JOptionPane.showOptionDialog(null,"是否继续","提示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,option,option[0]);
            if(n==0)
            {
    
    
                JOptionPane.showMessageDialog(null, "亲!请选择办理类型", "提示!", JOptionPane.WARNING_MESSAGE);
            }
            else {
    
    
                new login();
                f.dispose();     }
        }
    });
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

3. Hauptschnittstellencode

-Anzeige des Mitarbeiterverwaltungsmoduls:

public employee_managemwnt() {
    JFrame f = new JFrame("员工管理界面");//相当html的<body></body>启动设置
    //设置窗口大小
    f.setSize(700, 500);//css中的height,width设置
    //使窗口居中
    f.setLocationRelativeTo(null);//css的left,right
    //设置窗口背景图案
    ImageIcon i = new ImageIcon("src/files/4_3.png");//相当url地址格式
    JLabel jLable = new JLabel(i);//JLabel类似<a></a><p></p>等块、行、行块级等标签
    jLable.setBounds(0, -45, 600, 600);
    JPanel panel1 = new JPanel();//JPanel相当网页中div标签
    JPanel panel2 = new JPanel();
    JPanel panel3 = new JPanel();
    JPanel panel4 = new JPanel();
    JPanel panel5 = new JPanel();
    JPanel panel6 = new JPanel();
    /*添加大标题:图书管理系统*/
    JLabel lable = new JLabel("请选择查询类型");
    Font font = new Font("宋体", Font.BOLD, 30);//设置字体
    lable.setFont(font);
    panel1.add(lable);
    panel1.setBounds(140, 60, 400, 300);//设置面板大小
    f.add(panel1);//类似body中加div
    //类似设置一个div方便修改位置和大小内容因为有标签修改有限制,然后把<p></p>等放进div中

    JRadioButton rb1=new JRadioButton("员工一览");
    JRadioButton rb2=new JRadioButton("工资报表");
    JRadioButton rb3=new JRadioButton("人事调动");
    rb1.setFont(font);
    rb2.setFont(font);
    rb3.setFont(font);
    panel2.add(rb1,BorderLayout.EAST);
    panel3.add(rb2,BorderLayout.EAST);
    panel4.add(rb3,BorderLayout.EAST);
    panel2.setBounds(140, 120, 400, 200);
    panel3.setBounds(140,200,400,200);
    panel4.setBounds(140,280,400,200);
    panel3.add(rb2);
    panel2.add(rb1);
    panel4.add(rb3);
    f.add(panel2);
    f.add(panel3);
    f.add(panel4);
    ButtonGroup bg=new ButtonGroup();
    bg.add(rb1);
    bg.add(rb2);
    bg.add(rb3);
    /*注册登陆按钮*/
    JButton button1 = new JButton("确定");
    JButton button2 = new JButton("取消");
    Font font3 = new Font("宋体", Font.BOLD, 20);
    button1.setFont(font3);
    button2.setFont(font3);
    Dimension dimension2 = new Dimension(100, 50);
    button1.setPreferredSize(dimension2);
    button2.setPreferredSize(dimension2);
    panel5.add(button1);
    panel6.add(button2);
    panel5.setBounds(170, 350, 170, 400);
    panel6.setBounds(350, 350, 170, 400);
    f.add(panel5);
    f.add(panel6);
    //把组件变成透明
    panel1.setOpaque(false);//类似浮动隐藏display:block的作用很重要
    panel2.setOpaque(false);
    panel3.setOpaque(false);
    panel4.setOpaque(false);
    panel5.setOpaque(false);
    panel6.setOpaque(false);
    f.add(jLable);
    button1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if(rb1.isSelected())
            {
                new employee_information();
                f.dispose();
            }
            if (rb2.isSelected())
            {
                new pay_sheet();
                f.dispose();
            }
            if(rb3.isSelected())
            {
                new personnel_transfer();
                f.dispose();
            }
        }
    });
    button2.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Object[] option={"是","否"};
            int n=JOptionPane.showOptionDialog(null,"是否继续","提示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,option,option[0]);
            if(n==0)
            {
                JOptionPane.showMessageDialog(null, "亲!请选择查询类型", "提示!", JOptionPane.WARNING_MESSAGE);
            }
            else {
                new login();
                f.dispose();
            }
        }
    });
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

4. Hauptschnittstellencode

-Anzeige des Materiallistenmoduls:

public material_list() {
    JFrame f = new JFrame("物资清单界面");//相当html的<body></body>启动设置
    //设置窗口大小
    f.setSize(700, 500);//css中的height,width设置
    //使窗口居中
    f.setLocationRelativeTo(null);//css的left,right
    //设置窗口背景图案
    ImageIcon i = new ImageIcon("src/files/4_2.png");//相当url地址格式
    JLabel jLable = new JLabel(i);//JLabel类似<a></a><p></p>等块、行、行块级等标签
    jLable.setBounds(0, -45, 600, 600);
    JPanel panel1 = new JPanel();//JPanel相当网页中div标签
    JPanel panel2 = new JPanel();
    JPanel panel3 = new JPanel();
    JPanel panel4 = new JPanel();
    JPanel panel5 = new JPanel();
    JPanel panel6 = new JPanel();
    /*添加大标题:图书管理系统*/
    JLabel lable = new JLabel("请选择清单类型");
    Font font = new Font("宋体", Font.BOLD, 40);//设置字体
    lable.setFont(font);
    panel1.add(lable);
    panel1.setBounds(140, 60, 400, 300);//设置面板大小
    f.add(panel1);//类似body中加div
    JRadioButton rb1=new JRadioButton("药品清单");
    JRadioButton rb2=new JRadioButton("仪器清单");
    rb1.setFont(font);
    rb2.setFont(font);
    panel2.add(rb1,BorderLayout.EAST);
    panel3.add(rb2,BorderLayout.EAST);
    panel2.setBounds(140, 120, 400, 300);
    panel3.setBounds(140,200,400,300);
    panel3.add(rb2);
    panel2.add(rb1);
    f.add(panel2);
    f.add(panel3);
    ButtonGroup bg=new ButtonGroup();
    bg.add(rb1);
    bg.add(rb2);
    /*注册登陆按钮*/
    JButton button1 = new JButton("确定");
    JButton button2 = new JButton("取消");
    Font font3 = new Font("宋体", Font.BOLD, 20);
    button1.setFont(font3);
    button2.setFont(font3);
    Dimension dimension2 = new Dimension(100, 50);
    button1.setPreferredSize(dimension2);
    button2.setPreferredSize(dimension2);
    panel5.add(button1);
    panel6.add(button2);
    panel5.setBounds(170, 310, 170, 400);
    panel6.setBounds(350, 310, 170, 400);
    f.add(panel5);
    f.add(panel6);
    //把组件变成透明
    panel1.setOpaque(false);//类似浮动隐藏display:block的作用很重要
    panel2.setOpaque(false);
    panel3.setOpaque(false);
    panel4.setOpaque(false);
    panel5.setOpaque(false);
    panel6.setOpaque(false);
    f.add(jLable);
    button1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if(rb1.isSelected())  {
                new drug_list();
                f.dispose();
            }
            else
            {
                new instrument_list();
                f.dispose();
            }
        }
    });
    button2.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Object[] option={"是","否"};
            int n=JOptionPane.showOptionDialog(null,"是否继续","提示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,option,option[0]);
            if(n==0)
            {
                JOptionPane.showMessageDialog(null, "亲!请选择清单类型", "提示!", JOptionPane.WARNING_MESSAGE);
            }
            else {
                new login();
                f.dispose();
            }
        }
    });
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

3.3 Implementierung jedes Funktionsmoduls jeder Hauptschnittstelle
1. Hauptschnittstellendesign des Moduls zur Verwaltung stationärer Abteilungen
(1) Schnittstellendesign des Moduls zur Verwaltung von Krankenhausbetten

(2) Schnittstellendesign des Patientenverwaltungsmoduls 2. Hauptschnittstellendesign des Mitarbeiterverwaltungsmoduls (1) Schnittstellendesign des Moduls „Mitarbeiterübersicht“ (2) Schnittstellendesign des Moduls „Gehaltsbericht“ (3) Schnittstellendesign des Moduls „Personaltransfer“ 3. Hauptschnittstellendesign des Moduls „Materialliste“ (1 ) Schnittstellendesign des Medikamentenlistenmoduls (2) Schnittstellendesign des Instrumentenlistenmoduls 4 Systemimplementierung 1. Implementierung des Stationsverwaltungsmoduls 2. Implementierung des Mitarbeiterverwaltungsmoduls 3. Implementierung des Materiallistenmoduls

5. Ergebnisse und Analyse

  Jedes Modul verfügt im Wesentlichen über Funktionen wie Hinzufügen, Löschen, Ändern und Überprüfen. Daher wurde es im Wesentlichen mit Ausnahme des Druckens von Berichten entworfen und implementiert.

6. Zusammenfassung und Erfahrung

Ich war wirklich verwirrt, als ich damit anfing. Nicht nur die heruntergeladene Software wies Fehler auf, sondern es gab auch verschiedene Softwarekonflikte und andere Debugging-Vorgänge, bevor mit der Einrichtung der Datenbank, dann mit dem Seitendesign und schließlich mit den Datenbankdaten begonnen wurde sind verbunden. Aber das Schwierigste ist der Fehler. Ich suche ständig nach Problemen und löse sie. Es ist auch ein Erfolgserlebnis, am Ende alleine erfolgreich sein zu können.

Supongo que te gusta

Origin blog.csdn.net/m0_63084496/article/details/129290336
Recomendado
Clasificación