2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論