主頁 > 軟體設計 > 醫院管理資料庫課程設計

醫院管理資料庫課程設計

2021-12-07 11:19:26 軟體設計

文章目錄

  • 前言
    • 醫院資訊管理系統
    • 摘要
    • 1.概述
      • 運行環境
      • 2. 1需求分析
        • 2.1.1基本分類需求分析
        • 2.1.2 主要關系流程分析
        • 2.2可行性分析
      • 3.1概念結構設計
        • 3.1.1 抽象出系統的物體
        • 3.2 設計分E-R圖
      • 3.3.1 全域E-R圖
      • 4.1邏輯結構設計
      • 5.1資料庫物理設計與實施
      • 6.資料操作要求及實作
        • 6.1.1 資料查詢、更新操作
      • 6.1.2實作藥品的入庫、出庫管理;
      • 6.1.3實作科室、醫生、病人的管理;
        • (1) 邏輯增刪改
        • 6.1.4實作處方的登記管理
        • 6.1.5實作收費管理;
      • 6.2 視圖
      • 6.3 觸發器
      • 6.4 存盤程序
      • 7.基準測驗
      • 8.總結
      • 9.參考文獻
    • 寫在最后


一節復一節,千枝攢萬葉,我自不開花,免撩蜂與蝶,
皓首猶貪學,謙虛德益豐,潛神無朕際,悟物不言中,

前言

我將其開源.但希望你能從中學習到資料庫設計思想.
誠然,我不是一名DBA,我僅僅讀過半本高性能MySQL(第3版)和一本資料庫系統概論(第5版),一本java開發手冊(華山版).我從中掌握了一些知識將他們運用在了課程設計中.也許我的資料庫課程設計對于這個專案結構來說不是最好,最優秀的.
但是憑借這幾本書的經驗,我覺得還是有可取之處的.在本次資料庫系統設計中我時刻希望以一名優秀的DBA標準要求自己.
不為別的.只希望做一次,就要做好!
由于做之前就萌生了開源的想法.我就完全將mysql表設計思想,避免約束加鎖,避免觸發器,存盤程序…等問題全部考慮到了.
所以本次課程設計不僅有邏輯操作思想,還有學校以教學為目的,對于觸發器,存盤程序的枷鎖要求.
我也因此希望能夠做全面:存盤引擎的考慮,表設計,采用方案的對比,索引優化,資料庫在windows下壓力測驗和linux下時延回應時間的測驗.
這幾個方面都囊括其中.
希望共同學習,共同進步.
可以加入我的qq群:287048847 一起交流資料庫設計和Java/Go的開發!這里的人都充滿激情!


提示:以下是本篇文章正文內容,下面案例可供參考

醫院資訊管理系統

摘要

隨著人們生活水平的不斷提高,人們更重視醫療設施,醫院的業務也不斷增加,而對于醫院來講,資訊管理系統屬于其重要組成部分,確保系統高效、穩定且安全的運行是醫院應關注和解決的問題,為使資訊系統穩定、安全,高可用,作業人員需管理好資訊系統,重視資料庫安全,進而使資訊資料將自身作用與價值充分發揮出來,醫療關系民脂民生,人民健康.設計人員應當格外小心謹慎,做好零失誤.

1.概述

依據資料庫課程設計要求,我將以DBA標準,參照mysql高性能,java開發手冊,資料庫系統概論等撰寫設計本系統.由于考慮諸多因素,對資料庫的了解結合我目前的經驗水平,我將使用java連接mysql資料庫.shell腳本,jmeter測驗工具進行測驗.本系統使用mysql的原因是其在Linux下比sql server更成熟,同時它具有更高的靈活性.選用java作為資料庫連接,因為我對它相較其他語言足夠熟悉,同時它也足夠強大.shell和jmeter都能很好的輔助我進行基準測驗.以DBA的要求,應當多使用邏輯外鍵,少觸發器,存盤程序和外鍵級聯操作.但我會將兩種方案一并給出.具體設計方案詳見下文.

運行環境

mysql-connector-java-8.0.22.jar
Window10
IntelliJ IDEA 2021.2.1
apache-jmeter-5.4.1
linux-centos7
spring配bean連接池

2. 1需求分析

2.1.1基本分類需求分析

1. 控制中心

? 人員管理:實作對員工,病人的增刪改;
? 藥品管理:實作對藥品的入庫,出庫操作和處方藥的登記以及藥品型別,藥品資訊的登記
? 收費管理:對藥品營收的統計;

2. 查詢
? 員工,病人的基本資訊查詢;
? 藥品資訊的查詢;
? 收費情況的查詢;

