(附源码)php养老院管理系统 毕业设计 202026
PHP養(yǎng)老院管理系統(tǒng)
摘?要
隨著互聯(lián)網(wǎng)趨勢(shì)的到來(lái),各行各業(yè)都在考慮利用互聯(lián)網(wǎng)將自己推廣出去,最好方式就是建立自己的互聯(lián)網(wǎng)系統(tǒng),并對(duì)其進(jìn)行維護(hù)和管理。在現(xiàn)實(shí)運(yùn)用中,應(yīng)用軟件的工作規(guī)則和開發(fā)步驟,采用php技術(shù)建設(shè)養(yǎng)老院管理系統(tǒng)。
本設(shè)計(jì)主要實(shí)現(xiàn)集人性化、高效率、便捷等優(yōu)點(diǎn)于一身的養(yǎng)老院管理系統(tǒng),完成首頁(yè)、用戶管理(管理員、家屬用戶、護(hù)工用戶)更多管理(老人用戶、入住繳費(fèi)、薪資管理、請(qǐng)假管理、健康管理、飲食管理、問(wèn)題記錄)等功能模塊。系統(tǒng)通過(guò)瀏覽器與服務(wù)器進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)的交互與變更。只需通過(guò)一臺(tái)電腦,動(dòng)動(dòng)手指就可以操作系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)通信管理。整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程都充分考慮了數(shù)據(jù)的安全、穩(wěn)定及可靠等問(wèn)題,而且操作過(guò)程簡(jiǎn)單。本系統(tǒng)通過(guò)科學(xué)的管理方式、便捷的服務(wù)提高了工作效率,減少了數(shù)據(jù)存儲(chǔ)上的錯(cuò)誤和遺漏。
經(jīng)過(guò)本人的綜合考慮,養(yǎng)老院管理系統(tǒng)的設(shè)計(jì)是基于PHP技術(shù)、Mysql數(shù)據(jù)庫(kù)、Apache服務(wù)器的方式設(shè)計(jì),以ZendStudio和Dreamweaver為開發(fā)工具,在ZendStudio集成環(huán)境下調(diào)試并允許,并運(yùn)用Photoshop技術(shù)美化網(wǎng)頁(yè),輔之以CSS技術(shù)。
關(guān)鍵詞:數(shù)據(jù)通信;PHP語(yǔ)言;關(guān)系型數(shù)據(jù)庫(kù);數(shù)據(jù)存儲(chǔ)
PHP nursing home management system
Abstract
With the advent of the Internet trend, all walks of life are considering using the Internet to promote themselves. The best way is to establish their own Internet system and maintain and manage it. In practical application, according to the working rules and development steps of the application software, PHP technology is used to build the nursing home management system.
This design mainly realizes the nursing home management system integrating the advantages of humanization, high efficiency and convenience, and completes the functional modules such as home page, user management (administrators, family members and nursing workers) and more management (elderly users, check-in payment, salary management, leave management, health management, diet management and problem record). The system communicates with the server through the browser to realize the interaction and change of data. You can operate the system and realize data communication management by moving your fingers through a computer. The safety, stability and reliability of data are fully considered in the design process of the whole system, and the operation process is simple. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage.
After my comprehensive consideration, the design of nursing home management system is based on PHP technology, MySQL database and Apache server. Zendstudio and Dreamweaver are used as development tools, debugged and allowed in zendstudio integrated environment, and Photoshop technology is used to beautify web pages, supplemented by CSS technology.
Keywords: data communication; PHP language; Relational database; data storage
目??錄
第1章 緒論
1.1 研究背景
1.2 開發(fā)意義
1.3 本文的組織結(jié)構(gòu)
第2章 相關(guān)技術(shù)介紹
2.1 系統(tǒng)開發(fā)平臺(tái)
2.2 平臺(tái)開發(fā)相關(guān)技術(shù)
2.2.2 ?mysql數(shù)據(jù)庫(kù)介紹
2.2.3 ?MySQL環(huán)境配置
2.2.4 ?B/S架構(gòu)
第3章 系統(tǒng)分析
3.1 可行性分析
3.1.1 技術(shù)可行性分析
3.1.2 經(jīng)濟(jì)可行性分析
3.1.3 操作可行性分析
3.2 功能需求分析
3.3 非功能需求分析
3.4 數(shù)據(jù)流程分析
第4章 系統(tǒng)設(shè)計(jì)
4.1 系統(tǒng)架構(gòu)設(shè)計(jì)
4.2 系統(tǒng)功能結(jié)構(gòu)
4.3 功能模塊設(shè)計(jì)
4.4 數(shù)據(jù)庫(kù)設(shè)計(jì)
4.4.1 概念模型
4.4.2 關(guān)系模型
4.4.3 數(shù)據(jù)表
第5章 系統(tǒng)實(shí)現(xiàn)
5.1 登錄模塊的實(shí)現(xiàn)
5.2 用戶子系統(tǒng)模塊的實(shí)現(xiàn)
5.2.1 用戶首頁(yè)模塊
5.2.2 注冊(cè)模塊
5.2.3 老人賬單模塊
5.2.4 請(qǐng)假模塊
5.3 管理員子系統(tǒng)模塊的實(shí)現(xiàn)
5.3.1 用戶管理模塊
5.3.2 個(gè)人資料模塊
5.3.3 老人管理模塊
5.3.4 醫(yī)護(hù)人員管理模塊
5.3.5 醫(yī)護(hù)人員工資模塊
第6章 系統(tǒng)測(cè)試
6.1 測(cè)試目的
6.2 測(cè)試過(guò)程
6.3 測(cè)試結(jié)果
第7章 總結(jié)與展望
參考文獻(xiàn)
致謝
養(yǎng)老院是集醫(yī)療、護(hù)理、康復(fù)、膳食、社工等服務(wù)服務(wù)于一體的綜合行養(yǎng)老院,經(jīng)過(guò)我們前期的調(diào)查,院方大部分工作采用手工操作方式,會(huì)帶來(lái)工作效率過(guò)低,運(yùn)營(yíng)成本過(guò)大的問(wèn)題。?
院方可用合理的較少投入取得更好的服務(wù)效果,在滿足社會(huì)需求、注重社會(huì)效益的同時(shí),獲得相應(yīng)的經(jīng)濟(jì)效益,從而提高院方的長(zhǎng)遠(yuǎn)發(fā)展能力,增強(qiáng)內(nèi)部控制能力,在人、財(cái)、物的綜合運(yùn)營(yíng)管理上得到更多、更好的方法和手段,用有限的資源取得最合理的社會(huì)和經(jīng)濟(jì)效益的產(chǎn)出。?
養(yǎng)老院管理系統(tǒng)分為老人檔案管理系統(tǒng)和內(nèi)部管理系統(tǒng)等兩部分組成。養(yǎng)員檔案管理是以滿足院方各個(gè)科室業(yè)務(wù)管理需要為基礎(chǔ),對(duì)醫(yī)療、護(hù)理、康復(fù)、膳食、業(yè)務(wù)等業(yè)務(wù)進(jìn)行綜合性信息化管理。養(yǎng)老院內(nèi)部管理系統(tǒng)以院方人、財(cái)、物綜合管理為核心,包含財(cái)務(wù)管理、人力資源管理、績(jī)效管理、管理層決策智能分析等功能,系統(tǒng)采取一體化的運(yùn)營(yíng)模式,可作為提高院方綜合運(yùn)營(yíng)能力的有效手段。
養(yǎng)老院在關(guān)愛老年人身心健康、提供必要的社會(huì)幫助方面發(fā)揮著不可或缺的重要作用,同社會(huì)中其他性質(zhì)的企業(yè)一樣,養(yǎng)老院同樣需要高效率和高標(biāo)準(zhǔn)的管理系統(tǒng),以達(dá)到為廣大老年客戶提供高水準(zhǔn)服務(wù)的目的。當(dāng)前的養(yǎng)老院機(jī)構(gòu)的現(xiàn)狀和存在的問(wèn)題有以下兩個(gè)方面:1、信息化基礎(chǔ)薄弱。養(yǎng)老院當(dāng)前信息化的一些基礎(chǔ)信息采集不足,無(wú)法滿足信息共享、統(tǒng)計(jì)、查詢等業(yè)務(wù)的需要。2、信息流轉(zhuǎn)不暢。當(dāng)前養(yǎng)老院信息的傳遞依靠傳統(tǒng)方式,缺乏高效流轉(zhuǎn),且流轉(zhuǎn)渠道不暢。
養(yǎng)老院服務(wù)的規(guī)模化和多樣性對(duì)管理和服務(wù)工作帶來(lái)了挑戰(zhàn),對(duì)于現(xiàn)代養(yǎng)老機(jī)構(gòu)而言,傳統(tǒng)的管理方式已難以適應(yīng)現(xiàn)代化養(yǎng)老服務(wù)的需要,而采用信息化集成管理,可以使養(yǎng)老機(jī)構(gòu)的管理和服務(wù)工作更加便捷和高效。
第一章是緒論,本文章的開頭部分,對(duì)本題目的研究背景和研究意義等一些做文字性的描述。
第二章研究了養(yǎng)老院管理系統(tǒng)的所采用的開發(fā)技術(shù)和開發(fā)工具。
第三章是系統(tǒng)分析部分,包括系統(tǒng)總體需求描述、功能性角度分析系統(tǒng)需求、非功能性等各個(gè)方面分析系統(tǒng)是否可以實(shí)現(xiàn)。
第四章是系統(tǒng)設(shè)計(jì)部分,本文章的重要部分,提供了系統(tǒng)架構(gòu)的詳細(xì)設(shè)計(jì)和一些主要功能模塊的設(shè)計(jì)說(shuō)明。
第五章是系統(tǒng)的具體實(shí)現(xiàn),介紹系統(tǒng)的各個(gè)模塊的具體實(shí)現(xiàn)。
第六章在前幾章的基礎(chǔ)上對(duì)系統(tǒng)進(jìn)行測(cè)試和運(yùn)行。
最后對(duì)系統(tǒng)進(jìn)行了認(rèn)真的總結(jié),以此對(duì)未來(lái)有一個(gè)新的展望。
此次管理系統(tǒng)的關(guān)鍵技術(shù)和架構(gòu)由B/S結(jié)構(gòu)、php和mysql數(shù)據(jù)庫(kù),是本系統(tǒng)的關(guān)鍵開發(fā)技術(shù),對(duì)系統(tǒng)的整體、數(shù)據(jù)庫(kù)、功能模塊、系統(tǒng)頁(yè)面以及系統(tǒng)程序等設(shè)計(jì)進(jìn)行了詳細(xì)的研究與規(guī)劃。
在該養(yǎng)老院管理系統(tǒng)中,Element UI能給用戶提供更多的方便,其特點(diǎn)一是方便學(xué)習(xí),方便快捷;二是有非常大的信息儲(chǔ)存量,主要功能是用在對(duì)數(shù)據(jù)庫(kù)中查詢和編程。其功能有比較靈活的數(shù)據(jù)應(yīng)用,只需利用小部分代碼就能實(shí)現(xiàn)非常強(qiáng)大的功能。因此,利用Element UI 技術(shù)進(jìn)行系統(tǒng)代碼管理是該系統(tǒng)數(shù)據(jù)庫(kù)的首選。
??2.2.1 MVVM模式介紹:
MVVM是Model-View-ViewModel的簡(jiǎn)寫。它本質(zhì)上就是MVC 的改進(jìn)版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務(wù)邏輯分開。當(dāng)然這些事 ViewModel 已經(jīng)幫我們做了,它可以取出 Model 的數(shù)據(jù)同時(shí)幫忙處理 View 中由于需要展示內(nèi)容而涉及的業(yè)務(wù)邏輯。微軟的WPF帶來(lái)了新的技術(shù)體驗(yàn),如Silverlight、音頻、視頻、3D、動(dòng)畫……,這導(dǎo)致了軟件UI層更加細(xì)節(jié)化、可定制化。同時(shí),在技術(shù)層面,WPF也帶來(lái)了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來(lái)便是MVP(Model-View-Presenter)模式與WPF結(jié)合的應(yīng)用方式時(shí)發(fā)展演變過(guò)來(lái)的一種新型架構(gòu)框架。它立足于原有MVP框架并且把WPF的新特性糅合進(jìn)去,以應(yīng)對(duì)客戶日益復(fù)雜的需求變化。
??2.2.2 ?mysql數(shù)據(jù)庫(kù)介紹?
利用MYSQL的數(shù)據(jù)獨(dú)立性、安全性等特點(diǎn),在軟件項(xiàng)目中對(duì)數(shù)據(jù)進(jìn)行操作,可以保證數(shù)據(jù)準(zhǔn)確無(wú)誤,并降低了程序員的應(yīng)用開發(fā)時(shí)間。
MYSQL的特點(diǎn)是支持多線程,能方便的對(duì)系統(tǒng)資源充分利用,有效提高速度,還提供多種方式途徑來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接;MYSQL的功能相對(duì)弱小、規(guī)模也小,但本系統(tǒng)要求不高,MYSQL完全可以滿足本系統(tǒng)使用。
利用MYSQL建立系統(tǒng)數(shù)據(jù)庫(kù),不僅有利于數(shù)據(jù)處理業(yè)務(wù)的早期整合,還能利于發(fā)展后兩種數(shù)據(jù)擴(kuò)展的操作。
2.2.3 ?MySQL環(huán)境配置
本系統(tǒng)的數(shù)據(jù)使用的是MySQL,所以要將MySQL安裝到指定目錄,如果下載的是非安裝的MySQL壓縮包,直接解壓到指定目錄就可以了。然后點(diǎn)擊C:\Program Files\MySQL\bin\winMySQLadmin.exe這個(gè)文件其中C:\Program Files\MySQL是MySQL安裝目錄。輸入winMySQLadmin的初始用戶、密碼(注:這不是MySQL里的用戶、密碼)隨便填不必在意,確定之后右下角任務(wù)的啟動(dòng)欄會(huì)出現(xiàn)一個(gè)紅綠燈的圖標(biāo),紅燈亮代表服務(wù)停止,綠燈亮代表服務(wù)正常,左擊這個(gè)圖標(biāo)->winnt->install the service 安裝此服務(wù),再左擊這個(gè)圖標(biāo)->winnt->start the service 啟動(dòng)MySQL服務(wù)。
修改MySQL數(shù)據(jù)庫(kù)的root密碼。用cmd進(jìn)入命令行模式輸入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回車出現(xiàn)Enter password: ,這是要輸入原密碼. 剛安裝時(shí)密碼為空,所以直接回車,此時(shí)MySQL 中賬號(hào) root 的密碼被改為 123 安裝完畢。
2.2.4 ?B/S架構(gòu)?
B/S結(jié)構(gòu)是目前使用最廣泛的結(jié)構(gòu)模式,它不但能讓系統(tǒng)的開發(fā)更加的簡(jiǎn)單,易操作,而且還能夠?qū)ζ溥M(jìn)行維護(hù)。在使用B/S結(jié)構(gòu)時(shí)只要在計(jì)算機(jī)中安裝好數(shù)據(jù)庫(kù)和一些很常用的瀏覽器就行了。數(shù)據(jù)庫(kù)和瀏覽器就會(huì)進(jìn)行信息連接,能實(shí)現(xiàn)很多功能,此結(jié)構(gòu)通過(guò)能上網(wǎng)的電腦是可以直接進(jìn)行使用,而且在使用中極大的減少了工作的維護(hù)。基于B/S的軟件數(shù)據(jù)庫(kù)之間都是獨(dú)立使用的,因此是非常可靠的。因?yàn)榛诖私Y(jié)構(gòu)可以清晰的看到系統(tǒng)正在處理的所有業(yè)務(wù),還能夠及時(shí)的讓管理人員根據(jù)當(dāng)時(shí)的實(shí)際情況做出相應(yīng)的對(duì)策,這樣能避免用戶的損失。B/S結(jié)構(gòu)的管理模式是集中式的,用戶使用此系統(tǒng)在生成數(shù)據(jù)后就可以將這此數(shù)據(jù)存儲(chǔ)到系統(tǒng)的數(shù)據(jù)庫(kù)中,方便以后使用滿足人們的所有的需求。
?
圖2-1 ?三層結(jié)構(gòu)圖
2.2.5 ?Thinkphp框架介紹:
ThinkPHP是為了簡(jiǎn)化企業(yè)級(jí)應(yīng)用開發(fā)和敏捷WEB應(yīng)用開發(fā)而誕生的。最早誕生于2006年初,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開源協(xié)議發(fā)布。ThinkPHP從誕生以來(lái)一直秉承簡(jiǎn)潔實(shí)用的設(shè)計(jì)原則,在保持出色的性能和至簡(jiǎn)的代碼的同時(shí),也注重易用性。并且擁有眾多原創(chuàng)功能和特性,在社區(qū)團(tuán)隊(duì)的積極參與下,在易用性、擴(kuò)展性和性能方面不斷優(yōu)化和改進(jìn)。?
ThinkPHP是一個(gè)快速、兼容而且簡(jiǎn)單的輕量級(jí)國(guó)產(chǎn)PHP開發(fā)框架,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協(xié)議發(fā)布,從Struts結(jié)構(gòu)移植過(guò)來(lái)并做了改進(jìn)和完善,同時(shí)也借鑒了國(guó)外很多優(yōu)秀的框架和模式,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和MVC模式,融合了Struts的思想和TagLib(標(biāo)簽庫(kù))、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Linux等服務(wù)器環(huán)境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多種數(shù)據(jù)庫(kù)以及PDO擴(kuò)展,ThinkPHP框架本身沒有什么特別模塊要求,具體的應(yīng)用系統(tǒng)運(yùn)行環(huán)境要求視開發(fā)所涉及的模塊。
作為一個(gè)整體開發(fā)解決方案,ThinkPHP能夠解決應(yīng)用開發(fā)中的大多數(shù)需要,因?yàn)槠渥陨戆说讓蛹軜?gòu)、兼容處理、基類庫(kù)、數(shù)據(jù)庫(kù)訪問(wèn)層、模板引擎、緩存機(jī)制、插件機(jī)制、角色認(rèn)證、表單處理等常用的組件,并且對(duì)于跨版本、跨平臺(tái)和跨數(shù)據(jù)庫(kù)移植都比較方便。并且每個(gè)組件都是精心設(shè)計(jì)和完善的,應(yīng)用開發(fā)過(guò)程僅僅需要關(guān)注您的業(yè)務(wù)邏輯。
一個(gè)完整的系統(tǒng),可行性分析是必須要有的,因?yàn)樗P(guān)系到系統(tǒng)生存問(wèn)題,對(duì)開發(fā)的意義進(jìn)行分析,能否通過(guò)本系統(tǒng)來(lái)補(bǔ)充線下養(yǎng)老院管理系統(tǒng)查詢模式中的缺限,去解決其中的不足等,通過(guò)對(duì)本系統(tǒng),不僅能使工作量不斷地減少,還能使工作和管理的效率更加高。所以開發(fā)該系統(tǒng)能實(shí)現(xiàn)更大的意義和價(jià)值, 系統(tǒng)完成后,能否達(dá)到預(yù)期效果就要通過(guò)可行性分析,分析之后,決定此系統(tǒng)是否開發(fā)。該養(yǎng)老院管理系統(tǒng)的開發(fā)設(shè)計(jì)中,對(duì)技術(shù)、經(jīng)濟(jì)、操作方面進(jìn)行了可行性分析;?
所謂的技術(shù)可行性就是在限定時(shí)間,前期擬定的功能能否被滿足。在開發(fā)設(shè)計(jì)上是否會(huì)遇上解決不了的問(wèn)題。做完的項(xiàng)目能否被很好地應(yīng)用,如果存在缺點(diǎn)在后期的維護(hù)上是否存在很大的難度。在對(duì)這個(gè)系統(tǒng)評(píng)估后,認(rèn)定已存在的技術(shù)能達(dá)成目標(biāo)。用php技術(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)的頁(yè)面,嵌入低依賴性的設(shè)計(jì)模式,靈活的數(shù)據(jù)庫(kù),配合穩(wěn)定的服務(wù)器,整個(gè)系統(tǒng)的運(yùn)行效率大大提升。由此可見,在技術(shù)層面達(dá)成目標(biāo)不是非非之想。
在項(xiàng)目上使用的工具大部分都是是當(dāng)下流行開源免費(fèi)的,所以在開發(fā)前期,開發(fā)時(shí)用于項(xiàng)目的經(jīng)費(fèi)將會(huì)大大降低,不會(huì)讓開發(fā)該軟件在項(xiàng)目啟動(dòng)期受到經(jīng)費(fèi)的影響,所以經(jīng)濟(jì)上還是可行的。盡量用最少的花費(fèi)去滿足用戶的需求。省下經(jīng)費(fèi)用于人工費(fèi),以及設(shè)備費(fèi)用。將在無(wú)紙化,高效率的道路上越走越遠(yuǎn)。
本系統(tǒng)實(shí)現(xiàn)功能的操作很簡(jiǎn)單,普通電腦的常見配置就可以運(yùn)行本軟件,并且只要粗通電腦使用的基本常識(shí)就可以流暢的使用本軟件。電腦具備連接互聯(lián)網(wǎng)的能力,并且可以正常訪問(wèn)系統(tǒng),并不需要操作者有什么高超的能力,只需了解業(yè)務(wù)流程,并且按照專業(yè)知識(shí)進(jìn)行正確操作即可,所以養(yǎng)老院管理系統(tǒng)具備操作可行性。
在系統(tǒng)開發(fā)設(shè)計(jì)前,應(yīng)該對(duì)功能做初步設(shè)想,清楚這個(gè)管理系統(tǒng)有什么板塊,每個(gè)板塊有什么功能,整體的設(shè)計(jì)是否滿足使用者的需求,接著對(duì)所開發(fā)的系統(tǒng)功能進(jìn)行的詳細(xì)分析總結(jié),從而設(shè)計(jì)出完整的系統(tǒng)并將其實(shí)現(xiàn)。用戶和開發(fā)人員的交流分析,使其達(dá)到最佳理解程度,使系統(tǒng)功能達(dá)到最佳。
用戶用例圖如下所示。
?
?
圖3-1 用戶用例圖
管理員用例圖如下所示。
?
?
圖3-2 管理員用例圖
醫(yī)護(hù)人員用例圖如下所示。
?
圖3-3 護(hù)工人員用例圖
養(yǎng)老院管理系統(tǒng)在對(duì)需求做解析后,整個(gè)系統(tǒng)主要分為兩個(gè)部分:管理員和普通用戶、醫(yī)護(hù)人員,每個(gè)模塊下的分支功能不一樣。對(duì)功能做出如下說(shuō)明:
普通用戶模塊:
賬號(hào)注冊(cè)。
賬號(hào)登錄認(rèn)證。
管理個(gè)人資料信息,修改可修改的信息項(xiàng)。
老人賬單查詢,同時(shí)查看歷史已有賬單的記錄。
醫(yī)護(hù)人員模塊:
提交請(qǐng)假,同時(shí)查看歷史已提交的請(qǐng)假記錄。
發(fā)布老人,并可以銷毀某個(gè)老人,更新老人數(shù)據(jù),模糊搜索老人數(shù)據(jù)等。
健康管理錄入,同時(shí)查看歷史已有健康管理的記錄。
醫(yī)護(hù)人員工資錄入,同時(shí)查看歷史已錄入工資的記錄。
管理員模塊:
維護(hù)普通用戶,審核普通用戶的賬號(hào),可以凍結(jié)普通用戶的登錄權(quán)限,或者刪除普通用戶賬號(hào)。
醫(yī)護(hù)人員工資錄入,同時(shí)查看歷史已錄入工資的記錄。
發(fā)布醫(yī)護(hù)人員,并可以銷毀某個(gè)醫(yī)護(hù)人員,更新醫(yī)護(hù)人員數(shù)據(jù),模糊搜索醫(yī)護(hù)人員數(shù)據(jù)等。
管理老人賬單數(shù)據(jù)。
維護(hù)醫(yī)護(hù)人員工資數(shù)據(jù)。
查看醫(yī)護(hù)人員提交的請(qǐng)假數(shù)據(jù),管理員有權(quán)利維護(hù)它。
系統(tǒng)非功能需求有非常多,比如性能需求、可承載最大用戶數(shù)、穩(wěn)定性、易用性需求等。本系統(tǒng)分析時(shí)考慮到易用性需求,因?yàn)橄到y(tǒng)是給人使用的,所以必須充分從用戶的角度出發(fā),考慮用戶體驗(yàn),使系統(tǒng)易理解易上手易操作。
零層數(shù)據(jù)流程圖包括了登錄注冊(cè)、用戶功能和檢索維護(hù)等模塊,在登錄注冊(cè)模塊使用到的數(shù)據(jù)存儲(chǔ)有用戶賬戶文檔,用戶功能模塊需要的存儲(chǔ)是用戶各功能模塊數(shù)據(jù)文檔,檢索維護(hù)是使用以上這些數(shù)據(jù)文檔通過(guò)關(guān)鍵詞進(jìn)行檢索。
系統(tǒng)的零層數(shù)據(jù)流圖如下圖所示。
?
圖3-2系統(tǒng)數(shù)據(jù)流圖(零層)
一層數(shù)據(jù)流程圖是對(duì)零層數(shù)據(jù)流程圖的細(xì)化,將登錄注冊(cè)細(xì)分為填制登錄注冊(cè)數(shù)據(jù)和完善數(shù)據(jù),用戶功能細(xì)分為用戶基本功能和用戶主要功能。
系統(tǒng)的一層數(shù)據(jù)流圖如下圖所示。
?
圖3-3系統(tǒng)數(shù)據(jù)流圖(一層)
二層數(shù)據(jù)流程是對(duì)一層數(shù)據(jù)流層圖中填寫登錄注冊(cè)信息、用戶功能的細(xì)化。即:填寫登錄注冊(cè)信息細(xì)化為填制信息、后臺(tái)審核,用戶功能細(xì)化為個(gè)人資料修改、老人查詢、老人賬單查詢、醫(yī)護(hù)人員資料修改、用戶注冊(cè)查看、老人錄入、工資查詢、請(qǐng)假申請(qǐng)、老人賬單錄入等操作。
系統(tǒng)的二層數(shù)據(jù)流圖如下圖所示。
?
圖3-4系統(tǒng)數(shù)據(jù)流圖(二層)
目前B/S體系的系統(tǒng)主要的數(shù)據(jù)訪問(wèn)方式是:通過(guò)瀏覽器頁(yè)面用戶可以進(jìn)入系統(tǒng),系統(tǒng)可以自動(dòng)對(duì)用戶向服務(wù)器發(fā)送的請(qǐng)求進(jìn)行處理,處理請(qǐng)求是在系統(tǒng)后臺(tái)中進(jìn)行的,用戶在瀏覽器頁(yè)面上進(jìn)行相應(yīng)操作,就能夠看到服務(wù)端傳遞的處理結(jié)果。養(yǎng)老院管理系統(tǒng)主要分為視圖-模型-控制三層架構(gòu)設(shè)計(jì)。在視圖層中,主要是操作在服務(wù)器端向客戶端反饋并顯示的數(shù)據(jù),在模型層中,主要處理相關(guān)的業(yè)務(wù)邏輯、數(shù)據(jù)整合等,最后的控制層它介于視圖和模型之間,主要是調(diào)整兩層之間的關(guān)系,最終落實(shí)數(shù)據(jù)的傳遞。
系統(tǒng)架構(gòu)圖如下圖所示。
?
圖4-1系統(tǒng)架構(gòu)圖
系統(tǒng)設(shè)計(jì)的目的是分析系統(tǒng)包括的所有功能結(jié)構(gòu),為開發(fā)人員設(shè)計(jì)開發(fā)和實(shí)現(xiàn)系統(tǒng)做好準(zhǔn)備工作。經(jīng)過(guò)前期的需求調(diào)查、分析和整理之后,確定的總體需求主要包括多個(gè)模塊,分別是:留言管理、老人管理、醫(yī)護(hù)人員管理、工資管理、請(qǐng)假管理、老人賬單管理、倉(cāng)庫(kù)管理、請(qǐng)假統(tǒng)計(jì)。系統(tǒng)整體角色分為三個(gè)部分,一是游客、二是普通用戶、最后是管理員。權(quán)限分布也是很明顯,游客即是無(wú)需任何驗(yàn)證便可瀏覽相關(guān)信息;普通用戶是在除去瀏覽信息之外還具有查詢和管理自己賬戶信息、個(gè)人資料修改、老人查詢、老人賬單查詢、用戶注冊(cè)查看、老人錄入、工資查詢、請(qǐng)假申請(qǐng)、老人賬單錄入等權(quán)限;管理員是最高權(quán)限擁有者。
系統(tǒng)功能結(jié)構(gòu)圖如下圖所示。
?
圖4-2系統(tǒng)功能結(jié)構(gòu)圖
用戶管理模塊
該模塊是為所有用戶登錄設(shè)計(jì)的,如注冊(cè)用戶這種普通用戶登錄后只能進(jìn)行自己的普通功能操作(如個(gè)人信息修改),管理員和超級(jí)管理員登錄后有不同的權(quán)限,管理員不能超越權(quán)限。超級(jí)管理員能對(duì)整個(gè)系統(tǒng)的數(shù)據(jù)進(jìn)行管理,主要是用戶的登錄權(quán)限以及用戶登錄后在系統(tǒng)里的操作權(quán)限。
老人賬單模塊
老人存在賬單記錄,關(guān)系為一對(duì)多,根據(jù)老人編號(hào)來(lái)將老人數(shù)據(jù)傳入到賬單數(shù)據(jù)中,操作人為醫(yī)護(hù)人員,然后生成賬單列表,醫(yī)護(hù)人員查看個(gè)人歷史賬單列表,可以進(jìn)行數(shù)據(jù)銷毀。
老人維護(hù)模塊
操作人來(lái)錄入老人數(shù)據(jù),點(diǎn)擊老人錄入按鈕,依次填寫要錄入的老人數(shù)據(jù),點(diǎn)擊提交按鈕,將數(shù)據(jù)提交至數(shù)據(jù)庫(kù),然后刷新老人數(shù)據(jù)頁(yè)面,每條數(shù)據(jù)右邊有刪除和編輯按鈕,來(lái)完成相應(yīng)的刪除和更新功能。
醫(yī)護(hù)人員工資模塊
醫(yī)護(hù)人員存在工資關(guān)系,關(guān)系為一對(duì)多,根據(jù)醫(yī)護(hù)人員編號(hào)來(lái)將醫(yī)護(hù)人員數(shù)據(jù)傳入到工資數(shù)據(jù)中,操作人為管理員,然后生成工資列表,醫(yī)護(hù)人員查看個(gè)人歷史工資列表,可以進(jìn)行數(shù)據(jù)銷毀。
醫(yī)護(hù)人員維護(hù)模塊
操作人來(lái)錄入醫(yī)護(hù)人員數(shù)據(jù),點(diǎn)擊醫(yī)護(hù)人員錄入按鈕,依次填寫要錄入的醫(yī)護(hù)人員數(shù)據(jù),點(diǎn)擊提交按鈕,將數(shù)據(jù)提交至數(shù)據(jù)庫(kù),然后刷新醫(yī)護(hù)人員數(shù)據(jù)頁(yè)面,每條數(shù)據(jù)右邊有刪除和編輯按鈕,來(lái)完成相應(yīng)的刪除和更新功能。
新聞維護(hù)模塊
管理員點(diǎn)擊新聞管理菜單,點(diǎn)擊新聞添加子菜單,添加新聞數(shù)據(jù),填寫標(biāo)題、內(nèi)容、類別、圖片,提交成功后,新聞數(shù)據(jù)頁(yè)面刷新,新數(shù)據(jù)成功載入頁(yè)面。
請(qǐng)假維護(hù)模塊
根據(jù)請(qǐng)假維護(hù)的流程,醫(yī)護(hù)人員提交請(qǐng)假數(shù)據(jù),在個(gè)人后臺(tái)便可以查看到歷史提交的請(qǐng)假數(shù)據(jù),管理員來(lái)維護(hù)請(qǐng)假數(shù)據(jù),審批確認(rèn)已存在的請(qǐng)假數(shù)據(jù)。
留言信息管理模塊
用戶登錄系統(tǒng)后,可在留言板進(jìn)行留言,管理員在后臺(tái)可以查看或搜索留言信息,同時(shí)可回復(fù)或刪除留言信息。
打印和導(dǎo)出模塊
系統(tǒng)多個(gè)頁(yè)面可以進(jìn)行打印功能,包括信息詳細(xì)頁(yè),信息列表頁(yè),打印時(shí)調(diào)用外部打印機(jī),完成打印設(shè)置即可打印,在信息列表頁(yè)可以將該信息列表導(dǎo)出至excel中,用戶選擇保存excel文件的路徑,既可以下載至本地,在excel中可以自由編輯。
對(duì)于一個(gè)要開發(fā)的系統(tǒng)來(lái)說(shuō),E-R圖可以讓別人能更快更輕松的了解此系統(tǒng)的事務(wù)及它們之間的關(guān)系。根據(jù)系統(tǒng)分析階段所得出的結(jié)論確定了在養(yǎng)老院管理系統(tǒng)中存在著多個(gè)實(shí)體分別是用普通用戶、管理員、老人、賬單、醫(yī)護(hù)人員、工資、請(qǐng)假、留言。
系統(tǒng)總體ER圖如下圖所示。
?
圖4-4系統(tǒng)總體ER圖
管理員(管理員id、用戶名、密碼、權(quán)限)
老人(老人id、用戶名、老人姓名、性別、出生日期、入住日期、身份證號(hào)、緊急聯(lián)系人、聯(lián)系電話)
賬單(賬單id、用戶名、老人姓名、性別、身份證號(hào)、賬單名稱、賬單金額、相關(guān)附件、是否支付)
醫(yī)護(hù)人員(醫(yī)護(hù)人員id、工號(hào)、密碼、員工姓名、性別、身份證、電話、入職日期)
工資(工資id、工號(hào)、員工姓名、發(fā)薪月份、基本工資、提成、獎(jiǎng)金、考勤扣款、五險(xiǎn)一金、實(shí)發(fā)工資、發(fā)薪日)
請(qǐng)假(請(qǐng)假id、請(qǐng)假單號(hào)、請(qǐng)假日期、請(qǐng)假天數(shù)、請(qǐng)假類型、申請(qǐng)人、是否審核、審核回復(fù))
數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)就是將E-R圖在數(shù)據(jù)庫(kù)中用具體的字段進(jìn)行描述。用字段和數(shù)據(jù)類型描述來(lái)使對(duì)象特征實(shí)體化,最后形成具有一定邏輯關(guān)系的數(shù)據(jù)庫(kù)表結(jié)構(gòu)。養(yǎng)老院管理系統(tǒng)所需要的部分?jǐn)?shù)據(jù)結(jié)構(gòu)表如下表所示。
| check_in_payment | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| check_in_payment_id | int | 11 | 否 | 主鍵 | 入住繳費(fèi)ID |
| old_man_name | varchar | 64 | 是 | 老人姓名 | |
| family_user | int | 11 | 是 | 家屬用戶 | |
| bed_fee | int | 11 | 是 | 床位費(fèi) | |
| nursing_fee | int | 11 | 是 | 護(hù)理費(fèi) | |
| board_expenses | int | 11 | 是 | 伙食費(fèi) | |
| medical_expenses | int | 11 | 是 | 醫(yī)療費(fèi) | |
| supplies_cost | int | 11 | 是 | 用品費(fèi) | |
| water_and_electricity | int | 11 | 是 | 水電費(fèi) | |
| total_charge | varchar | 64 | 是 | 總計(jì)收費(fèi) | |
| occupancy_conditions | text | 0 | 是 | 入住條件 | |
| charge_details | text | 0 | 是 | 收費(fèi)詳情 | |
| pay_state | varchar | 16 | 否 | 支付狀態(tài) | |
| pay_type | varchar | 16 | 是 | 支付類型 微信、支付寶、網(wǎng)銀 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
| diet_management | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| diet_management_id | int | 11 | 否 | 主鍵 | 飲食管理ID |
| dining_stage | varchar | 64 | 是 | 用餐階段 | |
| dinner_time | time | 0 | 是 | 用餐時(shí)間 | |
| food_pictures | varchar | 255 | 是 | 餐品圖片 | |
| meal_details | text | 0 | 是 | 餐品詳情 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
| elderly_users | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| elderly_users_id | int | 11 | 否 | 主鍵 | 老人用戶ID |
| old_man_name | varchar | 64 | 否 | 老人姓名 | |
| gender_of_the_elderly | varchar | 64 | 是 | 老人性別 | |
| old_age | varchar | 64 | 是 | 老人年齡 | |
| family_members_of_the_elderly | int | 11 | 是 | 老人家屬 | |
| family_name | varchar | 64 | 是 | 家屬姓名 | |
| family_gender | varchar | 64 | 是 | 家屬性別 | |
| family_relations | varchar | 64 | 是 | 家屬關(guān)系 | |
| family_phone | varchar | 16 | 是 | 家屬電話 | |
| nurse_no | int | 11 | 是 | 護(hù)工編號(hào) | |
| name_of_nurse | varchar | 64 | 是 | 護(hù)工姓名 | |
| nursing_worker_gender | varchar | 64 | 是 | 護(hù)工性別 | |
| bed_number | varchar | 64 | 是 | 床位編號(hào) | |
| bed_type | varchar | 64 | 是 | 床位類型 | |
| bed_room | varchar | 64 | 是 | 床位房間 | |
| special_attention | text | 0 | 是 | 特殊注意 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
| family_user | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| family_user_id | int | 11 | 否 | 主鍵 | 家屬用戶ID |
| user_name | varchar | 64 | 否 | 用戶姓名 | |
| user_gender | varchar | 64 | 是 | 用戶性別 | |
| user_age | varchar | 64 | 是 | 用戶年齡 | |
| examine_state | varchar | 16 | 否 | 審核狀態(tài) | |
| recommend | int | 11 | 否 | 智能推薦 | |
| user_id | int | 11 | 否 | 用戶ID | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
| health_management | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| health_management_id | int | 11 | 否 | 主鍵 | 健康管理ID |
| old_man_name | varchar | 64 | 是 | 老人姓名 | |
| family_user | int | 11 | 是 | 家屬用戶 | |
| blood_pressure | varchar | 64 | 是 | 血壓 | |
| heart_rate | varchar | 64 | 是 | 心率 | |
| temperature | varchar | 64 | 是 | 體溫 | |
| sleep_duration | varchar | 64 | 是 | 睡眠時(shí)長(zhǎng) | |
| walking_time | varchar | 64 | 是 | 步行時(shí)長(zhǎng) | |
| medication | varchar | 64 | 是 | 用藥情況 | |
| publicity_knowledge | text | 0 | 是 | 宣傳知識(shí) | |
| rehabilitation_training | text | 0 | 是 | 康復(fù)訓(xùn)練 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
| leave_management | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| leave_management_id | int | 11 | 否 | 主鍵 | 請(qǐng)假管理ID |
| nurse_no | int | 11 | 是 | 護(hù)工編號(hào) | |
| name_of_nurse | varchar | 64 | 是 | 護(hù)工姓名 | |
| leave_time | date | 0 | 是 | 請(qǐng)假時(shí)間 | |
| reason_for_asking_for_leave | text | 0 | 是 | 請(qǐng)假原由 | |
| examine_state | varchar | 16 | 否 | 審核狀態(tài) | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
| nursing_worker_user | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| nursing_worker_user_id | int | 11 | 否 | 主鍵 | 護(hù)工用戶ID |
| nurse_no | varchar | 64 | 否 | 護(hù)工編號(hào) | |
| name_of_nurse | varchar | 64 | 是 | 護(hù)工姓名 | |
| nursing_worker_gender | varchar | 64 | 是 | 護(hù)工性別 | |
| nursing_worker_age | varchar | 64 | 是 | 護(hù)工年齡 | |
| examine_state | varchar | 16 | 否 | 審核狀態(tài) | |
| recommend | int | 11 | 否 | 智能推薦 | |
| user_id | int | 11 | 否 | 用戶ID | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
| problem_record | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| problem_record_id | int | 11 | 否 | 主鍵 | 問(wèn)題記錄ID |
| old_man_name | varchar | 64 | 是 | 老人姓名 | |
| nursing_worker_user | int | 11 | 是 | 護(hù)工用戶 | |
| problem_description | text | 0 | 是 | 問(wèn)題描述 | |
| question_content | text | 0 | 是 | 問(wèn)題內(nèi)容 | |
| solution | text | 0 | 是 | 解決方案 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
| salary_management | |||||
| 字段名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 字段說(shuō)明 |
| salary_management_id | int | 11 | 否 | 主鍵 | 薪資管理ID |
| nurse_no | int | 11 | 是 | 護(hù)工編號(hào) | |
| name_of_nurse | varchar | 64 | 是 | 護(hù)工姓名 | |
| base_salary | int | 11 | 是 | 底薪 | |
| bonus | int | 11 | 是 | 獎(jiǎng)金 | |
| five_insurances_and_one_fund | int | 11 | 是 | 五險(xiǎn)一金 | |
| deduction_for_leave | int | 11 | 是 | 請(qǐng)假扣費(fèi) | |
| deduction_for_absenteeism | int | 11 | 是 | 曠工扣費(fèi) | |
| total_deduction | varchar | 64 | 是 | 總計(jì)扣費(fèi) | |
| net_salary | varchar | 64 | 是 | 實(shí)發(fā)工資 | |
| issue_date | date | 0 | 是 | 發(fā)放日期 | |
| remarks | text | 0 | 是 | 備注 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時(shí)間 | |
| update_time | timestamp | 0 | 否 | 更新時(shí)間 | |
?
系統(tǒng)的登錄窗口是用戶的入口,用戶只有在登錄成功后才可以進(jìn)入訪問(wèn)。通過(guò)在登錄提交表單,后臺(tái)處理判斷是否為合法用戶,進(jìn)行頁(yè)面跳轉(zhuǎn),進(jìn)入系統(tǒng)中去。
登錄合法性判斷過(guò)程:用戶輸入賬號(hào)和密碼后,系統(tǒng)首先確定輸入輸入數(shù)據(jù)合法性,然后在login.jsp頁(yè)面發(fā)送登錄請(qǐng)求,調(diào)用src下的mainctrl類的dopost方法來(lái)驗(yàn)證。
用戶登錄模塊的IPO如下所示:
輸入:用戶名和密碼。
處理:
1)檢測(cè)用戶輸入的賬號(hào)、密碼是否正確及在數(shù)據(jù)庫(kù)已對(duì)應(yīng)存在。
2)從數(shù)據(jù)庫(kù)中提取記錄,并儲(chǔ)存在本地的session中(timeout默認(rèn)=30min)。
3)根據(jù)用戶名,將其顯示在系統(tǒng)首頁(yè)上。
輸出:是否成功的信息。
登錄流程圖如下所示。
?
圖5-1登錄流程圖
系統(tǒng)登錄界面如下所示。
?
圖5-2系統(tǒng)登錄界面
用戶登錄的邏輯代碼如下。
public function login()
????{
????????if (Request::isPost()) {
????????????$request = Request::param();
????????????$result = $this->validate($request, $this->validate);
????????????if (true !== $result) {
????????????????// 驗(yàn)證失敗 輸出錯(cuò)誤信息
????????????????$data['error'] = 30000;
????????????????$data['message'] = $result;
????????????} else {
????????????????$request['password'] = md5($request['password']);
????????????????$result = $this->model->login($request, $this->table);
????????????????$data = $result;
????????????}
????????} else {
????????????$data['error'] = 30000;
????????????$data['message'] = "field的值不能為空!";
????????}
????????return json_encode($data);
????}
public function login($request=[],$table_name = ''){
????????$username = $request['username'];
????????$password = $request['password'];
????????$bol = $this->where(['username'=>$username])->find();
????????if ($bol){
????????????$password = md5($password);
????????????if ($request['password']==$bol['password']) {
????????????????//添加token信息
????????????????$access_token['create_time'] = date('Y-m-d H:i:s');
????????????????$access_token['update_time'] = date('Y-m-d H:i:s');
$access_token['info'] = json_encode($bol);
????????????????// $access_token['info'] = $bol;
????????????????$access_token['token'] = md5(date('Y-m-d H:i:s'));
????????????????$bol_token = Db::name('AccessToken')->insert($access_token);
????????????????if ($bol_token){
????????????????????$data['obj'] = $bol;
????????????????????$data['obj']['token'] = $access_token['token'];
????????????????????return ['result' => $data];
????????????????}else{
????????????????????return ['error' => ['code' => 5000, 'message' => '登錄失敗,token生成失敗']];
????????????????}
????????????} else {
????????????????return ['error' => ['code' => 5000, 'message' => '登錄失敗,密碼不正確']];
????????????}
????????}else{
????????????return ['error' => ['code' => 5000, 'message' => '登錄失敗,賬號(hào)不存在']];
????????}
????}
系統(tǒng)呈現(xiàn)出一種簡(jiǎn)潔大方的首頁(yè):界面簡(jiǎn)約、鱗次櫛比,用戶能輕車熟路的使用。出于對(duì)系統(tǒng)使用群體廣泛的顧慮,應(yīng)有良好性能的后臺(tái)。在系統(tǒng)時(shí)間顯示上編寫javascript腳本在導(dǎo)航欄顯示系統(tǒng)的當(dāng)前日期,首先定義一個(gè)數(shù)組d存放周一至周日,創(chuàng)建一個(gè)獲取時(shí)間的對(duì)象time后通過(guò)該對(duì)象的方法獲取年月日,(time.getDay())%7計(jì)算得到的結(jié)果是數(shù)組的下標(biāo),通過(guò)數(shù)組下標(biāo)就獲取了數(shù)組的值,利用字符竄連接把年月日和星期轉(zhuǎn)換成字符竄,通過(guò)document.getElementById("date")獲取標(biāo)簽后使用innerHTML把該字符串顯示在jsp頁(yè)面。
如下圖所示為系統(tǒng)的首頁(yè)界面。
?
圖5-3系統(tǒng)首頁(yè)界面
其中載入前臺(tái)頁(yè)面的主要代碼如下。
public function add($request=[],$table_name = '',$table_id = ''){
????????$result = self::allowField(true)->save($request);
????????if ($result) {
????????????return ['result' => 1];
????????} else {
????????????return ['error' => ['code' => 3000, 'message' => '數(shù)據(jù)添加失敗']];
????????}
????}
此頁(yè)面實(shí)現(xiàn)普通用戶的注冊(cè),必須注冊(cè)登錄后才能使用系統(tǒng)大部分功能,用戶名不允許重復(fù)如果重復(fù)將會(huì)注冊(cè)失敗,并彈出相應(yīng)的提示,通過(guò)js實(shí)現(xiàn)對(duì)輸入的驗(yàn)證。
用戶注冊(cè)流程圖如下所示。
?
圖5-4用戶注冊(cè)流程圖
用戶注冊(cè)界面如下圖所示。
?
圖5-5用戶注冊(cè)界面
用戶注冊(cè)關(guān)鍵代碼如下所示。
public function register()
????{
????????if (Request::isPost()) {
????????????$request = Request::param();
????????????$request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');
????????????$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
????????????$result = $this->validate($request, $this->validate);
????????????if (true !== $result) {
????????????????// 驗(yàn)證失敗 輸出錯(cuò)誤信息
????????????????$data['error'] = 30000;
????????????????$data['message'] = $result;
????????????} else {
????????????????$request['password'] = md5($request['password']);
????????????????$result = $this->model->register($request, $this->table);
????????????????$data = $result;
????????????}
????????} else {
????????????$data['error'] = 30000;
????????????$data['message'] = "field的值不能為空!";
????????}
????????return json_encode($data);
????}
public function register($request=[],$table_name = ''){
????????$username = $request['username'];
????????$bol = $this->where(['username'=>$username])->find();
????????if (!$bol){
????????????$result = self::allowField(true)->save($request);
????????????if ($result) {
????????????????return ['result' => 1];
????????????} else {
????????????????return ['error' => ['code' => 3000, 'message' => '注冊(cè)失敗']];
????????????}
????????}else{
????????????return ['error' => ['code' => 3000, 'message' => '注冊(cè)失敗,賬號(hào)已存在']];
????????}
????}
老人賬單錄入過(guò)程中,首先使用getmap(id,"xinxi"),通過(guò)老人ID得到老人數(shù)據(jù),將老人數(shù)據(jù)賦值給老人賬單,調(diào)用CommDAO的insert方法將賬單數(shù)據(jù)插入賬單表中,最后查看個(gè)人歷史老人賬單記錄,可以銷毀歷史賬單數(shù)據(jù)。
老人賬單入流程圖如下所示。
?
圖5-12老人賬單入流程圖
老人賬單入界面如圖所示。
?
圖5-13老人賬單入界面
賬單管理界面如圖所示。
?
圖5-14賬單管理界面
賬單添加關(guān)鍵代碼如下所示。
$obj = $this->where($where)->field($field)->find();
$result = self::allowField(true)->save($request);
$result = $this->where($where)->update($request);
$result = $this->where($where)->delete();
醫(yī)護(hù)人員提交請(qǐng)假,可以進(jìn)行新增、查看、修改以及刪除等相應(yīng)的請(qǐng)假管理操作。當(dāng)點(diǎn)擊"新增請(qǐng)假"的按鈕時(shí),在請(qǐng)假添加界面進(jìn)行詳細(xì)信息的添加操作。當(dāng)點(diǎn)擊"查看請(qǐng)假"超級(jí)鏈接時(shí),會(huì)顯示所選的請(qǐng)假的信息,然后點(diǎn)擊"返回"再返回到其主頁(yè)面。
請(qǐng)假提交界面如圖所示。
?
圖5-15請(qǐng)假提交界面
請(qǐng)假管理界面如圖所示。
?
圖5-16請(qǐng)假管理界面
請(qǐng)假添加關(guān)鍵代碼如下所示。
public function add($request=[],$table_name = '',$table_id = ''){
????????$result = self::allowField(true)->save($request);
????????if ($result) {
????????????return ['result' => 1];
????????} else {
????????????return ['error' => ['code' => 3000, 'message' => '數(shù)據(jù)添加失敗']];
????????}
????}
用戶在yhzhgl查看用戶信息,先使用sql語(yǔ)句查詢出所有用戶表的數(shù)據(jù),然后調(diào)用PageManager.getPages(url,4,sql, request ),返回一個(gè)ArrayList的對(duì)象,在for循環(huán)里,使用jsp得到每個(gè)ArrayList對(duì)象的數(shù)據(jù),在jsp頁(yè)面中解析ArrayList對(duì)象,得到其各個(gè)鍵值對(duì)的值。
用戶管理界面如下圖所示。
?
圖5-17用戶管理界面
系統(tǒng)用戶管理關(guān)鍵代碼如下所示。
public function del()
????{
????????$request = Request::param();
????????$result = $this->model->del_data($request, $this->table, $this->table_id);
????????$data = $result;
????????return json_encode($data);
????}
用戶點(diǎn)擊登錄填寫賬號(hào)信息登錄后,會(huì)切換內(nèi)容為“某某用戶歡迎您”和歷史訂單,并給出注銷鏈接。當(dāng)用戶登錄成功后會(huì)將個(gè)人信息保存在session作用域中,點(diǎn)擊自己的用戶名時(shí),會(huì)跳轉(zhuǎn)到個(gè)人詳細(xì)信息頁(yè)面,由后臺(tái)通過(guò)Freemarker取出session作用域中的用戶信息進(jìn)行動(dòng)態(tài)渲染,例如,郵箱、電話號(hào)碼、用戶名等等。同時(shí)頁(yè)面上會(huì)顯示修改個(gè)人信息和修改密碼的按鈕,這時(shí)客戶可以修改自己的登錄密碼以保障賬號(hào)的安全性,防止被人竊取賬號(hào),通過(guò)UserController.java的updatePassword()實(shí)現(xiàn),同時(shí)也可以根據(jù)自己的個(gè)人信息是否變動(dòng)做出相應(yīng)的修改,通過(guò)updateUserInfo()實(shí)現(xiàn)。
密碼修改流程圖如下所示。
?
圖5-19密碼修改流程圖
密碼修改關(guān)鍵代碼如下所示。
public function change_password()
????{
????????$accessTokenModel = new AccessTokenModel();
????????$token = Request::header('x-auth-token');
????????if (!empty($token)) {
????????????$result = $accessTokenModel->getToken($token);
????????????if (Request::isPost()) {
????????????????$get = Request::get();
????????????????$keys = array_keys($get);
????????????????$where = [];
????????????????if ($result) {
????????????????????$where[] = ["user_id", '=', $result['user_id']];
????????????????????$i = 0;
????????????????????foreach ($get as $key => $val) {
????????????????????????$where[] = [$keys[$i], '=', $val];
????????????????????????$i++;
????????????????????}
????????????????????$request = Request::post();
????????????????????$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
????????????????????$result = $this->validate($request, $this->validate);
$new_password['password'] = $request['password'];
????????????????????if (true !== $result) {
????????????????????????// 驗(yàn)證失敗 輸出錯(cuò)誤信息
????????????????????????$data['error'] = 30000;
????????????????????????$data['message'] = $result;
????????????????????} else {
????????????????????????$result = $this->model->change_password($new_password, $this->table, $this->table_id, $where);
????????????????????????$data = $result;
????????????????????}
????????????????} else {
????????????????????$data['error'] = 30000;
????????????????????$data['message'] = "token錯(cuò)誤或失效,未查詢到用戶數(shù)據(jù)";
????????????????}
????????????} else {
????????????????$data['error'] = 30000;
????????????????$data['message'] = "field的值不能為空!";
????????????}
????????} else {
????????????$data['error'] = 30000;
????????????$data['message'] = "token的值不能為空!";
????????}
????????return json_encode($data);
????}
添加老人信息時(shí),輸入必填字段后,表現(xiàn)層的LaorenController接受傳過(guò)來(lái)的老人信息參數(shù),再調(diào)用LaorenController類的addLaoren方法,經(jīng)過(guò)LaorenService業(yè)務(wù)層到LaorenMapper持久層的處理,完成對(duì)整個(gè)添加老人信息的操作。addLaoren方法也和用戶管理中的addUser方法類似,同時(shí)做添加和修改工作。
修改老人信息時(shí),選擇需要修改的老人進(jìn)行修改,調(diào)用LaorenController控制器的editLaoren方法,拿到該老人原本的信息并顯示到頁(yè)面,管理員再對(duì)需要修改的老人信息字段進(jìn)行修改,完成后調(diào)用addLaoren方法,調(diào)用業(yè)務(wù)層的updateByKey方法,更新數(shù)據(jù)庫(kù)的老人信息表的數(shù)據(jù)。
老人管理流程圖如下所示。
?
圖5-21老人管理流程圖
老人添加界面如下圖所示。
?
圖5-22老人添加界面
老人查詢界面如下圖所示。
?
圖5-23老人查詢界面
老人信息添加關(guān)鍵代碼如下所示。
public function add()
????{
????????if (Request::isPost()) {
????????????$request = Request::param();
????????????$request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');
????????????$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
????????????$result = $this->validate($request, $this->validate);
????????????if (true !== $result) {
????????????????// 驗(yàn)證失敗 輸出錯(cuò)誤信息
????????????????$data['error'] = 30000;
????????????????$data['message'] = $result;
????????????} else {
if($this->table == 'user'){
$request['password'] = md5($request['password']);
}
$res = $this->add_before($request, $this->table, $this->table_id);
if($res['code'] == 200){
$result = $this->model->add($request, $this->table, $this->table_id);
$this->add_after($this->table);
$data = $result;
}else{
$data['error'] = $res;
}
????????????}
????????} else {
????????????$data['error']['code'] = 30000;
????????????$data['error']['message'] = "field的值不能為空!";
????????}
????????return json_encode($data);
????}
刪除醫(yī)護(hù)人員時(shí),選擇需要?jiǎng)h除的醫(yī)護(hù)人員進(jìn)行刪除,把主鍵的uId傳到Y(jié)ihurenyuanController控制器,再調(diào)用控制器的deleteYihurenyuan方法,數(shù)據(jù)經(jīng)過(guò)YihurenyuanService業(yè)務(wù)層解析和處理,請(qǐng)求YihurenyuanMapper持久層調(diào)用deleteByPrimaryKey方法操作數(shù)據(jù)庫(kù)將醫(yī)護(hù)人員數(shù)據(jù)從數(shù)據(jù)庫(kù)中刪除。
查找醫(yī)護(hù)人員時(shí),輸入需要查找的醫(yī)護(hù)人員名,調(diào)用getData方法獲取所有數(shù)據(jù)并且進(jìn)行分頁(yè),把獲取到的所有數(shù)據(jù)顯示到視圖上,這時(shí)候只需要用腳本方法便能快速查找,不涉及對(duì)數(shù)據(jù)庫(kù)操作。
醫(yī)護(hù)人員管理流程圖如下所示。
?
圖5-24醫(yī)護(hù)人員管理流程圖
醫(yī)護(hù)人員查詢界面如下圖所示。
?
圖5-25醫(yī)護(hù)人員查詢界面
醫(yī)護(hù)人員信息添加關(guān)鍵代碼如下所示。
public function get_obj()
????{
????????$request = Request::param();
????????$result = $this->model->get_obj($request, $this->table, $this->table_id, $this->table_id);
????????$data['result'] = $result;
????????return json_encode($data);
????}
用戶選擇醫(yī)護(hù)人員添加工資記錄,用戶在yihurenyuan_list查看醫(yī)護(hù)人員,點(diǎn)擊工資,跳轉(zhuǎn)至gongzi_add.jsp,添加工資記錄則將添加的工資記錄數(shù)據(jù)封裝在HashMap中,然后調(diào)用CommDAO的insert方法將工資記錄內(nèi)容插入工資記錄表中。
工資管理流程圖如下所示。
?
圖5-26工資管理流程圖
工資添加界面如下圖所示。
?
圖5-27工資添加界面
工資查詢界面如下圖所示。
?
圖5-28工資查詢界面
工資信息添加關(guān)鍵代碼如下所示。
public function count()
????{
????????$request = Request::param();
????????$result = $this->model->list_count($request, $this->table, $this->table_id);
????????$data['result'] = $result;
????????return json_encode($data);
????}
在對(duì)該系統(tǒng)進(jìn)行完詳細(xì)設(shè)計(jì)和編碼之后,就要對(duì)養(yǎng)老院管理系統(tǒng)的程序進(jìn)行測(cè)試,檢測(cè)程序是否運(yùn)行無(wú)誤,反復(fù)進(jìn)行測(cè)試和修改,使之最后成為完整的軟件,滿足用戶的需求,實(shí)現(xiàn)預(yù)期的功能。
在軟件的測(cè)試過(guò)程中,通常測(cè)試人員需要針對(duì)不同的功能模塊設(shè)計(jì)多種測(cè)試用例。通過(guò)測(cè)試用例能夠及時(shí)發(fā)現(xiàn)代碼業(yè)務(wù)邏輯上是否與真實(shí)的業(yè)務(wù)邏輯相對(duì)應(yīng),及時(shí)發(fā)現(xiàn)代碼上或邏輯上的缺陷,以此來(lái)來(lái)完善系統(tǒng),提高軟件產(chǎn)品的質(zhì)量,使軟件具有良好的用戶體驗(yàn)。
注冊(cè)測(cè)試用例表如下所示。
表6-1注冊(cè)測(cè)試用例
| 測(cè)試性能 | 新用戶注冊(cè) | ||
| 用例目的 | 測(cè)試系統(tǒng)新用戶個(gè)人信息注冊(cè)功能的功能和安全性 | ||
| 前提條件 | 進(jìn)入注冊(cè)頁(yè)面填寫個(gè)人信息 | ||
| 輸入條件 | 預(yù)期輸出 | 實(shí)際情況 | |
| 各項(xiàng)基本信息輸入不完整 | 不允許注冊(cè),無(wú)法點(diǎn)擊注冊(cè)按鈕 | 一致 | |
| 填寫已存在的用戶名 | 系統(tǒng)顯示出提示信息,要求重新填寫 | 一致 | |
| 兩次密碼輸入不一致 | 系統(tǒng)顯示出提示信息,要求重新填寫 | 一致 | |
| 填寫的各項(xiàng)信息沒有符合提示的長(zhǎng)度和字符要求 | 系統(tǒng)顯示出提示信息,要求重新填寫 | 一致 | |
| 胡亂填寫電話號(hào)碼 | 收不到驗(yàn)證碼 | 一致 | |
| 填寫驗(yàn)證碼與收到的不一致 | 系統(tǒng)顯示提示信息告知用戶驗(yàn)證碼錯(cuò)誤,不予注冊(cè) | 一致 | |
登錄測(cè)試用例表如下所示。
表6-2登錄測(cè)試用例
| 測(cè)試性能 | 用戶或操作員登錄系統(tǒng) | ||
| 用例目的 | 測(cè)試用戶或操作員登錄系統(tǒng)時(shí)功能是否正常 | ||
| 前提條件 | 進(jìn)入用戶登錄頁(yè)面或操作員登錄頁(yè)面 | ||
| 輸入條件 | 預(yù)期輸出 | 實(shí)際情況 | |
| 各項(xiàng)信息不予填寫,直接點(diǎn)擊登陸按鈕 | 不允許登錄,提示填寫賬號(hào)相關(guān)信息 | 一致 | |
| 填寫錯(cuò)誤的登錄名或密碼后點(diǎn)擊登錄系統(tǒng) | 提示用戶名或密碼錯(cuò)誤,要求重新填寫進(jìn)行登錄 | 一致 | |
| 填寫與驗(yàn)證碼信息不一致的信息 | 系統(tǒng)顯示出提示信息,表明驗(yàn)證碼錯(cuò)誤,要求重新填寫 | 一致 | |
老人賬單測(cè)試用例表如下所示。
表6-3老人賬單測(cè)試用例
| 測(cè)試性能 | 用戶進(jìn)行賬單老人的操作 | ||
| 用例目的 | 測(cè)試用戶進(jìn)行賬單老人操作時(shí),系統(tǒng)的功能是否正常 | ||
| 前提條件 | 用戶進(jìn)入老人詳情頁(yè),該老人能夠被賬單 | ||
| 輸入條件 | 預(yù)期輸出 | 實(shí)際情況 | |
| 用戶未登錄,點(diǎn)擊賬單按鈕 | 跳轉(zhuǎn)至登錄頁(yè)面,提示用戶先進(jìn)性登錄 | 一致 | |
| 正常的登錄用戶,點(diǎn)擊賬單按鈕 | 系統(tǒng)彈出提示框,提示用戶賬單成功,同時(shí)該老人的狀態(tài)更改為已賬單狀態(tài) | 一致 | |
老人管理測(cè)試用例表如下所示。
表6-4老人管理測(cè)試用例
| 測(cè)試性能 | 老人相關(guān)信息管理功能 | ||
| 用例目的 | 測(cè)試系統(tǒng)后臺(tái)操作員對(duì)老人相關(guān)信息進(jìn)行管理的功能是否正常 | ||
| 前提條件 | 登錄系統(tǒng)后臺(tái)進(jìn)入相關(guān)管理頁(yè)面 | ||
| 輸入條件 | 預(yù)期輸出 | 實(shí)際情況 | |
| 普通操作員登錄,點(diǎn)擊進(jìn)入老人相關(guān)信息管理的頁(yè)面 | 提示非超級(jí)用戶,權(quán)限不夠,無(wú)法進(jìn)入相關(guān)頁(yè)面 | 一致 | |
| 超級(jí)操作員登入,刪除某個(gè)已被賬單的老人 | 提示該老人刪除失敗 | 一致 | |
| 點(diǎn)擊增加老人按鈕 | 頁(yè)面正常跳轉(zhuǎn) | 一致 | |
| 增加老人是,填寫已存在的老人編號(hào) | 提示該編號(hào)已存在 | 一致 | |
經(jīng)過(guò)對(duì)此系統(tǒng)的測(cè)試,得出該系統(tǒng)足以滿足用戶日常需求,在功能項(xiàng)目和操作等方面也能滿足操作員對(duì)于其他用戶的管理。但是,還有很多功能有待添加,這個(gè)系統(tǒng)僅能滿足大部分的需求,還需要對(duì)此系統(tǒng)的功能更進(jìn)一步的完善,這樣使用起來(lái)才能更加的完美。
通過(guò)養(yǎng)老院管理系統(tǒng)的開發(fā),本人鞏固了之前學(xué)過(guò)的知識(shí),如今將平時(shí)所學(xué)到的知識(shí)融合在設(shè)計(jì)中,在設(shè)計(jì)過(guò)程中,做了很多的準(zhǔn)備,首先,在數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)過(guò)程中,尤其是在數(shù)據(jù)庫(kù)的工作原理、工作特點(diǎn),對(duì)其深刻的討論,與此同時(shí),對(duì)于小型站點(diǎn)來(lái)說(shuō),最好服務(wù)器的選擇,其次,利用所學(xué)的知識(shí)點(diǎn)分析所做的系統(tǒng),并在此基礎(chǔ)上設(shè)計(jì)。
目前本系統(tǒng)已經(jīng)上線,正在試運(yùn)行階段,用戶反饋良好,基本完成用戶所需,試運(yùn)行過(guò)程中沒有出現(xiàn)阻斷性問(wèn)題,有一些不足和小問(wèn)題也及時(shí)予以修正,系統(tǒng)上線后,為了保證數(shù)據(jù)的安全性,對(duì)系統(tǒng)進(jìn)行了備份操作,系統(tǒng)備份是每?jī)蓚€(gè)月備份一次,數(shù)據(jù)庫(kù)備份為每周備份一次,系統(tǒng)部署在租賃的云平臺(tái)服務(wù)器中。
本次系統(tǒng)上線成功后,得到了用戶的高度認(rèn)可,但是在功能上和性能上還需做進(jìn)一步的研究處理,使其有更高的性能和更好的用戶體驗(yàn)。
系統(tǒng)在以后的升級(jí)過(guò)程中,需要解決一系列用戶所提出的問(wèn)題,例如打印過(guò)程中如何避免瀏覽器的兼容性問(wèn)題,大量用戶訪問(wèn)時(shí),如何保持較高的響應(yīng)速度,在系統(tǒng)今后的升級(jí)過(guò)程中將著重解決這些安全性問(wèn)題。
參考文獻(xiàn)
[1]馮凱.“MySQL數(shù)據(jù)庫(kù)”課程教學(xué)中常見問(wèn)題探析[J].無(wú)線互聯(lián)科技,2021,18(24):158-159.
[2]陳潔.“MySQL數(shù)據(jù)庫(kù)安全”課程教學(xué)方法優(yōu)化分析[J].無(wú)線互聯(lián)科技,2021,18(24):160-161.
[3]閆繼正,張雷,張海濤.基于MySQL的空管設(shè)備集中監(jiān)控系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)[J].微處理機(jī),2021,42(06):47-51.
[4]路堯,梁艷.基于PHP和MySQL的破壞性地震震例數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)[J].山西地震,2021(04):43-46+50.
[5]安沈昊,于榮歡.基于MySQL的天地一體化網(wǎng)絡(luò)結(jié)構(gòu)數(shù)據(jù)庫(kù)構(gòu)建[J].兵工自動(dòng)化,2021,40(12):66-70.
[6]趙學(xué)作.MySQL數(shù)據(jù)庫(kù)主從數(shù)據(jù)同步的設(shè)置[J].網(wǎng)絡(luò)安全和信息化,2021(11):94-97.
[7]宋陽(yáng)春. 基于圖神經(jīng)網(wǎng)絡(luò)的景點(diǎn)推薦方法研究與應(yīng)用[D].西安理工大學(xué),2021.DOI:10.27398/d.cnki.gxalu.2021.001104.
[8]左華煜. 個(gè)性化旅游推薦方法研究與應(yīng)用[D].江蘇科技大學(xué),2021.DOI:10.27171/d.cnki.ghdcc.2021.000424.
[9]王丹丹.PHP網(wǎng)站安全及加密技術(shù)對(duì)策[J].無(wú)線互聯(lián)科技,2020,17(23):28-29.
[10]張文豪. 基于PHP的通用開發(fā)框架研究與實(shí)現(xiàn)[D].廣東工業(yè)大學(xué),2020.DOI:10.27029/d.cnki.ggdgu.2020.002249.
[11]朱飛,劉曼琳.PHP語(yǔ)言中mysql與mysqli應(yīng)用淺析[J].數(shù)字技術(shù)與應(yīng)用,2020,38(07):38-41.DOI:10.19695/j.cnki.cn12-1369.2020.07.17.
[12]景廣軍,郝墨軒.基于PHP語(yǔ)言開發(fā)的站址導(dǎo)航系統(tǒng)[J].信息與電腦(理論版),2020,32(08):88-92.
[13]趙偉. 一種PHP代碼審計(jì)技術(shù)的研究與實(shí)現(xiàn)[D].西安電子科技大學(xué),2020.DOI:10.27389/d.cnki.gxadu.2020.001097.
[14]魏涵碩. 基于LBSN的景點(diǎn)推薦及路線規(guī)劃系統(tǒng)研究[D].中央民族大學(xué),2020.DOI:10.27667/d.cnki.gzymu.2020.000787.
[15]王篤朋. 基于景點(diǎn)轉(zhuǎn)移概率模型的興趣點(diǎn)推薦系統(tǒng)[D].廈門大學(xué),2019.
[16]張舜堯. 基于序列學(xué)習(xí)的旅游景點(diǎn)推薦研究[D].桂林電子科技大學(xué),2019.
[17]黃昌平.基于php語(yǔ)言分析計(jì)算機(jī)編程的發(fā)展前景[J].數(shù)碼世界,2019(04):46.
[18]QingHai Yin. Research and Implementation of Network Examination System Based on PHP Language[J]. Journal of Physics: Conference Series,2018,1087(6).
[19]陶健. 個(gè)性化景點(diǎn)路線推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].廈門大學(xué),2018.
[20]Rotmianto Mohamad,Wahyudi Eko. Developing Plugin e-DDC as an Additional Application for Senayan Library Management System with PHP Language Programming and MySQL Database[J]. Record and Library Journal,2018,2(1).
致謝
伴隨著設(shè)計(jì)的完成,大學(xué)生涯也隨之即將結(jié)束。大學(xué)期間是我最珍惜的時(shí)光,大學(xué)時(shí)光中學(xué)會(huì)了很多,也成長(zhǎng)了很多,這段時(shí)光中每一段回憶都刻在腦海中。感謝一起學(xué)習(xí),一起成長(zhǎng)同學(xué)們,和成長(zhǎng)過(guò)程悉心教導(dǎo)的老師們,非常感激有你們的陪伴。
首先感謝我的指導(dǎo)老師,設(shè)計(jì)的完成離不開老師的一系列指導(dǎo)。在畢業(yè)設(shè)計(jì)的完成過(guò)程中,老師給出了很多中肯的建議,正是由于老師一絲不茍的工作態(tài)度,我的設(shè)計(jì)才能順利的完成。
最后,感謝在大學(xué)生涯中每一位教導(dǎo)我的老師,是你們教給了我豐富的知識(shí),更教會(huì)了我遇到問(wèn)題時(shí),如何去應(yīng)對(duì)并解決。謝謝你們的幫助與支持。
免費(fèi)領(lǐng)取本源代碼,請(qǐng)關(guān)注點(diǎn)贊+私信
總結(jié)
以上是生活随笔為你收集整理的(附源码)php养老院管理系统 毕业设计 202026的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 公安警务指挥一张图三维电子沙盘可视化地理
- 下一篇: php虚拟电话号码,[视频]一号通电信诈