藥品倉庫管理系統(tǒng)_第1頁
藥品倉庫管理系統(tǒng)_第2頁
藥品倉庫管理系統(tǒng)_第3頁
藥品倉庫管理系統(tǒng)_第4頁
藥品倉庫管理系統(tǒng)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《程序設(shè)計(jì)綜合課程設(shè)計(jì)》報(bào)告指導(dǎo)教師:2011年1月8日藥品倉庫管理系統(tǒng)124...........................................................4程序設(shè)計(jì)綜合課程設(shè)計(jì)第一章前言1.1藥品倉庫管理系統(tǒng)的開發(fā)背景在市場(chǎng)經(jīng)濟(jì)的激烈競(jìng)爭(zhēng)中,醫(yī)藥企業(yè)必須把業(yè)務(wù)經(jīng)營(yíng)同市場(chǎng)需求聯(lián)系起來,為此,醫(yī)藥企業(yè)紛紛建立起了自己的數(shù)據(jù)庫系統(tǒng),由計(jì)算機(jī)管理代替手工操作。藥品管理是一般醫(yī)藥企業(yè)生產(chǎn)管理環(huán)節(jié)中重要的一環(huán),需要對(duì)藥品基本信息管理、藥品調(diào)配信息等盡心完整的監(jiān)控。藥品入庫首先需要登記藥品的基本信息,包括藥品的種類、名稱、型號(hào)、單位、單價(jià)等;然后登記藥品入庫信息,包括藥品基本信息、入庫地點(diǎn)、入庫人、經(jīng)辦人、數(shù)量等;出庫藥品需要登記出庫信息,包括藥品基本信息、出庫地點(diǎn)、出庫人、經(jīng)辦人、數(shù)量等;根據(jù)藥品的入庫、出庫過程的綜合,得到各種藥品的余額信息,方便進(jìn)行后續(xù)工作。設(shè)計(jì)一個(gè)管理信息系統(tǒng),主要是我們通過在實(shí)際中了解了一些醫(yī)藥企業(yè)的管理形式,并結(jié)合當(dāng)今世界管理信息系統(tǒng)的蓬勃發(fā)展,了解現(xiàn)階段對(duì)管理信息系弘強(qiáng)調(diào)的是綜合管理功能,多維服務(wù)模式,人機(jī)協(xié)調(diào)的、智能化的、集成化的計(jì)算機(jī)輔助管理功能等。因此設(shè)計(jì)這樣一個(gè)管理信息系統(tǒng),來解決一些小型醫(yī)藥企業(yè)在物理管理上的缺點(diǎn),能夠?qū)崿F(xiàn)藥品信息的系統(tǒng)化、規(guī)范化和自動(dòng)化。進(jìn)行驗(yàn)收入庫,填寫入庫單,進(jìn)行入庫登記。醫(yī)藥企業(yè)各個(gè)部門根據(jù)所需要的藥品總額和部門生產(chǎn)活動(dòng)需要提出藥品需求申請(qǐng)。計(jì)劃員根據(jù)整個(gè)醫(yī)藥品使用完畢需要及時(shí)歸還入庫,填寫入庫單。根據(jù)需要進(jìn)行統(tǒng)計(jì)分析,產(chǎn)生相應(yīng)報(bào)表。藥品倉庫管理的特點(diǎn)是信息自理量比較大。所管理的藥品種類繁多,而且由于入庫單、出庫單、需求單等單據(jù)發(fā)生量特別大,關(guān)聯(lián)信息多,查詢和統(tǒng)計(jì)的方工各不相同。因此在管理上實(shí)現(xiàn)起來有一定的困難。在管理的過程中經(jīng)常會(huì)出現(xiàn)信息的重復(fù)傳遞;單據(jù)、報(bào)表種類繁多,各個(gè)部門管理規(guī)1程序設(shè)計(jì)綜合課程設(shè)計(jì)格不統(tǒng)一等問題。在本系統(tǒng)的設(shè)計(jì)過程中,為了克服這些困難,滿足計(jì)算機(jī)管理的需要。1.2選題的目的、意義此次畢業(yè)設(shè)計(jì)選題范圍是相當(dāng)廣泛且實(shí)用的,含蓋了目前大部分計(jì)算機(jī)軟件類開發(fā)的課題,給我們很大的自由發(fā)展的空間??梢悦總€(gè)學(xué)生挑選出最合適的課題,更適合同學(xué)們的興趣和價(jià)值取向。選擇此課題對(duì)我來說有著不同的意義,應(yīng)該來說此課題更接近于實(shí)際開發(fā)的全過程。同時(shí)對(duì)編程、數(shù)據(jù)庫調(diào)用、結(jié)構(gòu)化查詢語言STRUCTUREDQUERYLANGUAGE等方面是一個(gè)比較綜合的考驗(yàn)。讓我在此過程中得到很好的鍛煉。第二章藥品倉庫管理系統(tǒng)的內(nèi)容2.1功能要求:用c/c++設(shè)計(jì)一系統(tǒng),實(shí)現(xiàn)以下功能:功能要求:1.2.3.4.5.用戶及權(quán)限管理;藥品入庫、出庫;藥品架位管理;藥品信息查詢、修改;藥品過期提示,打印出過期藥品架位信息供工作人員將這些藥品下架;6.過期藥品下架后將這些藥品信息導(dǎo)入到過期藥品表或刪除。2.2課程設(shè)計(jì)的目的隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)技術(shù)已經(jīng)滲透到個(gè)個(gè)領(lǐng)域,成為各行業(yè)必不可少的工具,隨著超市的規(guī)模不斷擴(kuò)大,超市每天進(jìn)出庫的產(chǎn)品數(shù)量急劇增加,有關(guān)銷售的各種信息量也成倍增長(zhǎng)。還要時(shí)刻更新產(chǎn)品的銷售信息,不斷添加,刪除商品信息,所以就需要合理的數(shù)據(jù)庫結(jié)構(gòu)來保存數(shù)據(jù)信息,需要有效的程序結(jié)構(gòu)支持各種數(shù)據(jù)操作的執(zhí)行。本次課程設(shè)計(jì)使得課堂教學(xué)與實(shí)驗(yàn)實(shí)踐之間關(guān)系更為密切,讓同學(xué)們認(rèn)識(shí)到必須重視實(shí)踐環(huán)節(jié),多讀程序,多編寫程序,多上機(jī)實(shí)踐。進(jìn)一步培養(yǎng)C++-2程序設(shè)計(jì)綜合課程設(shè)計(jì)語言中的重點(diǎn)和難點(diǎn)內(nèi)容進(jìn)行訓(xùn)練,獨(dú)立完成有一定工作量的程序設(shè)計(jì)任C++語言進(jìn)行程序設(shè)計(jì)的能力,考察學(xué)生的觀察能力和總結(jié)能力,使學(xué)生將所學(xué)知識(shí)轉(zhuǎn)化為分析和設(shè)計(jì)簡(jiǎn)單實(shí)際問題的能力。具體目的如下:1.鞏固和加深對(duì)C++語言課程基本知識(shí)的理解和掌握。2.掌握C++語言編程和程序調(diào)試的基本技能。3.提高C++語言編程技巧,培養(yǎng)分析問題和解決問題的能力。4.利用C++語言進(jìn)行基本的軟件設(shè)計(jì)。5.掌握書寫程序設(shè)計(jì)說明文檔的能力。2.3課程設(shè)計(jì)的要求C++語言知識(shí)進(jìn)行簡(jiǎn)單的編程,制作出一個(gè)簡(jiǎn)單的程序。既可以用傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)的方法,也可以用先進(jìn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法。具體要求如下:1)用C語言實(shí)現(xiàn)系統(tǒng);4)提供程序測(cè)試方案。2.4課程設(shè)計(jì)的目標(biāo)A.使藥品銷售的信息能及時(shí)得到統(tǒng)計(jì)、查詢B.方便操作員的操作,達(dá)到簡(jiǎn)單、易用的效果C.提高操作員的工作效率D.提高操作的正確率E.提高系統(tǒng)的可靠性及安全性2.5主要有三大重要模塊:入庫模塊:出庫模塊:查詢模塊:3程序設(shè)計(jì)綜合課程設(shè)計(jì)第三章系統(tǒng)詳細(xì)設(shè)計(jì)說明3-2-1藥品倉庫管理的主函數(shù)流程圖(1)4程序設(shè)計(jì)綜合課程設(shè)計(jì)5程序設(shè)計(jì)綜合課程設(shè)計(jì)3-2-4出庫入庫連接流程圖(1)6程序設(shè)計(jì)綜合課程設(shè)計(jì)3-2-6藥品出庫流程圖(1)7程序設(shè)計(jì)綜合課程設(shè)計(jì)3-2-7藥品出庫流程圖(2)dlnode*output(dlnode*L)//出庫的函數(shù)if(ifempty==0)//檢測(cè)是否有貨物輸入{printf("沒有貨物輸入系統(tǒng)\n");getchar();getchar();return(head);}while(1)printf("=============\n");printf("1.按編號(hào)出庫\n");printf("2.按名稱出庫\n");printf("0.返回上一層\n");程序設(shè)計(jì)綜合課程設(shè)計(jì)printf("==============\n");printf("選擇0--2:");scanf("%d",&y);switch(y){case1:outnum(L);break;//調(diào)用按編號(hào)出庫函數(shù)case2:outname(L);break;//調(diào)用按名稱出庫函數(shù)case0:return(L);default:printf("entererror!Pleaseinput0--2!");getchar();getchar();printf("\n\n");}}}dlnode*outnum(dlnode*L)//按編號(hào)出庫函數(shù){intnum;dlnode*head=L;printf("請(qǐng)輸入出庫貨物的編號(hào):");scanf("%d",&num);while((L=L->next)!=head){//如果找到就刪除節(jié)點(diǎn)if(L->number==num){L->prior->next=L->next;L->next->prior=L->prior;ifempty--;//ifempty減1printf("編號(hào)為%d的貨物成功出庫",num);getchar();getchar();returnhead;}}printf("沒有此編號(hào)的貨物,請(qǐng)查看是否還有貨物。\n\n");getchar();getchar();return(head);}dlnode*outname(dlnode*L)//按名稱出庫函數(shù){charna[32];dlnode*head=L;printf("請(qǐng)輸入出庫貨物的名稱:");scanf("%s",&na);while((L=L->next)!=head)9程序設(shè)計(jì)綜合課程設(shè)計(jì){//如果找到就刪除節(jié)點(diǎn)if(strcmp(L->name,na)==0){L->prior->next=L->next;L->next->prior=L->prior;ifempty--;//ifempty減1printf("名稱為%s的貨物成功出庫",na);getchar();getchar();return(head);}}printf("沒有此名稱的貨物,請(qǐng)查看是否還有貨物。\n\n");getchar();getchar();return(head);}5.藥品入庫輸入新進(jìn)藥品的一切信息,新記錄將寫入,新的零售價(jià)格將寫入藥品庫存信息表相應(yīng)的藥品記錄中去,方便藥品庫存的統(tǒng)計(jì)。需要強(qiáng)調(diào)的是當(dāng)要求填寫的文本框?yàn)榭諘r(shí),系統(tǒng)會(huì)有提示信息要求用戶輸入必須的信息,否則新藥品不能入存。步驟為:輸入藥品資料,開始入庫,結(jié)束入庫,提交入庫資料。藥品入庫代碼為:dlnode*input(dlnode*L)//定義入庫函數(shù){dlnode*in,*head;head=in=(dlnode*)malloc(sizeof(dlnode));//分配空間head=L;printf("\n請(qǐng)輸入貨物數(shù)據(jù):\n");printf("編號(hào):");scanf("%d",&in->number);printf("名稱:");scanf("%s",&in->name);printf("數(shù)量:");scanf("%d",&in->counter);if(L->next==NULL)//如果只有頭節(jié)點(diǎn),{//把剛輸入的in節(jié)點(diǎn)L->next=in;L->prior=in;in->next=L;in->prior=L;//跟在頭節(jié)點(diǎn)后面//////ifempty++;//ifempty加1}10程序設(shè)計(jì)綜合課程設(shè)計(jì)else{//如果當(dāng)前L的下一個(gè)節(jié)點(diǎn)不是頭節(jié)點(diǎn)while((L=L->next)!=head){//如果輸入的數(shù)大于L->number,則插到L的前面if(L->number<in->number){in->next=L;in->prior=L->prior;L->prior->next=in;L->prior=in;ifempty++;//ifempty加1return(head);}}//輸入的編號(hào)比其它編號(hào)都小,則插到最后個(gè)節(jié)點(diǎn),并首尾相連head->prior->next=in;in->prior=head->prior;head->prior=in;in->next=head;ifempty++;//ifempty加1}returnhead;}6.藥品查詢系統(tǒng)查詢所需藥品,在售藥過程中銷售人員對(duì)藥品數(shù)據(jù)庫進(jìn)行查詢。兩種方法,第一種:按編號(hào)查詢;第二種:按名稱查詢;7.登錄模塊主要是完成用戶的登錄,根據(jù)用戶的級(jí)別系統(tǒng)賦予不同的權(quán)限。要求用戶從列表框中選取出用戶名,然后輸入密碼。通過驗(yàn)證進(jìn)入系統(tǒng)。8.藥品信息模塊這個(gè)模塊是構(gòu)成本系統(tǒng)的基本元素,所有藥品的各種詳細(xì)信息都必須在本模塊中完成錄入,在這里要求用戶輸入組成一條藥品信息的基本信息。并且可以隨時(shí)對(duì)這些信息進(jìn)行增、刪、改。9藥品庫存管理模塊有了基本的藥品信息以后,就可以對(duì)所擁有的產(chǎn)品資料添加進(jìn)貨信息了,用戶必須輸入一些必要的數(shù)據(jù),如進(jìn)貨的價(jià)格和數(shù)量,模塊完成對(duì)庫存藥品的盤點(diǎn)以及藥品過期銷毀功能。藥庫采購(gòu)藥品實(shí)現(xiàn)入庫登記,對(duì)藥庫中11程序設(shè)計(jì)綜合課程設(shè)計(jì)在藥庫中過期的藥品應(yīng)及時(shí)銷毀,這樣才能保證客戶的健康,對(duì)客戶負(fù)責(zé)。10.用戶管理模塊用戶分別兩種,一種是A級(jí)用戶,是系統(tǒng)管理員級(jí);另一種是B級(jí)用戶,是藥房銷售人員級(jí)。這兩種級(jí)別的用戶的區(qū)別就是所擁有的權(quán)限不同。在用戶管理模塊中,能夠?qū)λ杏脩裘艽a、創(chuàng)建用戶的工作以及系統(tǒng)資料的刪除,只有A級(jí)用戶,即系統(tǒng)管理員級(jí)用戶。11藥品倉庫管理模塊藥品倉庫管理系入庫處理出保存文件處理查詢處理更改個(gè)人信息庫處理按編號(hào)查詢3-3-8藥品倉庫管理模塊3.3測(cè)試計(jì)劃先通過對(duì)模塊的測(cè)試,模塊通過后,在進(jìn)行整體調(diào)試,進(jìn)而達(dá)到程序的順12程序設(shè)計(jì)綜合課程設(shè)計(jì)利完成;3.5本系統(tǒng)的測(cè)試結(jié)果程序設(shè)計(jì)綜合課程設(shè)計(jì)程序設(shè)計(jì)綜合課程設(shè)計(jì)5將藥品信息保存在文件中:程序設(shè)計(jì)綜合課程設(shè)計(jì)4.2軟件測(cè)試結(jié)果如同系統(tǒng)測(cè)試結(jié)果;第五章結(jié)束語5.1程序設(shè)計(jì)的心得和體會(huì)在這次課程設(shè)計(jì)中,讓我學(xué)到了很多在課堂和書本上學(xué)不到的知識(shí),我在這次課程設(shè)計(jì)中最大的收獲有以下幾個(gè)方面:一、領(lǐng)略到了數(shù)據(jù)庫設(shè)計(jì)在計(jì)算機(jī)領(lǐng)域的重要性。數(shù)據(jù)庫作為一個(gè)永久存儲(chǔ)形式在應(yīng)用中發(fā)揮著重要的作用。在數(shù)據(jù)庫設(shè)計(jì)中,我明白了數(shù)據(jù)庫設(shè)計(jì)中不是范式越高越好的。我們要根據(jù)我們的應(yīng)用來決定,一切應(yīng)該以需求為首要選擇。二、對(duì)變成環(huán)境、一些控件的使用和界面的美化方面更加熟悉。因?yàn)椤端幤穫}庫管理系統(tǒng)》中涉及到很多控件的使用,只有很好的使用這些控件才可以給出一個(gè)很好的界面呈現(xiàn)在用戶的面前。這樣更有利于數(shù)據(jù)庫和用戶之間的交流。這里就要涉及一些平時(shí)不太常見的控件的使用問題。為最主要的是MSDN上面、還有借了一些這方面的書籍。在界面的美化方面,我了解了一些WINDOWS自定義界面的知識(shí),現(xiàn)在的軟件其實(shí)好多面向用戶的時(shí)候用戶首先看的就是一個(gè)軟件的界面是否有好,是否漂亮。其實(shí),界面美化是很重要的。因?yàn)槊?,是人一直追求的。主要知識(shí)有:自定義窗口形狀,控件的自定義等等。這些都是通過面向?qū)ο缶幊痰囊恍┨匦詫?shí)現(xiàn)的,又得是通過多態(tài),又得是通過類的繼承。三、利用軟件工程學(xué)開發(fā)系統(tǒng)。雖然這個(gè)《藥品倉庫管理系統(tǒng)》是一個(gè)小的系統(tǒng),但只有從這些小的項(xiàng)目中就利用軟件工程學(xué)的知識(shí),這樣可以開發(fā)在系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)中我們可以總結(jié)很多經(jīng)驗(yàn)和教訓(xùn)。我們一般按照瀑布開發(fā)模型、增量模型、螺旋模型來做我們的項(xiàng)目。附錄一:參考文獻(xiàn)[1]、譚浩強(qiáng),C++語言程序設(shè)計(jì),清華大學(xué)出版社[2]、譚浩強(qiáng),C16程序設(shè)計(jì)綜合課程設(shè)計(jì)[3]《visualc++工程應(yīng)用與項(xiàng)目實(shí)踐》機(jī)械工業(yè)出版社張雨,阮偉良等2005·1[4]《管理信息系統(tǒng)完整項(xiàng)目實(shí)例剖析》人民郵電出版社,明日科技2005·7附錄二:程序代碼;#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>#definemax32intifempty=0;//標(biāo)志,判斷鏈表是無否為空typedefstructdnode{/*定義雙向鏈表結(jié)構(gòu)體*/intnumber;charname[max];intcounter;intdata;/*藥品編號(hào)*//*藥品名稱*//*藥品數(shù)量*//*藥品生產(chǎn)日期*//*藥品單價(jià)*/intprice;intedata;//藥品有效日期intpname;//藥品生產(chǎn)商structdnode*prior,*next;/*定義兩指針,分別指向其前驅(qū)和后繼*/}dlnode;dlnode*create(dlnode*L);dlnode*input(dlnode*L);dlnode*output(dlnode*L);dlnode*outnum(dlnode*L);17程序設(shè)計(jì)綜合課程設(shè)計(jì)dlnode*outname(dlnode*L);dlnode*current(dlnode*L);voidsearch(dlnode*L);voidprint(dlnode*L);voidsearchnum(dlnode*L);voidsearchname(dlnode*L);voiddisplay(dlnode*L);voidmain(){intx;dlnode*L;if(!(L=(dlnode*)malloc(sizeof(dlnode))))//分配空間{printf("\n");exit(1);}create(L);///調(diào)用函數(shù),創(chuàng)建頭節(jié)點(diǎn)while(1){////////////////////////主菜單///////////////////////////printf("printf("printf("printf("printf("printf("printf("printf("scanf("%d",&x);switch(x)============================\n");1.2.3.4.0.藥品出庫和入庫\n");查找藥品表\n");顯示倉庫藥品表\n");輸出到文件\n");退出\n");=============================\n");選擇0--4:");18程序設(shè)計(jì)綜合課程設(shè)計(jì){case2:search(L);break;//調(diào)用查找函數(shù)case1:current(L);break;//調(diào)用入庫出庫函數(shù)case3:display(L);break;//調(diào)用顯示輸出函數(shù)case4:print(L);break;//調(diào)用打印函數(shù)case0:printf("\nbye!seeyou!\n");getchar();getchar();exit(0);//退出程序default:printf("\nEntererreor!pleaseinput0--4!");getchar();getchar();}}}dlnode*create(dlnode*L)//創(chuàng)建鏈表頭節(jié)點(diǎn){printf("藥品倉庫管理系統(tǒng)\n");printf("按enter開始");getchar();ifempty=0;///////初始化頭節(jié)點(diǎn)的值////////L->next=NULL;L->prior=NULL;L->number=L->counter=L->data=L->price=L->edata=L->pname=0;//**strcpy(L->name,"");returnL;}voidsearch(dlnode*L)///查找的主要菜單{inty;19程序設(shè)計(jì)綜合課程設(shè)計(jì)if(ifempty==0){printf("沒有輸入藥品!\n");getchar();getchar();return;}else{while(1){printf("=====================\n");printf("1.按編號(hào)查詢\n");printf("2.按藥品名稱查詢\n");printf("0.返回上一層\n");printf("====================\n");printf("選擇0--2:");scanf("%d",&y);switch(y){case1:searchnum(L);break;//調(diào)用按編號(hào)查找的函數(shù)case2:searchname(L);break;//調(diào)用按名稱查找的函數(shù)case0:return;//返回default:printf("entererror!Pleaseinput0--2!\n\n");getchar();getchar();printf("\n\n");}}}}voidsearchnum(dlnode*L)///按編號(hào)查找的函數(shù){20程序設(shè)計(jì)綜合課程設(shè)計(jì)intnum,flag=0;//flag為是否找到的標(biāo)志dlnode*head=L;if(ifempty==0){printf("沒有藥品被輸入\n");getchar();getchar();return;}printf("輸入你要查找的藥品編號(hào):\n");scanf("%d",&num);while((L=L->next)!=head){if(L->number==num){flag=1;//flag為1時(shí)表示找到printf("找到指定編號(hào)藥品\n");printf("\n編號(hào):%d\n",L->number);printf("名稱:%s\n",L->name);printf("數(shù)量:%d\n",L->counter);printf("生產(chǎn)日期:%d\n",L->data);printf("藥品單價(jià):%d\n",L->price);printf("藥品有效日期:%d\n",L->edata);printf("藥品生產(chǎn)商:%d\n",L->pname);}}if(flag==0)//flag為0時(shí)表示沒有找到printf("沒有找到指定編號(hào)藥品,請(qǐng)查看是否還有藥品。\n");getchar();getchar();}voidsearchname(dlnode*L)//按名稱查找的函數(shù)21程序設(shè)計(jì)綜合課程設(shè)計(jì){intflag=0;//flag為是否找到的標(biāo)志charna[32];dlnode*head=L;if(ifempty==0){printf("沒有藥品被輸入\n");getchar();getchar();return;}printf("輸入你要查找的藥品名稱\n");scanf("%s",&na);while((L=L->next)!=head){if(strcmp(L->name,na)==0){flag=1;//flag為1時(shí)表示找到printf("找到指定名稱藥品\n");printf("\n編號(hào):%d\n",L->number);printf("名稱:%s\n",L->name);printf("數(shù)量:%d\n",L->counter);printf("生產(chǎn)日期:%d\n",L->data);//******************4printf("藥品單價(jià):%d\n",L->price);printf("藥品有效日期:%d\n",L->edata);printf("藥品生產(chǎn)商:%d\n",L->pname);}}if(flag==0)//flag為0時(shí)表示沒有找到22程序設(shè)計(jì)綜合課程設(shè)計(jì)printf("沒有找到指定編號(hào)藥品,請(qǐng)查看是否還有藥品。\n\n");getchar();getchar();}dlnode*current(dlnode*L)//藥品出庫入庫函數(shù){inty;while(1){printf("========================\n");printf("printf("printf("1.藥品入庫\n");2.藥品出庫\n");0.返回上一層\n");printf("========================\n");printf("選擇0--2:");scanf("%d",&y);switch(y){case1:input(L);break;//調(diào)用入庫函數(shù)case2:output(L);break;//調(diào)用出庫函數(shù)case0:return(L);//返回上一層default:printf("entererror!Pleaseinput0--2!");getchar();getchar();printf("\n\n");}}}23程序設(shè)計(jì)綜合課程設(shè)計(jì)dlnode*input(dlnode*L)//定義入庫函數(shù){dlnode*in,*head;head=in=(dlnode*)malloc(sizeof(dlnode));//分配空間head=L;printf("\n請(qǐng)輸入藥品數(shù)據(jù):\n");printf("編號(hào):");scanf("%d",&in->number);printf("名稱:");scanf("%s",&in->name);printf("數(shù)量:");scanf("%d",&in->counter);printf("生產(chǎn)日期:");scanf("%d",&in->data);//******************5printf("藥品單價(jià):");scanf("%d",&in->price);printf("藥品有效日期:");scanf("%d",&in->edata);printf("藥品生產(chǎn)商:");scanf("%d",&in->pname);if(L->next==NULL)//如果只有頭節(jié)點(diǎn),{//把剛輸入的in節(jié)點(diǎn)L->next=in;L->prior=in;in->next=L;in->prior=L;//跟在頭節(jié)點(diǎn)后面//////ifempty++;//ifempty加1}else{//如果當(dāng)前L的下一個(gè)節(jié)點(diǎn)不是頭節(jié)點(diǎn)while((L=L->next)!=head){//如果輸入的數(shù)大于L->number,則插到L的前面if(L->number<in->number)24程序設(shè)計(jì)綜合課程設(shè)計(jì){in->next=L;in->prior=L->prior;L->prior->next=in;L->prior=in;ifempty++;//ifempty加1return(head);}}//輸入的編號(hào)比其它編號(hào)都小,則插到最后個(gè)節(jié)點(diǎn),并首尾相連head->prior->next=in;in->prior=head->prior;head->prior=in;in->next=head;ifempty++;//ifempty加1}returnhead;}dlnode*output(dlnode*L)//出庫的函數(shù){inty;dlnode*head=L;if(ifempty==0)//檢測(cè)是否有藥品輸入{printf("沒有藥品輸入系統(tǒng)\n");getchar();getchar();return(head);25程序設(shè)計(jì)綜合課程設(shè)計(jì)}while(1){printf("=============\n");printf("1.按編號(hào)出庫\n");printf("2.按名稱出庫\n");printf("0.返回上一層\n");printf("==============\n");printf("選擇0--2:");scanf("%d",&y);switch(y){case1:outnum(L);break;//調(diào)用按編號(hào)出庫函數(shù)case2:outname(L);break;//調(diào)用按名稱出庫函數(shù)case0:return(L);default:printf("entererror!Pleaseinput0--2!");getchar();getchar();printf("\n\n");}}}dlnode*outnum(dlnode*L)//按編號(hào)出庫函數(shù){intnum;dlnode*head=L;printf("請(qǐng)輸入出庫藥品的編號(hào):");scanf("%d",&num);while((L=L->next)!=head){//如果找到就刪除節(jié)點(diǎn)26程序設(shè)計(jì)綜合課程設(shè)計(jì)if(L->number==num){L->prior->next=L->next;L->next->prior=L->prior;ifempty--;//ifempty減1printf("編號(hào)為%d的藥品成功出庫",num);getchar();getchar();returnhead;}}printf("沒有此編號(hào)的藥品,請(qǐng)查看是否還有藥品。\n\n");getchar();getchar();return(head);}dlnode*outname(dlnode*L)//按名稱出庫函數(shù){charna[32];dlnode

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論