2.1.2 主要關系流程分析

病人看病,先掛號等待分配科室.然后醫師給患者看病開票據.病人拿票憑去前臺充值,接著去藥房拿藥.藥師根據患者的票憑刷卡取藥,完成藥品交付和收費流程.

2.2可行性分析

該系統主要包括基本資料維護、基本業務、資料庫管理和資訊查詢四部分,
1、基本資料維護部份應包括提供管理員添加、修改并維護基本的資料途徑,例如添加修改醫院和辦理病人入住與搬出或者換病房,管理醫院里的基本設備,
2、資料庫管理部分是對這個資料庫的管理,包括醫生,病人詳細資訊等,
3、該系統的技術可行性分析:在系統維護中包括醫生和病人資訊檢索,資料庫資訊維護,
4、系統技術的可行性分析:
基于jvm和mysql下本系統可以運行于windows和Linux作業系統當中,可以為系統提供一個穩定的運行環境,該系統應該說有開發的必要性,
該系統主要由兩大部分組成即管理維護和查詢,

3.1概念結構設計

3.1.1 抽象出系統的物體

涉及的目標物件:患者,科室,醫師,藥師,前臺收銀,藥品,掛號單,處方資訊.

3.2 設計分E-R圖

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3.3.1 全域E-R圖

在這里插入圖片描述

4.1邏輯結構設計

病人病史(身份證號、姓名、性別、年齡、病例);
藥品存放記錄(藥品編號、藥品名、進價、售價、藥品數量、生產日期、有效期,存盤位置);
掛號(掛號編號、病人編號、性別、掛號科室、醫生編號);
收費(收費員編號,收費員姓名,病人編號,藥品編號,數量,金額);
醫生(醫生員工號,醫生姓名,醫生性別,醫生年齡,科室,電話);
處方(醫生員工號,藥品編號,數量);
支付(支付編號,收費編號,價格);

5.1資料庫物理設計與實施

在這里插入圖片描述

掛號
在這里插入圖片描述

醫師資訊
在這里插入圖片描述

病人資訊
在這里插入圖片描述

藥品資訊
在這里插入圖片描述

繳費資訊
在這里插入圖片描述

取藥票單
在這里插入圖片描述

處方資訊
在這里插入圖片描述

支付憑據
在這里插入圖片描述
在這里插入圖片描述

6.資料操作要求及實作

6.1.1 資料查詢、更新操作

select * from register where register.is_delete=0;

在這里插入圖片描述

select * from doctor where doctor.is_delete=0;

在這里插入圖片描述

select * from patient where patient.is_delete=0;

在這里插入圖片描述

SELECT * FROM drugs WHERE is_delete=0;

在這里插入圖片描述

select * from charge WHERE is_delete=0;

在這里插入圖片描述

select * from PGM WHERE is_delete=0;

在這里插入圖片描述

select * from recipel WHERE is_delete=0;

在這里插入圖片描述

select * from pay WHERE is_delete=0;

在這里插入圖片描述

6.1.2實作藥品的入庫、出庫管理;

1.	INSERT INTO drugs(drug_id, drug_name, drug_price, drug_quantity, drug_storage, drug_date, usefull_life)  
2.	VALUES ('1000237', '長生不老丹', 9999.00, '821', 'C-8-291', '2021-09-01', '2022-09-01');  
3.	  
4.	SELECT * FROM drugs WHERE drug_name = '長生不老丹' AND is_delete=0;  

在這里插入圖片描述

1.	UPDATE drugs SET drug_name = '聰明草' WHERE drug_id = '1000237';  
2.	  
3.	UPDATE drugs SET IS_DELETE=1 WHERE drug_name='聰明草';  

在這里插入圖片描述
在這里插入圖片描述

對應的java后端實作

