还剩21页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《数据结构》课程设计题目药店药品信息管理系统系别计算机信息与技术系专业计算机科学与技术专业班级B130601学号B13060125学生姓名杨晴雯指导教师王楠×××2015年07月目录TOC\o1-3\h\z\u1需求分析
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感康3612通过C语言把学生的信息用单链表形式连接,源程序要有适当的注释,使程序易于阅读,进行储存同时进行各种修改,完成信息管理等功能
2.3系统功能设计依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的定位、插入、建表、显示、删除等功能模块
(1)定位函数功能具体了解要插入函数的位置
(2)插入函数功能找到要插入函数的位置,进行函数插入
(3)显示函数功能按照指定关键字,对相应商品信息进行查找显示
(4)删除函数功能查找到要删除商品的相应信息,并将其从表中永久的删除
(5)主函数功能调用以上子函数,并用开关语句进行选择性的调用3模块设计
3.1系统子程序及功能设计LinkListpriorLinkListLLinkListp定位函数voidListInsert_LLinkListLLinkListp插入函数LinkListCreateList_L建表voidvoidshowlistLinkListL显示函数voiddeleListLinkListLinti删除(按序号)voiddelNameLinkListLcharn[]删除(按名字)intsearchnumLinkListLintn查询(按编号)intsearchNameLinkListLcharn[]查询(按名字)
3.2系统功能图图
3.14详细设计
4.1数据类型定义typedefstructnode{intnum;//药品编号charname
[20];//商药品名称intamount;//药品数量intpri__;//药品__structnode*next;}Node*LinkList;
4.2系统主要子程序详细设计
1.定位函数LinkListpriorLinkListLLinkListp{{whileq-next!=pq=q-next;returnq;}}
2.插入函数voidListInsert_LLinkListLLinkListp{whiles!=NULLp-num=s-num{s=priorLs;p-next=NULL;s-next=p;}{s=priorLs;p-next=s-next;s-next=p;}}
3.创建函数LinkListCreateList_L{whilenum=0{p=LinkList__llocsizeofnode;p-num=num;p-amount=amount;strcpyp-namename;p-pri__=pri__;ListInsert_LLp;}}
4.显示函数voidshowlistLinkListL{ifL==NULL||L-next==NULLprintf仓库中没有药品\n;elsewhilep-next!=NULL//不为空的情况下输出表内信息{p=p-next;//不断寻找下一条信息n++;}}
5.删除函数(按序号)voiddeleListLinkListLinti{whilep-nextji-1{p=p-next;j++;}freeq;}
6.删除函数(按名称){ifL-next==NULLelse{whilep!=NULL{if!strcmpp-namen{p=p-next;deleListLsale;}else{p=p-next;sale++;}}}
7.查找函数(按名字)intsearchNameLinkListLcharn[]{ifL-next==NULL||L==NULLprintf仓库中没有该药品\n;else{whilep!=NULL{if!strcmpp-namenp=p-next;sale++;}}returnx;}
8.查找函数(按编号)intsearchnumLinkListLintn{ifL-next==NULLprintf该链表中没有元素\n;else{whilep!=NULL{ifp-num=nifp-num==np=p-next;sale++;}}returnx;}
2.主函数主要由switch语句组成,便于函数调用switchchoose{case1:CreateList_L;break;/*增加记录*/case2:ListInsert_LLp;break;/*插入记录*/case3:searchnumLname;break;/*查询记录*/case4:deleListLn;break;/*删除记录*/case5:showlistL;break;/*显示记录*/case0:exit;break;/*退出系统*/}
3.主页面函数void__in{LinkListL=NULL;systemcls;systemcolor4f;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源程序清单#includestdio.h#includestdlib.h#includestring.hintsale;typedefstructnode{intnum;charname
[20];intamount;intpri__;structnode*next;}node*LinkList;LinkListpriorLinkListLLinkListp//定位函数{LinkListq=L-next;ifL-next==NULLreturnL;else{whileq-next!=pq=q-next;printf1;returnq;}}voidListInsert_LLinkListLLinkListp//插入函数{LinkLists=L-next;whiles!=NULLp-num=s-num{ifs-num==p-numprintf重复输入\n;s=s-next;//已经存在信息}ifs==NULL//空表插入{s=priorLs;p-next=NULL;s-next=p;}else//寻找位置插入{s=priorLs;p-next=s-next;s-next=p;}}LinkListCreateList_L//建表{LinkListL=LinkList__llocsizeofnode;//给空间L-next=NULL;//初始化LinkListp;intnum;charname
[20];intamount;intpri__;printf请输入药品编码:;scanf%dnum;printf请输入药品名称:;chartemp=getchar;getsname;printf请输入药品数量:;scanf%damount;printf请输入药品__:;scanf%dpri__;whilenum=0//重复输入信息的条件{p=LinkList__llocsizeofnode;p-num=num;p-amount=amount;strcpyp-namename;p-pri__=pri__;ListInsert_LLp;printf请输入药品编码:;scanf%dnum;printf请输入药品名称:;chartemp=getchar;getsname;printf请输入药品数量:;scanf%damount;printf请输入药品__:;scanf%dpri__;}returnL;}voidshowlistLinkListL//显示函数{printf\n---------------------------------------------------------\n;printf\n序号药品编码药品名称药品数量药品__\n;printf---------------------------------------------------------\n;LinkListp=L;intn=1;ifL==NULL||L-next==NULLprintf仓库中没有药品\n;//空表elsewhilep-next!=NULL//不为空的情况下输出表内信息{printf%8d%4dnp-next-num;printf%4s%4d%d\np-next-namep-next-amountp-next-pri__;p=p-next;//不断寻找下一条信息n++;printf----------------------------------------------------------\n;}}voiddeleListLinkListLinti{LinkListp=L;intj=0;whilep-nextji-1{p=p-next;j++;}if!p-next{printf删除失败\ni;}LinkListq=p-next;p-next=q-next;freeq;}intdelNameLinkListLcharn[]{intx=0;LinkListp=L-next;sale=1;ifL-next==NULLprintf无可删除元素\n;else{whilep!=NULL{if!strcmpp-namen{x=1;printf%sp-name;p=p-next;deleListLsale;}else{p=p-next;sale++;}}ifxprintf被删除\n;}returnx;}intsearchNameLinkListLcharn[]{intx=0;LinkListp=L-next;sale=1;ifL-next==NULL||L==NULLprintf仓库中没有该药品\n;else{whilep!=NULL{if!strcmpp-namen{x=1;printf查找的是第%d个商品:\nsale;printfNum:%dName:%samount:dfPri__:%d\np-nump-namep-amountp-pri__;}p=p-next;sale++;}}returnx;}intsearchnumLinkListLintn{intx=0;LinkListp=L-next;sale=1;ifL-next==NULLprintf该链表中没有元素\n;else{whilep!=NULL{ifp-num=nifp-num==n{x=1;printf查找的是第%d个药品:\nsale;printfNum:%dName:%sAmount:%dPri__:%d\np-nump-namep-amountp-pri__;}p=p-next;sale++;}}returnx;}void__in{LinkListL=NULL;systemcls;systemcolor4f;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%da;whilea!=0{switcha{case1:{printf建立药品信息表:\n;L=CreateList_L;showlistL;x=1;break;}case2:{ifx==1{intnumamountpri__;charname
[20];printf请输入药品编码:;scanf%dnum;printf请输入药品名称:;chartemp=getchar;getsname;printf请输入药品数量:;scanf%damount;printf请输入药品__:;scanf%dpri__;LinkListp=LinkList__llocsizeofnode;p-num=num;p-amount=amount;strcpyp-namename;p-pri__=pri__;ListInsert_LLp;printf插入后:\n;showlistL;}break;}case3:{intbns;charname
[20];printf选择查询方式:\n;printf
1.按药品编码查询
2.按药品名称查询\n;scanf%db;ifb==1{printf\n请输入药品编码:;scanf%dn;s=searchnumLn;ifs==0printf无此药品!\n;}elseifb==2{printf\n请输入药品名称:;chartemp=getchar;getsname;s=searchNameLname;ifs==0printf无此药品!\n;}elseprintf无库存!\n;break;}case4:{intb;printf请选择删除方式:\n;printf1按药品序号删除2按药品名称删除\n;scanf%db;ifb==1{intc;printf请输入药品序号:\n;scanf%dc;printf删除后:\n;deleListLc;showlistL;}elseifb==2{intf;charname
[20];printf请输入药品名称:\n;chartemp=getchar;getsname;f=delNameLname;iff!=0{printf删除后:\n;showlistL;}elseprintf无该药品!\n;}elseprintf出错!\n;break;}case5:{printf剩余药品信息:\n;showlistL;break;}case0:exit0;}printf请选择0-5:;scanf%da;}7工作总结这周进行了数据结构的课程设计-----药店药品信息管理系统,我发现自己在编程方面存在很大问题,面对要求,代码根本无从下手,由于自己C语言能力比较差,写出来的代码调试也存在很多的问题本次设计单凭自己的能力根本不可能完成,幸亏有老师和同学们的帮助,我才能完成这次设计这次课程设计给我体会颇深,我深刻认识到自己C语言基础很差,以后要加强基础知识的学习,真正了解问题本身的精髓,特别要提高C语言编程能力,更重要的是要多进行试验操作,提高自己的动手实践能力8____
[1]史济民,顾春华.软件工程——原理、方法与应用[M].北京高等教育出版社,
2004.
[2]张海藩.软件工程导论[M].北京清华大学出版社,
2005.
[3]吴伟民.数据结构.北京清华大学出版社,2013年.药店药品信息管理系统退出管理系统插入新药品信息药品销售显示库存药品信息查询新药品信息记录建立药品信息表。