药店药品信息管理系统课程设计报告
更新时间:2023-12-22 20:45:01 阅读量: 教育文库 文档下载
《数据结构》课程设计
题目:药店药品信息管理系统
系 别:计算机信息与技术系 专 业:计算机科学与技术专业 班 级: B130601 学 号: B13060125 学生姓名: 杨晴雯 指导教师: 王 楠
×××2015年07月
目录
1 需求分析 ................................................................................................ 1
1.1 问题描述.......................................................................................................... 1 1.2 需求分析.......................................................................................................... 1
2 概要设计 ................................................................................................ 2
2.1 主界面设计...................................................................................................... 2 2.2 存储结构设计.................................................................................................. 2 2.3 系统功能设计.................................................................................................. 3
3 模块设计 .............................................................................................. 4
3.1 系统子程序及功能设计.................................................................................. 4 3.2 系统功能图...................................................................................................... 4
4 详细设计 .............................................................................................. 5
4.1 数据类型定义.................................................................................................. 5 4.2 系统主要子程序详细设计.............................................................................. 5
5 测试分析 .............................................................................................. 9 6 源程序清单 ........................................................................................ 12 7 工作总结 ............................................................................................ 20 8 参考文献 ............................................................................................ 21
1 需求分析
1.1 问题描述
随着我国医疗事业的发展和社会不同人群的需求,药店的药品层出不穷。这对于消费者来说固然是好事,可是对于药店管理者来说,药品种类越多,越不容易记录和查找,还容易出错。所以以前的记录在账本上的方式已经落后了,药店需要一套完备的药店药品信息管理系统,方便药店管理者管理药店,以贴近时代需求,走向现代化管理道路。
1.2 需求分析
1.建立药品信息表; 2.插入新药品信息; 3.查询新药品信息记录; 4.药品销售;
5.显示库存药品信息; 6. 退出管理系统
1
2 概要设计
2.1 主界面设计
当输入相应的操作字符(比如:0-5),通过在主函数中选择并调用对应的子函数程序以及其他函数(比如:菜单函数)中的辅助调用,实现并完成各自的功能操作(比如:添加、查找、删除、显示等)。 系统主界面如下:
图2.1
2.2 存储结构设计
依据给定的数据格式,药品信息由四个字段来组成,即药品编号、药品名称、药品数量、药品价格。 如:
药品编号 | 药品名称 | 药品数量 | 药品价格| 012 感康 36 12
通过C语言把学生的信息用单链表形式连接,源程序要有适当的注释,使程序易于阅读,进行储存。同时进行各种修改,完成信息管理等功能。
2
2.3 系统功能设计
依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的定位、插入、建表、显示、删除等功能模块。 (1)定位函数功能:具体了解要插入函数的位置。
(2)插入函数功能:找到要插入函数的位置,进行函数插入。
(3)显示函数功能:按照指定关键字,对相应商品信息进行查找显示。 (4)删除函数功能:查找到要删除商品的相应信息,并将其从表中永久的删除。 (5)主函数功能:调用以上子函数,并用开关语句进行选择性的调用。
3
3 模块设计
3.1 系统子程序及功能设计
LinkList prior(LinkList L,LinkList p) 定位函数 void ListInsert_L(LinkList L,LinkList p) 插入函数 LinkList CreateList_L() 建表 void void showlist(LinkList L) 显示函数 void deleList(LinkList L,int i) 删除(按序号) void delName(LinkList L,char n[]) 删除(按名字) int searchnum(LinkList L,int n) 查询(按编号) int searchName(LinkList L,char n[]) 查询(按名字)
3.2 系统功能图
药店药品信息管理系统 建立药品信息表 插入新药品信息 查询新药品信息记录 图3.1 药品销售 显示库存药品信息 退出管理系统 4
4 详细设计
4.1 数据类型定义
typedef struct node { int num;//药品编号 char name[20];//商药品名称 int amount;//药品数量 int price;//药品价格
struct node *next;
}Node,*LinkList;
4.2 系统主要子程序详细设计
1.定位函数
LinkList prior(LinkList L,LinkList p) {
{while(q->next!=p)
q=q->next;
return(q);}
}
2.插入函数
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.创建函数
LinkList CreateList_L() {
while(num>=0)
5
}
{ p=(LinkList)malloc(sizeof(node)); p->num=num; p->amount=amount; strcpy(p->name,name); p->price=price; ListInsert_L(L,p); }
4.显示函数
void showlist(LinkList L)
{ }
5.删除函数(按序号)
void deleList(LinkList L,int i) { }
while(p->next&&j
if(L==NULL||L->next==NULL) printf(\仓库中没有药品\\n\ else
while(p->next!=NULL)//不为空的情况下输出表内信息 { }
p=p->next;//不断寻找下一条信息 n++;
6.删除函数(按名称) {
if(L->next==NULL) else {
while(p!=NULL) {
6
}
}
if(!strcmp(p->name,n)) { }
else{p=p->next;sale++;}
p=p->next; deleList(L,sale);
7.查找函数(按名字)
int searchName(LinkList L,char n[]) {
if(L->next==NULL||L==NULL) printf(\仓库中没有该药品\\n\else {
while(p!=NULL) {
if(!strcmp(p->name,n))
p=p->next;sale++; }
} return x;
}
8.查找函数(按编号)
int searchnum(LinkList L,int n ) {
if(L->next==NULL) printf(\该链表中没有元素\\n\else {
while(p!=NULL) {
if(p->num<=n)
if(p->num==n)
p=p->next;sale++;
}
7
}
} return x;
2.主函数:主要由switch语句组成,便于函数调用。 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; /*退出系统*/ }
3.主页面函数
void main(){ LinkList L=NULL; system(\system (\
printf(\ ******^e^欢迎使用药店药品信息管理系统**********\\n\printf(\ * 1建立药品信息表 *\\n\printf(\ * 2插入新药品信息 *\\n\printf(\ * 3查询药品信息记录 *\\n\printf(\ * 4药品销售 *\\n\printf(\ * 5显示库存药品信息 *\\n\printf(\ * 0退出管理系统 *\\n\printf(\ ******^e^欢迎使用药店药品信息管理系统**********\\n\printf(\ 请选择操作:\\n\
8
5 测试分析
各功能的运行结果:
1)建立信息表:在主菜单中选择1,进入建立信息表
图5.1
2)插入信息:选择2,进行插入信息
图5.2
9
3)查询药品信息,选择3,进行查询信息
图5.3
4)药品销售,选择4,进行药品销售
图5.4
10
5)显示库存药品信息,选择5,进行显示
图5.5
6)退出系统:选择0,退出系统。
11
6 源程序清单
#include
typedef struct node { int num; char name[20]; int amount; int price; struct node * next; }node,*LinkList;
LinkList prior(LinkList L,LinkList p)//定位函数 { LinkList q=L->next; if(L->next==NULL) return(L); else {while(q->next!=p) q=q->next; printf(\ return(q);} }
void ListInsert_L(LinkList L,LinkList p)//插入函数 { LinkList s=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;} }
12
LinkList CreateList_L()//建表 {
LinkList L=(LinkList)malloc(sizeof(node));//给空间 L->next=NULL;//初始化 LinkList p; int num; char name[20]; int amount; int price;
printf(\请输入药品编码:\ scanf(\ printf(\请输入药品名称:\ char temp=getchar(); gets(name);
printf(\请输入药品数量:\ scanf(\
printf(\请输入药品价格:\ scanf(\ 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(\ printf(\请输入药品名称:\ char temp=getchar(); gets(name); printf(\请输入药品数量:\ scanf(\ printf(\请输入药品价格:\ scanf(\ } return(L); }
void showlist(LinkList L)//显示函数 {
printf(\ --------------------------------------------------------- \\n\
printf(\ 序号 药品编码 药品名称 药品数量\\n\ printf(\ --------------------------------------------------------- \\n\
13
药品价格
LinkList p=L; int n=1; if(L==NULL||L->next==NULL) printf(\仓库中没有药品\\n\空表 else while(p->next!=NULL)//不为空的情况下输出表内信息 { printf(\ ? M\
printf(\ %4s M %d\\n\xt->price); p=p->next;//不断寻找下一条信息 n++; printf(\ ---------------------------------------------------------- \\n\ } }
void deleList(LinkList L,int i) { LinkList p=L; int j=0; while(p->next&&j
int delName(LinkList L,char n[]) { int x=0;
LinkList p=L->next; sale=1; if(L->next==NULL) printf(\无可删除元素\\n\ else { while(p!=NULL) { if(!strcmp(p->name,n))
14
{ x=1; printf(\ p=p->next; deleList(L,sale); } else{p=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==NULL||L==NULL) printf(\仓库中没有该药品\\n\ else { while(p!=NULL) { if(!strcmp(p->name,n)) { x=1; printf(\查找的是第%d个商品:\\n\ printf(\ Name:%s amount:df Price:%d\\n\ }
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\ else { while(p!=NULL) {
15
if(p->num<=n) if(p->num==n) { x=1; printf(\查找的是第%d个药品:\\n\ printf(\ Name:%s Amount:%d Price:%d \\n\ }
p=p->next;sale++; } } return x; }
void main(){
LinkList L=NULL; system(\
system (\
printf(\ ******^e^欢迎使用药店药品信息管理系统**********\\n\printf(\ * 1建立药品信息表 *\\n\printf(\ * 2插入新药品信息 *\\n\printf(\ * 3查询药品信息记录 *\\n\printf(\ * 4药品销售 *\\n\printf(\ * 5显示库存药品信息 *\\n\printf(\ * 0退出管理系统 *\\n\printf(\ ******^e^欢迎使用药店药品信息管理系统**********\\n\printf(\ 请选择操作:\\n\int x=0; int a; printf(\请选择0-5: \ scanf(\ while(a!=0) { switch(a) { case 1: { printf(\建立药品信息表:\\n\ L=CreateList_L(); showlist(L); x=1; break; } case 2: {if(x==1)
16
{ int num,amount,price; char name[20]; printf(\请输入药品编码:\ scanf(\ printf(\请输入药品名称:\ char temp=getchar(); gets(name); printf(\请输入药品数量:\ scanf(\ printf(\请输入药品价格:\ scanf(\ 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 name[20]; printf(\选择查询方式:\\n\ printf(\ 1.按药品编码查询 2.按药品名称查询\\n\ scanf(\ if(b==1) { printf(\请输入药品编码:\ scanf(\ s=searchnum(L,n); if(s==0) printf(\无此药品!\\n\ } else if(b==2) { printf(\请输入药品名称:\ char temp=getchar(); gets(name); s=searchName(L,name);
17
if(s==0) printf(\无此药品!\\n\ } else printf(\无库存!\\n\ break; } case 4: { int b; printf(\请选择删除方式: \\n\ printf(\按药品序号删除 2按药品名称删除\\n\ scanf(\ if (b==1) { int c; printf(\请输入药品序号:\\n\ scanf(\ printf(\删除后:\\n\ deleList(L,c); showlist(L); } else if(b==2) { int f; char name[20]; printf(\请输入药品名称:\\n\ char temp=getchar(); gets(name); f=delName(L,name); if (f!=0) { printf(\删除后:\\n\ showlist(L);} else printf(\无该药品!\\n\ } else printf(\出错!\\n\ break; } case 5: { printf(\剩余药品信息:\\n\ showlist(L);
18
正在阅读:
药店药品信息管理系统课程设计报告12-22
结构设计常见问题探讨08-15
《统计基础与方法》习题0810-04
税务局开票证明格式02-10
室内装饰设计员国家职业标准(2)06-12
桥梁设计毕业设计11-28
餐厅服务表扬信英语范文02-21
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 药店
- 管理系统
- 药品
- 课程
- 报告
- 设计
- 信息
- 语文版()语文七年级上册(教案):11.雪花的快乐
- 2016-2022年中国核电市场前景研究与战略咨询报告(目录) - 图文
- 数字电路简明教程习题
- 2012年10月吉林省高等教育自学考试课程安排表 - 图文
- 创业管理-易学实用的创业真知教程考试
- Evfgwow印刷、模压3C认证标志申请书
- 小班绘画教学反思随笔
- 艺术夏令营
- 免疫学检验经典
- 07-11年广东高考文科数学试题 - 图文
- 数控专业技术服务企业管理制度
- 宪法学第1阶段测试题1b求答案
- 乳腺微创旋切系统治疗多发乳腺小结节的效果及优势分析
- 2015暑假新初二数学提优训练1-9课
- 政府审计课后习题答案整理
- 建设部、国家工商行政管理局关于印发《商品房买卖合同示范文本》的通知 doc
- 化工原理试题库
- 会计制度设计学习心得体会
- 2018届高考物理热点:计算题解题规范(全国新课标卷)-含答案
- 三年级科学上册第二单元知识点、练习题