日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

java基础做简单的医院管理系统,附带课程设计说明书

發布時間:2023/12/15 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础做简单的医院管理系统,附带课程设计说明书 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近做了一個簡單的醫院管理系統,查閱資料時發現,網上的很多java語言做的語言管理系統項目過于龐大,代碼過于繁雜,不適于初學者更好的理解,下面我把我做的簡單的醫院管理系統分享給大家。當然了大牛直接略過,此文僅使用于小白更好的理解java語言。

使用java語言鏈接SQLserver數據庫,當然也可以鏈接MYSQL數據庫,只需要修改一下driver和url就可以了。本文僅演示sqlserver鏈接數據庫

首先需要在webroot--webinf--lib里面導入jar包,整個項目我已在上傳文件創作欄里上傳了,由于文章創作不能加入這個jar包,所以需要jar包的可以去我所上傳的文件創作里面找。

如下圖所示mssql-jdbc-8.4.1.jre8.jar就是sqlsever的jar包位置

下圖是整個項目的所編寫的類所在位置

?下圖是使用MyEclipse鏈接數據庫的代碼

package hospital; import java.sql.*;public class DBUtil {// 連接private Connection con = null;public String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";public String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=HospitalManager";public String username = "sa";public String password = "123456";// 獲取連接public Connection getConnection() {try {Class.forName(driver);con = DriverManager.getConnection(url, username, password);System.out.println("連接成功");} catch (Exception e) {e.printStackTrace();System.out.println("獲取連接失敗:" + e.getMessage());}return con;}// 關閉連接public void close() {try {if (con != null) {con.close();}con = null;System.out.println("數據庫連接關閉");} catch (Exception e) {e.printStackTrace();}}// 測試public static void main(String[] args) {DBUtil dbUtil = new DBUtil();dbUtil.getConnection();}}

創建登錄頁面并實現從數據庫中獲取賬號密碼

package hospital;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 userId;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("密碼:");public JRadioButton r1,r2,r3;ImageIcon bg=new ImageIcon("WebRoot\\image\\doctor.jpg");JLabel bgJLabel=new JLabel(bg);JButton loginJButton=new JButton("登錄");JButton cancelJButton=new JButton("取消");// private boolean flag;static JTextField userIdJTextField = new JTextField();static JPasswordField passwordJPasswordField = new JPasswordField();public 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(userIdJTextField);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(r2);this.add(r3);rg.add(r3);this.add(r1);rg.add(r1);r1.setBounds(150, 180, 80, 30);r2.setBounds(230, 180, 80, 30);r3.setBounds(310, 180, 80, 30);r1.setForeground(Color.RED);r2.setForeground(Color.RED);r3.setForeground(Color.RED);r1.setFont(new Font("",3,15));r2.setFont( new Font("",3,15));r3.setFont(new Font("",3,15));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 (r1.isSelected()) {try {String userIdText = userIdJTextField.getText().toString(); // 獲取帳號文本框內容String passwordText =String.valueOf(passwordJPasswordField.getPassword()); // 獲取密碼文本框內容Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from tb_User"); // 執行SQL語句,返回結果集while (rs.next()) {userId = rs.getString("UserID"); // 獲取登錄的用戶編號,password = rs.getString("UserPasswd"); // 獲取數據庫中的數據項的密碼if (userId.equals(userIdText) && password.equals(passwordText)) {// 判斷數據庫的用戶編號以及密碼是否與文本框的值相同loginFlag = 1;break;}}// 登錄成功if (loginFlag == 1) {JOptionPane.showMessageDialog(null, "登錄成功");new HomePage("管理員界面"); // 顯示系統主界面Login.this.setVisible(false);// 關閉登錄按鈕// 登錄失敗} else {userIdJTextField.setText(""); // 錯誤的話則文本框內容設置為空,顯示錯誤標簽passwordJPasswordField.setText("");JOptionPane.showMessageDialog(null, "賬號或密碼不正確,請重新輸入!");}} catch (SQLException e3) {System.out.println(e3);}}}});// 登錄按鈕添加功能事件// 賬號accountJLabel.setBounds(150, 50, 100, 50);accountJLabel.setFont(new Font("", 3, 25));accountJLabel.setForeground(Color.RED);// 密碼passwordJLabel.setBounds(150, 120, 100, 50);passwordJLabel.setFont(new Font("", 3, 25));passwordJLabel.setForeground(Color.red);// 登錄loginJButton.setBounds(150, 220, 100, 40);loginJButton.setBackground(Color.CYAN);// 取消cancelJButton.setBounds(280, 220, 100, 40);cancelJButton.setBackground(Color.CYAN);// 賬號輸入框userIdJTextField.setBounds(250, 60, 150, 30);// 密碼輸入框passwordJPasswordField.setBounds(250, 120, 150, 30);this.add(bgJLabel);this.setVisible(true);this.setSize(600, 350); // 設置窗口大小this.setResizable(true); // 設置不可調整窗口大小this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String args[]) {Login login = new Login("醫院管理系統");}}

創建主頁窗體

package hospital; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import javax.enterprise.inject.New; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;public class HomePage extends JFrame{private JLabel la1, la2;private Font laFont = new Font("隸書", Font.BOLD, 60);private Font btFont=new Font("宋體",Font.BOLD,25);ImageIcon background = new ImageIcon("WebRoot\\image\\2051854.jpg");JLabel bgJLabel = new JLabel(background);JButton doctorJButton=new JButton("醫生信息管理");JButton patientJButton=new JButton("病人信息管理");JButton wardJButton=new JButton("科室信息管理");public HomePage() {}public HomePage(String a){super(a);this.setLayout(null);this.add(doctorJButton);this.add(patientJButton);this.add(wardJButton);doctorJButton.setFont(btFont);patientJButton.setFont(btFont);wardJButton.setFont(btFont);doctorJButton.setBounds(0, 0, 200, 200);patientJButton.setBounds(0, 200, 200, 200);wardJButton.setBounds(0, 400, 200, 200);la1 = new JLabel("歡迎使用");la2 = new JLabel("醫院信息管理系統");this.add(la1);this.add(la2);la1.setBounds(500, 100, 500, 100);la1.setFont(laFont);la2.setBounds(400,200, 600, 100);la2.setFont(laFont);this.add(bgJLabel);bgJLabel.setBounds(0, 0, 1000, 600);wardJButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubnew department("科室管理界面");HomePage.this.setVisible(false);}});this.setTitle("主頁面");this.setResizable(true);this.setVisible(true);this.setSize(1000, 600);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String[] args) {HomePage homePage=new HomePage("主頁面1");}}

