《医院药品管理系统(共20页).doc》由会员分享,可在线阅读,更多相关《医院药品管理系统(共20页).doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上专心-专注-专业医院药品管理系统目录摘摘 要要.11绪论绪论.12. 系统分析系统分析.12.1 功能需求.12.2 数据需求.22.3 性能需求.23. 总体设计总体设计.23.1 功能模块设计.23.2 系统设计方案.34. 详细设计详细设计.44.1 输入模块.44.2 列表模块.54.3 查询模块.64.4 分类模块.75. 调试与测试调试与测试.95.1 调试.95.2 测试.96. 结论结论.10结束语结束语.10参考文献参考文献.10附录附录 1用户手册用户手册.11附录附录 2源程序源程序.13精选优质文档-倾情为你奉上专心-专注-专业摘摘 要要医院药
2、品管理系统是一所医院不可缺少的部分,它是医院的运行效率、服务质量的体现,医院药品管理系统可以让相关工作人员更方便的掌握库存药品的相关信息,提高运行效率,让患者及其家属更方便的购药,咨询。 本系统使用 C 语言作为程序开发的语言,开发医院药品管理系统,为药品管理过程中的库管人员提供一个方便快捷的管理系统。本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。关键词:药品管理,入库出库,清点 1绪论绪论医院药品管理系统是一所医院不可缺少的部分,它是医院的运行效率、服务质量的体现,医院药品
3、管理系统可以让相关工作人员更方便的掌握库存药品的相关信息,提高运行效率,让患者及其家属更方便的购药,咨询。主要 内容如下1. 药品入库。完成药品入库过程中的管理功能,主要填写,修改和删除药品入库单以及将药品入库等功能。2. 药品出库。完成药品出库过程中的管理功能,主要填写,修改和撤销药品出库。3. 库存清点功能。完成库存药品的清点功能,主要进行统计查询。2. 系统分析系统分析2.1 功能需求功能需求本系统主要是某医院库存人员的药品管理系统。本系统需要有输入,列表,查询,分类,插入等功能 精选优质文档-倾情为你奉上专心-专注-专业2.2 数据需求数据需求需要向系统输入药品编号,名称,重量,单价,
4、总价。2.3 性能需求性能需求在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。3. 总体设计总体设计3.1 功能模块设计功能模块设计根据分析整个系统主要划分为 5 个功能模块,分别执行要求中的功能。该系统需要有输入,列表,查询,分类,插入等功能, 图图 1 1 功能模块图功能模块图(1)输入模块 输入新药品的相关信息;(2)列表模块对已有相关药品信息进行一一列表(3) 查询模块对相关药品信息进行分类查询(4) 分类模块对药品新旧情况进行相关分类;(5) 插入模块精选优质文档-倾情为你奉上专心-专注-专业插入新药品以及相关信息 3.2 系统设计方案系统设计方
5、案设计一个总菜单,1 输入,2 列表,3 查询,4 分类,5 插入。基本功能的实现都将体现在这几个菜单选项中。建立结构体如下:struct medicine char num8;编号 char name8;名称 int kgs;重量 float price;价格 float gross;总价 medN,s,temp;/*界面*/void init() printf(nn) ; printf(ttt*nn); printf(ttt 医院药品管理系统 nn); printf(ttt*n); printf(ttt1-输入 *n); printf(ttt2-列表 *n); printf(ttt3-查询
6、 *n); printf(ttt4-分类 *n); printf(ttt5-插入 *n); printf(ttt0-退出 *n); printf(ttt*n); printf(ttt -Made by 通信工程 何哲名 -n); printf(ttt*n); 精选优质文档-倾情为你奉上专心-专注-专业4. 详细设计详细设计 4.1 输入模块输入模块输入模块是输入相关药品信息,包括药品的种类,编号,名称,重量,单价,总价。输入开始inti,n;i=0ini+fp=fopen(information,w);i=0ini+fclose(fp);printf(ninput information of
7、 medicine %d:n,i+1);printf(file write errorn);结束图图 2 输入流程图输入流程图精选优质文档-倾情为你奉上专心-专注-专业4.2 列表模块列表模块对药品库存相关信息进行一一列表。方便管理员进行查看。开始inti;(fp=fopen(information,r)=NULLprintf(nnn);i=0fread(&medi,sizeof(structmedicine),1,fp)!=0i+fclose(fp);return;printf(can not open.);RP结束图图 3 列表流程图列表流程图精选优质文档-倾情为你奉上专心-专注-专业4.
8、3 查询模块查询模块输入要查询的药品编号,查询药品的名称,重量等相关信息。开始inti,n;(fp=fopen(information,r)=NULLi=0fread(&medi,sizeof(structmedicine),1,fp)!=0i+return;i=0i=ni+fclose(fp);PR;printf(can not open.);RPprintf(input the name:n);结束图图 3 查询流程图查询流程图精选优质文档-倾情为你奉上专心-专注-专业4.4 分类模块分类模块该模块把药品信息进行分类。分为旧药品和新药品。使药品信息更加直观。精选优质文档-倾情为你奉上专心-
9、专注-专业开始FILE*fp;(fp=fopen(information,r)=NULLi=0fread(&medi,sizeof(structmedicine),1,fp)!=0i+return;n=i;i=0i0i=0i0&tnt+(fp=fopen(information,w)=NULLi=0iti+fwrite(&s,sizeof(structmedicine),1,fp);return;fwrite(&medi,sizeof(structmedicine),1,fp);i=tini+fclose(fp);fwrite(&medi,sizeof(structmedicine),1,fp
10、);printf(can not open file.);printf(nt No. name weight price grossn);PRPRprintf(can not open file.);结束图图 5 插入流程图插入流程图精选优质文档-倾情为你奉上专心-专注-专业5. 调试调试与测试与测试5.1 调试调试调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来说也是最艰巨的任务。调试的任务是及时改正测试过程中发现的软件错误。具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。然后仔细研究推断代
11、码以确定问题的原因,并设法改正。调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。本系统调试过程中遇到问题、原因和解决方法如下面介绍。(1)运行完程序一次有错误提醒原因是上次运行程序后没有关闭操作界面当点击编译时会有一个错误提示,解决方法:将上一次运行时的操作界面关闭。(2)程序不能运行程序运行到添加新会员时自动提示错误需要调试,其原因是指针指向的位置出现错误导致程序传参错乱无法运行,解决办法:使程序进入调试状态在传参出现错误的位置一句一句查找传递的参数是否是你所希望的,如若不是就加以修正。5.2 测试测试软件测试是软件生存期中的一个重要阶段,是软件质量保证的关
12、键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程” 。或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果) ,并利用这些测试用例去运行程序,以发现程序错误或缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而付出了过高的代价。当医院药品管理系统已经具备对药品进行输入,查询,分类,插入等功能后进行相关的输入进行查询。精选优质文档-倾情为你奉上专心-专注-专业6. 结论结论课程设计顺利完成,任务书中所提出的要求全部实现。不过这个程序还有些不够完
13、善,例如不能对信息数据进行保存。 结束语结束语为期一个礼拜的计算机综合训练终于顺利完成,在这期间真正的学到了一些经验,能够熟练的掌握一些 C 语言的编程思路,能够熟练的运用学到的函数,学会了在曾经编写过的函数上加以修改实现了我期望实现的功能,知道学习编程必须亲手将每一个字符敲入电脑中这样才能真正的学到课本或一些理论中学不到的知识,这才达到了实践的目的,当程序编写完成而且能够正常运行心里一种说不出的自豪感,虽然这对于一名程序员来说可能什么也不是,但这是我编程的开始,如果希望在编程这方面能够有所发展我所要走过的路还很长,还需要不断的学习! 参考文献参考文献 1 谭浩强. C 语言程序设计(第三版)
14、.北京:清华大学出版社,2005精选优质文档-倾情为你奉上专心-专注-专业附录附录 1用户手册用户手册点击运行,首先出现的是菜单界面,选择菜单选项进行操作,可进行如图8 所示图图 8 菜单界面菜单界面输入界面如下。图图 9 输入界面输入界面精选优质文档-倾情为你奉上专心-专注-专业列表界面如下精选优质文档-倾情为你奉上专心-专注-专业附录附录 2源程序源程序#include#include#include #define N 50#define PR printf(nt%8s %-8s%8d%10.2f%10.2f,medi.num,medi.name,medi.kgs,medi.price,
15、medi.gross)struct medicine char num8; char name8; int kgs; float price; float gross; medN,s,temp;/*界面*/void init() printf(nn) ; printf(ttt*nn); printf(ttt 医院药品管理系统 nn); printf(ttt*n); printf(ttt1-输入 *n); printf(ttt2-列表 *n); printf(ttt3-查询 *n); printf(ttt4-分类 *n); printf(ttt5-插入 *n); printf(ttt0-退出 *
16、n); printf(ttt*n); printf(ttt -Made by 通信工程 何哲名 -n); printf(ttt*n); /*输入功能*/void s_input()精选优质文档-倾情为你奉上专心-专注-专业int i,n; FILE*fp; printf(有多少种药品:); scanf(%d,&n); for(i=0;in;i+) printf(n 输入药品信息 %d:n,i+1); printf(编号.:); scanf(%s,medi.num); printf(名称:); scanf(%s,medi.name); printf(重量:); scanf(%d,&medi.kg
17、s); printf(价格:); scanf(%f,&medi.price); medi.gross=medi.kgs*medi.price; fp=fopen(information,w); for(i=0;in;i+) if(fwrite(&medi,sizeof(struct medicine),1,fp)!=1)printf(file write errorn); fclose(fp); printf(nn 按任意键继续.);/*显示功能*/void s_list()int i;FILE*fp;if(fp=fopen(information,r)=NULL) printf(不能打开.)
18、; return; printf(nnn);printf(nt 编号. 名称 重量 价格 总价n);printf(t -);精选优质文档-倾情为你奉上专心-专注-专业for(i=0;fread(&medi,sizeof(struct medicine),1,fp)!=0;i+)PR;fclose(fp);printf(nnn 按任意键继续.);/*查找功能*/void s_find()int i,n;char find_name8;FILE*fp;if(fp=fopen(information,r)=NULL) printf(不能打开.); return; for(i=0;fread(&med
19、i,sizeof(struct medicine),1,fp)!=0;i+);printf(输入名称:n);scanf(%s,find_name);printf(n 药品日期是:);printf(nnn);printf(nt 编号. 名称 重量 价格 总价n);printf(t -);n=i;for(i=0;i=n;i+) if(strcmp(find_name,medi.name)=0)PR;fclose(fp);printf(nn 按任意键继续.);/*排序功能*/void s_sort()FILE*fp;int i,j,n;if(fp=fopen(information,r)=NULL)
20、 精选优质文档-倾情为你奉上专心-专注-专业 printf(不能打开.); return; printf(nt 编号. 名称 重量 价格 总价n);printf(Oldt -);for(i=0;fread(&medi,sizeof(struct medicine),1,fp)!=0;i+)PR;n=i;for(i=0;in;i+) for(j=i+1;j0) temp=medi; medi=medj; medj=temp; fclose(fp);printf(nNowt -);fp=fopen(information,w); for(i=0;i0&tn;t+); if(fp=fopen(inf
21、ormation,w)=NULL) printf(can not open file.); return; for(i=0;it%8s %-8s%8d%10.2f%10.2f,s.num,s.name,s.kgs,s.price,s.gross);for(i=t;in;i+) fwrite(&medi,sizeof(struct medicine),1,fp); PR; fclose(fp);printf(n);printf(nnput anykey to continue.);精选优质文档-倾情为你奉上专心-专注-专业/*主函数*/void main()int a,b=0;do init(); printf(nttt 请选择:); scanf(%d,&a); switch(a) case 1:s_input();break;case 2:s_list();break;case 3:s_find();break;case 4:s_sort(),b=1;break;case 5:if(b=1)s_insert();else printf(Please choose 4 first!);break; /*必须先执行排序文件*/case 0:exit(0); while (a!=0);精选优质文档-倾情为你奉上专心-专注-专业 完成日期:2009 年 7 月 7 日