药店药品信息管理系统课程设计报告.docx

上传人:b****6 文档编号:8623921 上传时间:2023-02-01 格式:DOCX 页数:20 大小:95.82KB
下载 相关 举报
药店药品信息管理系统课程设计报告.docx_第1页
第1页 / 共20页
药店药品信息管理系统课程设计报告.docx_第2页
第2页 / 共20页
药店药品信息管理系统课程设计报告.docx_第3页
第3页 / 共20页
药店药品信息管理系统课程设计报告.docx_第4页
第4页 / 共20页
药店药品信息管理系统课程设计报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

药店药品信息管理系统课程设计报告.docx

《药店药品信息管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《药店药品信息管理系统课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。

药店药品信息管理系统课程设计报告.docx

药店药品信息管理系统课程设计报告

《数据结构》课程设计

题目:

药店药品信息管理系统

系别:

计算机信息与技术系

专业:

计算机科学与技术专业

班级:

B130601

学号:

B13060125

学生姓名:

杨晴雯

指导教师:

王楠

2015年07月

1需求分析

1、1问题描述

随着我国医疗事业的发展与社会不同人群的需求,药店的药品层出不穷。

这对于消费者来说固然就是好事,可就是对于药店管理者来说,药品种类越多,越不容易记录与查找,还容易出错。

所以以前的记录在账本上的方式已经落后了,药店需要一套完备的药店药品信息管理系统,方便药店管理者管理药店,以贴近时代需求,走向现代化管理道路。

1、2需求分析

1.建立药品信息表;

2.插入新药品信息;

3.查询新药品信息记录;

4.药品销售;

5.显示库存药品信息;

6、退出管理系统

2概要设计

2、1主界面设计

当输入相应的操作字符(比如:

0-5),通过在主函数中选择并调用对应的子函数程序以及其她函数(比如:

菜单函数)中的辅助调用,实现并完成各自的功能操作(比如:

添加、查找、删除、显示等)。

系统主界面如下:

图2、1

2、2存储结构设计

依据给定的数据格式,药品信息由四个字段来组成,即药品编号、药品名称、药品数量、药品价格。

如:

药品编号|药品名称|药品数量|药品价格|

012感康3612

通过C语言把学生的信息用单链表形式连接,源程序要有适当的注释,使程序易于阅读,进行储存。

同时进行各种修改,完成信息管理等功能。

2、3系统功能设计

依据程序的数据结构与功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的定位、插入、建表、显示、删除等功能模块。

(1)定位函数功能:

具体了解要插入函数的位置。

(2)插入函数功能:

找到要插入函数的位置,进行函数插入。

(3)显示函数功能:

按照指定关键字,对相应商品信息进行查找显示。

(4)删除函数功能:

查找到要删除商品的相应信息,并将其从表中永久的删除。

(5)主函数功能:

调用以上子函数,并用开关语句进行选择性的调用。

3模块设计

3、1系统子程序及功能设计

LinkListprior(LinkListL,LinkListp)定位函数

voidListInsert_L(LinkListL,LinkListp)插入函数

LinkListCreateList_L()建表

voidvoidshowlist(LinkListL)显示函数

voiddeleList(LinkListL,inti)删除(按序号)

voiddelName(LinkListL,charn[])删除(按名字)

intsearchnum(LinkListL,intn)查询(按编号)

intsearchName(LinkListL,charn[])查询(按名字)

3、2系统功能图

图3、1

4详细设计

4、1数据类型定义

typedefstructnode

{

intnum;//药品编号

charname[20];//商药品名称

intamount;//药品数量

intprice;//药品价格

structnode*next;

}Node,*LinkList;

4、2系统主要子程序详细设计

1.定位函数

LinkListprior(LinkListL,LinkListp)

{

{while(q->next!

=p)

q=q->next;

return(q);}

}

2、插入函数

voidListInsert_L(LinkListL,LinkListp)