創建科室表窗體并實現簡單的增刪改查

package hospital;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.*; import java.awt.*;import java.sql.*; import javax.swing.*; import javax.swing.plaf.OptionPaneUI;public class department extends JFrame{private Font laFont=new Font("宋體", Font.BOLD, 25);private Font btFont=new Font("宋體", Font.BOLD, 25);DBUtil dbUtil = new DBUtil();Connection con = dbUtil.getConnection();JButton addJButton=new JButton("添加");JButton deleteJButton=new JButton("刪除");JButton updateJButton=new JButton("修改");JButton selectJButton=new JButton("查詢");JLabel denoJLabel=new JLabel("科室編號");JLabel denameJLabel=new JLabel("科室姓名");JLabel deaddrJLabel=new JLabel("科室地址");JLabel dephoneJLabel=new JLabel("科室電話");JLabel demasterJLabel=new JLabel("科室主任");JTextField denoJTextField=new JTextField();JTextField denameJTextField=new JTextField();JTextField deaddrJTextField=new JTextField();JTextField dephoneJTextField=new JTextField();JTextField demasterJTextField=new JTextField();public department(){}public department(String b){super(b);this.setLayout(null);this.setSize(1000,600);this.setVisible(true);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(denoJLabel);this.add(denoJTextField);denoJLabel.setBounds(100, 50, 120,50 ); // denoJLabel.setBackground(Color.blue); // denoJLabel.setOpaque(true);denoJLabel.setFont(laFont);denoJTextField.setBounds(220, 50, 200, 50);this.add(denameJLabel);denameJLabel.setBounds(100, 150, 120, 50);denameJLabel.setFont(laFont);this.add(denameJTextField);denameJTextField.setBounds(220, 150, 200, 50);this.add(deaddrJLabel);deaddrJLabel.setBounds(550, 150, 120, 50);deaddrJLabel.setFont(laFont); // deaddrJLabel.setBackground( Color.red); // deaddrJLabel.setOpaque(true);this.add(deaddrJTextField);deaddrJTextField.setBounds(670, 150, 200, 50);this.add(dephoneJLabel);dephoneJLabel.setBounds(100, 250, 120, 50);dephoneJLabel.setFont(laFont);this.add(dephoneJTextField);dephoneJTextField.setBounds(220, 250, 200, 50);this.add(demasterJLabel);demasterJLabel.setBounds(550, 250, 200, 50);demasterJLabel.setFont(laFont);this.add(demasterJTextField);demasterJTextField.setBounds(670, 250, 200, 50);this.add(selectJButton);selectJButton.setBounds(600, 50, 120, 50);selectJButton.setFont(btFont);this.add(addJButton);addJButton.setBounds(200, 400, 120, 50);addJButton.setFont(btFont);this.add(deleteJButton);deleteJButton.setBounds(400, 400, 120, 50);deleteJButton.setFont(btFont);this.add(updateJButton);updateJButton.setBounds(600, 400, 120, 50);updateJButton.setFont(btFont);selectJButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {String denojString=denoJTextField.getText().toString();String s1="select * from Department where Deno=?";PreparedStatement pStatement=con.prepareStatement(s1);pStatement .setString(1, denojString);ResultSet rSet=pStatement.executeQuery();while (rSet.next()) {denoJTextField.setText(rSet.getString("Deno"));denameJTextField.setText(rSet.getString("Dename"));deaddrJTextField.setText(rSet.getString("Deaddr"));dephoneJTextField.setText(rSet.getString("Dephone"));demasterJTextField.setText(rSet.getString("Demaster"));}} catch (Exception e2) {// TODO: handle exception}}});deleteJButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubtry {String s1="delete from Department where Deno=?";PreparedStatement ps=con.prepareStatement(s1);String denoJText=denoJTextField.getText().toString();ps.setString(1, denoJText);ps.executeUpdate();JOptionPane.showMessageDialog(null, "刪除成功!");}catch (Exception e2) {System.out.println(e2);}}});updateJButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {String s1="update department set dename=?,deaddr=?,dephone=?,demaster=? where deno=?";PreparedStatement pStatement=con.prepareStatement(s1);String denoText=denoJTextField.getText().toString();String deNameText=denameJTextField.getText().toString();String deAddrText=deaddrJTextField.getText().toString();String dePhoneText=dephoneJTextField.getText().toString();String deMasterText=demasterJTextField.getText().toString();pStatement.setString(1, deNameText);pStatement.setString(2, deAddrText);pStatement.setString(3, dePhoneText);pStatement.setString(4, deMasterText);pStatement.setString(5, denoText);pStatement.executeUpdate();JOptionPane.showMessageDialog(null, "更新成功!");} catch (Exception e2) {// TODO: handle exception}}});addJButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubtry {String s1="insert into department values(?,?,?,?,?)";PreparedStatement pStatement=con.prepareStatement(s1);String denoText=denoJTextField.getText().toString();String deNameText=denameJTextField.getText().toString();String deAdderText=deaddrJTextField.getText().toString();String dePhoneText=dephoneJTextField.getText().toString();String deMasterText=demasterJTextField.getText().toString();pStatement.setString(1, denoText);pStatement.setString(2, deNameText);pStatement.setString(3, deAdderText);pStatement.setString(4, dePhoneText);pStatement.setString(5, deMasterText);pStatement.executeUpdate();JOptionPane.showMessageDialog(null, "插入成功!");} catch (Exception e1) {System.out.println(e1);}}});}public static void main(String[] args) {department departments=new department("科室管理界面"); }}

科室窗體的增刪改查已經實現,病人窗體和醫生窗體可以根據以上代碼,自行創作一下。

1?緒論

隨著計算機技術的飛速發展,計算機在醫院管理中應用的普及,利用計算機實現醫院信息的管理勢在必行,當前的醫院管理系統通過面向對象語言進行實現。

醫院信息管理系統是醫院現代化管理的重要工具和手段,是醫院深化改革、強化管理、提高效益、和諧發展的重要保障,對提高醫療質量、促進資源共享、擴展信息服務、支撐教學研究、提高醫院競爭力等具有重要意義。

隨著計算機逐漸在社會各個領域的廣泛應用,大量繁雜的工作得以快速、高效的完成,使人們從繁重的勞動中解脫出來,提高了工作效率和工作質量。在計算機應用的眾多領域中,管理信息系統占據著十分重要的地位,它使用系統的觀點,以計算機科學和現代通信技術為基礎,對某一組織或機構中有關管理的數據進行收集、處理,并輸出有用信息,使大量的手工勞動自動完成,避免了因人工操作帶來的各種錯誤。

醫院管理系統是現代醫院管理不可缺少的一部分,是適應現代醫院要求,推動醫院的信息管理走向科學化、規范化、高效化的必要條件。有利于現代醫院需要高效的完成醫院信息管理的日常業務。包括對醫院科室、醫生、病人信息進行增、刪、改、查。并達到操作過程中的直觀、方便、使用安全等要求。此外,醫院信息管理系統還需要后臺用戶的管理功能,以及用戶需求進行數據的添加、刪除、修改等操作。為了方便醫院信息管理需要,我們小組制作了醫院信息管理系統[1]。

該醫院信息管理系統可以應用在一個醫院系統中全面的進行信息管理。支持在各個模塊中信息的增加、刪除、修改、查詢等。系統以其系統性、全面性、使用的安全性和穩定性以及應用的廣泛性為特點,極大地減輕了醫院工作人員的工作強度,提高了醫院信息管理工作的水平。總之,通過醫院管理信息系統的實施,可以有效促進醫院人員信息化的建設。

2 系統分析

2.1 可行性分析

(1)經濟可行性分析

開發需求較低,加上成熟的軟硬件環境、目標系統并不是十分復雜和開發周期較短,人員經濟支出有限。開發完成運行后,為使用者帶來便利,為系統的進一步推廣創造了條件,經濟收益將遠超過投資。從經濟角度考慮,此系統開發可行。

(2)操作可行性分析

本系統采用界面可視化設計,實現用戶與數據庫的交互,界面簡潔友好,操作方便。用戶只需要對信息的增刪改查操作熟知即可,不需要掌握數據庫等相關知識。

(3)技術可行性分析

采用SQL server 2008作為數據庫[2],MyEclipse?2017 CI 作為開發工具使用JDBC[3]進行數據庫的連接,用Java?Swing[4]語言進行窗體界面可視化創作。

2.2 需求分析

2.2.1用戶需求

本系統最終用戶為醫院的管理人員,因此用戶對系統的信息需求[5]可以分為以下幾個方面:

(1)病人信息需求:系統應存儲病人的姓名,性別,年齡,病因等信息,供相關人員的查詢。能及時對病人的信息進行更新和統計。

(2)科室信息需求:系統應存儲各科室的基本信息,供相關人員的查詢。能及時對科室的信息進行更新和統計。

(3)醫生信息需求:系統應存儲各位主治醫生的基本信息,供相關人員的查詢。能及時對對醫生的信息進行更新和統計。

2.2.2功能需求

醫院信息管理系統主要是為優秀的醫務人員提供輔助幫助。醫院管理系統是管理醫院科室、醫生、病人信息的重要工具,醫院信息管理涉及病人信息、醫生信息、科室信息等多種數據進行增刪改查等操作的管理。

2.2.3硬件需求

醫院信息管理系統設計實施需要充足的硬件管理工作進行支持,一個高效、暢通、穩定的信息網絡能夠保障信息系統的安全運行,因此,醫院信息管理系統在設計時不僅要滿足用戶需求,也應滿足自身需求。要加強信息管理系統網絡的管理工作,才能真正的實現醫院信息管理系統的穩定運行。

2.2.4安全性需求

(1)醫院信息管理系統應設置訪問用戶的標識以鑒別是否為合法用戶,合法用戶應使用賬戶,密碼進行登錄,而非合法用戶禁止登錄。保證用戶身份不被盜用。

(2)醫院信息管理系統應對不同的數據設置不同的訪問級別,限制訪問用戶可查詢和處理數據的類別和內容。

(3)醫院信息管理系統應對不同用戶設置不同權限,后臺數據[6]只對管理人員授予權限。

2.2.5完整性需求

(1)保證各種病人、醫生、科室信息記錄的完整性,信息記錄內容不能為空。

(2)保證各種病人、醫生、科室數據之間相互聯系的正確性。

(3)保證相同的數據在不同信息記錄中的一致性。

3?系統設計

3.1數據庫設計

3.1.1數據庫概念設計

醫院醫生的實體屬性,主要包括醫生的醫生編號,姓名,性別,年齡,科室號,職稱。醫生實體屬性圖如圖3.1所示:

圖3.1醫生實體屬性圖

醫院科室的實體屬性,主要包括科室的科室號,科室名,科室地址,科室電話,科室主任;科室實體屬性圖如圖3.2所示:

?

?

?????????????? 圖3.2科室信息實體屬性圖?

醫院病人的實體屬性圖,主要包括病歷號,姓名,性別,年齡,確診結果,醫生姓名,病房號,血型,科室號。病人信息實體屬性圖如圖3.3所示:

圖3.3病人實體屬性圖

3.1.2數據庫邏輯結構設計

(1)關系模式

醫生(醫生編號、姓名、性別、年齡、職稱、所屬科室號)

病人(病歷號、姓名、性別、年齡、病房號、醫生姓名、血型、所屬科室號、診斷)

科室(科室號、科室名、科室地址、科室電話、科室主任)

(2)數據庫關系模式的優化

這樣得到優化的關系模式:

病人(病歷號、姓名、性別、年齡、病房號、醫生姓名、血型、確診結果、科室號)

醫生(醫生編號、姓名、性別、年齡、職稱、科室號)

科室(科室號、科室名、科室地址、科室電話、科室主任)

3.1.3數據庫物理結構設計

由于用戶最終通過某一特定的DBMS使用數據庫,因此數據的物理結構設計必須結合具體的DBMS進行,主要包括選擇數據庫的存儲結構和存取方法兩個方面。數據庫物理結構設計與特定的硬件環境、DBMS及實施環境密切相關,數據庫的配置也是確定物理結構的重要內容,包括數據庫空間的分配、日志文件大小、數據字典空間的確定以及相關參數的設置等。物理結構滿足設計的需求,在時間和空間方面有很大的效率,可以進入數據庫實施階段,數據庫的物理結構設計都需要經過反復測試、不斷優化[7]。

通過優化后關系模式得出醫生表:

表3.1醫生基本信息表

列名

數據類型

字段大小

是否為空

備注

醫生編號

CHAR

6

NOT

主鍵

姓名

VARCHAR

20

NOT

性別

CHAR

2

NOT

年齡

INT

NOT

職稱

VARCHAR

20

YES

科室號

CHAR

3

YES

外鍵

通過優化后關系模式得出科室表:

表3.2科室基本信息表

列名

數據類型

字段大小

是否為空

備注

科室號

CHAR

3

NOT

主鍵

科室名

VARCHAR

20

NOT

科室地址

VARCHAR

20

YES

科室電話

VARCHAR

10

YES

科室主任

VARCHAR

20

YES

通過優化后關系模式得出病人表:

表3.3病人基本信息表

列名

數據類型

字段大小

是否為空

備注

病歷號

CHAR

5

NOT

主鍵

姓名

VARCHAR

20

NOT

性別

CHAR

2

NOT

年齡

INT

NOT

病房號

CHAR

3

YES

醫生姓名

VARCHAR

20

YES

血型

CHAR

2

YES

確診結果

VARCHAR

20

YES

科室號

CHAR

3

YES

外鍵

3.2頁面設計

3.2.1登錄頁面設計

輸入賬號密碼,選擇管理員模式進入系統,點擊登錄按鈕時,觸發系統連接數據庫事件,在數據庫中查找賬號和密碼的數據,判斷輸入的賬號和密碼是否對應數據庫中的數據,如果輸入的賬號密碼不能對應到數據庫中的賬號和密碼,彈出提示框顯示“您輸入的賬號或密碼不正確請重新輸入!”。

3.2.2主頁面設計

使用管理員身份進入系統主頁面對系統進行管理,主頁面分別設置了科室管理,醫生管理,病人管理的入口,管理員可以根據需求進入對應的入口進行修改。

3.2.3科室頁面設計

進入科室管理界面,在主鍵科室編號文本框中輸入數據,點擊查詢后,觸發連接數據庫事件,并在數據庫中進行查找操作,把在數據庫中查找到的內容顯示在科室管理界面對應的文本框中。任選一個除了主鍵以外的屬性,對所選擇的屬性文本框進行更改,點擊修改按鈕即可更改成功,對應的數據庫里面的數據也會改變[9]。點擊刪除按鈕即可刪除包含主鍵在內的整條數據,對應的數據庫中的這條數據也會刪除。在界面的各個文本框里輸入符合規范的數據,點擊添加按鈕即可成功添加所輸入的包含主鍵在內的整條數據。點擊返回按鈕即可返回主頁面進行其他操作。

3.2.4醫生頁面設計

進入醫生管理界面,在主鍵醫生編號文本框中輸入數據,點擊查詢后,觸發連接數據庫事件,并在數據庫中進行查找操作,把在數據庫中查找到的內容顯示在醫生管理界面對應的文本框中。任選一個除了主鍵以外的屬性,對所選擇的屬性文本框進行更改,點擊修改按鈕即可更改成功,對應的數據庫里面的數據也會改變。點擊刪除按鈕即可刪除包含主鍵在內的整條數據,對應的數據庫中的這條數據也會刪除。在界面的各個文本框里輸入符合規范的數據,點擊添加按鈕即可成功添加所輸入的包含主鍵在內的整條數據。點擊返回按鈕即可返回主頁面進行其他操作。

3.2.5病人頁面設計

進入病人管理界面,在主鍵病人號文本框中輸入數據,點擊查詢后,觸發連接數據庫事件,并在數據庫中進行查找操作,把在數據庫中查找到的內容顯示在病人管理界面對應的文本框中。任選一個除了主鍵以外的屬性,對所選擇的屬性文本框進行更改,點擊修改按鈕即可更改成功,對應的數據庫里面的數據也會改變。點擊刪除按鈕即可刪除包含主鍵在內的整條數據,對應的數據庫中的這條數據也會刪除。在界面的各個文本框里輸入符合規范的數據,點擊添加按鈕即可成功添加所輸入的包含主鍵在內的整條數據。點擊返回按鈕即可返回主頁面進行其他操作。

4 系統實現

4.1登錄頁面

登錄頁面如圖4.1所示:

圖4.1登錄頁面

String userIdText = userIdJTextField.getText().toString();

StringpasswordText=String.valueOf(passwordJPasswordField.getPassword()); Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("select * from tb_User");

while (rs.next()) {userId = rs.getString("UserID");

password = rs.getString("UserPasswd");

if(userId.equals(userIdText)&&password.equals(passwordText)) {loginFlag = 1;break;} if (loginFlag == 1) {

JOptionPane.showMessageDialog(null, "登錄成功");new HomePage("管理員界面"); }

?

4.2主頁面

主頁面如圖4.2所示:

圖4.2主頁面

public?class?HomePage?extends?JFrame{

????private?JLabel?la1,?la2;

????private?Font?laFont?=?new?Font("隸書",?Font.BOLD,?60);

????private?Font?btFont=new?Font("宋體",Font.BOLD,25);

????ImageIcon?background?=?new?ImageIcon("WebRoot\\image\\2051854.jpg");

????JLabel?bgJLabel?=?new?JLabel(background);

????JButton?doctorJButton=new?JButton("醫生信息管理");

????JButton?patientJButton=new?JButton("病人信息管理");

????JButton?wardJButton=new?JButton("科室信息管理");

????public?HomePage()?{}

????public?HomePage(String?a){

?????? super(a);

???? this.setLayout(null);

???? this.add(doctorJButton);

????????this.add(patientJButton);

????????this.add(wardJButton);

????????doctorJButton.setFont(btFont);

????????patientJButton.setFont(btFont);

????????wardJButton.setFont(btFont);

????????doctorJButton.setBounds(0,?0,?200,?200);

????????patientJButton.setBounds(0,?200,?200,?200);

????????wardJButton.setBounds(0,?400,?200,?200);

????????la1?=?new?JLabel("歡迎使用");

????????la2?=?new?JLabel("醫院信息管理系統");

????????his.add(la1);

????????this.add(la2);

????????la1.setBounds(500,?100,?500,?100);

????????la1.setFont(laFont);

????????la2.setBounds(400,200,?600,?100);

????????la2.setFont(laFont);

????????this.add(bgJLabel);

????????bgJLabel.setBounds(0,?0,?1000,?600);

????????wardJButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

//?TODO?Auto-generated?method?stub
new?department("科室管理界面");

HomePage.this.setVisible(false);

}

});

????????doctorJButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

//?TODO?Auto-generated?method?stub

new?doctor("醫生管理界面");

HomePage.this.setVisible(false);

}

});

