版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、廣東海洋大學(xué) 數(shù)據(jù)庫(kù)課程設(shè)計(jì) 藥品信息管理系統(tǒng)藥品信息管理系統(tǒng)1 系統(tǒng)分析1.1需求分析:對(duì)藥品信息管理主要需求就是對(duì)藥品信息進(jìn)行基本的管理,用戶需要及時(shí)準(zhǔn)確地掌握該診所內(nèi)現(xiàn)有的藥品的基本信息(主要包括數(shù)量,單價(jià),是否過(guò)期等)。同時(shí),用戶要求操作界面友好,操作簡(jiǎn)便,對(duì)數(shù)據(jù)庫(kù)的操作安全可靠,藥品從數(shù)據(jù)庫(kù)中修改了,但還沒(méi)結(jié)算時(shí)斷電,要求數(shù)據(jù)庫(kù)應(yīng)該能恢復(fù)。1.2功能分析:系統(tǒng)需要實(shí)現(xiàn)的主要功能包括查詢,刪除,增加,修改四部分,各功能具體如下表所示: 表1-1 系統(tǒng)的主要功能分析2. 系統(tǒng)設(shè)計(jì)2.1 繪制用例圖設(shè)計(jì)系統(tǒng)功能藥品信息管理系統(tǒng)一共包含3鐘用戶角色,分別是醫(yī)生,售藥員,和管理員,權(quán)限依次提高
2、,醫(yī)生權(quán)限是可以查詢庫(kù)存藥品信息,提供基本的用戶管理功能(更改密碼,更換用戶),例圖如下 醫(yī)生用例圖售藥員的權(quán)限在醫(yī)生的基礎(chǔ)上,還具有藥品管理的藥品銷售功能,用例圖如下: 售藥員用例圖管理員具有所有權(quán)限,包括查詢藥品,增加藥品條目,出售藥品,清理藥庫(kù)(包括清除數(shù)量為0的藥品,清除過(guò)期藥品等)及所有的用戶管理功能,用例圖如下: 管理員用例圖2.2 繪制系統(tǒng)流程圖本系統(tǒng)需要對(duì)用戶身份進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后再判斷用戶是屬于醫(yī)生,售藥員或者是管理員中的哪一個(gè)角色,根據(jù)角色判斷用戶可以使用系統(tǒng)中的相應(yīng)操作功能這里以管理員的身份為例 ,其流程圖如下: 系統(tǒng)流程圖3. 數(shù)據(jù)庫(kù)分析與設(shè)計(jì)3.1 數(shù)據(jù)庫(kù)概念設(shè)計(jì)本
3、系統(tǒng)一共設(shè)計(jì)規(guī)劃出三個(gè)實(shí)體,分別是用戶信息實(shí)體,藥品信息實(shí)體,藥品銷售實(shí)體。用戶信息實(shí)體用于記錄系統(tǒng)登錄用戶的信息,包括賬號(hào),密碼,權(quán)限等相關(guān)信息其E-R圖如下: 圖3-1 用戶信息實(shí)體藥品信息實(shí)體是數(shù)據(jù)庫(kù)的核心,記錄了所存儲(chǔ)的藥品的基本信息,其E-R圖如下: 藥品信息實(shí)體E-R圖藥品銷售實(shí)體則記錄了藥品銷售的相關(guān)信息,主要指藥品的出售數(shù)量,出售總價(jià)等,其E-R圖如下: 藥品銷售實(shí)體E-R圖3.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)設(shè)計(jì)好的各實(shí)體E-R圖創(chuàng)建數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),數(shù)據(jù)庫(kù)各表的結(jié)構(gòu)如下。 共3張表,分別是tb_medicine 和 tb_user,tb_saleTable.表3-1 tb_med
4、icine(藥品基本信息表) 表3-2 tb_user(用戶信息表) 表3-3 tb_saleTable(藥品銷售表) 3.3 數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì) 3.4 系統(tǒng)類庫(kù)設(shè)計(jì)藥品信息管理系統(tǒng)中的類庫(kù)主要設(shè)計(jì)如下:1. 藥品管理類 CManageMecdic:用于對(duì)藥庫(kù)進(jìn)行管理,主要包括藥品入庫(kù),藥品的出售,藥庫(kù)的清理,以及為實(shí)現(xiàn)這些函數(shù)而加的成員函數(shù)。2. 藥品查詢類 CMedicSearch:其成員函數(shù)主要包括一般查詢,查詢庫(kù)中數(shù)量為0的藥品,查詢過(guò)期藥品等。3. 用戶管理類CUser:主要設(shè)立了為完成以下功能的成員函數(shù),如新增用戶,刪除用戶,查詢用戶信息,修改用戶密碼等。4. 藥品類CMedic
5、:相當(dāng)于一結(jié)構(gòu)體,只是為了給系統(tǒng)提供一個(gè)數(shù)據(jù)類型,以對(duì)藥品進(jìn)行必要的管理,該類沒(méi)有成員函數(shù),該類一般作為CManageMedic和CMedicSearch類的一個(gè)成員變量。5. 出售單類CSale:主要是給系統(tǒng)提供一個(gè)數(shù)據(jù)類型,以對(duì)藥品出售進(jìn)行有效的管理,該類也沒(méi)有成員函數(shù),該類作為CManageMedic類的一個(gè)成員變量。6. CMedicSet,CUserSer,CSaleSet類:用于與數(shù)據(jù)庫(kù)中的表相連,它們從CRecordSer繼承而來(lái)。7. 一些對(duì)話框類:該系統(tǒng)許多地方都用到了對(duì)話框,這類對(duì)話框主要有CLlogInDlg,CChangPasswordDlg,CUserChangDlg
6、,CStoreDlg,CCleanUpDlg,CSaleDlg等8. 系統(tǒng)本身提供的框架類:如CMainFrm,CMedicAdminDoc,CMedicAdminApp,CMedicAdmicView等。3.5 公用模塊設(shè)計(jì)為了節(jié)省系統(tǒng)資源,實(shí)現(xiàn)代碼重用,提高程序運(yùn)行速度,可以將一些公用的數(shù)據(jù)信息放到模塊中。本系統(tǒng)自定義了CManageMdedic,CMedicSearch,CSale,CUser,和CMedic類模塊,而且從CRecordSet繼承了CMedicSet,CUserSet,CSaleSer類,連接數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表。a. 藥品類 CMedic該類主要用于記錄藥品信息表中的各字段
7、,主要包含一些成員變量,無(wú)成員函數(shù)。 class CMedicpublic:CMedic();virtual CMedic();public:CString m_MedicineID;CString m_MedicineName;CString m_MedicineClassification;CTime m_ProduceDate;CString m_Produceplace;int m_MedicineNumber;CString m_Description;float m_UnitPrice;int m_QeulityAssurancePeriod;int m_LowestNumber;
8、int m_HighestNumber;CString m_ProduceCompany;b. 出售單類CSale出售單類記錄saleTable數(shù)據(jù)表中的字段值,主要包含一些成員變量,無(wú)成員函數(shù)class CSalepublic:CSale();virtual CSale(); public:CString m_MedicineID;CString m_MedicineName;int m_MedicineNumber;float m_MedicinePrice; ;c藥品管理類CManageMedic該類主要實(shí)現(xiàn)藥品的操作功能,包括藥品入庫(kù),藥品出售,和藥品處理等,其成員變量和成員函數(shù)的定義
9、如下: class CManageMedicpublic:void DeleteOverdueMedic();void DeleteAllZeroNumber();CTime GetExpireTime();float CheckOut();BOOL Recover();BOOL DeleteFromSaleTable();BOOL ModifyFromSaleTable();BOOL AddToSaleTable();void SetSaleSet(CSaleSet* theSaleSet);void SetSale(CSale* theSale);void Import();void Se
10、tMedicSet(CMedicSet* theMedicSet);void SetMedic(CMedic* theMedic);CManageMedic();virtual CManageMedic(); protected:CMedic* m_theMedic;CMedicSet* m_theMedicSet;CSale* m_theSale;CSaleSet* m_theSaleSet;d藥品查詢類CMedicSearch該類實(shí)現(xiàn)藥品的各種查詢功能,其成員變量和成員函數(shù)的定義如下。class CMedicSearchpublic:void SearchOverdueMedic();vo
11、id SearchZeroNumber();void SearchAll();void Search(CString str,int flag);void SetMedicSet(CMedicSet* theMedicSet);void SetListCtrl(CListCtrl* theListCtrl);CMedicSearch();virtual CMedicSearch();protected:CMedicSet* m_theMedicSet;CListCtrl* m_theListCtrl;e用戶管理類CUser該類實(shí)現(xiàn)用戶的管理功能,包括用戶登錄,注冊(cè)用戶,查詢用戶,更換用戶,修改
12、密碼,其成員變量和才成員函數(shù)的定義如下: class CUserpublic:void ModifyPassword(CUserSet* 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,CUse
13、rSet* userSet);BOOL AddNewUser(CUser* newUser,CUserSet* theSet);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,CUs
14、erSet,CSaleSet這3個(gè)類是以CRecordSet類為基類創(chuàng)建的,分別連接數(shù)據(jù)庫(kù)中的medicine表,user表,saleTable表,通過(guò)Visual C+6.0提供的類創(chuàng)建向?qū)?duì)話框,可以實(shí)現(xiàn)這3個(gè)類的創(chuàng)建。以CMedicSet類為例,創(chuàng)建過(guò)程如下:在Visual C+6.0中,執(zhí)行“Insert”“New Class“菜單命令,彈出”New Class“對(duì)話框,在其中設(shè)置創(chuàng)建的類CMedicSet和基類CRecordSet 如下圖。 同理CUserSet和CSaleSet創(chuàng)建過(guò)程也是這樣。3.6 主界面設(shè)計(jì)系統(tǒng)采用標(biāo)準(zhǔn)的單文檔程序界面,并采用窗口分隔技術(shù)將客戶窗口試圖分隔為左
15、右兩部分,分別用于顯示用戶信息和藥品信息。藥品信息視圖類 CMedicListView 以CListView類為基類,創(chuàng)建新的列表視圖類CMedicListView,通過(guò)列表的形式顯示藥品信息。在CMedicListView類的OnCreate函數(shù)中,創(chuàng)建列表項(xiàng)和表頭,主要代碼如下。 int CMedicListView:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CListView:OnCreate(lpCreateStruct) = -1)return -1; / TODO: Add your specialized creation code h
16、ere theListCtrl=&GetListCtrl();ModifyStyle(0,LVS_REPORT);ASSERT(GetStyle() & LVS_REPORT);CString medicField9="藥品代碼","藥品名稱","藥品類別","庫(kù)存數(shù)量","出產(chǎn)公司","產(chǎn)地","出產(chǎn)時(shí)間",&a
17、mp;quot;保質(zhì)期(月)","單價(jià)(元)"for(int i=0;i<8;i+)theListCtrl->InsertColumn(i,medicFieldi,LVCFMT_LEFT,70); theListCtrl->InsertColumn(8,medicField8,LVCFMT_LEFT,58);return 0;用戶信息視圖類CUserTreeView 以CTreeView類為基類,創(chuàng)建新的樹(shù)形視圖類CUserTreeview,以樹(shù)的形式顯示用戶類別及各類別下注冊(cè)的用戶。在CUserT
18、reeView類的PreCreateWindows函數(shù)中,設(shè)置樹(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
19、函數(shù)中,設(shè)置醫(yī)生,售藥員,和管理員三個(gè)樹(shù)的根目錄,并讀取數(shù)據(jù)庫(kù)中用戶表中的數(shù)據(jù),將相應(yīng)類別的用戶代碼添加的樹(shù)到子目錄中。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-&am
20、p;gt;SetImageList(&m_theImageList,TVSIL_NORMAL); CString userTreeHeader3="醫(yī)生","售藥員","管理員"HTREEITEM userItem3;for(int i=0;i<3;i+)userItemi=m_theTreeCtrl->InsertItem(userTreeHeaderi,0,0,TVI_ROOT); m_theTreeCtrl->SetItem
21、Data(userItemi,(DWORD)i);CMedicAdminDoc* pDoc=(CMedicAdminDoc*)GetDocument();CUserSet* userSet=&pDoc->theUserSet;if(userSet->IsOpen()userSet->Close();userSet->Open(); CLogInDlg logInDlg;logInDlg.DoModal(); CUser* theUser=&pDoc->theUser;HTREEITEM the
22、Point;for(i=0;i<3;i+)userSet->m_strFilter="UserClassification="+userTreeHeaderi+"" userSet->Requery();for(int j=0;j+)if(userSet->IsEOF()break;if(userSet->m_UserAccount=theUser->GetAccount()HTREEITEMuserSpecifics=m_theTreeC
23、trl->InsertItem(userSet->m_UserAccount+"(當(dāng)前用戶)",2,2,userItemi);m_theTreeCtrl->SetItemData(userSpecifics,(DWORD)j); thePoint=userSpecifics;elseHTREEITEMuserSpecifics=m_theTreeCtrl->InsertItem(userSet->m_UserAccount,3,3,userItemi); m_theTreeCtrl-&am
24、p;gt;SetItemData(userSpecifics,(DWORD)j); userSet->MoveNext();m_theTreeCtrl->Select(thePoint,TVGN_CARET);實(shí)現(xiàn)視圖窗口的分隔 窗口分隔采用靜態(tài)分隔的方式。在主框架類CMainFrame的OnCreateClient函數(shù)中,通過(guò)CSplitterWnd類將客戶窗口分隔為左右兩部分,并分別對(duì)應(yīng)前面創(chuàng)建的兩個(gè)視圖類,主要代碼如下:BOOL CMainFrame:OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pCo
25、ntext)/ TODO: Add your specialized code here and/or call the base classm_wndSplitter.CreateStatic(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;/retu
26、rn CFrameWnd:OnCreateClient(lpcs, pContext);其中,m_wndSplitter在頭文件中定義的CSplitterWnd類對(duì)象如下Protected:CSplitterWnd m_wndSplitter;3.7 登錄模塊設(shè)計(jì)當(dāng)程序啟動(dòng)時(shí),在主界面窗口出現(xiàn)之前,首先彈出登錄對(duì)口框,如下圖,用戶需要輸入賬號(hào),密碼等信息,只有通過(guò)驗(yàn)證的用戶才能進(jìn)入系統(tǒng),否則系統(tǒng)自動(dòng)退出。登錄對(duì)口框?qū)?yīng)的對(duì)話框類為ClogInDlg,在CUserTreeView類的OnInitialUpdate函數(shù)中創(chuàng)建和調(diào)用,登錄對(duì)話框確定按鈕響應(yīng)函數(shù)OnOK的實(shí)現(xiàn)代碼如下:void CLogInDlg:OnOK(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人新能源車輛購(gòu)買還款協(xié)議實(shí)施細(xì)則3篇
- 2025年鐵路接觸網(wǎng)設(shè)備檢修合同3篇
- 2025年度現(xiàn)代風(fēng)格面磚采購(gòu)及施工合同4篇
- 二零二五版蜜蜂養(yǎng)殖保險(xiǎn)產(chǎn)品定制合作框架協(xié)議4篇
- 私募股權(quán)投資行業(yè)2024年信用回顧與2025年展望 -新世紀(jì)
- 貪吃蛇游戲課程設(shè)計(jì)
- 2024年度快手電商全景洞察-飛瓜-202501
- 初探太陽(yáng)系模板
- 二零二五版航空航天復(fù)合材料采購(gòu)預(yù)付款擔(dān)保服務(wù)協(xié)議3篇
- 老師記敘文6篇
- 2025春夏運(yùn)動(dòng)戶外行業(yè)趨勢(shì)白皮書
- 《法制宣傳之盜竊罪》課件
- 通信工程單位勞動(dòng)合同
- 高低壓配電柜產(chǎn)品營(yíng)銷計(jì)劃書
- 租賃車輛退車協(xié)議
- 醫(yī)療護(hù)理技術(shù)操作規(guī)程規(guī)定
- 盤式制動(dòng)器中英文對(duì)照外文翻譯文獻(xiàn)
- 社會(huì)系統(tǒng)研究方法的重要原則
- 重癥醫(yī)學(xué)科健康宣教手冊(cè)
- 2022版《義務(wù)教育英語(yǔ)課程標(biāo)準(zhǔn)》解讀培訓(xùn)課件
- 五個(gè)帶頭方面談心談話范文三篇
評(píng)論
0/150
提交評(píng)論