{

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、创建函数

LinkListCreateList_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、显示函数

voidshowlist(LinkListL)

{

if(L==NULL||L->next==NULL)printf("仓库中没有药品\n");

else

while(p->next!

=NULL)//不为空的情况下输出表内信息

{

p=p->next;//不断寻找下一条信息

n++;

}

}

5、删除函数(按序号)

voiddeleList(LinkListL,inti)

{while(p->next&&j

{p=p->next;

j++;

}

free(q);

}

6、删除函数(按名称)

{

if(L->next==NULL)

else

{

while(p!

=NULL)

{

if(!

strcmp(p->name,n))

{

p=p->next;

deleList(L,sale);

}

else{p=p->next;sale++;}

}

}

7、查找函数(按名字)

intsearchName(LinkListL,charn[])

{

if(L->next==NULL||L==NULL)printf("仓库中没有该药品\n");

else

{

while(p!

=NULL)

{

if(!

strcmp(p->name,n))

p=p->next;sale++;

}

}

returnx;

}

8、查找函数(按编号)

intsearchnum(LinkListL,intn)

{

if(L->next==NULL)printf("该链表中没有元素\n");

else

{

while(p!

=NULL)

{

if(p->num<=n)

if(p->num==n)

p=p->next;sale++;

}

}

returnx;

}

2.主函数:

主要由switch语句组成,便于函数调用。

switch(choose)

{

case1:

CreateList_L;break;/*增加记录*/

case2:

ListInsert_L(L,p);break;/*插入记录*/

case3:

searchnum(L,name);break;/*查询记录*/

case4:

deleList(L,n);break;/*删除记录*/

case5:

showlist(L);break;/*显示记录*/

case0:

exit();break;/*退出系统*/

}

3.主页面函数

voidmain(){

LinkListL=NULL;

system("cls");

system("color4f");

printf("\n******^e^欢迎使用药店药品信息管理系统**********\n");

printf("\n*1建立药品信息表*\n");

printf("\n*2插入新药品信息*\n");

printf("\n*3查询药品信息记录*\n");

printf("\n*4药品销售*\n");

printf("\n*5显示库存药品信息*\n");

printf("\n*0退出管理系统*\n");

printf("\n******^e^欢迎使用药店药品信息管理系统**********\n");

printf("\n请选择操作:

\n");}

5测试分析

各功能的运行结果:

1)建立信息表:

在主菜单中选择1,进入建立信息表

图5、1

2)插入信息:

选择2,进行插入信息

图5、2

3)查询药品信息,选择3,进行查询信息

图5、3

4)药品销售,选择4,进行药品销售

图5、4

5)显示库存药品信息,选择5,进行显示

图5、5

6)退出系统:

选择0,退出系统。

6源程序清单

#include

#include

#include

intsale;

typedefstructnode

{

intnum;

charname[20];

intamount;

intprice;

structnode*next;

}node,*LinkList;

LinkListprior(LinkListL,LinkListp)//定位函数

{LinkListq=L->next;

if(L->next==NULL)

return(L);

else

{while(q->next!

=p)

q=q->next;

printf("1");

return(q);}

}

voidListInsert_L(LinkListL,LinkListp)//插入函数

{

LinkLists=L->next;

while(s!

=NULL&&p->num>=s->num)

{

if(s->num==p->num)

printf("重复输入\n");

s=s->next;//已经存在信息

}

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;}

}

LinkListCreateList_L()//建表