????????patientJButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

//?TODO?Auto-generated?method?stub

new?patient("病人管理界面");

HomePage.this.setVisible(false);

}

});

???? this.setTitle("主頁面");

???? this.setResizable(true);

???? this.setVisible(true);

???? this.setSize(1000,?600);

???? this.setLocationRelativeTo(null);

???? this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

????}

????public?static?void?main(String[]?args)?{

HomePage?homePage=new?HomePage("主頁面1");

}

}

?

4.3醫生頁面

醫生頁面如圖4.3所示:

圖4.3醫生頁面

JButton addJButton=new JButton("添加");

JButton deleteJButton=new JButton("刪除");

JButton updateJButton=new JButton("修改");

JButton selectJButton=new JButton("查詢");

JButton returnJButton=new JButton("返回");

JLabel dnoJLabel=new JLabel("醫生編號");

JLabel dnameJLabel=new JLabel("醫生姓名");

JLabel dsexJLabel=new JLabel("醫生性別");

JLabel dageJLabel=new JLabel("醫生年齡");

JLabel dtitleJLabel=new JLabel("醫生職稱");

JLabel denoJLabel=new JLabel("科室號");

?

4.4病人頁面

病人頁面如圖4.4所示:

圖4.4病人頁面

JLabel patientnoJLabel=new JLabel("病人號:");

