版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 計(jì)算機(jī)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)</p><p> 《程序設(shè)計(jì)綜合課程設(shè)計(jì)》報(bào)告</p><p> ?。?0010/2011學(xué)年 第一學(xué)期)</p><p> 學(xué)生姓名: </p><p> 學(xué)生班級: </p><p> 學(xué)生學(xué)號: &
2、lt;/p><p> 指導(dǎo)教師: </p><p><b> 2011年1月8日</b></p><p><b> 藥</b></p><p><b> 品</b></p><p><b> 倉</
3、b></p><p><b> 庫</b></p><p><b> 管</b></p><p><b> 理</b></p><p><b> 系</b></p><p><b> 統(tǒng)</b>
4、</p><p><b> 目錄</b></p><p><b> 第一章 前言1</b></p><p> 1.1藥品倉庫管理系統(tǒng)的開發(fā)背景1</p><p> 1.2 選題的目的、意義2</p><p> 第二章藥品倉庫管理系統(tǒng)的內(nèi)容2</p&
5、gt;<p> 2.1功能要求:2</p><p> 2.2課程設(shè)計(jì)的目的3</p><p> 2.3課程設(shè)計(jì)的要求3</p><p> 2.4課程設(shè)計(jì)的目標(biāo)4</p><p> 2.5 主要有三大重要模塊:4</p><p> 第三章 系統(tǒng)詳細(xì)設(shè)計(jì)說明4</p>
6、<p> 3.1系統(tǒng)的主要功能:4</p><p> 3.2 函數(shù)流程圖和藥品庫存管理模塊具體實(shí)現(xiàn)4</p><p> 3.3 測試計(jì)劃13</p><p> 3.4測試的意義14</p><p> 3.5 本系統(tǒng)的測試結(jié)果14</p><p> 第四章 軟件使用說明16</p&
7、gt;<p> 4.1 軟件使用說明16</p><p> 4.2 軟件測試結(jié)果16</p><p> 第五章 結(jié)束語17</p><p> 5.1程序設(shè)計(jì)的心得和體會17</p><p> 附錄一: 參考文獻(xiàn)17</p><p> 附錄二:程序代碼;18</p>&
8、lt;p><b> 第一章 前言</b></p><p> 1.1藥品倉庫管理系統(tǒng)的開發(fā)背景</p><p> 在市場經(jīng)濟(jì)的激烈競爭中,醫(yī)藥企業(yè)必須把業(yè)務(wù)經(jīng)營同市場需求聯(lián)系起來,為此,醫(yī)藥企業(yè)紛紛建立起了自己的數(shù)據(jù)庫系統(tǒng),由計(jì)算機(jī)管理代替手工操作。 </p><p> 藥品管理是一般醫(yī)藥企業(yè)生產(chǎn)管理環(huán)節(jié)中重要的一環(huán),需要對藥品基
9、本信息管理、藥品調(diào)配信息等盡心完整的監(jiān)控。藥品入庫首先需要登記藥品的基本信息,包括藥品的種類、名稱、型號、單位、單價(jià)等;然后登記藥品入庫信息,包括藥品基本信息、入庫地點(diǎn)、入庫人、經(jīng)辦人、數(shù)量等;出庫藥品需要登記出庫信息,包括藥品基本信息、出庫地點(diǎn)、出庫人、經(jīng)辦人、數(shù)量等;根據(jù)藥品的入庫、出庫過程的綜合,得到各種藥品的余額信息,方便進(jìn)行后續(xù)工作。</p><p> 設(shè)計(jì)一個管理信息系統(tǒng),主要是我們通過在實(shí)際中了解
10、了一些醫(yī)藥企業(yè)的管理形式,并結(jié)合當(dāng)今世界管理信息系統(tǒng)的蓬勃發(fā)展,了解現(xiàn)階段對管理信息系弘強(qiáng)調(diào)的是綜合管理功能,多維服務(wù)模式,人機(jī)協(xié)調(diào)的、智能化的、集成化的計(jì)算機(jī)輔助管理功能等。因此設(shè)計(jì)這樣一個管理信息系統(tǒng),來解決一些小型醫(yī)藥企業(yè)在物理管理上的缺點(diǎn),能夠?qū)崿F(xiàn)藥品信息的系統(tǒng)化、規(guī)范化和自動化。</p><p> 醫(yī)藥企業(yè)生產(chǎn)所需要的各種藥品。進(jìn)貨時經(jīng)檢查合同確認(rèn)為有效托收以后,進(jìn)行驗(yàn)收入庫,填寫入庫單,進(jìn)行入庫登記
11、。醫(yī)藥企業(yè)各個部門根據(jù)所需要的藥品總額和部門生產(chǎn)活動需要提出藥品需求申請。計(jì)劃員根據(jù)整個醫(yī)藥企業(yè)的需求開出藥品出庫單,藥品倉庫管理中根據(jù)出庫單核對發(fā)放藥品。藥品使用完畢需要及時歸還入庫,填寫入庫單。根據(jù)需要進(jìn)行統(tǒng)計(jì)分析,產(chǎn)生相應(yīng)報(bào)表。</p><p> 藥品倉庫管理的特點(diǎn)是信息自理量比較大。所管理的藥品種類繁多,而且由于入庫單、出庫單、需求單等單據(jù)發(fā)生量特別大,關(guān)聯(lián)信息多,查詢和統(tǒng)計(jì)的方工各不相同。因此在管理上
12、實(shí)現(xiàn)起來有一定的困難。在管理的過程中經(jīng)常會出現(xiàn)信息的重復(fù)傳遞;單據(jù)、報(bào)表種類繁多,各個部門管理規(guī)格不統(tǒng)一等問題。在本系統(tǒng)的設(shè)計(jì)過程中,為了克服這些困難,滿足計(jì)算機(jī)管理的需要。 </p><p> 1.2 選題的目的、意義</p><p> 此次畢業(yè)設(shè)計(jì)選題范圍是相當(dāng)廣泛且實(shí)用的,含蓋了目前大部分計(jì)算機(jī)軟件類開發(fā)的課題,給我們很大的自由發(fā)展的空間??梢悦總€學(xué)生挑選出最合適的課題,更適合同
13、學(xué)們的興趣和價(jià)值取向。選擇此課題對我來說有著不同的意義,應(yīng)該來說此課題更接近于實(shí)際開發(fā)的全過程。同時對編程、數(shù)據(jù)庫調(diào)用、結(jié)構(gòu)化查詢語言STRUCTURED QUERY LANGUAGE等方面是一個比較綜合的考驗(yàn)。讓我在此過程中得到很好的鍛煉。</p><p> 藥品倉庫管理系統(tǒng)的內(nèi)容</p><p><b> 2.1功能要求:</b></p><
14、;p> 用c/c++設(shè)計(jì)一系統(tǒng),實(shí)現(xiàn)以下功能:功能要求:</p><p><b> 用戶及權(quán)限管理;</b></p><p><b> 藥品入庫、出庫;</b></p><p><b> 藥品架位管理;</b></p><p> 藥品信息查詢、修改;</p
15、><p> 藥品過期提示,打印出過期藥品架位信息供工作人員將這些藥品下架;</p><p> 過期藥品下架后將這些藥品信息導(dǎo)入到過期藥品表或刪除。</p><p> 2.2課程設(shè)計(jì)的目的</p><p> 隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)技術(shù)已經(jīng)滲透到個個領(lǐng)域,成為各行業(yè)必不可少的工具,隨著超市的規(guī)模不斷擴(kuò)大,超市每天進(jìn)出庫的產(chǎn)品數(shù)量急
16、劇增加,有關(guān)銷售的各種信息量也成倍增長。還要時刻更新產(chǎn)品的銷售信息,不斷添加,刪除商品信息,所以就需要合理的數(shù)據(jù)庫結(jié)構(gòu)來保存數(shù)據(jù)信息,需要有效的程序結(jié)構(gòu)支持各種數(shù)據(jù)操作的執(zhí)行。</p><p> 本次課程設(shè)計(jì)使得課堂教學(xué)與實(shí)驗(yàn)實(shí)踐之間關(guān)系更為密切,讓同學(xué)們認(rèn)識到必須重視實(shí)踐環(huán)節(jié),多讀程序,多編寫程序,多上機(jī)實(shí)踐。進(jìn)一步培養(yǎng)結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對高級語言要素和控制結(jié)構(gòu)的理解,針對C ++語言中的重點(diǎn)
17、和難點(diǎn)內(nèi)容進(jìn)行訓(xùn)練,獨(dú)立完成有一定工作量的程序設(shè)計(jì)任務(wù),同時強(qiáng)調(diào)好的程序風(fēng)格。培養(yǎng)學(xué)生綜合利用C++語言進(jìn)行程序設(shè)計(jì)的能力,考察學(xué)生的觀察能力和總結(jié)能力,使學(xué)生將所學(xué)知識轉(zhuǎn)化為分析和設(shè)計(jì)簡單實(shí)際問題的能力。</p><p><b> 具體目的如下:</b></p><p> 1.鞏固和加深對C++語言課程基本知識的理解和掌握。2.掌握C++語言編程和程序調(diào)試的基
18、本技能。3.提高C++語言編程技巧,培養(yǎng)分析問題和解決問題的能力。</p><p> 4.利用C++語言進(jìn)行基本的軟件設(shè)計(jì)。</p><p> 5.掌握書寫程序設(shè)計(jì)說明文檔的能力。</p><p> 2.3課程設(shè)計(jì)的要求</p><p> 在程序設(shè)計(jì)中,。要求我們用所學(xué)的C++語言知識進(jìn)行簡單的編程,制作出一個簡單的程序。既可以用傳
19、統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)的方法,也可以用先進(jìn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法。</p><p> 具體要求如下:1)用C語言實(shí)現(xiàn)系統(tǒng);2)函數(shù)功能要劃分好(結(jié)構(gòu)化程序設(shè)計(jì));3)界面友好(良好的人機(jī)交互),加必要的注釋;4)提供程序測試方案。</p><p> 2.4課程設(shè)計(jì)的目標(biāo)</p><p> A.使藥品銷售的信息能及時得到統(tǒng)計(jì)、查詢</p>&l
20、t;p> B.方便操作員的操作,達(dá)到簡單、易用的效果</p><p> C.提高操作員的工作效率</p><p> D.提高操作的正確率</p><p> E.提高系統(tǒng)的可靠性及安全性</p><p> 2.5 主要有三大重要模塊:</p><p><b> 入庫模塊:</b>&
21、lt;/p><p><b> 出庫模塊:</b></p><p><b> 查詢模塊:</b></p><p><b> 信息保存模塊:</b></p><p> 第三章 系統(tǒng)詳細(xì)設(shè)計(jì)說明</p><p> 3.1系統(tǒng)的主要功能:</p&g
22、t;<p> 1) 產(chǎn)品入庫管理,可以填寫入庫單,確認(rèn)產(chǎn)品入庫;</p><p> 2) 產(chǎn)品出庫管理,可以填寫出庫單,確認(rèn)出庫;</p><p> 3) 初始庫存設(shè)置,設(shè)置庫存的初始值,庫存的上下警戒限;</p><p> 4) 可以查詢產(chǎn)品入庫情況、出庫情況、當(dāng)前庫存情況,可以按藥品的編號或名稱;</p><p>
23、 3.2 函數(shù)流程圖和藥品庫存管理模塊具體實(shí)現(xiàn)</p><p><b> 1 藥品的屬性 </b></p><p> 藥品屬性包括:藥品的編號,藥品的有效日期,藥品名稱,藥品數(shù)量 ,藥品 生產(chǎn)日期價(jià)格 ,藥品生產(chǎn)商等等;</p><p> 2 藥品倉庫管理的主函數(shù)的流程圖</p><p> 3-2-1藥品倉庫
24、管理的主函數(shù)流程圖(1)</p><p> 3-2-2藥品倉庫管理的主函數(shù)流程圖(2)</p><p> 3-2-3藥品倉庫管理的主函數(shù)流程圖(3)</p><p> 3 出庫入庫連接流程圖</p><p> 3-2-4 出庫入庫連接流程圖(1)</p><p> 3-2-5 出庫入庫連接流程圖(2)<
25、/p><p><b> 4 藥品出庫</b></p><p><b> 藥品出庫流程圖</b></p><p> 3-2-6 藥品出庫流程圖(1)</p><p> 3-2-7 藥品出庫流程圖(2)</p><p><b> (2)藥品出庫代碼</b&
26、gt;</p><p> dlnode *output(dlnode *L)//出庫的函數(shù)</p><p><b> {</b></p><p><b> int y;</b></p><p> dlnode *head=L;</p><p> if(ifempty
27、==0)//檢測是否有貨物輸入</p><p><b> {</b></p><p> printf("沒有貨物輸入系統(tǒng)\n");</p><p> getchar();getchar();</p><p> return(head);</p><p><b>
28、; } </b></p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("=============\n");</p><p> printf("1.按編號出庫\n"
29、;);</p><p> printf("2.按名稱出庫\n");</p><p> printf("0.返回上一層\n");</p><p> printf("==============\n");</p><p> printf("選擇0--2:");
30、scanf("%d",&y);</p><p><b> switch(y)</b></p><p><b> {</b></p><p> case 1:outnum(L);break;//調(diào)用按編號出庫函數(shù)</p><p> case 2:outname(L)
31、;break;//調(diào)用按名稱出庫函數(shù)</p><p> case 0:return(L);</p><p> default:printf("enter error!Please input 0--2!");</p><p> getchar();getchar();printf("\n\n");</p>
32、<p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p> dlnode *outnum(dlnode *L)//按編號出庫函數(shù)</p><p> { <
33、/p><p><b> int num;</b></p><p> dlnode *head=L;</p><p> printf("請輸入出庫貨物的編號:");</p><p> scanf("%d",&num);</p><p> whil
34、e((L=L->next)!=head)</p><p> {//如果找到就刪除節(jié)點(diǎn)</p><p> if(L->number==num)</p><p><b> {</b></p><p> L->prior->next=L->next;</p><p>
35、; L->next->prior=L->prior;</p><p> ifempty--; //ifempty減1 </p><p> printf("編號為%d的貨物成功出庫",num); </p><p> getchar();getchar();</p><p> retur
36、n head; </p><p><b> } </b></p><p><b> }</b></p><p> printf("沒有此編號的貨物,請查看是否還有貨物。\n\n");</p><p> getchar();getchar();</
37、p><p> return (head);</p><p><b> }</b></p><p> dlnode *outname(dlnode *L)//按名稱出庫函數(shù)</p><p><b> {</b></p><p> char na[32];</p>
38、;<p> dlnode *head=L;</p><p> printf("請輸入出庫貨物的名稱:");</p><p> scanf("%s",&na);</p><p> while((L=L->next)!=head)</p><p> {//如果找到就刪除
39、節(jié)點(diǎn)</p><p> if(strcmp(L->name,na)==0)</p><p><b> {</b></p><p> L->prior->next=L->next;</p><p> L->next->prior=L->prior;</p>&
40、lt;p> ifempty--; //ifempty減1 </p><p> printf("名稱為%s的貨物成功出庫",na);</p><p> getchar();getchar();</p><p> return (head);</p><p><b> }<
41、/b></p><p><b> }</b></p><p> printf("沒有此名稱的貨物,請查看是否還有貨物。\n\n");</p><p> getchar();getchar();</p><p> return(head);</p><p><
42、b> } </b></p><p><b> 5. 藥品入庫</b></p><p> 輸入新進(jìn)藥品的一切信息,新記錄將寫入,新的零售價(jià)格將寫入藥品庫存信息表相應(yīng)的藥品記錄中去,方便藥品庫存的統(tǒng)計(jì)。</p><p> 需要強(qiáng)調(diào)的是當(dāng)要求填寫的文本框?yàn)榭諘r,系統(tǒng)會有提示信息要求用戶輸入必須的信息,否則新藥品
43、不能入存。步驟為:輸入藥品資料,開始入庫,結(jié)束入庫,提交入庫資料。</p><p><b> 藥品入庫代碼為:</b></p><p> dlnode *input(dlnode *L)//定義入庫函數(shù)</p><p><b> {</b></p><p> dlnode *in,*head
44、;</p><p> head=in=(dlnode *)malloc(sizeof(dlnode));//分配空間</p><p><b> head=L;</b></p><p> printf("\n請輸入貨物數(shù)據(jù):\n");</p><p> printf("編號:"
45、;);scanf("%d",&in->number);</p><p> printf("名稱:");scanf("%s",&in->name);</p><p> printf("數(shù)量:");scanf("%d",&in->counter);&
46、lt;/p><p> if(L->next==NULL) //如果只有頭節(jié)點(diǎn),</p><p> { //把剛輸入的in節(jié)點(diǎn)</p><p> L->next=in; //跟在頭節(jié)點(diǎn)后面</p><p> L->prior=in; //</p><
47、p> in->next=L; //</p><p> in->prior=L; //</p><p> ifempty++; //ifempty加1</p><p><b> }</b></p><p><b> else</b></p>&l
48、t;p> {//如果當(dāng)前L的下一個節(jié)點(diǎn)不是頭節(jié)點(diǎn)</p><p> while((L=L->next)!=head)</p><p> {//如果輸入的數(shù)大于L->number,則插到L的前面</p><p> if(L->number<in->number)</p><p><b>
49、{</b></p><p> in->next=L;</p><p> in->prior=L->prior; </p><p> L->prior->next=in;</p><p> L->prior=in;</p><p> ifempty+
50、+; //ifempty加1</p><p> return(head);</p><p> } </p><p><b> }</b></p><p> //輸入的編號比其它編號都小,則插到最后個節(jié)點(diǎn),并首尾相連</p><p> head->prior-&
51、gt;next=in;</p><p> in->prior=head->prior;</p><p> head->prior=in;</p><p> in->next=head;</p><p> ifempty++; //ifempty加1</p><p> }
52、 </p><p> return head;</p><p><b> }</b></p><p><b> 6.藥品查詢</b></p><p> 系統(tǒng)查詢所需藥品,在售藥過程中銷售人員對藥品數(shù)據(jù)庫進(jìn)行查詢。兩種方法,第一種:按編號查詢;第二種:按名稱查詢;</p><
53、;p><b> 7.登錄模塊</b></p><p> 主要是完成用戶的登錄,根據(jù)用戶的級別系統(tǒng)賦予不同的權(quán)限。要求用戶從列表框中選取出用戶名,然后輸入密碼。通過驗(yàn)證進(jìn)入系統(tǒng)。</p><p><b> 8.藥品信息模塊</b></p><p> 這個模塊是構(gòu)成本系統(tǒng)的基本元素,所有藥品的各種詳細(xì)信息都必須在
54、本模塊中完成錄入,在這里要求用戶輸入組成一條藥品信息的基本信息。并且可以隨時對這些信息進(jìn)行增、刪、改。</p><p><b> 9藥品庫存管理模塊</b></p><p> 有了基本的藥品信息以后,就可以對所擁有的產(chǎn)品資料添加進(jìn)貨信息了,用戶必須輸入一些必要的數(shù)據(jù),如進(jìn)貨的價(jià)格和數(shù)量,模塊完成對庫存藥品的盤點(diǎn)以及藥品過期銷毀功能。藥庫采購藥品實(shí)現(xiàn)入庫登記,對藥庫
55、中的藥品進(jìn)行有效的管理,根據(jù)藥品使用情況及時與供應(yīng)商實(shí)現(xiàn)進(jìn)貨與退貨。在藥庫中過期的藥品應(yīng)及時銷毀,這樣才能保證客戶的健康,對客戶負(fù)責(zé)。</p><p><b> 10.用戶管理模塊</b></p><p> 用戶分別兩種,一種是A級用戶,是系統(tǒng)管理員級;另一種是B級用戶,是藥房銷售人員級。這兩種級別的用戶的區(qū)別就是所擁有的權(quán)限不同。在用戶管理模塊中,能夠?qū)λ杏脩?/p>
56、密碼、創(chuàng)建用戶的工作以及系統(tǒng)資料的刪除,只有A級用戶,即系統(tǒng)管理員級用戶。</p><p> 11藥品倉庫管理模塊</p><p> 3-3-8 藥品倉庫管理模塊</p><p><b> 3.3 測試計(jì)劃</b></p><p> 先通過對模塊的測試,模塊通過后,在進(jìn)行整體調(diào)試,進(jìn)而達(dá)到程序的順利完成;<
57、;/p><p><b> 3.4測試的意義</b></p><p> 在開發(fā)軟件系統(tǒng)的過程中,面對錯綜復(fù)雜的問題,人的主觀認(rèn)識不可能完全符合客觀現(xiàn)象,因此,每個階段都不可避免地產(chǎn)生錯誤,在每個階段結(jié)束之前通過嚴(yán)格的技術(shù)審查,盡可能早的發(fā)現(xiàn)所有錯誤,此外,在編碼過程中還會不可避免地引入新的錯誤,測試的目的就是在軟件投入生產(chǎn)運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中發(fā)的錯誤。<
58、/p><p> 3.5 本系統(tǒng)的測試結(jié)果</p><p> 1.藥品倉庫管理系統(tǒng)的登陸界面:.</p><p> 3-5-1藥品倉庫管理系統(tǒng)的登陸界面</p><p> 2.藥品入庫 </p><p> 3-5-2藥品入庫 </p
59、><p><b> 3藥品出庫:</b></p><p><b> 3-5-3藥品出庫</b></p><p> 4藥品查詢: </p><p> 3-5-4藥品查詢: </p><p> 5
60、將藥品信息保存在文件中:</p><p> 3-5-5將藥品信息保存在文件中:</p><p> 第四章 軟件使用說明</p><p> 4.1 軟件使用說明</p><p> 該程序可以實(shí)現(xiàn)對藥品的倉庫管理,在C語言的運(yùn)行下進(jìn)行。</p><p> 界面顯示后,需選擇入庫出庫選項(xiàng)或查詢選項(xiàng),如要如果要入庫出
61、庫,按1,進(jìn)入藥品入庫出庫信息頁面,則根據(jù)要求需依次輸入藥品編號,藥品名稱,藥品數(shù)量,藥品價(jià)格,藥品的生產(chǎn)日期及有效日期(為了方便,我們可以將其都輸入1),藥品的生產(chǎn)商,輸入完成后,則關(guān)于藥品的信息已存入。如要查詢藥品信息,按2,進(jìn)入查詢藥品信息頁面,它將會出現(xiàn)兩種查詢方式,第一種,按編號查詢,第二種,按名稱查詢;類似這樣步驟進(jìn)行,按 0,即可退出;</p><p> 4.2 軟件測試結(jié)果</p>
62、<p><b> 如同系統(tǒng)測試結(jié)果;</b></p><p><b> 第五章 結(jié)束語</b></p><p> 5.1程序設(shè)計(jì)的心得和體會</p><p> 在這次課程設(shè)計(jì)中,讓我學(xué)到了很多在課堂和書本上學(xué)不到的知識,我在這次課程設(shè)計(jì)中最大的收獲有以下幾個方面:</p><p>
63、; 一、領(lǐng)略到了數(shù)據(jù)庫設(shè)計(jì)在計(jì)算機(jī)領(lǐng)域的重要性。數(shù)據(jù)庫作為一個永久存儲形式在應(yīng)用中發(fā)揮著重要的作用。在數(shù)據(jù)庫設(shè)計(jì)中,我明白了數(shù)據(jù)庫設(shè)計(jì)中不是范式越高越好的。我們要根據(jù)我們的應(yīng)用來決定,一切應(yīng)該以需求為首要選擇。</p><p> 二、對變成環(huán)境、一些控件的使用和界面的美化方面更加熟悉。因?yàn)椤端幤穫}庫管理系統(tǒng)》中涉及到很多控件的使用,只有很好的使用這些控件才可以給出一個很好的界面呈現(xiàn)在用戶的面前。這樣更有利于數(shù)
64、據(jù)庫和用戶之間的交流。這里就要涉及一些平時不太常見的控件的使用問題。為了更好的在系統(tǒng)中利用這些控件,我上網(wǎng)查詢了一些關(guān)于控件使用的資料,最主要的是MSDN上面、還有借了一些這方面的書籍。在界面的美化方面,我了解了一些WINDOWS自定義界面的知識,現(xiàn)在的軟件其實(shí)好多面向用戶的時候用戶首先看的就是一個軟件的界面是否有好,是否漂亮。其實(shí),界面美化是很重要的。因?yàn)槊?,是人一直追求的。主要知識有:自定義窗口形狀,控件的自定義等等。這些都是通過面
65、向?qū)ο缶幊痰囊恍┨匦詫?shí)現(xiàn)的,又得是通過多態(tài),又得是通過類的繼承。</p><p> 三、利用軟件工程學(xué)開發(fā)系統(tǒng)。雖然這個《藥品倉庫管理系統(tǒng)》是一個小的系統(tǒng),但只有從這些小的項(xiàng)目中就利用軟件工程學(xué)的知識,這樣可以開發(fā)在系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)中我們可以總結(jié)很多經(jīng)驗(yàn)和教訓(xùn)。我們一般按照瀑布開發(fā)模型、增量模型、 螺旋模型來做我們的項(xiàng)目。</p><p><b> 附錄一: 參考文獻(xiàn)
66、</b></p><p> [1]、譚浩強(qiáng),C++語言程序設(shè)計(jì),清華大學(xué)出版社</p><p> [2]、譚浩強(qiáng),C語言程序設(shè)計(jì)(第二版),清華大學(xué)出版社,1992</p><p> [3] 《visual c++ 工程應(yīng)用與項(xiàng)目實(shí)踐》 機(jī)械工業(yè)出版社 張雨,阮偉良等 2005·1</p><p> [4] 《管
67、理信息系統(tǒng)完整項(xiàng)目實(shí)例剖析》 人民郵電出版社,明日科技 2005·7</p><p><b> 附錄二:程序代碼;</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<st
68、ring.h></p><p> #include<malloc.h></p><p> #define max 32</p><p> int ifempty=0;//標(biāo)志,判斷鏈表是無否為空</p><p> typedef struct dnode /* 定義雙向鏈表結(jié)構(gòu)體 */ </p>
69、<p><b> {</b></p><p> int number; /* 藥品編號 */</p><p> char name[max]; /* 藥品名稱 */ </p><p> int counter; /* 藥品數(shù)量 */</p><p>
70、int data; /*藥品生產(chǎn)日期*/</p><p> int price; /*藥品單價(jià)*/</p><p> int edata; //藥品有效日期</p><p> int pname;//藥品生產(chǎn)商</p><p> struct dnode *prior, *next;</p
71、><p> /* 定義兩指針,分別指向其前驅(qū)和后繼 */</p><p> }dlnode; </p><p> dlnode *create(dlnode *L);</p><p> dlnode *input(dlnode *L);</p><p> dlnode *o
72、utput(dlnode *L);</p><p> dlnode * outnum(dlnode *L);</p><p> dlnode * outname(dlnode *L);</p><p> dlnode *current(dlnode *L);</p><p> void search(dlnode *L);<
73、/p><p> void print(dlnode *L);</p><p> void searchnum(dlnode *L);</p><p> void searchname(dlnode *L);</p><p> void display(dlnode *L) ;</p><p> v
74、oid main()</p><p><b> {</b></p><p><b> int x;</b></p><p> dlnode *L;</p><p> if(!(L=(dlnode *)malloc(sizeof(dlnode)))) //分配空間</p><
75、;p><b> {</b></p><p> printf("\n");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> create(L);///調(diào)用函數(shù),創(chuàng)建頭節(jié)點(diǎn)</p&
76、gt;<p><b> while(1)</b></p><p> {////////////////////////主菜單///////////////////////////</p><p> printf(" ============================\n");</p>
77、<p> printf(" 1. 藥品出庫和入庫\n");</p><p> printf(" 2. 查找藥品表\n"); </p><p> printf(" 3. 顯示倉庫藥品表\n");
78、</p><p> printf(" 4. 輸出到文件\n");</p><p> printf(" 0. 退出\n");</p><p> printf(" ===================
79、==========\n");</p><p> printf(" 選擇0--4: ");</p><p> scanf("%d",&x);</p><p><b> switch(x)</b></p><p><b>
80、; {</b></p><p> case 2:search(L);break;//調(diào)用查找函數(shù)</p><p> case 1:current(L);break;//調(diào)用入庫出庫函數(shù)</p><p> case 3:display(L);break;//調(diào)用顯示輸出函數(shù)</p><p> case 4:print(L)
81、;break;//調(diào)用打印函數(shù)</p><p> case 0:printf("\n bye!see you!\n");</p><p> getchar();getchar();exit(0);//退出程序</p><p> default:printf("\n E
82、nter erreor!please input 0--4!"); </p><p> getchar();getchar();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p&g
83、t;<p> dlnode *create(dlnode *L)//創(chuàng)建鏈表頭節(jié)點(diǎn)</p><p><b> {</b></p><p> printf(" 藥品倉庫管理系統(tǒng)\n");</p><p> printf(" 按enter開始");</p
84、><p> getchar(); </p><p> ifempty=0;</p><p> ///////初始化頭節(jié)點(diǎn)的值////////</p><p> L->next=NULL;L->prior=NULL;</p><p> L->number=L->counter=L->d
85、ata=L->price=L->edata=L->pname=0;//**</p><p> strcpy(L->name," "); </p><p><b> return L;</b></p><p><b> }</b></p><p>
86、; void search(dlnode *L) ///查找的主要菜單</p><p><b> {</b></p><p><b> int y;</b></p><p> if(ifempty==0)</p><p><b> {</b></p>&
87、lt;p> printf("沒有輸入藥品!\n");</p><p> getchar();getchar();</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b>
88、;</p><p><b> {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("=====================\n");</p><
89、p> printf("1.按編號查詢\n");</p><p> printf("2.按藥品名稱查詢\n");</p><p> printf("0.返回上一層\n");</p><p> printf("====================\n");</p>
90、;<p> printf("選擇0--2:");</p><p> scanf("%d",&y);</p><p><b> switch(y)</b></p><p><b> {</b></p><p> case 1:se
91、archnum(L);break;//調(diào)用按編號查找的函數(shù)</p><p> case 2:searchname(L);break;//調(diào)用按名稱查找的函數(shù)</p><p> case 0:return;//返回</p><p> default:printf("enter error!Please input 0--2!\n\n");&l
92、t;/p><p> getchar();getchar();printf("\n\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><
93、b> }</b></p><p> void searchnum(dlnode *L)///按編號查找的函數(shù)</p><p><b> {</b></p><p> int num,flag=0;//flag為是否找到的標(biāo)志</p><p> dlnode *head=L;</p>
94、<p> if(ifempty==0)</p><p><b> {</b></p><p> printf("沒有藥品被輸入\n");</p><p> getchar();getchar();</p><p><b> return;</b></
95、p><p><b> }</b></p><p> printf("輸入你要查找的藥品編號:\n");</p><p> scanf("%d",&num);</p><p> while((L=L->next)!=head)</p><p>
96、;<b> {</b></p><p> if(L->number==num)</p><p> { flag=1;//flag為1時表示找到</p><p> printf("找到指定編號藥品 \n"); </p><p> printf("\n編號:%d\
97、n",L->number);</p><p> printf("名稱:%s\n",L->name) ;</p><p> printf("數(shù)量:%d\n",L->counter); </p><p> printf("生產(chǎn)日期:%d\n",L->data);</
98、p><p> printf("藥品單價(jià):%d\n",L->price);</p><p> printf("藥品有效日期:%d\n",L->edata);</p><p> printf("藥品生產(chǎn)商:%d\n",L->pname);</p><p><b&
99、gt; } </b></p><p><b> }</b></p><p> if(flag==0)//flag為0時表示沒有找到</p><p> printf("沒有找到指定編號藥品,請查看是否還有藥品。\n");</p><p> getchar();getc
100、har();</p><p><b> }</b></p><p> void searchname(dlnode *L)//按名稱查找的函數(shù)</p><p><b> {</b></p><p> int flag=0;//flag為是否找到的標(biāo)志</p><p>
101、 char na[32];</p><p> dlnode *head=L;</p><p> if(ifempty==0)</p><p><b> {</b></p><p> printf("沒有藥品被輸入\n");</p><p> getchar();ge
102、tchar();</p><p><b> return;</b></p><p><b> }</b></p><p> printf("輸入你要查找的藥品名稱\n");</p><p> scanf("%s",&na);</p>
103、<p> while((L=L->next)!=head)</p><p><b> {</b></p><p> if(strcmp(L->name,na)==0)</p><p> { flag=1;//flag為1時表示找到</p><p> printf("找到指
104、定名稱藥品 \n"); </p><p> printf("\n編號:%d\n",L->number);</p><p> printf("名稱:%s\n",L->name) ;</p><p> printf("數(shù)量:%d\n",L->counter); &l
105、t;/p><p> printf("生產(chǎn)日期:%d\n",L->data);//******************4</p><p> printf("藥品單價(jià):%d\n",L->price);</p><p> printf("藥品有效日期:%d\n",L->edata);</
106、p><p> printf("藥品生產(chǎn)商:%d\n",L->pname);</p><p><b> } </b></p><p><b> }</b></p><p> if(flag==0)//flag為0時表示沒有找到</p><
107、p> printf("沒有找到指定編號藥品,請查看是否還有藥品。\n\n");</p><p> getchar();getchar();</p><p><b> }</b></p><p> dlnode *current(dlnode *L)//藥品出庫入庫函數(shù)</p><p>&
108、lt;b> {</b></p><p><b> int y;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("======================
109、==\n");</p><p> printf(" 1.藥品入庫\n");</p><p> printf(" 2.藥品出庫\n");</p><p> printf(" 0.返回上一層\n");</p><p> printf("
110、========================\n");</p><p> printf(" 選擇0--2:");</p><p> scanf("%d",&y);</p><p><b> switch(y)</b></p><p><b&
111、gt; {</b></p><p> case 1:input(L);break;//調(diào)用入庫函數(shù)</p><p> case 2:output(L);break;//調(diào)用出庫函數(shù)</p><p> case 0:return(L);//返回上一層</p><p> default:printf("enter
112、error!Please input 0--2!");</p><p> getchar();getchar();</p><p> printf("\n\n");</p><p><b> }</b></p><p><b> }</b></p>
113、<p><b> }</b></p><p> dlnode *input(dlnode *L)//定義入庫函數(shù)</p><p><b> {</b></p><p> dlnode *in,*head;</p><p> head=in=(dlnode *)malloc(si
114、zeof(dlnode));//分配空間</p><p><b> head=L;</b></p><p> printf("\n請輸入藥品數(shù)據(jù):\n");</p><p> printf("編號:");scanf("%d",&in->number);</p&
115、gt;<p> printf("名稱:");scanf("%s",&in->name);</p><p> printf("數(shù)量:");scanf("%d",&in->counter);</p><p> printf("生產(chǎn)日期:");sca
116、nf("%d",&in->data);//******************5</p><p> printf("藥品單價(jià):");scanf("%d",&in->price);</p><p> printf("藥品有效日期:");scanf("%d",&a
117、mp;in->edata);</p><p> printf("藥品生產(chǎn)商:");scanf("%d",&in->pname);</p><p> if(L->next==NULL) //如果只有頭節(jié)點(diǎn),</p><p> { //把剛輸入的in節(jié)點(diǎn)<
118、;/p><p> L->next=in; //跟在頭節(jié)點(diǎn)后面</p><p> L->prior=in; //</p><p> in->next=L; //</p><p> in->prior=L; //</p><p> ifempty++; //ifem
119、pty加1</p><p><b> }</b></p><p><b> else</b></p><p> {//如果當(dāng)前L的下一個節(jié)點(diǎn)不是頭節(jié)點(diǎn)</p><p> while((L=L->next)!=head)</p><p> {//如果輸入的數(shù)大于
120、L->number,則插到L的前面</p><p> if(L->number<in->number)</p><p><b> {</b></p><p> in->next=L;</p><p> in->prior=L->prior; </p&g
121、t;<p> L->prior->next=in;</p><p> L->prior=in;</p><p> ifempty++; //ifempty加1</p><p> return(head);</p><p> } </p><p><b
122、> }</b></p><p> //輸入的編號比其它編號都小,則插到最后個節(jié)點(diǎn),并首尾相連</p><p> head->prior->next=in;</p><p> in->prior=head->prior;</p><p> head->prior=in;</p>
123、;<p> in->next=head;</p><p> ifempty++; //ifempty加1</p><p> } </p><p> return head;</p><p><b> }</b></p><p> dlnode *ou
124、tput(dlnode *L)//出庫的函數(shù)</p><p><b> {</b></p><p><b> int y;</b></p><p> dlnode *head=L;</p><p> if(ifempty==0)//檢測是否有藥品輸入</p><p>
125、<b> {</b></p><p> printf("沒有藥品輸入系統(tǒng)\n");</p><p> getchar();getchar();</p><p> return(head);</p><p><b> } </b></p><p&
126、gt;<b> while(1)</b></p><p><b> {</b></p><p> printf("=============\n");</p><p> printf("1.按編號出庫\n");</p><p> printf(&qu
127、ot;2.按名稱出庫\n");</p><p> printf("0.返回上一層\n");</p><p> printf("==============\n");</p><p> printf("選擇0--2:");scanf("%d",&y);</p&
128、gt;<p><b> switch(y)</b></p><p><b> {</b></p><p> case 1:outnum(L);break;//調(diào)用按編號出庫函數(shù)</p><p> case 2:outname(L);break;//調(diào)用按名稱出庫函數(shù)</p><p&
129、gt; case 0:return(L);</p><p> default:printf("enter error!Please input 0--2!");</p><p> getchar();getchar();printf("\n\n");</p><p><b> }</b></
130、p><p><b> }</b></p><p><b> }</b></p><p> dlnode *outnum(dlnode *L)//按編號出庫函數(shù)</p><p><b> {</b></p><p><b> int num
131、;</b></p><p> dlnode *head=L;</p><p> printf("請輸入出庫藥品的編號:");</p><p> scanf("%d",&num);</p><p> while((L=L->next)!=head)</p>
132、<p> {//如果找到就刪除節(jié)點(diǎn)</p><p> if(L->number==num)</p><p><b> {</b></p><p> L->prior->next=L->next;</p><p> L->next->prior=L->prior
133、;</p><p> ifempty--; //ifempty減1 </p><p> printf("編號為%d的藥品成功出庫",num); </p><p> getchar();getchar();</p><p> return head; </p><p>
134、;<b> } </b></p><p><b> }</b></p><p> printf("沒有此編號的藥品,請查看是否還有藥品。\n\n");</p><p> getchar();getchar();</p><p> return (head);<
135、;/p><p><b> }</b></p><p> dlnode *outname(dlnode *L)//按名稱出庫函數(shù)</p><p><b> {</b></p><p> char na[32];</p><p> dlnode *head=L;</p
136、><p> printf("請輸入出庫藥品的名稱:");</p><p> scanf("%s",&na);</p><p> while((L=L->next)!=head)</p><p> {//如果找到就刪除節(jié)點(diǎn)</p><p> if(strcmp(
137、L->name,na)==0)</p><p><b> {</b></p><p> L->prior->next=L->next;</p><p> L->next->prior=L->prior;</p><p> ifempty--; //ifempty減1
138、 </p><p> printf("名稱為%s的藥品成功出庫",na);</p><p> getchar();getchar();</p><p> return (head);</p><p><b> }</b></p><p><b>
139、; }</b></p><p> printf("沒有此名稱的藥品,請查看是否還有藥品。\n\n");</p><p> getchar();getchar();</p><p> return(head);</p><p><b> }</b></p><p
140、> void display(dlnode *L)//顯示藥品清單</p><p><b> {</b></p><p> dlnode *head=L;</p><p> if(ifempty==0)</p><p><b> {</b></p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫管理系統(tǒng)課程設(shè)計(jì)
- 倉庫管理系統(tǒng)課程設(shè)計(jì)
- 倉庫管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--倉庫管理系統(tǒng)
- 課程設(shè)計(jì)---倉庫管理系統(tǒng)
- 倉庫管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)倉庫管理系統(tǒng)
- 倉庫管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告--倉庫管理系統(tǒng)
- 倉庫管理系統(tǒng)課程設(shè)計(jì)資料
- 課程設(shè)計(jì)--原料倉庫管理系統(tǒng)
- vb課程設(shè)計(jì)---倉庫管理系統(tǒng)
- 倉庫管理系統(tǒng)課程設(shè)計(jì)uml
- 倉庫管理系統(tǒng)課程設(shè)計(jì) (2)
- 倉庫管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 倉庫管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 倉庫管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)—倉庫管理系統(tǒng)設(shè)計(jì)報(bào)告
- 倉庫倉庫管理系統(tǒng)uml課程設(shè)計(jì)報(bào)告
- 倉庫管理系統(tǒng)--課程設(shè)計(jì)報(bào)告報(bào)告
評論
0/150
提交評論