藥店藥品信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告[文書借鑒]_第1頁
藥店藥品信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告[文書借鑒]_第2頁
藥店藥品信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告[文書借鑒]_第3頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目:藥店藥品信息管理系統(tǒng)系 別:計(jì)算機(jī)信息與技術(shù)系專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班 級(jí): B130601 學(xué) 號(hào): B13060125 學(xué)生姓名: 楊晴雯 指導(dǎo)教師: 王 楠 2015年07月相關(guān)材料#目錄1 需求分析11.1 問題描述11.2 需求分析12 概要設(shè)計(jì)22.1 主界面設(shè)計(jì)22.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)22.3 系統(tǒng)功能設(shè)計(jì)33 模塊設(shè)計(jì)43.1 系統(tǒng)子程序及功能設(shè)計(jì)43.2 系統(tǒng)功能圖44 詳細(xì)設(shè)計(jì)54.1 數(shù)據(jù)類型定義54.2 系統(tǒng)主要子程序詳細(xì)設(shè)計(jì)55 測(cè)試分析96 源程序清單127 工作總結(jié)208 參考文獻(xiàn)21相關(guān)材料#1 需求分析1.1 問題描述隨著我國醫(yī)療事業(yè)

2、的發(fā)展和社會(huì)不同人群的需求,藥店的藥品層出不窮。這對(duì)于消費(fèi)者來說固然是好事,可是對(duì)于藥店管理者來說,藥品種類越多,越不容易記錄和查找,還容易出錯(cuò)。所以以前的記錄在賬本上的方式已經(jīng)落后了,藥店需要一套完備的藥店藥品信息管理系統(tǒng),方便藥店管理者管理藥店,以貼近時(shí)代需求,走向現(xiàn)代化管理道路。1.2 需求分析1建立藥品信息表;2插入新藥品信息;3查詢新藥品信息記錄;4藥品銷售;5顯示庫存藥品信息;6. 退出管理系統(tǒng)2 概要設(shè)計(jì)2.1 主界面設(shè)計(jì)當(dāng)輸入相應(yīng)的操作字符(比如:0-5),通過在主函數(shù)中選擇并調(diào)用對(duì)應(yīng)的子函數(shù)程序以及其他函數(shù)(比如:菜單函數(shù))中的輔助調(diào)用,實(shí)現(xiàn)并完成各自的功能操作(比如:添加、

3、查找、刪除、顯示等)。系統(tǒng)主界面如下:圖2.12.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)依據(jù)給定的數(shù)據(jù)格式,藥品信息由四個(gè)字段來組成,即藥品編號(hào)、藥品名稱、藥品數(shù)量、藥品價(jià)格。如: 藥品編號(hào) | 藥品名稱 | 藥品數(shù)量 | 藥品價(jià)格| 012 感康 36 12 通過C語言把學(xué)生的信息用單鏈表形式連接,源程序要有適當(dāng)?shù)淖⑨?,使程序易于閱讀,進(jìn)行儲(chǔ)存。同時(shí)進(jìn)行各種修改,完成信息管理等功能。2.3 系統(tǒng)功能設(shè)計(jì)依據(jù)程序的數(shù)據(jù)結(jié)構(gòu)和功能,遵照“自頂向下”原則,描述該程序的層次結(jié)構(gòu),在總體上包括數(shù)據(jù)的定位、插入、建表、顯示、刪除等功能模塊。(1)定位函數(shù)功能:具體了解要插入函數(shù)的位置。(2)插入函數(shù)功能:找到要插入函數(shù)的位置

4、,進(jìn)行函數(shù)插入。(3)顯示函數(shù)功能:按照指定關(guān)鍵字,對(duì)相應(yīng)商品信息進(jìn)行查找顯示。(4)刪除函數(shù)功能:查找到要?jiǎng)h除商品的相應(yīng)信息,并將其從表中永久的刪除。(5)主函數(shù)功能:調(diào)用以上子函數(shù),并用開關(guān)語句進(jìn)行選擇性的調(diào)用。3 模塊設(shè)計(jì)3.1 系統(tǒng)子程序及功能設(shè)計(jì)LinkList prior(LinkList L,LinkList p) 定位函數(shù)void ListInsert_L(LinkList L,LinkList p) 插入函數(shù) LinkList CreateList_L() 建表void void showlist(LinkList L) 顯示函數(shù)void deleList(LinkList

5、L,int i) 刪除(按序號(hào))void delName(LinkList L,char n) 刪除(按名字)int searchnum(LinkList L,int n) 查詢(按編號(hào))int searchName(LinkList L,char n) 查詢(按名字)藥店藥品信息管理系統(tǒng)3.2 系統(tǒng)功能圖退出管理系統(tǒng)插入新藥品信息藥品銷售顯示庫存藥品信息查詢新藥品信息記錄建立藥品信息表圖3.14 詳細(xì)設(shè)計(jì)4.1 數(shù)據(jù)類型定義 typedef struct nodeint num;/藥品編號(hào)char name20;/商藥品名稱int amount;/藥品數(shù)量int price;/藥品價(jià)格str

