




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目:藥店藥品信息管理系統(tǒng)系 別:計(jì)算機(jī)信息與技術(shù)系專(zhuān) 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)班 級(jí): B130601 學(xué) 號(hào): B13060125 學(xué)生姓名: 楊晴雯 指導(dǎo)教師: 王 楠 ×××2015年07月目錄1 需求分析11.1 問(wèn)題描述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ù)類(lèi)型定義54.2 系統(tǒng)主要子程序詳細(xì)設(shè)計(jì)55 測(cè)試分析96 源程序清單127 工作總結(jié)208 參考文獻(xiàn)211 需求分析1.1 問(wèn)題描述
2、隨著我國(guó)醫(yī)療事業(yè)的發(fā)展和社會(huì)不同人群的需求,藥店的藥品層出不窮。這對(duì)于消費(fèi)者來(lái)說(shuō)固然是好事,可是對(duì)于藥店管理者來(lái)說(shuō),藥品種類(lèi)越多,越不容易記錄和查找,還容易出錯(cuò)。所以以前的記錄在賬本上的方式已經(jīng)落后了,藥店需要一套完備的藥店藥品信息管理系統(tǒng),方便藥店管理者管理藥店,以貼近時(shí)代需求,走向現(xiàn)代化管理道路。1.2 需求分析1建立藥品信息表;2插入新藥品信息;3查詢新藥品信息記錄;4藥品銷(xiāo)售;5顯示庫(kù)存藥品信息;6. 退出管理系統(tǒng)2 概要設(shè)計(jì)2.1 主界面設(shè)計(jì)當(dāng)輸入相應(yīng)的操作字符(比如:0-5),通過(guò)在主函數(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è)字段來(lái)組成,即藥品編號(hào)、藥品名稱(chēng)、藥品數(shù)量、藥品價(jià)格。如: 藥品編號(hào) | 藥品名稱(chēng) | 藥品數(shù)量 | 藥品價(jià)格| 012 感康 36 12 通過(guò)C語(yǔ)言把學(xué)生的信息用單鏈表形式連接,源程序要有適當(dāng)?shù)淖⑨專(zhuān)钩绦蛞子陂喿x,進(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ù)功能:找到
4、要插入函數(shù)的位置,進(jìn)行函數(shù)插入。(3)顯示函數(shù)功能:按照指定關(guān)鍵字,對(duì)相應(yīng)商品信息進(jìn)行查找顯示。(4)刪除函數(shù)功能:查找到要?jiǎng)h除商品的相應(yīng)信息,并將其從表中永久的刪除。(5)主函數(shù)功能:調(diào)用以上子函數(shù),并用開(kāi)關(guān)語(yǔ)句進(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(L
5、inkList 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)插入新藥品信息藥品銷(xiāo)售顯示庫(kù)存藥品信息查詢新藥品信息記錄建立藥品信息表圖3.14 詳細(xì)設(shè)計(jì)4.1 數(shù)據(jù)類(lèi)型定義 typedef struct nodeint num;/藥品編號(hào)char name20;/商藥品名稱(chēng)int amount;/藥品數(shù)量int price;
6、/藥品價(jià)格struct 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->nex
7、t=s->next;s->next=p;3.創(chuàng)建函數(shù)LinkList CreateList_L()while(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("倉(cāng)庫(kù)中沒(méi)有藥品n"); elsewhile
8、(p->next!=NULL)/不為空的情況下輸出表內(nèi)信息p=p->next;/不斷尋找下一條信息n+;5.刪除函數(shù)(按序號(hào))void deleList(LinkList L,int i)while(p->next&&j<i-1)p=p->next; j+;free(q);6.刪除函數(shù)(按名稱(chēng))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
9、 searchName(LinkList L,char n)if(L->next=NULL|L=NULL) printf("倉(cāng)庫(kù)中沒(méi)有該藥品n");elsewhile(p!=NULL)if(!strcmp(p->name,n) p=p->next;sale+;return x;8.查找函數(shù)(按編號(hào))int searchnum(LinkList L,int n ) if(L->next=NULL) printf("該鏈表中沒(méi)有元素n");elsewhile(p!=NULL)if(p->num<=n)if(p->nu
10、m=n) p=p->next;sale+;return x;2. 主函數(shù):主要由switch語(yǔ)句組成,便于函數(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: deleList(L,n); break; /*刪除記錄*/ case 5: showlist(L);break; /*顯示記錄*/ case 0:exit();break; /*退出系
11、統(tǒng)*/ 3. 主頁(yè)面函數(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藥品銷(xiāo)售 *n");printf("n * 5顯示庫(kù)存藥品
12、信息 *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) 藥品銷(xiāo)售,選擇4,進(jìn)行藥品銷(xiāo)售圖5.45) 顯示庫(kù)存藥品信息,選擇5,進(jìn)行顯示圖5.56)退出系統(tǒng):選擇0,退出系統(tǒng)。6 源程序清單#include<stdio.h>
13、;#include<stdlib.h>#include<string.h>int sale;typedef struct node int num; char 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(&qu
14、ot;1");return(q);void ListInsert_L(LinkList L,LinkList p)/插入函數(shù) LinkList s=L->next;while(s!=NULL&& p->num>=s->num)if(s->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->ne
15、xt=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)輸入藥品編碼:");scanf("%d",&num);printf("請(qǐng)輸入藥品名稱(chēng):");char temp=getchar();gets(name); printf(
16、"請(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)輸入藥品編碼:")
17、;scanf("%d",&num);printf("請(qǐng)輸入藥品名稱(chē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
18、 序號(hào) 藥品編碼 藥品名稱(chēng) 藥品數(shù)量 藥品價(jià)格 n");printf(" - n");LinkList p=L;int n=1;if(L=NULL|L->next=NULL) printf("倉(cāng)庫(kù)中沒(méi)有藥品n");/空表elsewhile(p->next!=NULL)/不為空的情況下輸出表內(nèi)信息printf(" %8d %4d",n,p->next->num); printf(" %4s %4d %dn",p->next->name,p->next->amo
19、unt,p->next->price);p=p->next;/不斷尋找下一條信息n+;printf(" - n");void deleList(LinkList L,int i)LinkList p=L;int j=0;while(p->next&&j<i-1)p=p->next; j+;if(!(p->next)printf("刪除失敗n",i);LinkList q=p->next;p->next=q->next;free(q);int delName(LinkList L,
20、char n)int x=0; LinkList p=L->next; sale=1;if(L->next=NULL) printf("無(wú)可刪除元素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)
21、int x=0; LinkList p=L->next;sale=1;if(L->next=NULL|L=NULL) printf("倉(cāng)庫(kù)中沒(méi)有該藥品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+;
22、return x;int searchnum(LinkList L,int n)int x=0; LinkList p=L->next;sale=1;if(L->next=NULL) printf("該鏈表中沒(méi)有元素n");elsewhile(p!=NULL)if(p->num<=n)if(p->num=n)x=1; printf("查找的是第%d個(gè)藥品:n",sale); printf("Num:%d Name:%s Amount:%d Price:%d n",p->num,p->name,
23、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 * 3查詢藥品信息記錄 *n");printf("n
24、 * 4藥品銷(xiāo)售 *n");printf("n * 5顯示庫(kù)存藥品信息 *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=Crea
25、teList_L(); showlist(L); x=1; break; case 2: if(x=1) int num,amount,price; char name20; printf("請(qǐng)輸入藥品編碼:"); scanf("%d",&num); printf("請(qǐng)輸入藥品名稱(chēng):"); char temp=getchar(); gets(name); printf("請(qǐng)輸入藥品數(shù)量:"); scanf("%d",&amount); printf("請(qǐng)輸入藥品價(jià)格:&
26、quot;); 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); printf("插入后:n"); showlist(L); break; case 3: int b,n,s; char name20; printf("選擇查詢方式:n"); printf(&
27、quot; 1.按藥品編碼查詢 2.按藥品名稱(chēng)查詢n"); scanf("%d",&b); if(b=1) printf("n請(qǐng)輸入藥品編碼:"); scanf("%d",&n); s=searchnum(L,n); if(s=0)printf("無(wú)此藥品!n"); else if(b=2) printf("n請(qǐng)輸入藥品名稱(chēng):"); char temp=getchar(); gets(name); s=searchName(L,name); if(s=0)printf("無(wú)此藥品!n"); else printf("無(wú)庫(kù)存!n"); break; case 4: int b; printf("請(qǐng)選擇刪除方式: n"); pri
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 經(jīng)驗(yàn)交流發(fā)言稿公司
- 黨校結(jié)業(yè)發(fā)言稿
- 工作座談會(huì)發(fā)言稿
- 教學(xué)質(zhì)量分析會(huì)發(fā)言稿
- 趣味運(yùn)動(dòng)會(huì)發(fā)言稿
- 校園精神發(fā)言稿
- 干事大會(huì)發(fā)言稿
- 幼師家長(zhǎng)會(huì)發(fā)言稿
- 秋分節(jié)氣教學(xué)解析
- 七夕營(yíng)銷(xiāo)助力人力資源
- 蘇科版七年級(jí)數(shù)學(xué)下冊(cè)期末復(fù)習(xí)+10(專(zhuān)題-幾何圖形的證明)
- 西方經(jīng)濟(jì)學(xué)(第二版)完整整套教學(xué)課件
- 《零基礎(chǔ)玩轉(zhuǎn)小紅書(shū):吃透爆款邏輯漲粉、變現(xiàn)不再難》
- 圍術(shù)期下肢深靜脈血栓預(yù)防的術(shù)中護(hù)理
- 《云南瀾滄鉛礦有限公司勐濱煤礦采礦權(quán)價(jià)款退還計(jì)算說(shuō)明》
- GB/T 9113.1-2000平面、突面整體鋼制管法蘭
- GB/T 2423.18-2021環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)Kb:鹽霧,交變(氯化鈉溶液)
- 2021年湖北師范學(xué)院專(zhuān)升本C語(yǔ)言程序設(shè)計(jì)試卷
- CB/T 3136-1995船體建造精度標(biāo)準(zhǔn)
- 疫苗冰箱溫度記錄表
- 2023年海東地區(qū)互助土族自治縣人民醫(yī)院醫(yī)護(hù)人員招聘筆試模擬試題及答案解析
評(píng)論
0/150
提交評(píng)論