资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据结构课程设计题目:药店药品信息管理系统系 别:计算机信息与技术系专 业:计算机科学与技术专业班 级: B130601 学 号: B13060125 学生姓名: 杨晴雯 指导教师: 王 楠 2015年07月目录1 需求分析11.1 问题描述11.2 需求分析12 概要设计22.1 主界面设计22.2 存储结构设计22.3 系统功能设计33 模块设计43.1 系统子程序及功能设计43.2 系统功能图44 详细设计54.1 数据类型定义54.2 系统主要子程序详细设计55 测试分析96 源程序清单127 工作总结208 参考文献211 需求分析1.1 问题描述随着我国医疗事业的发展和社会不同人群的需求,药店的药品层出不穷。这对于消费者来说固然是好事,可是对于药店管理者来说,药品种类越多,越不容易记录和查找,还容易出错。所以以前的记录在账本上的方式已经落后了,药店需要一套完备的药店药品信息管理系统,方便药店管理者管理药店,以贴近时代需求,走向现代化管理道路。1.2 需求分析1建立药品信息表;2插入新药品信息;3查询新药品信息记录;4药品销售;5显示库存药品信息;6. 退出管理系统2 概要设计2.1 主界面设计当输入相应的操作字符(比如:0-5),通过在主函数中选择并调用对应的子函数程序以及其他函数(比如:菜单函数)中的辅助调用,实现并完成各自的功能操作(比如:添加、查找、删除、显示等)。系统主界面如下:图2.12.2 存储结构设计依据给定的数据格式,药品信息由四个字段来组成,即药品编号、药品名称、药品数量、药品价格。如: 药品编号 | 药品名称 | 药品数量 | 药品价格| 012 感康 36 12 通过C语言把学生的信息用单链表形式连接,源程序要有适当的注释,使程序易于阅读,进行储存。同时进行各种修改,完成信息管理等功能。2.3 系统功能设计依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的定位、插入、建表、显示、删除等功能模块。(1)定位函数功能:具体了解要插入函数的位置。(2)插入函数功能:找到要插入函数的位置,进行函数插入。(3)显示函数功能:按照指定关键字,对相应商品信息进行查找显示。(4)删除函数功能:查找到要删除商品的相应信息,并将其从表中永久的删除。(5)主函数功能:调用以上子函数,并用开关语句进行选择性的调用。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.14 详细设计4.1 数据类型定义 typedef struct nodeint num;/药品编号char name20;/商药品名称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) 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)if(L=NULL|L-next=NULL) printf(仓库中没有药品n); elsewhile(p-next!=NULL)/不为空的情况下输出表内信息p=p-next;/不断寻找下一条信息n+;5.删除函数(按序号)void deleList(LinkList L,int i)while(p-next&jnext; j+;free(q);6.删除函数(按名称)if(L-next=NULL) elsewhile(p!=NULL)if(!strcmp(p-name,n)p=p-next;deleList(L,sale);elsep=p-next;sale+;7.查找函数(按名字)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.查找函数(按编号)int 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. 主函数:主要由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(cls);system (color 4f);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.12)插入信息:选择2,进行插入信息图5.23) 查询药品信息,选择3,进行查询信息图5.34) 药品销售,选择4,进行药品销售图5.45) 显示库存药品信息,选择5,进行显示图5.56)退出系统:选择0,退出系统。6 源程序清单#include#include#includeint sale;typedef struct node int num; char name20;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号