1.	增刪改操作  
2.	package com.vector.hospital_information;  
3.	  
4.	import com.vector.config.SpringConfiguration;  
5.	import org.junit.Test;  
6.	  
7.	import org.junit.runner.RunWith;  
8.	import org.springframework.context.ApplicationContext;  
9.	import org.springframework.context.annotation.AnnotationConfigApplicationContext;  
10.	import org.springframework.stereotype.Component;  
11.	import org.springframework.test.context.ContextConfiguration;  
12.	import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
13.	  
14.	import javax.annotation.Resource;  
15.	import javax.sql.DataSource;  
16.	import java.sql.Connection;  
17.	import java.sql.PreparedStatement;  
18.	import java.sql.SQLException;  
19.	  
20.	@RunWith(SpringJUnit4ClassRunner.class)  
21.	@ContextConfiguration(classes = {SpringConfiguration.class})  
22.	@Component("Update_test")  
23.	public class Update_test {  
24.	    @Resource(name = "dataSource")  
25.	    DataSource dataSource;  
26.	    @Resource(name = "Update_test")  
27.	    Update_test modify;  
28.	    @Test  
29.	    /** 
30.	     * 測驗增刪改 
31.	     */  
32.	    public void TestUpdate() throws SQLException {  
33.	  
34.	        /** 
35.	         * 測驗增添資料 
36.	         */  
37.	        String sql1 = "INSERT INTO drugs(drug_id,drug_name,drug_price,drug_quantity,drug_storage,drug_date,usefull_life) VALUES (?, ?, ?, ?, ?, ?, ?)";  
38.	        modify.update(sql1,"1000237", "長生不老丹", 9999.00, "821", "A-8-291", "2021-09-01", "2022-09-01");  
39.	  
40.	        /** 
41.	         * 測驗修改資料 
42.	         */  
43.	//        String sql2 = "UPDATE drugs SET drug_name = ? WHERE drug_id = ?";  
44.	//        modify.update(sql2,"聰明草","1000237");  
45.	//        /**  
46.	//         * 測驗洗掉資料  
47.	//         */  
48.	//        String sql3 = "DELETE FROM drugs WHERE drug_name=?";  
49.	//        modify.update(sql3,"聰明草");  
50.	    }  
51.	    /** 
52.	     * 王佳慧 
53.	     * 通用增刪改 
54.	     * @param sql 
55.	     * @param args 
56.	     * @throws SQLException 
57.	     */  
58.	  
59.	    //通用的增刪改操作  
60.	    public void update(String sql, Object... args) throws SQLException {//sql當中占位符個數與可變形參的長度一致  
61.	  
62.	        Connection conn = null;  
63.	        PreparedStatement ps = null;  
64.	        //ApplicationContext app = null;  
65.	        try {  
66.	            //app = new AnnotationConfigApplicationContext(SpringConfiguration.class)  
67.	            //1.獲取資料庫連接  
68.	            conn = dataSource.getConnection();  
69.	            //2.預編譯sql陳述句,回傳PreparedStatement實體  
70.	            ps = conn.prepareStatement(sql);  
71.	            //3.填充占位符  
72.	            for (int i = 0; i < args.length; i++) {  
73.	                ps.setObject(i + 1, args[i]);  
74.	            }  
75.	            //4.執行sql陳述句  
76.	            ps.execute();  
77.	            System.out.println("添加記錄成功");  
78.	        } catch (Exception e) {  
79.	            e.printStackTrace();  
80.	        } finally {  
81.	            //5.資源的關閉  
82.	            conn.close();  
83.	        }  
84.	    }  
85.	  
86.	}  