6、uct node *next;Node,*LinkList;4.2 系統(tǒng)主要子程序詳細(xì)設(shè)計(jì)1. 定位函數(shù)LinkList prior(LinkList L,LinkList p)while(q-next!=p)q=q-next;return(q);2.插入函數(shù)void ListInsert_L(LinkList L,LinkList p) while(s!=NULL& p-num=s-num)s=prior(L,s);p-next=NULL; s-next=p;s=prior(L,s);p-next=s-next;s-next=p;3.創(chuàng)建函數(shù)LinkList CreateList_L()wh

7、ile(num=0) p=(LinkList)malloc(sizeof(node); p-num=num; p-amount=amount; strcpy(p-name,name); p-price=price; ListInsert_L(L,p);4.顯示函數(shù)void showlist(LinkList L)if(L=NULL|L-next=NULL) printf(倉庫中沒有藥品n); elsewhile(p-next!=NULL)/不為空的情況下輸出表內(nèi)信息p=p-next;/不斷尋找下一條信息n+;5.刪除函數(shù)(按序號(hào))void deleList(LinkList L,int i)w

8、hile(p-next&jnext; j+;free(q);6.刪除函數(shù)(按名稱)if(L-next=NULL) elsewhile(p!=NULL)if(!strcmp(p-name,n)p=p-next;deleList(L,sale);elsep=p-next;sale+;7.查找函數(shù)(按名字)int searchName(LinkList L,char n)if(L-next=NULL|L=NULL) printf(倉庫中沒有該藥品n);elsewhile(p!=NULL)if(!strcmp(p-name,n) p=p-next;sale+;return x;8.查找函數(shù)(按編號(hào))i

9、nt searchnum(LinkList L,int n ) if(L-next=NULL) printf(該鏈表中沒有元素n);elsewhile(p!=NULL)if(p-numnum=n) p=p-next;sale+;return x;2. 主函數(shù):主要由switch語句組成,便于函數(shù)調(diào)用。 switch(choose) case 1:CreateList _L; break; /*增加記錄*/ case 2: ListInsert_L(L,p);break; /*插入記錄*/ case 3: searchnum(L,name);break; /*查詢記錄*/ case 4: del

10、eList(L,n); break; /*刪除記錄*/ case 5: showlist(L);break; /*顯示記錄*/ case 0:exit();break; /*退出系統(tǒng)*/ 3. 主頁面函數(shù)void main()LinkList L=NULL;system(cls);system (color 4f);printf(n *e歡迎使用藥店藥品信息管理系統(tǒng)*n);printf(n * 1建立藥品信息表 *n);printf(n * 2插入新藥品信息 *n);printf(n * 3查詢藥品信息記錄 *n);printf(n * 4藥品銷售 *n);printf(n * 5顯示庫存藥品

11、信息 *n);printf(n * 0退出管理系統(tǒng) *n);printf(n *e歡迎使用藥店藥品信息管理系統(tǒng)*n);printf(n 請(qǐng)選擇操作:n); 5 測(cè)試分析各功能的運(yùn)行結(jié)果:1) 建立信息表:在主菜單中選擇1,進(jìn)入建立信息表圖5.12)插入信息:選擇2,進(jìn)行插入信息圖5.23) 查詢藥品信息,選擇3,進(jìn)行查詢信息圖5.34) 藥品銷售,選擇4,進(jìn)行藥品銷售圖5.45) 顯示庫存藥品信息,選擇5,進(jìn)行顯示圖5.56)退出系統(tǒng):選擇0,退出系統(tǒng)。6 源程序清單#include#include#includeint sale;typedef struct node int num; ch

