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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

QT实现简单的医院管理系统

發(fā)布時(shí)間:2023/12/15 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT实现简单的医院管理系统 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? 現(xiàn)代化的醫(yī)院也應(yīng)該有現(xiàn)代化的管理系統(tǒng)。在科技日益發(fā)達(dá)的今天,人們的身體健康也在不斷受到重視。因此,醫(yī)院進(jìn)行現(xiàn)代化管理就變得尤為重要。
一、系統(tǒng)需求分析
???通過(guò)一個(gè)醫(yī)院管理系統(tǒng),使醫(yī)院的管理工作系統(tǒng)化、規(guī)范化、自動(dòng)化,從而達(dá)到提高醫(yī)院管理效率的目的。

1.1 系統(tǒng)功能分析
????醫(yī)院管理系統(tǒng)需要完成功能主要有:

1各類(lèi)信息的輸入。
????2員工各種信息的輸入,包括員工基本信息、職稱、崗位等。
????3員工各種信息的查詢、修改,包括員工基本信息、職稱、崗位、工資等。
????4員工的人事調(diào)動(dòng)管理。
????5病人信息的管理。
????6醫(yī)院病床的管理。
????7藥劑資源管理。
????8儀器資源管理。
????9系統(tǒng)用戶管理、權(quán)限管理。

1.2 系統(tǒng)功能模塊設(shè)計(jì)(劃分)
????根據(jù)系統(tǒng)功能要求,可以將系統(tǒng)分解成幾個(gè)模塊來(lái)分別設(shè)計(jì)應(yīng)用程序界面,如圖 1 所示。

1.3 系統(tǒng)的關(guān)系

????醫(yī)院管理系統(tǒng)是對(duì)醫(yī)院內(nèi)各種信息資源的管理。在本系統(tǒng)中,員工管理、病床管理、病人管理、儀器管理、藥劑管理、部門(mén)管理和崗位管理是本系統(tǒng)的集合。各個(gè)管理又為系統(tǒng)的小模塊,各個(gè)小模塊之前又有著緊密的聯(lián)系,比如員工與部門(mén)崗位的聯(lián)系、病人與病床的聯(lián)系、員工與病人的聯(lián)系等等。


、數(shù)據(jù)庫(kù)設(shè)計(jì)

2.1 數(shù)據(jù)庫(kù)需求分析
????通過(guò)對(duì)醫(yī)院管理的內(nèi)容和數(shù)據(jù)關(guān)系分析,我們?cè)O(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:
????1員工基本狀況包括的數(shù)據(jù)項(xiàng)有員工號(hào)、員工姓名、性別、所在部門(mén)、身 ??份證號(hào)、生日、籍貫、國(guó)籍、民族、婚姻狀況、健康狀況、參加工作時(shí)間、員工 ??狀態(tài)、家庭住址、聯(lián)系電話等。
????2員工工資狀況包括的數(shù)據(jù)項(xiàng)有員工號(hào)、工資項(xiàng)別、工資金額等。
????3?醫(yī)院工作崗位信息包括的數(shù)據(jù)庫(kù)項(xiàng)有工作崗位代號(hào)、工作崗位名稱等。
????4醫(yī)院部門(mén)信息包括的數(shù)據(jù)項(xiàng)有部門(mén)代號(hào)、部門(mén)名稱、部門(mén)負(fù)責(zé)人等。
????5病人信息包括的數(shù)據(jù)項(xiàng)有病人姓名、病人性別、入院時(shí)間、病人所屬科室、病人狀況、病人主治醫(yī)生、房問(wèn)號(hào)、病床號(hào)等。
????6藥劑資源管理信息包括的數(shù)據(jù)項(xiàng)有藥劑代號(hào)、藥劑名稱、藥劑價(jià)格、藥劑庫(kù)存數(shù)量、備注等。
????7醫(yī)療儀器管理包括的數(shù)據(jù)項(xiàng)有儀器代號(hào)、儀器名稱、儀器價(jià)格、儀器數(shù)量、備注等。
????有了上面的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項(xiàng)和數(shù)據(jù)關(guān)系,我們就能進(jìn)行下面的數(shù)據(jù)庫(kù)設(shè)計(jì)。

2.2 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)
????本系統(tǒng)根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有員工實(shí)體、部門(mén)實(shí)體、崗位實(shí)體、病人實(shí)體、藥劑實(shí)體、儀器實(shí)體。實(shí)體和實(shí)體之間的關(guān)系 E-R 圖模型如圖 2?所示。