JLabel patientnameJLabel=new JLabel("姓名:");

JLabel sexJLabel=new JLabel("性別:");

JLabel ageJLabel=new JLabel("年齡:");

JLabel bloodJLabel=new JLabel("血型:");

JLabel resultJLabel=new JLabel("診斷結果:");

JLabel departmentnoJLabel=new JLabel("科室號:");

JButton selectJButton=new JButton("查詢");

JButton deleteJButton=new JButton("刪除");

JButton updateJButton=new JButton("更新");

JButton addJButton=new JButton("增加");

JButton returnJButton=new JButton("返回");

?

4.5科室頁面

科室頁面如圖4.5所示:

?

圖4.5科室頁面

JButton addJButton=new JButton("添加");

JButton deleteJButton=new JButton("刪除");

JButton updateJButton=new JButton("修改");

JButton selectJButton=new JButton("查詢");

JButton returnJButton=new JButton("返回");

JLabel denoJLabel=new JLabel("科室編號");

JLabel denameJLabel=new JLabel("科室姓名");

JLabel deaddrJLabel=new JLabel("科室地址");

JLabel dephoneJLabel=new JLabel("科室電話");

JLabel demasterJLabel=new JLabel("科室主任");

4.6科室管理

4.6.1查詢操作

String?denojString=denoJTextField.getText().toString();

