




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上数据结构课程设计题目:药店药品信息管理系统系 别:计算机信息与技术系专 业:计算机科学与技术专业班 级: B 学 号: B 学生姓名: 杨晴雯 指导教师: 王 楠 ×××2015年07月专心-专注-专业目录1 需求分析1.1 问题描述随着我国医疗事业的发展和社会不同人群的需求,药店的药品层出不穷。这对于消费者来说固然是好事,可是对于药店管理者来说,药品种类越多,越不容易记录和查找,还容易出错。所以以前的记录在账本上的方式已经落后了,药店需要一套完备的药店药品信息管理系统,方便药店管理者管理药店,以贴近时代需求,走向现代化管理道路。1.2
2、需求分析1建立药品信息表;2插入新药品信息;3查询新药品信息记录;4药品销售;5显示库存药品信息;6. 退出管理系统2 概要设计2.1 主界面设计当输入相应的操作字符(比如:0-5),通过在主函数中选择并调用对应的子函数程序以及其他函数(比如:菜单函数)中的辅助调用,实现并完成各自的功能操作(比如:添加、查找、删除、显示等)。系统主界面如下:图2.12.2 存储结构设计依据给定的数据格式,药品信息由四个字段来组成,即药品编号、药品名称、药品数量、药品价格。如: 药品编号 | 药品名称 | 药品数量 | 药品价格| 012 感康 36 12 通过C语言把学生的信息用单链表形式连接,源程序要有适当
3、的注释,使程序易于阅读,进行储存。同时进行各种修改,完成信息管理等功能。2.3 系统功能设计依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的定位、插入、建表、显示、删除等功能模块。(1)定位函数功能:具体了解要插入函数的位置。(2)插入函数功能:找到要插入函数的位置,进行函数插入。(3)显示函数功能:按照指定关键字,对相应商品信息进行查找显示。(4)删除函数功能:查找到要删除商品的相应信息,并将其从表中永久的删除。(5)主函数功能:调用以上子函数,并用开关语句进行选择性的调用。3 模块设计3.1 系统子程序及功能设计LinkList prior(Link
4、List 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.
5、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 List
6、Insert_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->n
7、ame,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&&j<i-1)p=p->next; j+;fre
8、e(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
9、 x;8.查找函数(按编号)int searchnum(LinkList L,int n ) if(L->next=NULL) printf("该链表中没有元素n");elsewhile(p!=NULL)if(p->num<=n)if(p->num=n) p=p->next;sale+;return x;2. 主函数:主要由switch语句组成,便于函数调用。 switch(choose) case 1:CreateList _L; break; /*增加记录*/ case 2: ListInsert_L(L,p);break; /*插入记录*
10、/ 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建立药
11、品信息表 *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,进入
12、建立信息表图5.12)插入信息:选择2,进行插入信息图5.23) 查询药品信息,选择3,进行查询信息图5.34) 药品销售,选择4,进行药品销售图5.45) 显示库存药品信息,选择5,进行显示图5.56)退出系统:选择0,退出系统。6 源程序清单#include<stdio.h>#include<stdlib.h>#include<string.h>int sale;typedef struct node int num; char name20; int amount;int price;struct node * next;node,*LinkList;
13、 LinkList prior(LinkList L,LinkList p)/定位函数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)/插入函数 LinkList s=L->next;while(s!=NULL&& p->num>=s->num)if(s->num=p-&g
14、t;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;LinkList CreateList_L()/建表LinkList L=(LinkList)malloc(sizeof(node);/给空间L->next=NULL;/初始化LinkList p;int num; char name20;int a
15、mount;int price; printf("请输入药品编码:");scanf("%d",&num);printf("请输入药品名称:");char temp=getchar();gets(name); printf("请输入药品数量:");scanf("%d",&amount); printf("请输入药品价格:"); scanf("%d",&price);while(num>=0)/重复输入信息的条件p=(LinkLi
16、st)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("请输入药品名称:");char temp=getchar();gets(name);printf("请输入药品数量:");scanf("%d",&amount);
17、printf("请输入药品价格:"); scanf("%d",&price);return(L);void showlist(LinkList L)/显示函数 printf("n - n"); printf("n 序号 药品编码 药品名称 药品数量 药品价格 n");printf(" - n");LinkList p=L;int n=1;if(L=NULL|L->next=NULL) printf("仓库中没有药品n");/空表elsewhile(p->n
18、ext!=NULL)/不为空的情况下输出表内信息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&&
19、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,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
20、",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=NULL|L=NULL) printf("仓库中没有该药品n");elsewhile(p!=NULL)if(!strcmp(p->name,n)x=1;printf("查
21、找的是第%d个商品: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");elsewhile(p!=NULL)if(p->
22、num<=n)if(p->num=n)x=1; printf("查找的是第%d个药品: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欢迎
23、使用药店药品信息管理系统*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&
24、quot;);int x=0;int a;printf("请选择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,price; char name20; printf("请输入药品编码:"); scanf("%d",&num); print
25、f("请输入药品名称:"); char temp=getchar(); gets(name); printf("请输入药品数量:"); scanf("%d",&amount); printf("请输入药品价格:"); scanf("%d",&price); LinkList p=(LinkList)malloc(sizeof(node); p->num=num; p->amount=amount; strcpy(p->name,name); p->pric
26、e=price; ListInsert_L(L,p); 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请输入药品编码:"); scanf("%d",&n); s=searchnum(L,n); if(s=0)printf("无此药品!n"); else if(b=2) printf("n请输入药品名称:"); char temp=getchar(); gets(name); s=searchName(L,name); if(s=0)printf("无此药品!n"); else printf("无库存!n"); break; case 4: int b; printf("请选择删除方式: n"); printf("1按药品序号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级学习探秘
- 图木舒克职业技术学院《奥尔夫与柯达伊音乐教学法》2023-2024学年第二学期期末试卷
- 湘西市重点中学2025年高三下学期期末模拟英语试题含解析
- 平利县2025年数学四下期末统考模拟试题含解析
- 山东省潍坊市昌邑市2025届小升初模拟数学测试卷含解析
- 山东省宁津县市级名校2024-2025学年初三年级第二学期语文试题周练一(含附加题)含解析
- 上海市浦东新区2024-2025学年高三下学期期末考试(生物试题文)试题含解析
- 江苏省南通市海安市2025届初三下学期尖子生物理试题含解析
- 上海市度嘉定区2024-2025学年高中毕业班第二次模拟(语文试题文)试卷含解析
- 2025年营养师职业资格考试试题及答案
- 财务岗位招聘笔试题及解答(某大型国企)2025年
- 第六次全国幽门螺杆菌感染处理共识报告-
- 电影与幸福感学习通超星期末考试答案章节答案2024年
- 《飞越疯人院》电影赏析
- 屋顶分布式光伏项目可行性研究报告
- 《建筑结构抗震设计》全套课件
- 农业综合执法大比武测试题
- 时花采购供应投标方案(技术方案)
- 专题14 阅读理解七选五-【好题汇编】五年(2020-2024)高考英语真题分类汇编
- 厂区围墙翻新施工方案
- 国开《Windows网络操作系统管理》形考任务5-配置DNS服务实训
评论
0/150
提交评论