需要注意的是,關(guān)系需要設(shè)置好‘INSERT 和 UPDATE 規(guī)范’。既然提到這,那我們先了解下‘INSERT 和 UPDATE 規(guī)范’的類(lèi)別:

1無(wú)操作:?顯示一條錯(cuò)誤信息,告知用戶不允許執(zhí)行該刪除(更新)操作,DELETE 將被回滾。

2級(jí)聯(lián)(層疊)?刪除(更新)包含外鍵關(guān)系中所涉及的數(shù)據(jù)的所有行。

3設(shè)置空如果表的所有外鍵列都可接受空值,則將該值設(shè)置為空。僅適用于 SQL Server 2005。

4設(shè)置默認(rèn)值?如果表的所有外鍵列均已定義默認(rèn)值,則將該值設(shè)置為列定義的默認(rèn)值。僅適用于 SQL Server 2005。

在本關(guān)系圖中,personnel__emp_no和salary__EMP_NO的更新操作和刪除操作都是層疊,因?yàn)閱T工信息的更新和刪除與員工工資的信息密切相關(guān)。而其他的關(guān)系的更新設(shè)置為層疊,刪除設(shè)置為空,例如:一個(gè)員工被開(kāi)除了,那么病人的主治醫(yī)師將設(shè)置為空,如果更新,那么主治醫(yī)生的信息也將更新。

2.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)
????在上面的實(shí)體以及實(shí)體之間關(guān)系的基礎(chǔ)上,我們就可以形成數(shù)據(jù)庫(kù)中的表格以及各個(gè)表格之間的關(guān)系。醫(yī)院管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)結(jié)果如下表所示。

說(shuō)明:

emp_no————員工號(hào)(主鍵)

Emp_name———— 員工姓名

emp_dept_id ————所在的部門(mén)號(hào)

emp_duty ————職務(wù)

emp_xl ————學(xué)歷

emp_gender ————性別

emp_birthday ————生日

emp_hometown ————籍貫

emp_couniry ————國(guó)籍

emp_nation ————民族

emp_id ————身份證號(hào)

emp_marriage ————婚姻狀況

emp_health ————健康狀況

emp_startwork ————參加工作時(shí)間

emp_state ————員工狀態(tài)

emp_homeaddress ————家庭住址

emp_teleno ————聯(lián)系電話

emp_email ————聯(lián)系Email地址

emp_job_id ————工作崗位代號(hào)(外鍵)

說(shuō)明:

Job_id ————工作崗位代號(hào)(主鍵)

Job_name ————工作崗位名稱

dept_id ———— 部門(mén)代號(hào)(外鍵)


說(shuō)明:
dept_id ————部門(mén)代號(hào)(主鍵)
dept_name———— 部門(mén)名稱
dept_manager————部門(mén)主任代號(hào)
dept_vicemanager ————部門(mén)副主任代號(hào)


說(shuō)明:
patient_name ————病人姓名(主鍵)
patient_gender ————病人性別
patient_date_start ————入院時(shí)間
patient_dept ————病人所屬科室
patient_state ————病人狀況
patient_doc ————病人主治醫(yī)生(外鍵)
patient_room———— 病人房間號(hào)
patient_bed ————病人病床號(hào)(外鍵)

說(shuō)明:

TMS_USER————用戶名(主鍵)

TMS_PSWD————密碼

TMS_GG————判斷管理員權(quán)限(約束:GG(普通)/HH(高級(jí)))

說(shuō)明:

EMP_NO————員工號(hào)(主鍵/外鍵)

SALARY————工資(默認(rèn)值:5000)