String?s1="select?*?from?Department?where?Deno=?";

PreparedStatement?pStatement=con.prepareStatement(s1);

pStatement?.setString(1,?denojString);

ResultSet?rSet=pStatement.executeQuery();

denoJTextField.setText(rSet.getString("Deno"));

denameJTextField.setText(rSet.getString("Dename"));

deaddrJTextField.setText(rSet.getString("Deaddr"));

dephoneJTextField.setText(rSet.getString("Dephone"));

demasterJTextField.setText(rSet.getString("Demaster"));

4.6.2刪除操作

deleteJButton.addActionListener(new?ActionListener()?{

public?void?actionPerformed(ActionEvent?e)?{try?{

String?s1="delete?from?Department?where?Deno=?";

PreparedStatement?ps=con.prepareStatement(s1);

String?denoJText=denoJTextField.getText().toString();

ps.setString(1,?denoJText);

ps.executeUpdate();

JOptionPane.showMessageDialog(null,?"刪除成功!");}

?catch?(Exception?e2)?{System.out.println(e2);}?}?

});

4.6.3更改操作

String?s1="update?department?set?dename=?,deaddr=?,dephone=?,demaster=??where?deno=?";PreparedStatement?pStatement=con.prepareStatement(s1);

String?denoText=denoJTextField.getText().toString();