1.	Sql查詢  
2.	package com.vector.hospital_information;  
3.	  
4.	import com.vector.config.SpringConfiguration;  
5.	import com.vector.test.DataSourceTest;  
6.	import org.junit.Test;  
7.	import org.junit.runner.RunWith;  
8.	import org.springframework.stereotype.Component;  
9.	import org.springframework.test.context.ContextConfiguration;  
10.	import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
11.	  
12.	import javax.annotation.Resource;  
13.	import javax.sql.DataSource;  
14.	import java.lang.reflect.Field;  
15.	import java.sql.*;  
16.	  
17.	@RunWith(SpringJUnit4ClassRunner.class)  
18.	@ContextConfiguration(classes = {SpringConfiguration.class})  
19.	@Component("PreparedStatementQueryTest")  
20.	public class PreparedStatementQueryTest {  
21.	  
22.	    @Resource(name = "dataSource")  
23.	    DataSource dataSource;  
24.	    @Resource(name = "PreparedStatementQueryTest")  
25.	    PreparedStatementQueryTest queryTest ;  
26.	  
27.	  
28.	    @Test  
29.	    /** 
30.	     * 測驗查詢 
31.	     */  
32.	    public void TestQuery() throws SQLException {  
33.	  
34.	  
35.	        /** 
36.	         * 測驗查詢一條記錄 
37.	         */  
38.	        String sql = "SELECT * from drugs where drug_name=?";  
39.	        Drugs drugs = queryTest.getInstance(Drugs.class,sql,"長生不老丹");  
40.	        System.out.println(drugs);  
41.	  
42.	  
43.	    }  
44.	    /** 
45.	     * 王佳慧 
46.	     * 針對于不同的表的通用查詢操作,回傳表中的一條記錄 
47.	     * @param clazz 
48.	     * @param sql 
49.	     * @param args 
50.	     * @param <T> 
51.	     * @return 
52.	     */  
53.	    public <T>T getInstance(Class<T> clazz,String sql,Object ...args) throws SQLException {  
54.	        Connection conn = null;  
55.	        PreparedStatement ps = null;  
56.	        ResultSet rs = null;  
57.	        try {  
58.	            conn = dataSource.getConnection();//加載資料庫  
59.	            ps = conn.prepareStatement(sql);  
60.	            for (int i = 0; i < args.length; i++) {  
61.	                ps.setObject(i + 1, args[i]);  
62.	            }  
63.	            //執行,獲取結果集  
64.	            rs = ps.executeQuery();  
65.	            //獲取結果集的元資料  
66.	            ResultSetMetaData rsmd = rs.getMetaData();  
67.	            //獲取列數  
68.	            int columuCount = rsmd.getColumnCount();  
69.	            if (rs.next()) {  
70.	                T t = clazz.newInstance();  
71.	                for (int i = 0; i < columuCount; i++) {  
72.	                    //獲取每個列的列值,通過ResultSet  
73.	                    Object columnValue = rs.getObject(i + 1);  
74.	                    //獲取每個列的列名,通過ResultSetMetaData  
75.	                    //獲取列的列名:getColumnName() ---不推薦使用  
76.	                    //獲取列的別名:getColumnLabel()  
77.	                    String columnLabel = rsmd.getColumnLabel(i+1);  
78.	                    //通過反射,將物件指定名columnName的屬性值賦值給columnValue  
79.	                    Field field = clazz.getDeclaredField(columnLabel);  
80.	                    field.setAccessible(true);  
81.	                    field.set(t, columnValue);  
82.	                }  
83.	                return t;  
84.	            }  
85.	        } catch (Exception e) {  
86.	            e.printStackTrace();  
87.	        } finally {  
88.	            conn.close();  
89.	        }  
90.	  
91.	        return null;  
92.	    }  
93.	  
94.	  
95.	}  

在這里插入圖片描述
在這里插入圖片描述

6.1.3實作科室、醫生、病人的管理;

(1) 邏輯增刪改

1.	INSERT INTO register(r_num, r_patient_id, r_sex, r_dept, r_name)  
2.	VALUES ('222', '411282xxxxxxx1182', '女', '肛腸科', '塵思宇');  
3.	  
4.	SELECT * from register where r_patient_id='41128220230304554X WHERE IS_DELETE=0';  
5.	  
6.	START TRANSACTION;  
7.	BEGIN;  
8.	UPDATE patient SET p_name = '病人1' WHERE p_atient_id = '41128220230304554X AND IS_DELETE=0;  
9.	UPDATE register SET r_name = '病人1' WHERE r_patient_id = '41128220230304554X' AND;  
10.	IS_DELETE=0;  
11.	  
12.	UPDATE  register SET IS_DELETE=1 WHERE r_num='222';  
Java相關事務提交核心代碼
1.	try {
2.	            //app = new AnnotationConfigApplicationContext(SpringConfiguration.class)
3.	            //1.獲取資料庫連接
4.	            conn = dataSource.getConnection();
5.	            conn.setAutoCommit(false);
6.	            //2.預編譯sql陳述句,回傳PreparedStatement實體
7.	            ps = conn.prepareStatement(sql);
8.	            //3.填充占位符
9.	            for (int i = 0; i < args.length; i++) {
10.	                ps.setObject(i + 1, args[i]);
11.	            }
12.	            //4.執行sql陳述句
13.	            ps.execute();
14.	            conn.commit();
15.	            System.out.println("添加記錄成功");
16.	        } catch (Exception e) {
17.	            conn.rollback();
18.	            e.printStackTrace();
19.	        } finally {
20.	            //5.資源的關閉
21.	            conn.close();
22.	        }
23.	    }


(2)	級聯操作
1.	-- 級聯操作  
2.	alter table patient add  
3.	    constraint patient_register_dept  
4.	        foreign key(p_atient_id) references register(r_patient_id) on delete cascade;  
5.	DELETE FROM patient WHERE p_atient_id='41128220230304554X';

6.1.4實作處方的登記管理

在這里插入圖片描述

1.	/**
2.	         * 測驗增添資料
3.	         */
4.	        String sql1 = "INSERT INTO recipel(id,doctor_id,drug_id,count,patient_name) VALUES (?,?,?,?,?);";
5.	        modify.update(sql1,1,"001", "100023", "2盒","病人1");