說(shuō)明:
BED ————病床號(hào)(主鍵)
STATE ————病床狀態(tài)(約束:free/employ)

需要注意的是,關(guān)系型數(shù)據(jù)庫(kù)提供了三類(lèi)完整性規(guī)則,實(shí)體完整性規(guī)則,參照完整性規(guī)則,用戶自定義完成性規(guī)則:

1實(shí)體完整性規(guī)則:實(shí)體完整性規(guī)則是指關(guān)系的主屬性(就是俗稱主鍵的一些字段,主鍵的組成部分)不能為空值。

2參照完整性規(guī)則指如果關(guān)系的外鍵R1和關(guān)系R2的主鍵相符,那么外鍵的每個(gè)值必須在關(guān)系R2中主鍵的值中可以找到或者是空值。

3用戶自定義的完整性規(guī)則是指某一具體的實(shí)際數(shù)據(jù)庫(kù)的約束條件,由應(yīng)用環(huán)境所決定,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的要求(比如說(shuō)一個(gè)人的年齡必須要大于零),根據(jù)現(xiàn)實(shí)生活中的一個(gè)實(shí)際情況用戶定義的一個(gè)用戶自定義完整性。

例如上表中,床位狀態(tài)約束、email地址等等。

2.4 數(shù)據(jù)庫(kù)的建立
2.4.1 數(shù)據(jù)庫(kù)的建立表的創(chuàng)建與約束

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[potion]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[potion]([藥劑代號(hào)] [int] NOT NULL,[藥劑名稱] [varchar](50) NULL,[藥劑價(jià)格] [int] NULL,[藥劑庫(kù)存數(shù)量] [int] NULL,[備注] [varchar](50) NULL,CONSTRAINT [PK_potion] PRIMARY KEY CLUSTERED ([藥劑代號(hào)] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[apparatus]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[apparatus]([儀器代號(hào)] [int] NOT NULL,[儀器名稱] [varchar](50) NULL,[儀器價(jià)格] [int] NULL,[儀器數(shù)量] [int] NULL,[備注] [varchar](50) NULL,CONSTRAINT [PK_apparatus] PRIMARY KEY CLUSTERED ([儀器代號(hào)] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tms]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[tms]([TMS_USER] [varchar](50) NOT NULL,[TMS_PSWD] [varchar](50) NULL,[TMS_GG] [varchar](50) NULL,CONSTRAINT [PK_tms] PRIMARY KEY CLUSTERED ([TMS_USER] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[chuang]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[chuang]([BED] [varchar](50) NOT NULL,[STATE] [varchar](50) NULL,CONSTRAINT [PK_chuang_1] PRIMARY KEY CLUSTERED ([BED] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dept]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[dept]([dept_id] [int] NOT NULL,[dept_name] [varchar](50) NULL,[dept_manager] [int] NULL,[dept_vicemanager] [int] NULL,CONSTRAINT [PK_dept] PRIMARY KEY CLUSTERED ([dept_id] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[job]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[job]([job_id] [int] NOT NULL,[job_name] [varchar](50) NULL,[dept_id] [int] NULL,CONSTRAINT [PK_job] PRIMARY KEY CLUSTERED ([job_id] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[salary]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[salary]([EMP_NO] [int] NOT NULL,[SALARY] [int] NULL CONSTRAINT [DF_salary_SALARY] DEFAULT ((5000)),CONSTRAINT [PK_salary] PRIMARY KEY CLUSTERED ([EMP_NO] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[patient]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[patient]([patient_name] [varchar](50) NOT NULL,[patient_gender] [varchar](50) NULL,[patient_date_start] [varchar](50) NULL,[patient_dept] [varchar](50) NULL,[patient_state] [varchar](50) NULL,[patient_doc] [int] NULL,[patient_room] [int] NULL,[patient_bed] [varchar](50) NULL,CONSTRAINT [PK_patient] PRIMARY KEY CLUSTERED ([patient_name] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[personnel]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[personnel]([emp_no] [int] NOT NULL,[emp_name] [varchar](50) NULL,[emp_dept_id] [int] NULL,[emp_duty] [varchar](50) NULL,[emp_xl] [varchar](50) NULL,[emp_gender] [varchar](50) NULL,[emp_birthday] [varchar](50) NULL,[emp_hometown] [varchar](50) NULL,[emp_couniry] [varchar](50) NULL,[emp_nation] [varchar](50) NULL,[emp_id] [varchar](50) NULL,[emp_marriage] [varchar](50) NULL,[emp_health] [varchar](50) NULL,[emp_startwork] [varchar](50) NULL,[emp_state] [varchar](50) NULL,[emp_homeaddress] [varchar](50) NULL,[emp_teleno] [varchar](50) NULL,[emp_email] [varchar](50) NULL,[emp_job_id] [int] NULL,CONSTRAINT [PK_personnel] PRIMARY KEY CLUSTERED ([emp_no] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_job_dept]') AND parent_object_id = OBJECT_ID(N'[dbo].[job]')) ALTER TABLE [dbo].[job] WITH CHECK ADD CONSTRAINT [FK_job_dept] FOREIGN KEY([dept_id]) REFERENCES [dbo].[dept] ([dept_id]) ON UPDATE CASCADE ON DELETE SET NULL GO ALTER TABLE [dbo].[job] CHECK CONSTRAINT [FK_job_dept] GO IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_salary_personnel]') AND parent_object_id = OBJECT_ID(N'[dbo].[salary]')) ALTER TABLE [dbo].[salary] WITH CHECK ADD CONSTRAINT [FK_salary_personnel] FOREIGN KEY([EMP_NO]) REFERENCES [dbo].[personnel] ([emp_no]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[salary] CHECK CONSTRAINT [FK_salary_personnel] GO IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_patient_chuang]') AND parent_object_id = OBJECT_ID(N'[dbo].[patient]')) ALTER TABLE [dbo].[patient] WITH CHECK ADD CONSTRAINT [FK_patient_chuang] FOREIGN KEY([patient_bed]) REFERENCES [dbo].[chuang] ([BED]) ON UPDATE CASCADE ON DELETE SET NULL GO ALTER TABLE [dbo].[patient] CHECK CONSTRAINT [FK_patient_chuang] GO IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_patient_personnel1]') AND parent_object_id = OBJECT_ID(N'[dbo].[patient]')) ALTER TABLE [dbo].[patient] WITH CHECK ADD CONSTRAINT [FK_patient_personnel1] FOREIGN KEY([patient_doc]) REFERENCES [dbo].[personnel] ([emp_no]) ON UPDATE CASCADE ON DELETE SET NULL GO ALTER TABLE [dbo].[patient] CHECK CONSTRAINT [FK_patient_personnel1] GO IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_personnel_job]') AND parent_object_id = OBJECT_ID(N'[dbo].[personnel]')) ALTER TABLE [dbo].[personnel] WITH CHECK ADD CONSTRAINT [FK_personnel_job] FOREIGN KEY([emp_job_id]) REFERENCES [dbo].[job] ([job_id]) ON UPDATE CASCADE ON DELETE SET NULL GO ALTER TABLE [dbo].[personnel] CHECK CONSTRAINT [FK_personnel_job]

2.4.2 初始數(shù)據(jù)的輸入

數(shù)據(jù)庫(kù)初始數(shù)據(jù)輸入可以用SQL語(yǔ)句插入也可以直接在可視化表內(nèi)輸入。

添加數(shù)據(jù)到tms表中:

INSERT INTO tms VALUES(admin,admin,GG)

INSERT INTO tms VALUES(S66,S66,HH)

添加數(shù)據(jù)到chuang表中:

添加數(shù)據(jù)到job表中:

數(shù)據(jù)添加到dept表中:

其他數(shù)據(jù)可以不初始化,而在軟件直接輸入保存在數(shù)據(jù)庫(kù)。


、各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

3.1 功能說(shuō)明
1各類(lèi)信息的錄入。

? ? 此功能設(shè)計(jì)在菜單欄上,分別有員工信息錄入、病人信息錄入、病床信息錄入、儀器信息錄入、藥劑信息錄入、崗位信息錄入、部門(mén)信息錄入。點(diǎn)擊相應(yīng)按鈕進(jìn)入相應(yīng)的信息錄入界面。需要注意的是,一、因?yàn)楦黝?lèi)數(shù)據(jù)有著密切聯(lián)系的原因,錄入界面的輸入框和選擇框需要進(jìn)行數(shù)據(jù)輸入約束,比如:在錄入病人信息的時(shí)候,病床號(hào)的信息必須是已經(jīng)存在并且為空閑狀態(tài)的病床。二、在進(jìn)行對(duì)數(shù)據(jù)庫(kù)的操作的時(shí)候,往往需要?jiǎng)?chuàng)建一個(gè)事務(wù),比如:錄入員工信息的同時(shí),員工工資的錄入。

2員工信息的管理。

? ? 員工信息的錄入已經(jīng)在錄入模塊,那么員工信息的管理界面中,有一個(gè)表格視圖用于數(shù)據(jù)顯示,另外有六個(gè)按鈕,分別為員工一覽按鈕、條件查詢員工信息按鈕、刪除信息按鈕、員工信息修改按鈕、工資報(bào)表按鈕和人事調(diào)動(dòng)按鈕。

? ? 其中員工一覽按鈕將員工信息顯示在本界面中的表格視圖,而其他的按鈕,點(diǎn)擊之后分別進(jìn)入相應(yīng)的信息管理界面,值得一提的是,工資報(bào)表按鈕和人事調(diào)動(dòng)按鈕點(diǎn)擊之后不能立即進(jìn)入管理界面,需要進(jìn)行權(quán)限認(rèn)證,輸入的管理員帳號(hào)和密碼與tms表中的超級(jí)管理員數(shù)據(jù)相對(duì)應(yīng)才能進(jìn)入管理界面。

? ? 條件查詢員工信息界面,可根據(jù)各字段對(duì)應(yīng)的信息進(jìn)行查詢,將查詢結(jié)果顯示于本界面中的表格視圖。

? ? 刪除信息界面,分為鼠標(biāo)單擊單行進(jìn)行刪除和根據(jù)字段信息進(jìn)行批量刪除。

? ? 員工信息修改界面,除了需要權(quán)限才可以訪問(wèn)的信息之外,其他信息可以在此頁(yè)面更改,修改方式是根據(jù)輸入需要修改的記錄與相應(yīng)的字段信息。

? ? ?工資報(bào)表界面是需要權(quán)限才能進(jìn)入的,一個(gè)表格視圖顯示數(shù)據(jù),兩個(gè)按鈕分別是查看報(bào)表和打印報(bào)表。另外在菜單欄還有一個(gè)工資信息修改按鈕,進(jìn)入工資信息修改界面。

? ? 人事調(diào)動(dòng)界面也是需要權(quán)限才能進(jìn)入的,界面內(nèi)可以對(duì)員工的所屬部門(mén)、所在崗位、職務(wù)等等信息的修改。


3病人信息的管理。

? ? 病人信息管理界面實(shí)現(xiàn)了數(shù)據(jù)的顯示,以及數(shù)據(jù)的刪查改操作。查詢操作分所有病人查詢和條件查詢。修改操作是根據(jù)輸入需要修改的記錄與相應(yīng)的字段信息。刪除操作分為鼠標(biāo)單擊單行進(jìn)行刪除和根據(jù)字段信息進(jìn)行批量刪除。(需要注意的是:刪除操作會(huì)影響病床的狀態(tài),變?yōu)閒ree)每次執(zhí)行操作后都會(huì)將操作后的信息顯示在表格視圖。


4醫(yī)院病床的管理。

病床管理界面實(shí)現(xiàn)了查詢操作,分所有病人查詢和條件查詢。床位信息錄入在菜單欄處。需要注意的是:病床信息錄入的時(shí)候,狀態(tài)默認(rèn)值為free狀態(tài),而病人信息錄入的時(shí)候,所選的病床號(hào)將變?yōu)?/span>?employ狀態(tài),病人信息刪除操作會(huì)由?employ狀態(tài)變?yōu)?/span>free狀態(tài)。


5儀器資源的管理。

? ? 儀器資源管理界面實(shí)現(xiàn)了數(shù)據(jù)的顯示,以及數(shù)據(jù)的刪查改操作。查詢操作分所有病人查詢和條件查詢。修改操作是根據(jù)輸入需要修改的記錄與相應(yīng)的字段信息。刪除操作分為鼠標(biāo)單擊單行進(jìn)行刪除和根據(jù)字段信息進(jìn)行批量刪除。每次執(zhí)行操作后都會(huì)將操作后的信息顯示在表格視圖。

6藥劑資源的管理。

? ? 藥劑資源管理界面實(shí)現(xiàn)了數(shù)據(jù)的顯示,以及數(shù)據(jù)的刪查改操作。查詢操作分所有病人查詢和條件查詢。修改操作是根據(jù)輸入需要修改的記錄與相應(yīng)的字段信息。刪除操作分為鼠標(biāo)單擊單行進(jìn)行刪除和根據(jù)字段信息進(jìn)行批量刪除。每次執(zhí)行操作后都會(huì)將操作后的信息顯示在表格視圖。

7部門(mén)崗位信息的查詢。

? ? 部門(mén)崗位信息查詢界面只實(shí)現(xiàn)了所有部門(mén)信息和所有崗位信息的查詢。


8系統(tǒng)用戶管理、權(quán)限管理。

? ? 本系統(tǒng)有兩個(gè)管理員,一個(gè)是普通管理員,另一個(gè)是超級(jí)管理員。兩個(gè)管理員都可以登錄本系統(tǒng),而且歡迎界面會(huì)不同。另外只有超級(jí)管理員才有權(quán)限進(jìn)入工資報(bào)表界面和人事調(diào)動(dòng)界面。

3.2 用戶界面設(shè)計(jì)(部分)

完成數(shù)據(jù)庫(kù)創(chuàng)建和功能說(shuō)明以后,我們可以進(jìn)行下一步工作, 即設(shè)計(jì)用戶界面。本系統(tǒng)的前端制作用的是QT Creator(C++),我們?cè)O(shè)計(jì)好醫(yī)院管理系統(tǒng)的窗體,如下圖所示。

1系統(tǒng)登錄歡迎界面及主界面設(shè)計(jì)

2員工管理模塊主界面及子頁(yè)面

(3菜單欄模塊及子頁(yè)面

3.3 各功能模塊的實(shí)現(xiàn)(部分)
????下面是部分功能的核心代碼,雖說(shuō)部分,但是對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的增刪查改都已經(jīng)實(shí)現(xiàn)了,而且不同數(shù)據(jù)的很多相同操作都有異曲同工之妙的。遺憾的是還沒(méi)學(xué)會(huì)使用事務(wù)處理數(shù)據(jù),只能按先后順序操作。

(1)數(shù)據(jù)庫(kù)的連接

本系統(tǒng)前端和后端數(shù)據(jù)庫(kù)的連接使用的是ODBC數(shù)據(jù)源方式,實(shí)現(xiàn)的代碼如下:

void OpenDatabase() {QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");db.setDatabaseName(QString("DRIVER={SQL SERVER};""SERVER=%1;" //服務(wù)器名稱"DATABASE=%2;"//數(shù)據(jù)庫(kù)名).arg("HASEE-PC\\SQLEXPRESS").arg("hospital"));if (!db.open()){QMessageBox::critical(0, qApp->tr("Cannot open database"),db.lastError().databaseText(), QMessageBox::Cancel);} }

(2)員工管理模塊設(shè)計(jì)

員工一覽:

void MainWindow::on_pushButton_5_clicked() {QSqlQueryModel *model = new QSqlQueryModel;model->setQuery("select * from personnel");//這里直接設(shè)置SQL語(yǔ)句,忽略最后一個(gè)參數(shù)ui->tableView_2->setModel(model);//以下是視覺(jué)方面的效果,不加也沒(méi)影響//隔行變色ui->tableView_2->setAlternatingRowColors(true);//設(shè)置行高int row_count = model->rowCount();for(int i =0; i < row_count; i++){ui->tableView_2->setRowHeight(i, 20);} }

工資報(bào)表:

void Salary::on_pushButton_clicked() {QSqlQueryModel *model = new QSqlQueryModel;model->setQuery("select * from salary");//這里直接設(shè)置SQL語(yǔ)句,忽略最后一個(gè)參數(shù)ui->tableView->setModel(model);//以下是視覺(jué)方面的效果,不加也沒(méi)影響//隔行變色ui->tableView->setAlternatingRowColors(true);//設(shè)置行高int row_count = model->rowCount();for(int i =0; i < row_count; i++){ui->tableView->setRowHeight(i, 20);} }

人事調(diào)動(dòng):

void Change::on_pushButton_clicked() {QMessageBox::StandardButton button;button = QMessageBox::question(this, tr("確認(rèn)"),QString(tr("是否修改此信息?")),QMessageBox::Yes | QMessageBox::No);if (button == QMessageBox::No) {this->close(); //忽略退出信號(hào),程序繼續(xù)運(yùn)行}else if (button == QMessageBox::Yes) {QSqlQueryModel *model = new QSqlQueryModel;QString temStr,strSQL="update personnel set ";temStr="emp_dept_id=";strSQL+=temStr;strSQL+=""+this->ui->comboBox_2->currentText()+",";strSQL+="emp_duty=";strSQL+="'"+this->ui->a->text().trimmed()+"',";strSQL+="emp_job_id=";strSQL+=""+this->ui->comboBox_3->currentText()+"";strSQL+=" where emp_no=";strSQL+=""+this->ui->comboBox->currentText()+"";// query.exec(QObject::tr("update potion set id=333 where id=5"));// qDebug()<<strSQL;model->setQuery(strSQL);QMessageBox msgBox;msgBox.setText("修改成功");msgBox.exec();this->close();} }

條件查詢員工信息:

void PersonnelCha::on_pushButton_clicked() {QSqlQueryModel *model = new QSqlQueryModel;QString temStr,strSQL="SELECT * FROM personnel where ";temStr=this->ui->comboBox->currentText();strSQL+=temStr+"=";strSQL+="'"+this->ui->a->text()+"'";model->setQuery(strSQL);//這里直接設(shè)置SQL語(yǔ)句,忽略最后一個(gè)參數(shù)ui->tableView->setModel(model);//以下是視覺(jué)方面的效果,不加也沒(méi)影響//隔行變色ui->tableView->setAlternatingRowColors(true);//設(shè)置行高int row_count = model->rowCount();for(int i =0; i < row_count; i++){ui->tableView->setRowHeight(i, 20);} }

(3)病人管理模塊設(shè)計(jì)

病人信息修改:

void MainWindow::on_pushButton_22_clicked() {// QSqlQuery query;QSqlQueryModel *model = new QSqlQueryModel;QString temStr,strSQL="update patient set ";temStr=this->ui->comboBox_10->currentText();strSQL+=temStr+"=";strSQL+="'"+this->ui->patient_updata->text().trimmed()+"'";strSQL+=" where patient_name=";strSQL+="'"+this->ui->patient_id->text().trimmed()+"'";// query.exec(QObject::tr("update potion set id=333 where id=5"));model->setQuery(strSQL);//這里直接設(shè)置SQL語(yǔ)句,忽略最后一個(gè)參數(shù)model->setQuery("select * from patient");//這里直接設(shè)置SQL語(yǔ)句,忽略最后一個(gè)參數(shù)ui->tableView->setModel(model);//以下是視覺(jué)方面的效果,不加也沒(méi)影響//隔行變色ui->tableView->setAlternatingRowColors(true);//設(shè)置行高int row_count = model->rowCount();for(int i =0; i < row_count; i++){ui->tableView->setRowHeight(i, 20);} }

(4)病床管理模塊設(shè)計(jì)

病床查詢:

void MainWindow::on_pushButton_13_clicked() {QSqlQueryModel *model = new QSqlQueryModel;QString temStr,strSQL="SELECT * FROM chuang where ";temStr=this->ui->comboBox_3->currentText();strSQL+=temStr+"=";strSQL+="'"+this->ui->chuang_cha->text()+"'";model->setQuery(strSQL);//這里直接設(shè)置SQL語(yǔ)句,忽略最后一個(gè)參數(shù)ui->tableView_3->setModel(model);//以下是視覺(jué)方面的效果,不加也沒(méi)影響//隔行變色ui->tableView_3->setAlternatingRowColors(true);//設(shè)置行高int row_count = model->rowCount();for(int i =0; i < row_count; i++){ui->tableView_3->setRowHeight(i, 20);} }

項(xiàng)目代碼:GitHub - Killzone-CN/Hospital: 這是一個(gè)使用QT編寫(xiě)的醫(yī)院管理系統(tǒng)。。。。。。。

總結(jié)

以上是生活随笔為你收集整理的QT实现简单的医院管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美自拍偷拍一区二区 | 九九精品免费 | 国产精品婷婷 | 亚洲国产精品午夜久久久 | 日韩不卡视频在线观看 | 星空无限mv国产剧入选 | 色综合福利| 大尺度床戏揉捏胸视频 | 国产社区在线 | 欧美视频亚洲视频 | 人妻久久久一区二区三区 | 神马午夜久久 | 亚洲欧洲在线观看 | 污网站免费看 | 五月伊人网 | 影音先锋男人天堂 | 日本不卡免费 | 在线观看国产成人 | 国产精品波多野结衣 | 欧美真人性野外做爰 | 激情综合五月天 | 色无极在线 | 午夜男人网 | 日韩精品视频一区二区在线观看 | 美女无遮挡网站 | 韩国美女av| 日本少妇毛茸茸高潮 | 97久久久久久久 | 国产精品后入内射日本在线观看 | 日本不卡高字幕在线2019 | 久久精品视频6 | 欧美xxxx在线| 久久中文字 | 99久久久国产精品 | 国产精品zjzjzj在线观看 | 日韩在线一区视频 | 男女无遮挡网站 | 91视频网页 | 国产在线视频网址 | 国产精品一区av | 亚洲国产电影在线观看 | 天天色天天射天天操 | 91超碰在线免费观看 | 成人毛片在线免费观看 | 亚洲欧洲在线播放 | 综合久草 | 免费中文视频 | 国产乱国产乱老熟300部视频 | 美女久久久久久久久久 | 国产男男gay体育生白袜 | 成人网视频 | 91久久久久久久久久 | 内射毛片内射国产夫妻 | 四虎av在线 | 日韩中字在线 | 日本在线视频免费观看 | 国产精品国产三级国产aⅴ浪潮 | 九九天堂网 | 福利精品| 一本到免费视频 | 大胸美女被爆操 | 日本加勒比一区 | 欧美一级在线免费观看 | 手机免费看av| 在线婷婷 | 国产日韩欧美精品在线 | 日本高清视频www夜色资源 | 影音先锋二区 | 啪啪在线观看 | 97xxxxx| 少妇29p| 伊人av一区 | 亚洲天堂va| 日韩 欧美 亚洲 国产 | 国内外成人激情视频 | 午夜精品久久久久久久99老熟妇 | 欧美极品少妇xxxxⅹ免费视频 | 亚洲精品7777| 日韩黄色网页 | aaaa黄色| 三级做爰在线观看视频 | 久久久久久久久蜜桃 | 欧美一区二 | 中文字幕在线观看高清 | 亚洲无码精品在线观看 | av在线伊人| 美女视频网址 | 亚洲无人区码一码二码三码 | 国产福利电影在线 | 人妻 日韩精品 中文字幕 | 一区二区蜜桃 | 亚洲天堂视频网站 | 亚洲av成人片色在线观看高潮 | 五月天丁香久久 | 日本激情视频在线观看 | 久久综合福利 | 亚洲精品在线免费 | 久久久久99精品成人片直播 | 国产精品一区电影 |