String?deNameText=denameJTextField.getText().toString();

String?deAddrText=deaddrJTextField.getText().toString();

String?dePhoneText=dephoneJTextField.getText().toString();

String?deMasterText=demasterJTextField.getText().toString();

pStatement.setString(1,?deNameText);pStatement.setString(2,?deAddrText);

pStatement.setString(3,?dePhoneText);pStatement.setString(4,?deMasterText);

pStatement.setString(5,?denoText);pStatement.executeUpdate();

4.6.4添加操作

String?s1="insert?into?department?values(?,?,?,?,?)";

PreparedStatement?pStatement=con.prepareStatement(s1);

String?denoText=denoJTextField.getText().toString();

String?deNameText=denameJTextField.getText().toString();

String?deAdderText=deaddrJTextField.getText().toString();

String?dePhoneText=dephoneJTextField.getText().toString();

String?deMasterText=demasterJTextField.getText().toString();

pStatement.setString(1,?denoText);pStatement.setString(2,?deNameText);

pStatement.setString(3,?deAdderText);pStatement.setString(4,?dePhoneText);

pStatement.setString(5,?deMasterText);pStatement.executeUpdate();

4.7連接數據庫

public?String?driver?=?"com.microsoft.sqlserver.jdbc.SQLServerDriver";

