版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《程序设计综合课程设计》报告指导教师:2011年1月8日药品仓库管理系统124...........................................................4程序设计综合课程设计第一章前言1.1药品仓库管理系统的开发背景在市场经济的激烈竞争中,医药企业必须把业务经营同市场需求联系起来,为此,医药企业纷纷建立起了自己的数据库系统,由计算机管理代替手工操作。药品管理是一般医药企业生产管理环节中重要的一环,需要对药品基本信息管理、药品调配信息等尽心完整的监控。药品入库首先需要登记药品的基本信息,包括药品的种类、名称、型号、单位、单价等;然后登记药品入库信息,包括药品基本信息、入库地点、入库人、经办人、数量等;出库药品需要登记出库信息,包括药品基本信息、出库地点、出库人、经办人、数量等;根据药品的入库、出库过程的综合,得到各种药品的余额信息,方便进行后续工作。设计一个管理信息系统,主要是我们通过在实际中了解了一些医药企业的管理形式,并结合当今世界管理信息系统的蓬勃发展,了解现阶段对管理信息系弘强调的是综合管理功能,多维服务模式,人机协调的、智能化的、集成化的计算机辅助管理功能等。因此设计这样一个管理信息系统,来解决一些小型医药企业在物理管理上的缺点,能够实现药品信息的系统化、规范化和自动化。进行验收入库,填写入库单,进行入库登记。医药企业各个部门根据所需要的药品总额和部门生产活动需要提出药品需求申请。计划员根据整个医药品使用完毕需要及时归还入库,填写入库单。根据需要进行统计分析,产生相应报表。药品仓库管理的特点是信息自理量比较大。所管理的药品种类繁多,而且由于入库单、出库单、需求单等单据发生量特别大,关联信息多,查询和统计的方工各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规1程序设计综合课程设计格不统一等问题。在本系统的设计过程中,为了克服这些困难,满足计算机管理的需要。1.2选题的目的、意义此次毕业设计选题范围是相当广泛且实用的,含盖了目前大部分计算机软件类开发的课题,给我们很大的自由发展的空间。可以每个学生挑选出最合适的课题,更适合同学们的兴趣和价值取向。选择此课题对我来说有着不同的意义,应该来说此课题更接近于实际开发的全过程。同时对编程、数据库调用、结构化查询语言STRUCTUREDQUERYLANGUAGE等方面是一个比较综合的考验。让我在此过程中得到很好的锻炼。第二章药品仓库管理系统的内容2.1功能要求:用c/c++设计一系统,实现以下功能:功能要求:1.2.3.4.5.用户及权限管理;药品入库、出库;药品架位管理;药品信息查询、修改;药品过期提示,打印出过期药品架位信息供工作人员将这些药品下架;6.过期药品下架后将这些药品信息导入到过期药品表或删除。2.2课程设计的目的随着现代科学技术的迅猛发展,计算机技术已经渗透到个个领域,成为各行业必不可少的工具,随着超市的规模不断扩大,超市每天进出库的产品数量急剧增加,有关销售的各种信息量也成倍增长。还要时刻更新产品的销售信息,不断添加,删除商品信息,所以就需要合理的数据库结构来保存数据信息,需要有效的程序结构支持各种数据操作的执行。本次课程设计使得课堂教学与实验实践之间关系更为密切,让同学们认识到必须重视实践环节,多读程序,多编写程序,多上机实践。进一步培养C++-2程序设计综合课程设计语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任C++语言进行程序设计的能力,考察学生的观察能力和总结能力,使学生将所学知识转化为分析和设计简单实际问题的能力。具体目的如下:1.巩固和加深对C++语言课程基本知识的理解和掌握。2.掌握C++语言编程和程序调试的基本技能。3.提高C++语言编程技巧,培养分析问题和解决问题的能力。4.利用C++语言进行基本的软件设计。5.掌握书写程序设计说明文档的能力。2.3课程设计的要求C++语言知识进行简单的编程,制作出一个简单的程序。既可以用传统的结构化程序设计的方法,也可以用先进的面向对象程序设计方法。具体要求如下:1)用C语言实现系统;4)提供程序测试方案。2.4课程设计的目标A.使药品销售的信息能及时得到统计、查询B.方便操作员的操作,达到简单、易用的效果C.提高操作员的工作效率D.提高操作的正确率E.提高系统的可靠性及安全性2.5主要有三大重要模块:入库模块:出库模块:查询模块:3程序设计综合课程设计第三章系统详细设计说明3-2-1药品仓库管理的主函数流程图(1)4程序设计综合课程设计5程序设计综合课程设计3-2-4出库入库连接流程图(1)6程序设计综合课程设计3-2-6药品出库流程图(1)7程序设计综合课程设计3-2-7药品出库流程图(2)dlnode*output(dlnode*L)//出库的函数if(ifempty==0)//检测是否有货物输入{printf("没有货物输入系统\n");getchar();getchar();return(head);}while(1)printf("=============\n");printf("1.按编号出库\n");printf("2.按名称出库\n");printf("0.返回上一层\n");程序设计综合课程设计printf("==============\n");printf("选择0--2:");scanf("%d",&y);switch(y){case1:outnum(L);break;//调用按编号出库函数case2:outname(L);break;//调用按名称出库函数case0:return(L);default:printf("entererror!Pleaseinput0--2!");getchar();getchar();printf("\n\n");}}}dlnode*outnum(dlnode*L)//按编号出库函数{intnum;dlnode*head=L;printf("请输入出库货物的编号:");scanf("%d",&num);while((L=L->next)!=head){//如果找到就删除节点if(L->number==num){L->prior->next=L->next;L->next->prior=L->prior;ifempty--;//ifempty减1printf("编号为%d的货物成功出库",num);getchar();getchar();returnhead;}}printf("没有此编号的货物,请查看是否还有货物。\n\n");getchar();getchar();return(head);}dlnode*outname(dlnode*L)//按名称出库函数{charna[32];dlnode*head=L;printf("请输入出库货物的名称:");scanf("%s",&na);while((L=L->next)!=head)9程序设计综合课程设计{//如果找到就删除节点if(strcmp(L->name,na)==0){L->prior->next=L->next;L->next->prior=L->prior;ifempty--;//ifempty减1printf("名称为%s的货物成功出库",na);getchar();getchar();return(head);}}printf("没有此名称的货物,请查看是否还有货物。\n\n");getchar();getchar();return(head);}5.药品入库输入新进药品的一切信息,新记录将写入,新的零售价格将写入药品库存信息表相应的药品记录中去,方便药品库存的统计。需要强调的是当要求填写的文本框为空时,系统会有提示信息要求用户输入必须的信息,否则新药品不能入存。步骤为:输入药品资料,开始入库,结束入库,提交入库资料。药品入库代码为:dlnode*input(dlnode*L)//定义入库函数{dlnode*in,*head;head=in=(dlnode*)malloc(sizeof(dlnode));//分配空间head=L;printf("\n请输入货物数据:\n");printf("编号:");scanf("%d",&in->number);printf("名称:");scanf("%s",&in->name);printf("数量:");scanf("%d",&in->counter);if(L->next==NULL)//如果只有头节点,{//把刚输入的in节点L->next=in;L->prior=in;in->next=L;in->prior=L;//跟在头节点后面//////ifempty++;//ifempty加1}10程序设计综合课程设计else{//如果当前L的下一个节点不是头节点while((L=L->next)!=head){//如果输入的数大于L->number,则插到L的前面if(L->number<in->number){in->next=L;in->prior=L->prior;L->prior->next=in;L->prior=in;ifempty++;//ifempty加1return(head);}}//输入的编号比其它编号都小,则插到最后个节点,并首尾相连head->prior->next=in;in->prior=head->prior;head->prior=in;in->next=head;ifempty++;//ifempty加1}returnhead;}6.药品查询系统查询所需药品,在售药过程中销售人员对药品数据库进行查询。两种方法,第一种:按编号查询;第二种:按名称查询;7.登录模块主要是完成用户的登录,根据用户的级别系统赋予不同的权限。要求用户从列表框中选取出用户名,然后输入密码。通过验证进入系统。8.药品信息模块这个模块是构成本系统的基本元素,所有药品的各种详细信息都必须在本模块中完成录入,在这里要求用户输入组成一条药品信息的基本信息。并且可以随时对这些信息进行增、删、改。9药品库存管理模块有了基本的药品信息以后,就可以对所拥有的产品资料添加进货信息了,用户必须输入一些必要的数据,如进货的价格和数量,模块完成对库存药品的盘点以及药品过期销毁功能。药库采购药品实现入库登记,对药库中11程序设计综合课程设计在药库中过期的药品应及时销毁,这样才能保证客户的健康,对客户负责。10.用户管理模块用户分别两种,一种是A级用户,是系统管理员级;另一种是B级用户,是药房销售人员级。这两种级别的用户的区别就是所拥有的权限不同。在用户管理模块中,能够对所有用户密码、创建用户的工作以及系统资料的删除,只有A级用户,即系统管理员级用户。11药品仓库管理模块药品仓库管理系入库处理出保存文件处理查询处理更改个人信息库处理按编号查询3-3-8药品仓库管理模块3.3测试计划先通过对模块的测试,模块通过后,在进行整体调试,进而达到程序的顺12程序设计综合课程设计利完成;3.5本系统的测试结果程序设计综合课程设计程序设计综合课程设计5将药品信息保存在文件中:程序设计综合课程设计4.2软件测试结果如同系统测试结果;第五章结束语5.1程序设计的心得和体会在这次课程设计中,让我学到了很多在课堂和书本上学不到的知识,我在这次课程设计中最大的收获有以下几个方面:一、领略到了数据库设计在计算机领域的重要性。数据库作为一个永久存储形式在应用中发挥着重要的作用。在数据库设计中,我明白了数据库设计中不是范式越高越好的。我们要根据我们的应用来决定,一切应该以需求为首要选择。二、对变成环境、一些控件的使用和界面的美化方面更加熟悉。因为《药品仓库管理系统》中涉及到很多控件的使用,只有很好的使用这些控件才可以给出一个很好的界面呈现在用户的面前。这样更有利于数据库和用户之间的交流。这里就要涉及一些平时不太常见的控件的使用问题。为最主要的是MSDN上面、还有借了一些这方面的书籍。在界面的美化方面,我了解了一些WINDOWS自定义界面的知识,现在的软件其实好多面向用户的时候用户首先看的就是一个软件的界面是否有好,是否漂亮。其实,界面美化是很重要的。因为美,是人一直追求的。主要知识有:自定义窗口形状,控件的自定义等等。这些都是通过面向对象编程的一些特性实现的,又得是通过多态,又得是通过类的继承。三、利用软件工程学开发系统。虽然这个《药品仓库管理系统》是一个小的系统,但只有从这些小的项目中就利用软件工程学的知识,这样可以开发在系统设计和实现中我们可以总结很多经验和教训。我们一般按照瀑布开发模型、增量模型、螺旋模型来做我们的项目。附录一:参考文献[1]、谭浩强,C++语言程序设计,清华大学出版社[2]、谭浩强,C16程序设计综合课程设计[3]《visualc++工程应用与项目实践》机械工业出版社张雨,阮伟良等2005·1[4]《管理信息系统完整项目实例剖析》人民邮电出版社,明日科技2005·7附录二:程序代码;#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>#definemax32intifempty=0;//标志,判断链表是无否为空typedefstructdnode{/*定义双向链表结构体*/intnumber;charname[max];intcounter;intdata;/*药品编号*//*药品名称*//*药品数量*//*药品生产日期*//*药品单价*/intprice;intedata;//药品有效日期intpname;//药品生产商structdnode*prior,*next;/*定义两指针,分别指向其前驱和后继*/}dlnode;dlnode*create(dlnode*L);dlnode*input(dlnode*L);dlnode*output(dlnode*L);dlnode*outnum(dlnode*L);17程序设计综合课程设计dlnode*outname(dlnode*L);dlnode*current(dlnode*L);voidsearch(dlnode*L);voidprint(dlnode*L);voidsearchnum(dlnode*L);voidsearchname(dlnode*L);voiddisplay(dlnode*L);voidmain(){intx;dlnode*L;if(!(L=(dlnode*)malloc(sizeof(dlnode))))//分配空间{printf("\n");exit(1);}create(L);///调用函数,创建头节点while(1){////////////////////////主菜单///////////////////////////printf("printf("printf("printf("printf("printf("printf("printf("scanf("%d",&x);switch(x)============================\n");1.2.3.4.0.药品出库和入库\n");查找药品表\n");显示仓库药品表\n");输出到文件\n");退出\n");=============================\n");选择0--4:");18程序设计综合课程设计{case2:search(L);break;//调用查找函数case1:current(L);break;//调用入库出库函数case3:display(L);break;//调用显示输出函数case4:print(L);break;//调用打印函数case0:printf("\nbye!seeyou!\n");getchar();getchar();exit(0);//退出程序default:printf("\nEntererreor!pleaseinput0--4!");getchar();getchar();}}}dlnode*create(dlnode*L)//创建链表头节点{printf("药品仓库管理系统\n");printf("按enter开始");getchar();ifempty=0;///////初始化头节点的值////////L->next=NULL;L->prior=NULL;L->number=L->counter=L->data=L->price=L->edata=L->pname=0;//**strcpy(L->name,"");returnL;}voidsearch(dlnode*L)///查找的主要菜单{inty;19程序设计综合课程设计if(ifempty==0){printf("没有输入药品!\n");getchar();getchar();return;}else{while(1){printf("=====================\n");printf("1.按编号查询\n");printf("2.按药品名称查询\n");printf("0.返回上一层\n");printf("====================\n");printf("选择0--2:");scanf("%d",&y);switch(y){case1:searchnum(L);break;//调用按编号查找的函数case2:searchname(L);break;//调用按名称查找的函数case0:return;//返回default:printf("entererror!Pleaseinput0--2!\n\n");getchar();getchar();printf("\n\n");}}}}voidsearchnum(dlnode*L)///按编号查找的函数{20程序设计综合课程设计intnum,flag=0;//flag为是否找到的标志dlnode*head=L;if(ifempty==0){printf("没有药品被输入\n");getchar();getchar();return;}printf("输入你要查找的药品编号:\n");scanf("%d",&num);while((L=L->next)!=head){if(L->number==num){flag=1;//flag为1时表示找到printf("找到指定编号药品\n");printf("\n编号:%d\n",L->number);printf("名称:%s\n",L->name);printf("数量:%d\n",L->counter);printf("生产日期:%d\n",L->data);printf("药品单价:%d\n",L->price);printf("药品有效日期:%d\n",L->edata);printf("药品生产商:%d\n",L->pname);}}if(flag==0)//flag为0时表示没有找到printf("没有找到指定编号药品,请查看是否还有药品。\n");getchar();getchar();}voidsearchname(dlnode*L)//按名称查找的函数21程序设计综合课程设计{intflag=0;//flag为是否找到的标志charna[32];dlnode*head=L;if(ifempty==0){printf("没有药品被输入\n");getchar();getchar();return;}printf("输入你要查找的药品名称\n");scanf("%s",&na);while((L=L->next)!=head){if(strcmp(L->name,na)==0){flag=1;//flag为1时表示找到printf("找到指定名称药品\n");printf("\n编号:%d\n",L->number);printf("名称:%s\n",L->name);printf("数量:%d\n",L->counter);printf("生产日期:%d\n",L->data);//******************4printf("药品单价:%d\n",L->price);printf("药品有效日期:%d\n",L->edata);printf("药品生产商:%d\n",L->pname);}}if(flag==0)//flag为0时表示没有找到22程序设计综合课程设计printf("没有找到指定编号药品,请查看是否还有药品。\n\n");getchar();getchar();}dlnode*current(dlnode*L)//药品出库入库函数{inty;while(1){printf("========================\n");printf("printf("printf("1.药品入库\n");2.药品出库\n");0.返回上一层\n");printf("========================\n");printf("选择0--2:");scanf("%d",&y);switch(y){case1:input(L);break;//调用入库函数case2:output(L);break;//调用出库函数case0:return(L);//返回上一层default:printf("entererror!Pleaseinput0--2!");getchar();getchar();printf("\n\n");}}}23程序设计综合课程设计dlnode*input(dlnode*L)//定义入库函数{dlnode*in,*head;head=in=(dlnode*)malloc(sizeof(dlnode));//分配空间head=L;printf("\n请输入药品数据:\n");printf("编号:");scanf("%d",&in->number);printf("名称:");scanf("%s",&in->name);printf("数量:");scanf("%d",&in->counter);printf("生产日期:");scanf("%d",&in->data);//******************5printf("药品单价:");scanf("%d",&in->price);printf("药品有效日期:");scanf("%d",&in->edata);printf("药品生产商:");scanf("%d",&in->pname);if(L->next==NULL)//如果只有头节点,{//把刚输入的in节点L->next=in;L->prior=in;in->next=L;in->prior=L;//跟在头节点后面//////ifempty++;//ifempty加1}else{//如果当前L的下一个节点不是头节点while((L=L->next)!=head){//如果输入的数大于L->number,则插到L的前面if(L->number<in->number)24程序设计综合课程设计{in->next=L;in->prior=L->prior;L->prior->next=in;L->prior=in;ifempty++;//ifempty加1return(head);}}//输入的编号比其它编号都小,则插到最后个节点,并首尾相连head->prior->next=in;in->prior=head->prior;head->prior=in;in->next=head;ifempty++;//ifempty加1}returnhead;}dlnode*output(dlnode*L)//出库的函数{inty;dlnode*head=L;if(ifempty==0)//检测是否有药品输入{printf("没有药品输入系统\n");getchar();getchar();return(head);25程序设计综合课程设计}while(1){printf("=============\n");printf("1.按编号出库\n");printf("2.按名称出库\n");printf("0.返回上一层\n");printf("==============\n");printf("选择0--2:");scanf("%d",&y);switch(y){case1:outnum(L);break;//调用按编号出库函数case2:outname(L);break;//调用按名称出库函数case0:return(L);default:printf("entererror!Pleaseinput0--2!");getchar();getchar();printf("\n\n");}}}dlnode*outnum(dlnode*L)//按编号出库函数{intnum;dlnode*head=L;printf("请输入出库药品的编号:");scanf("%d",&num);while((L=L->next)!=head){//如果找到就删除节点26程序设计综合课程设计if(L->number==num){L->prior->next=L->next;L->next->prior=L->prior;ifempty--;//ifempty减1printf("编号为%d的药品成功出库",num);getchar();getchar();returnhead;}}printf("没有此编号的药品,请查看是否还有药品。\n\n");getchar();getchar();return(head);}dlnode*outname(dlnode*L)//按名称出库函数{charna[32];dlnode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深入解析技术服务合同范本模板
- 保安服务提供商合同
- 延期还款协议
- 物资招标文件写作技巧
- 水利建设合同协议
- 货品购买合同格式
- 专业合同协议合规管理方法服务
- 联营共营合同范例
- 心理辅导与咨询服务
- 节能改造合同能源
- 提高髋关节置换患者VTE防控措施落实PDCA
- 广西2023年广西北部湾银行校园招聘考试参考题库含答案详解
- 大学生心理健康教育读本PPT(第2版)高职完整全套教学课件
- 加油站安全检查表分析(SCL)及评价记录
- 丰田车系卡罗拉(双擎)轿车用户使用手册【含书签】
- 幼儿园突发安全事件事故处置措施
- 现代药物制剂与新药研发智慧树知到答案章节测试2023年苏州大学
- 肺结核的学习课件
- 心肺复苏术最新版
- 2023-2024学年贵州省贵阳市小学数学六年级上册期末自测提分卷
- GB/T 9115.2-2000凹凸面对焊钢制管法兰
评论
0/150
提交评论