6.1.5實作收費管理;

在這里插入圖片描述

6.2 視圖

創建視圖查詢各種藥品的庫存總數;
在這里插入圖片描述

在這里插入圖片描述

1.	SELECT drug_name,sum(drug_quantity) FROM drug_view GROUP BY drug_name ;  

6.3 觸發器

藥品出庫操作

1.	-- 創建觸發器,當藥品入庫、出庫時自動修改庫存;  
2.	# 藥品出庫操作  
3.	delimiter $$ -- 自定義結束符號  
4.	create trigger recipel_update  
5.	    before insert  
6.	    on recipel  
7.	    for EACH ROW  
8.	BEGIN  
9.	    SELECT @quantity=drug_quantity into @str  
10.	    FROM drugs WHERE NEW.drug_id = drugs.drug_id;  
11.	    IF @quantity <= 0 || NEW.count > @quantity THEN  
12.	        SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'Warning: 藥品數量為零!';  
13.	    ELSE  
14.	        UPDATE drugs SET drug_quantity = drug_quantity - NEW.count WHERE drug_id=NEW.drug_id AND IS_dELETE=0;  
15.	    end if;  
16.	end  
17.	$$ -- 自定義觸發器結束  
18.	delimiter ;   

在這里插入圖片描述

插入前
在這里插入圖片描述
插入后
在這里插入圖片描述

藥品入庫操作

插入前
在這里插入圖片描述
插入后
在這里插入圖片描述

6.4 存盤程序

創建存盤程序統計某段時間內,各科室的就診人數和輸入情況;

 #存盤程序
drop procedure count_people_date;
DELIMITER $$
CREATE PROCEDURE count_people_date(
#IN @begin_date datetime,  這樣寫是錯誤的
    IN begin_date datetime,
    IN end_date datetime
    )
BEGIN
    SELECT r_dept '科室',count(*) '問診人數'
    FROM register
    WHERE update_time BETWEEN begin_date AND end_date AND is_delete=0
    GROUP BY r_dept ;
end $$
DELIMITER ;

CALL count_people_date('2021-12-04','2021-12-05');

在這里插入圖片描述
在這里插入圖片描述

7.基準測驗

壓力測驗:
在這里插入圖片描述

時間延遲測驗:
在這里插入圖片描述
在這里插入圖片描述

8.總結

對于本次課程設計,考慮到做事就要做完美,做一次了,那就給他開源,設計,優化,除錯,測驗,對比都做一遍.當然在進行資料庫操作的時候,難度最大的有
1.觸發器 由于我使用了mysql,這與sql service有著高度的隔離.這部分內容是完全不一樣的.做遷移時耗費了很大力氣.有很多問題摸索了很久,有些問題是stackoverflow,百度,csdn都解決不了的.比如我使用了update觸發器,但是在觸發器中執行插入操作,總是插不進去!困擾了我很久,尋訪各個dba群中大佬,都無能為力.總之,有些是耗費很長時間都無法解決的,很挫敗.但雖然挫敗,但我也識訓了很多,對于基本的sql操作,以及mysql,sql service都有了深刻認識.

2.新思想 同時在設計資料庫的程序中,也觸發了很多新思想,有了新思想,眼前豁然開朗,邏輯洗掉思想解決了一對多,牽一發而動全身的難題.也保證了資料的永久存盤.

3.Linux下的資料時延測驗. 本以為靠兩個shell自動化腳本很容易做.但是錯誤也是頻繁發生.但在解決問題的程序中,我了解到了sh -x 腳本除錯.這讓我捕獲了錯誤.完成了資料采集,以及qbs在時間維度的測驗.

9.參考文獻

[1]高性能MySQL:第3版/(美)Schwartz,B.(美)Zaitsev,P.,(美)Tkachenko,V.著;寧海元等譯.-北京:電子工業出版社,2013.5 書名原文:High Performance MySQL,Third Edition.
[2]資料庫系統概論/王珊,薩師煊編著.—5版.—北京:高等教育出版社,2014.9 ISBN 978-7-04-040664-1
[3]java開發手冊社區開發者集體智慧的結晶-(華山版)v1.5.0.-杭州:阿里巴巴,2019.06

寫在最后

開源連接----->>>點擊此處

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/374858.html

標籤:其他

上一篇:Java崗大廠面試百日沖刺 - 榷訓月累,每日三題【Day51】—— tomcat

下一篇:瞰源 | 當我們談論開源時,我們在談論什么?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more