public?String?url?=?"jdbc:sqlserver://127.0.0.1:1433;DatabaseName=HospitalManager";public?String?username?=?"sa";?public?String?password?=?"123456";

public?Connection?getConnection()?{

try?{Class.forName(driver);con?=?DriverManager.getConnection(url,?username,?password);System.out.println("連接成功");

}?catch?(Exception?e)?{

e.printStackTrace();??System.out.println("獲取連接失敗:"?+?e.getMessage());}

return?con;}

5 系統測試

5.1登錄測試

選擇用戶身份,輸入用戶賬號密碼,點擊登錄,進入用戶主頁面。

如下圖5.1 圖5.2所示:

圖5.1 登錄

?

圖5.2 主頁面

?

5.2查詢測試

進入醫生信息管理界面,輸入用戶編號點擊查詢。

如下圖5.3所示:

圖5.3 查詢

5.3刪除測試

進入病人信息管理界面,查詢病人編號為21102的個人信息,將其刪除。如下圖5.4所示:

圖5.4 刪除

5.4更改測試

進入信息管理界面,查詢醫生編號為101001的個人信息,將其年齡更改為30歲。如下圖5.5 圖5.6所示:

圖5.5 更改

?

圖5.6 更改后

5.5添加測試

進入病人信息管理界面,添加病人信息。如下圖5.7所示:

圖5.7 添加?

?

6 系統總結

6.1設計總結

我這次課程設計的任務是建立一個醫院門診信息管理系統,它用到的開發工具是MyEclipse、SQL server[10]。醫院門診信息管理系統的基本功能:病人信息管理、醫生信息管理、科室信息管理等信息的管理。通過編寫代碼實現對數據庫的連接,進而實現對后臺信息的管理。

在本次課程設計中,特色是:選擇建立可視化頁面給本次課程設計增加了閃光點。通過自學JFrame,從而建立一個個可視化的頁面,在窗體中增加相關的控件,并對控件的布局、大小進行相應的設置,增加了窗體的美觀性,并通過設置監聽器等功能,進而就可以在相應的頁面就可以簡單實現對相關信息進行增刪改查,從而增加了對系統的可操作性,便于人們對后臺信息可視化進行管理。

?

?

總結

以上是生活随笔為你收集整理的java基础做简单的医院管理系统,附带课程设计说明书的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。