医院药品管理系统文档格式.docx
《医院药品管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《医院药品管理系统文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
入
列
表
查
询
分
类
插
图1功能模块图
(1)输入模块
输入新药品的相关信息;
(2)列表模块
对已有相关药品信息进行一一列表
(3)查询模块
对相关药品信息进行分类查询
(4)分类模块
对药品新旧情况进行相关分类;
(5)插入模块
插入新药品以及相关信息
3.2系统设计方案
设计一个总菜单,1输入,2列表,3查询,4分类,5插入。
基本功能的实现都将体现在这几个菜单选项中。
建立结构体如下:
structmedicine
{charnum[8];
编号
charname[8];
名称
intkgs;
重量
floatprice;
价格
floatgross;
总价
}med[N],s,temp;
/*界面*/
voidinit()
{printf("
\n\n"
);
printf("
\t\t\t*******************************************\n\n"
);
\t\t\t医院药品管理系统\n\n"
\t\t\t********************************************\n"
\t\t\t1-->
输入********************************\n"
\t\t\t2-->
列表********************************\n"
\t\t\t3-->
查询********************************\n"
\t\t\t4-->
分类********************************\n"
\t\t\t5-->
插入********************************\n"
\t\t\t0-->
退出********************************\n"
\t\t\t--Madeby通信工程何哲名--\n"
}
{
4.详细设计
4.1输入模块
输入模块是输入相关药品信息,包括药品的种类,编号,名称,重量,单价,总价。
输入
图2输入流程图
4.2列表模块
对药品库存相关信息进行一一列表。
方便管理员进行查看。
图3列表流程图
4.3查询模块
输入要查询的药品编号,查询药品的名称,重量等相关信息。
图3查询流程图
4.4分类模块
该模块把药品信息进行分类。
分为旧药品和新药品。
使药品信息更加直观。
图4分类流程图
4.5插入模块
图5插入流程图
5.调试与测试
5.1调试
调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来说也是最艰巨的任务。
调试的任务是及时改正测试过程中发现的软件错误。
具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。
然后仔细研究推断代码以确定问题的原因,并设法改正。
调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。
本系统调试过程中遇到问题、原因和解决方法如下面介绍。
(1)运行完程序一次有错误提醒
原因是上次运行程序后没有关闭操作界面当点击编译时会有一个错误提示,解决方法:
将上一次运行时的操作界面关闭。
(2)程序不能运行
程序运行到添加新会员时自动提示错误需要调试,其原因是指针指向的位置出现错误导致程序传参错乱无法运行,解决办法:
使程序进入调试状态在传参出现错误的位置一句一句查找传递的参数是否是你所希望的,如若不是就加以修正。
5.2测试
软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。
或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。
过度测试则会浪费许多宝贵的资源。
到测试后期,即使找到了错误,然而付出了过高的代价。
当医院药品管理系统已经具备对药品进行输入,查询,分类,插入等功能后进行相关的输入进行查询。
6.结论
课程设计顺利完成,任务书中所提出的要求全部实现。
不过这个程序还有些不够完善,例如不能对信息数据进行保存。
结束语
为期一个礼拜的计算机综合训练终于顺利完成,在这期间真正的学到了一些经验,能够熟练的掌握一些C语言的编程思路,能够熟练的运用学到的函数,学会了在曾经编写过的函数上加以修改实现了我期望实现的功能,知道学习编程必须亲手将每一个字符敲入电脑中这样才能真正的学到课本或一些理论中学不到的知识,这才达到了实践的目的,当程序编写完成而且能够正常运行心里一种说不出的自豪感,虽然这对于一名程序员来说可能什么也不是,但这是我编程的开始,如果希望在编程这方面能够有所发展我所要走过的路还很长,还需要不断的学习!
参考文献
[1]谭浩强.C语言程序设计(第三版).北京:
清华大学出版社,2005
附录1-用户手册
点击运行,首先出现的是菜单界面,选择菜单选项进行操作,可进行如图8所示
图8菜单界面
输入界面如下。
图9输入界面
列表界面如下
附录2-源程序
#include<
stdio.h>
stdlib.h>
#include<
string.h>
#defineN50
#definePRprintf("
\n\t%8s%-8s%8d%10.2f%10.2f"
med[i].num,med[i].name,med[i].kgs,med[i].price,med[i].gross)
/*输入功能*/
voids_input()
{inti,n;
FILE*fp;
有多少种药品:
"
scanf("
%d"
&
n);
for(i=0;
i<
n;
i++)
{
\n输入药品信息%d:
\n"
i+1);
编号.:
%s"
med[i].num);
名称:
med[i].name);
重量:
med[i].kgs);
价格:
%f"
med[i].price);
med[i].gross=med[i].kgs*med[i].price;
fp=fopen("
information"
"
w"
if(fwrite(&
med[i],sizeof(structmedicine),1,fp)!
=1)printf("
filewriteerror\n"
fclose(fp);
\n\n按任意键继续..."
}
/*显示功能*/
voids_list()
{inti;
FILE*fp;
if((fp=fopen("
r"
))==NULL)
不能打开."
return;
printf("
\n\n\n"
\n\t编号.名称重量价格总价\n"
\t-------------------------------------------------"
for(i=0;
fread(&
=0;
i++)PR;
fclose(fp);
\n\n\n按任意键继续..."
/*查找功能*/
voids_find()
charfind_name[8];
i++);
输入名称:
scanf("
find_name);
\n药品日期是:
n=i;
=n;
i++)
if(strcmp(find_name,med[i].name)==0)PR;
/*排序功能*/
voids_sort()
{FILE*fp;
inti,j,n;
Old\t-------------------------------------------------"
for(j=i+1;
j<
j++)
if(strcmp(med[i].name,med[j].name)>
0)
{temp=med[i];
med[i]=med[j];
med[j]=temp;
\nNow\t-------------------------------------------------"
fp=fopen("
{fwrite(&
med[i],sizeof(structmedicine),1,fp);
PR;
\n\nputanykeytocontinue..."
/*插入功能*/
voids_insert()
inti,t,n;
\n输入新药品信息:
s.num);
s.name);
s.kgs);
s.price);
s.gross=s.price*s.kgs;
不能打开目录."
for(t=0;
strcmp(med[t].name,s.name)>
0&
&
t<
t++);
))==NULL)
cannotopenfile."
t;
fwrite(&
s,sizeof(structmedicine),1,fp);
\n->
\t%8s%-8s%8d%10.2f%10.2f"
s.num,s.name,s.kgs,s.price,s.gross);
for(i=t;
/*主函数*/
voidmain()
{inta,b=0;
do
init();
\n\t\t\t请选择:
a);
switch(a)
{case1:
s_input();
break;
case2:
s_list();
case3:
s_find();
case4:
{s_sort(),b=1;
};
case5:
if(b==1)s_insert();
else{printf("
Pleasechoose4first!
}break;
/*必须先执行排序文件*/
case0:
exit(0);
}while(a!
=0);
完成日期:
2009年7月7日