12、ar name20; int amount;int price;struct node * next;node,*LinkList; LinkList prior(LinkList L,LinkList p)/定位函數(shù)LinkList q=L-next; if(L-next=NULL) return(L); elsewhile(q-next!=p)q=q-next; printf(1);return(q);void ListInsert_L(LinkList L,LinkList p)/插入函數(shù) LinkList s=L-next;while(s!=NULL& p-num=s-num)if(s

13、-num=p-num) printf(重復(fù)輸入n); s=s-next;/已經(jīng)存在信息if(s=NULL)/空表插入s=prior(L,s);p-next=NULL; s-next=p;else /尋找位置插入s=prior(L,s);p-next=s-next;s-next=p;LinkList CreateList_L()/建表LinkList L=(LinkList)malloc(sizeof(node);/給空間L-next=NULL;/初始化LinkList p;int num; char name20;int amount;int price; printf(請(qǐng)輸入藥品編碼:);s

14、canf(%d,&num);printf(請(qǐng)輸入藥品名稱:);char temp=getchar();gets(name); printf(請(qǐng)輸入藥品數(shù)量:);scanf(%d,&amount); printf(請(qǐng)輸入藥品價(jià)格:); scanf(%d,&price);while(num=0)/重復(fù)輸入信息的條件p=(LinkList)malloc(sizeof(node);p-num=num;p-amount=amount;strcpy(p-name,name);p-price=price;ListInsert_L(L,p);printf(請(qǐng)輸入藥品編碼:);scanf(%d,&num);pr

15、intf(請(qǐng)輸入藥品名稱:);char temp=getchar();gets(name);printf(請(qǐng)輸入藥品數(shù)量:);scanf(%d,&amount);printf(請(qǐng)輸入藥品價(jià)格:); scanf(%d,&price);return(L);void showlist(LinkList L)/顯示函數(shù) printf(n - n); printf(n 序號(hào) 藥品編碼 藥品名稱 藥品數(shù)量 藥品價(jià)格 n);printf( - n);LinkList p=L;int n=1;if(L=NULL|L-next=NULL) printf(倉庫中沒有藥品n);/空表elsewhile(p-next

16、!=NULL)/不為空的情況下輸出表內(nèi)信息printf( %8d %4d,n,p-next-num); printf( %4s %4d %dn,p-next-name,p-next-amount,p-next-price);p=p-next;/不斷尋找下一條信息n+;printf( - n);void deleList(LinkList L,int i)LinkList p=L;int j=0;while(p-next&jnext; j+;if(!(p-next)printf(刪除失敗n,i);LinkList q=p-next;p-next=q-next;free(q);int delNam

17、e(LinkList L,char n)int x=0; LinkList p=L-next; sale=1;if(L-next=NULL) printf(無可刪除元素n);elsewhile(p!=NULL)if(!strcmp(p-name,n)x=1;printf(%s,p-name);p=p-next;deleList(L,sale);elsep=p-next;sale+;if(x) printf(被刪除n);return x;int searchName(LinkList L,char n)int x=0; LinkList p=L-next;sale=1;if(L-next=NUL

18、L|L=NULL) printf(倉庫中沒有該藥品n);elsewhile(p!=NULL)if(!strcmp(p-name,n)x=1;printf(查找的是第%d個(gè)商品:n,sale);printf(Num:%d Name:%s amount:df Price:%dn,p-num,p-name,p-amount,p-price); p=p-next;sale+;return x;int searchnum(LinkList L,int n)int x=0; LinkList p=L-next;sale=1;if(L-next=NULL) printf(該鏈表中沒有元素n);elsewhi

19、le(p!=NULL)if(p-numnum=n)x=1; printf(查找的是第%d個(gè)藥品:n,sale); printf(Num:%d Name:%s Amount:%d Price:%d n,p-num,p-name,p-amount,p-price); p=p-next;sale+;return x;void main()LinkList L=NULL;system(cls);system (color 4f);printf(n *e歡迎使用藥店藥品信息管理系統(tǒng)*n);printf(n * 1建立藥品信息表 *n);printf(n * 2插入新藥品信息 *n);printf(n *

20、 3查詢藥品信息記錄 *n);printf(n * 4藥品銷售 *n);printf(n * 5顯示庫存藥品信息 *n);printf(n * 0退出管理系統(tǒng) *n);printf(n *e歡迎使用藥店藥品信息管理系統(tǒng)*n);printf(n 請(qǐng)選擇操作:n);int x=0;int a;printf(請(qǐng)選擇0-5: );scanf(%d,&a);while(a!=0)switch(a) case 1: printf(建立藥品信息表:n); L=CreateList_L(); showlist(L); x=1; break; case 2: if(x=1) int num,amount,pri

21、ce; char name20; printf(請(qǐng)輸入藥品編碼:); scanf(%d,&num); printf(請(qǐng)輸入藥品名稱:); char temp=getchar(); gets(name); printf(請(qǐng)輸入藥品數(shù)量:); scanf(%d,&amount); printf(請(qǐng)輸入藥品價(jià)格:); scanf(%d,&price); LinkList p=(LinkList)malloc(sizeof(node); p-num=num; p-amount=amount; strcpy(p-name,name); p-price=price; ListInsert_L(L,p);

22、printf(插入后:n); showlist(L); break; case 3: int b,n,s; char name20; printf(選擇查詢方式:n); printf( 1.按藥品編碼查詢 2.按藥品名稱查詢n); scanf(%d,&b); if(b=1) printf(n請(qǐng)輸入藥品編碼:); scanf(%d,&n); s=searchnum(L,n); if(s=0)printf(無此藥品!n); else if(b=2) printf(n請(qǐng)輸入藥品名稱:); char temp=getchar(); gets(name); s=searchName(L,name); if(s=0)printf(無此藥品!n); else printf(無庫存!n); break; case 4: int b; printf(請(qǐng)選擇刪除方式: n); printf(1按藥品序號(hào)刪除 2按藥品

溫馨提示

  • 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)論