{

LinkListL=(LinkList)malloc(sizeof(node));//给空间

L->next=NULL;//初始化

LinkListp;

intnum;

charname[20];

intamount;

intprice;

printf("请输入药品编码:

");

scanf("%d",&num);

printf("请输入药品名称:

");

chartemp=getchar();

gets(name);

printf("请输入药品数量:

");

scanf("%d",&amount);

printf("请输入药品价格:

");

scanf("%d",&price);

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);

printf("请输入药品编码:

");

scanf("%d",&num);

printf("请输入药品名称:

");

chartemp=getchar();

gets(name);

printf("请输入药品数量:

");

scanf("%d",&amount);

printf("请输入药品价格:

");

scanf("%d",&price);

}

return(L);

}

voidshowlist(LinkListL)//显示函数

{

printf("\n---------------------------------------------------------\n");

printf("\n序号药品编码药品名称药品数量药品价格\n");

printf("---------------------------------------------------------\n");

LinkListp=L;

intn=1;

if(L==NULL||L->next==NULL)printf("仓库中没有药品\n");//空表

else

while(p->next!

=NULL)//不为空的情况下输出表内信息

{

printf("%8d%4d",n,p->next->num);

printf("%4s%4d%d\n",p->next->name,p->next->amount,p->next->price);

p=p->next;//不断寻找下一条信息

n++;

printf("----------------------------------------------------------\n");

}

}

voiddeleList(LinkListL,inti)

{

LinkListp=L;

intj=0;

while(p->next&&j

{p=p->next;

j++;

}

if(!

(p->next))

{printf("删除失败\n",i);

}

LinkListq=p->next;

p->next=q->next;

free(q);

}

intdelName(LinkListL,charn[])

{

intx=0;

LinkListp=L->next;

sale=1;

if(L->next==NULL)

printf("无可删除元素\n");

else

{

while(p!

=NULL)

{

if(!

strcmp(p->name,n))

{

x=1;

printf("%s",p->name);

p=p->next;

deleList(L,sale);

}

else{p=p->next;sale++;}

}

if(x)printf("被删除\n");

}

returnx;

}

intsearchName(LinkListL,charn[])

{

intx=0;

LinkListp=L->next;

sale=1;

if(L->next==NULL||L==NULL)printf("仓库中没有该药品\n");

else

{

while(p!

=NULL)

{

if(!

strcmp(p->name,n))

{

x=1;

printf("查找的就是第%d个商品:

\n",sale);

printf("Num:

%dName:

%samount:

dfPrice:

%d\n",p->num,p->name,p->amount,p->price);

}

p=p->next;sale++;

}

}

returnx;

}

intsearchnum(LinkListL,intn)

{

intx=0;

LinkListp=L->next;

sale=1;

if(L->next==NULL)printf("该链表中没有元素\n");

else

{

while(p!

=NULL)

{

if(p->num<=n)

if(p->num==n)

{

x=1;

printf("查找的就是第%d个药品:

\n",sale);

printf("Num:

%dName:

%sAmount:

%dPrice:

%d\n",p->num,p->name,p->amount,p->price);

}

p=p->next;sale++;

}

}

returnx;

}

voidmain(){

LinkListL=NULL;

system("cls");

system("color4f");

printf("\n******^e^欢迎使用药店药品信息管理系统**********\n");

printf("\n*1建立药品信息表*\n");

printf("\n*2插入新药品信息*\n");

printf("\n*3查询药品信息记录*\n");

printf("\n*4药品销售*\n");

printf("\n*5显示库存药品信息*\n");

printf("\n*0退出管理系统*\n");

printf("\n******^e^欢迎使用药店药品信息管理系统**********\n");

printf("\n请选择操作:

\n");

intx=0;

inta;

printf("请选择0-5:

");

scanf("%d",&a);

while(a!

=0)

{

switch(a)

{

case1:

{

printf("建立药品信息表:

\n");

L=CreateList_L();

showlist(L);

x=1;

break;

}

case2:

{if(x==1)

{

intnum,amount,price;

charname[20];

printf("请输入药品编码:

");

scanf("%d",&num);

printf("请输入药品名称:

");

chartemp=getchar();

gets(name);

printf("请输入药品数量:

");

scanf("%d",&amount);

printf("请输入药品价格:

");

scanf("%d",&price);

LinkListp=(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;

}

case3:

{

intb,n,s;

charname[20];

printf("选择查询方式:

\n");

printf("1、按药品编码查询2、按药品名称查询\n");

scanf("%d",&b);

if(b==1)

{

printf("\n请输入药品编码:

");

scanf("%d",&n);

s=searchnum(L,n);

if(s==0)

printf("无此药品!

\n");

}

elseif(b==2)

{

printf("\n请输入药品名称:

");

chartemp=getchar();

gets(name);

s=searchName(L,name);

if(s==0)

printf("无此药品!

\n");

}

else

printf("无库存!

\n");

break;

}

case4:

{intb;

printf("请选择删除方式:

\n");

printf("1按药品序号删除2按药品名称删除\n");

scanf("%d",&b);

if(b==1)

{

intc;

printf("请输入药品序号:

\n");

scanf("%d",&c);

printf("删除后:

\n");

deleList(L,c);

showlist(L);

}

elseif(b==2)

{

intf;

charname[20];

printf("请输入药品名称:

\n");

chartemp=getchar();

gets(name);

f=delName(L,name);

if(f!

=0)

{

printf("删除后:

\n");

showlist(L);}

else

printf("无该药品!

\n");

}

else

printf("出错!

\n");

break;

}

case5:

{

printf("剩余药品信息:

\n");

showlist(L);

break;

}

case0:

exit(0);

}

printf("请选择0-5:

");

scanf("%d",&a);

}

7工作总结

这周进行了数据结构的课程设计-----药店药品信息管理系统,我发现自己在编程方面存在很大问题,面对要求,代码根本无从下手,由于自己C语言能力比较差,写出来的代码调试也存在很多的问题。

本次设计单凭自己的能力根本不可能完成,幸亏有老师与同学们的帮助,我才能完成这次设计。

这次课程设计给我体会颇深,我深刻认识到自己C语言基础很差,以后要加强基础知识的学习,真正了解问题本身的精髓,特别要提高C语言编程能力,更重要的就是要多进行试验操作,提高自己的动手实践能力。

8参考文献

[1]史济民,顾春华、软件工程——原理、方法与应用[M]、北京:

高等教育出版社,2004、

[2]张海藩、软件工程导论[M]、北京:

清华大学出版社,2005、

[3]吴伟民、数据结构、北京:

清华大学出版社,2013年、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1