版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、藥品信息管理系統(tǒng)1 系統(tǒng)分析 1.1需求分析:對藥品信息管理主要需求就是對藥品信息進行基本的管理,用戶需要及時準確地掌握該診所內現(xiàn)有的藥品的基本信息(主要包括數(shù)量,單價,是否過期等)。同時,用戶要求操作界面友好,操作簡便,對數(shù)據(jù)庫的操作安全可靠,藥品從數(shù)據(jù)庫中修改了,但還沒結算時斷電,要求數(shù)據(jù)庫應該能恢復。1.2功能分析: 系統(tǒng)需要實現(xiàn)的主要功能包括查詢,刪除,增加,修改四部分,各功能具體如下表所示: 表1-1 系統(tǒng)的主要功能分析 2. 系統(tǒng)設計 2.1 繪制用例圖設計系統(tǒng)功能藥品信息管理系統(tǒng)一共包含3鐘用戶角色,分別是醫(yī)生,售藥員,和管理員,權限依次提高,醫(yī)生權限是可以查詢庫存藥品信息,提供
2、基本的用戶管理功能(更改密碼,更換用戶),例圖如下 醫(yī)生用例圖售藥員的權限在醫(yī)生的基礎上,還具有藥品管理的藥品銷售功能,用例圖如下: 售藥員用例圖管理員具有所有權限,包括查詢藥品,增加藥品條目,出售藥品,清理藥庫(包括清除數(shù)量為0的藥品,清除過期藥品等)及所有的用戶管理功能,用例圖如下: 管理員用例圖2.2 繪制系統(tǒng)流程圖本系統(tǒng)需要對用戶身份進行驗證,驗證通過后再判斷用戶是屬于醫(yī)生,售藥員或者是管理員中的哪一個角色,根據(jù)角色判斷用戶可以使用系統(tǒng)中的相應操作功能這里以管理員的身份為例 ,其流程圖如下: 系統(tǒng)流程圖3. 數(shù)據(jù)庫分析與設計3.1 數(shù)據(jù)庫概念設計本系統(tǒng)一共設計規(guī)劃出三個實體,分別是用戶
3、信息實體,藥品信息實體,藥品銷售實體。用戶信息實體用于記錄系統(tǒng)登錄用戶的信息,包括賬號,密碼,權限等相關信息其E-R圖如下: 圖3-1 用戶信息實體藥品信息實體是數(shù)據(jù)庫的核心,記錄了所存儲的藥品的基本信息,其E-R圖如下:藥品信息實體E-R圖藥品銷售實體則記錄了藥品銷售的相關信息,主要指藥品的出售數(shù)量,出售總價等,其E-R圖如下: 藥品銷售實體E-R圖3.2 數(shù)據(jù)庫邏輯結構設計根據(jù)設計好的各實體E-R圖創(chuàng)建數(shù)據(jù)庫的邏輯結構,數(shù)據(jù)庫各表的結構如下。共3張表,分別是tb_medicine 和 tb_user,tb_saleTable. 表3-1 tb_medicine(藥品基本信息表) 表3-2
4、tb_user(用戶信息表) 表3-3 tb_saleTable(藥品銷售表)3.3 數(shù)據(jù)庫物理結構設計3.4 系統(tǒng)類庫設計藥品信息管理系統(tǒng)中的類庫主要設計如下:藥品管理類 CManageMecdic:用于對藥庫進行管理,主要包括藥品入庫,藥品的出售,藥庫的清理,以及為實現(xiàn)這些函數(shù)而加的成員函數(shù)。藥品查詢類 CMedicSearch:其成員函數(shù)主要包括一般查詢,查詢庫中數(shù)量為0的藥品,查詢過期藥品等。用戶管理類CUser:主要設立了為完成以下功能的成員函數(shù),如新增用戶,刪除用戶,查詢用戶信息,修改用戶密碼等。藥品類CMedic:相當于一結構體,只是為了給系統(tǒng)提供一個數(shù)據(jù)類型,以對藥品進行必要的
5、管理,該類沒有成員函數(shù),該類一般作為CManageMedic和CMedicSearch類的一個成員變量。出售單類CSale:主要是給系統(tǒng)提供一個數(shù)據(jù)類型,以對藥品出售進行有效的管理,該類也沒有成員函數(shù),該類作為CManageMedic類的一個成員變量。CMedicSet,CUserSer,CSaleSet類:用于與數(shù)據(jù)庫中的表相連,它們從CRecordSer繼承而來。一些對話框類:該系統(tǒng)許多地方都用到了對話框,這類對話框主要有CLlogInDlg,CChangPasswordDlg,CUserChangDlg,CStoreDlg,CCleanUpDlg,CSaleDlg等系統(tǒng)本身提供的框架類:
6、如CMainFrm,CMedicAdminDoc,CMedicAdminApp,CMedicAdmicView等。3.5 公用模塊設計為了節(jié)省系統(tǒng)資源,實現(xiàn)代碼重用,提高程序運行速度,可以將一些公用的數(shù)據(jù)信息放到模塊中。本系統(tǒng)自定義了CManageMdedic,CMedicSearch,CSale,CUser,和CMedic類模塊,而且從CRecordSet繼承了CMedicSet,CUserSet,CSaleSer類,連接數(shù)據(jù)庫中對應的表。a. 藥品類 CMedic該類主要用于記錄藥品信息表中的各字段,主要包含一些成員變量,無成員函數(shù)。class CMedic public:CMedic()
7、;virtual CMedic();public:CStringm_MedicineID;CStringm_MedicineName;CStringm_MedicineClassification;CTimem_ProduceDate;CStringm_Produceplace;intm_MedicineNumber;CStringm_Description;floatm_UnitPrice;intm_QeulityAssurancePeriod;intm_LowestNumber;intm_HighestNumber;CStringm_ProduceCompany;b. 出售單類CSale出
8、售單類記錄saleTable數(shù)據(jù)表中的字段值,主要包含一些成員變量,無成員函數(shù)class CSale public:CSale();virtual CSale();public:CStringm_MedicineID;CStringm_MedicineName;intm_MedicineNumber;floatm_MedicinePrice;c藥品管理類CManageMedic該類主要實現(xiàn)藥品的操作功能,包括藥品入庫,藥品出售,和藥品處理等,其成員變量和成員函數(shù)的定義如下:class CManageMedic public:void DeleteOverdueMedic();void Dele
9、teAllZeroNumber();CTime GetExpireTime();float CheckOut();BOOL Recover();BOOL DeleteFromSaleTable();BOOL ModifyFromSaleTable();BOOL AddToSaleTable();void SetSaleSet(CSaleSet* theSaleSet);void SetSale(CSale* theSale);void Import();void SetMedicSet(CMedicSet* theMedicSet);void SetMedic(CMedic* theMedic
10、);CManageMedic();virtual CManageMedic();protected:CMedic* m_theMedic;CMedicSet* m_theMedicSet;CSale* m_theSale;CSaleSet* m_theSaleSet;d藥品查詢類CMedicSearch該類實現(xiàn)藥品的各種查詢功能,其成員變量和成員函數(shù)的定義如下。class CMedicSearch public:void SearchOverdueMedic();void SearchZeroNumber();void SearchAll();void Search(CString str,i
11、nt flag);void SetMedicSet(CMedicSet* theMedicSet);void SetListCtrl(CListCtrl* theListCtrl);CMedicSearch();virtual CMedicSearch();protected:CMedicSet* m_theMedicSet;CListCtrl* m_theListCtrl;e用戶管理類CUser該類實現(xiàn)用戶的管理功能,包括用戶登錄,注冊用戶,查詢用戶,更換用戶,修改密碼,其成員變量和才成員函數(shù)的定義如下:class CUser public:void ModifyPassword(CUser
12、Set* theSet);CString GetPassword();CString GetAccount();void SetPassword(CString password);CString GetType();void SeekUserInfo(int typeRadio,CString str,CUserSet* theSet);void SetAccount(CString account);void DeleteUser(CUser* user,CUserSet* userSet);BOOL AddNewUser(CUser* newUser,CUserSet* theSet);
13、void SetAllMember(CString account,CString password,CString type,CString name);BOOL LogIn(CUserSet*);CUser();virtual CUser();protected:CString m_userAccount;CString m_userPassword;CString m_userName;CString m_userType;f記錄集類CMedicSet,CUserSet,CSaleSet這3個類是以CRecordSet類為基類創(chuàng)建的,分別連接數(shù)據(jù)庫中的medicine表,user表,sa
14、leTable表,通過Visual C+6.0提供的類創(chuàng)建向導對話框,可以實現(xiàn)這3個類的創(chuàng)建。以CMedicSet類為例,創(chuàng)建過程如下:在Visual C+6.0中,執(zhí)行“Insert”“New Class“菜單命令,彈出”New Class“對話框,在其中設置創(chuàng)建的類CMedicSet和基類CRecordSet 如下圖。同理CUserSet和CSaleSet創(chuàng)建過程也是這樣。3.6 主界面設計系統(tǒng)采用標準的單文檔程序界面,并采用窗口分隔技術將客戶窗口試圖分隔為左右兩部分,分別用于顯示用戶信息和藥品信息。藥品信息視圖類 CMedicListView以CListView類為基類,創(chuàng)建新的列表視圖
15、類CMedicListView,通過列表的形式顯示藥品信息。在CMedicListView類的OnCreate函數(shù)中,創(chuàng)建列表項和表頭,主要代碼如下。int CMedicListView:OnCreate(LPCREATESTRUCT lpCreateStruct) if (CListView:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: Add your specialized creation code heretheListCtrl=&GetListCtrl();ModifyStyle(0,LVS_REPORT);ASSERT(GetSt
16、yle() & LVS_REPORT);CString medicField9=藥品代碼,藥品名稱,藥品類別,庫存數(shù)量,出產(chǎn)公司,產(chǎn)地,出產(chǎn)時間,保質期(月),單價(元);for(int i=0;iInsertColumn(i,medicFieldi,LVCFMT_LEFT,70);theListCtrl-InsertColumn(8,medicField8,LVCFMT_LEFT,58);return 0;用戶信息視圖類CUserTreeView以CTreeView類為基類,創(chuàng)建新的樹形視圖類CUserTreeview,以樹的形式顯示用戶類別及各類別下注冊的用戶。在CUserTreeView
17、類的PreCreateWindows函數(shù)中,設置樹形控件的屬性,主要代碼如下:BOOL CUserTreeView:PreCreateWindow(CREATESTRUCT& cs) / TODO: Add your specialized code here and/or call the base classcs.style |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;return CTreeView:PreCreateWindow(cs);在CUserTreeView類的OnInitialUpdate函數(shù)中,設置醫(yī)生,售藥員,和管
18、理員三個樹的根目錄,并讀取數(shù)據(jù)庫中用戶表中的數(shù)據(jù),將相應類別的用戶代碼添加的樹到子目錄中。void CUserTreeView:OnInitialUpdate() CTreeView:OnInitialUpdate();/ TODO: Add your specialized code here and/or call the base classm_theTreeCtrl=&GetTreeCtrl();m_theImageList.Create(IDB_TREE_BITMAP,16,1,RGB(0,255,0);m_theTreeCtrl-SetImageList(&m_theImageLi
19、st,TVSIL_NORMAL);CString userTreeHeader3=醫(yī)生,售藥員,管理員;HTREEITEM userItem3;for(int i=0;iInsertItem(userTreeHeaderi,0,0,TVI_ROOT);m_theTreeCtrl-SetItemData(userItemi,(DWORD)i);CMedicAdminDoc* pDoc=(CMedicAdminDoc*)GetDocument();CUserSet* userSet=&pDoc-theUserSet;if(userSet-IsOpen()userSet-Close();userSe
20、t-Open();CLogInDlg logInDlg;logInDlg.DoModal();CUser* theUser=&pDoc-theUser;HTREEITEM thePoint;for(i=0;im_strFilter=UserClassification=+userTreeHeaderi+;userSet-Requery();for(int j=0;j+)if(userSet-IsEOF()break;if(userSet-m_UserAccount=theUser-GetAccount()HTREEITEM userSpecifics=m_theTreeCtrl-InsertI
21、tem(userSet-m_UserAccount+(當前用戶),2,2,userItemi);m_theTreeCtrl-SetItemData(userSpecifics,(DWORD)j);thePoint=userSpecifics;elseHTREEITEM userSpecifics=m_theTreeCtrl-InsertItem(userSet-m_UserAccount,3,3,userItemi);m_theTreeCtrl-SetItemData(userSpecifics,(DWORD)j);userSet-MoveNext();m_theTreeCtrl-Select
22、(thePoint,TVGN_CARET);實現(xiàn)視圖窗口的分隔窗口分隔采用靜態(tài)分隔的方式。在主框架類CMainFrame的OnCreateClient函數(shù)中,通過CSplitterWnd類將客戶窗口分隔為左右兩部分,并分別對應前面創(chuàng)建的兩個視圖類,主要代碼如下:BOOL CMainFrame:OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) / TODO: Add your specialized code here and/or call the base classm_wndSplitter.CreateStatic
23、(this,1,2);/分割窗口為兩列m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CUserTreeView),CSize(130,600),pContext);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMedicListView),CSize(700,600),pContext);return TRUE;/return CFrameWnd:OnCreateClient(lpcs, pContext);其中,m_wndSplitter在頭文件中定義的CSplitterWnd類對象如下Protected:CSplitterWnd m_wndSplitter;3.7 登錄模塊設計當程序啟動時,在主界面窗口出現(xiàn)之前,首先彈出登錄對口框,如下圖,用戶需要輸入賬號,密碼等信息,只有通過驗證的用戶才能進入系統(tǒng),否則系統(tǒng)自動退出。登錄對口框
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年四年級語文上冊第一單元師生1.1師恩難忘作業(yè)設計北師大版
- 2024-2025學年四年級語文下冊第五組15觸摸春天教學反思新人教版
- 統(tǒng)編版六年級下冊語文第一單元習作家鄉(xiāng)的風俗指導 附范文5篇
- 淄博職業(yè)學院《化工原理專業(yè)理論教學》2023-2024學年第二學期期末試卷
- 2025年樹脂型膠粘劑合作協(xié)議書
- 西北大學現(xiàn)代學院《生物反應與分離綜合實驗》2023-2024學年第二學期期末試卷
- 12 臺階 +公開課一等獎創(chuàng)新教案+同步練習(含答案)
- 西安城市建設職業(yè)學院《碳資源循環(huán)學》2023-2024學年第二學期期末試卷
- 四川傳媒學院《誤差理論與數(shù)據(jù)處理》2023-2024學年第二學期期末試卷
- 2025年壓實機械合作協(xié)議書
- 2025年1月浙江省高考政治試卷(含答案)
- 教體局校車安全管理培訓
- 湖北省十堰市城區(qū)2024-2025學年九年級上學期期末質量檢測綜合物理試題(含答案)
- 導播理論知識培訓班課件
- 行車起重作業(yè)風險分析及管控措施
- 空氣能安裝合同
- 電廠檢修安全培訓課件
- 初二上冊的數(shù)學試卷
- 2025年上半年重慶三峽融資擔保集團股份限公司招聘6人高頻重點提升(共500題)附帶答案詳解
- 四大名繡課件-高一上學期中華傳統(tǒng)文化主題班會
- 大模型關鍵技術與應用
評論
0/150
提交評論