




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附件1:数据库系统原理课 程 设 计题 目 医院药品进销存系统 班 级 网络 1003 学 号 311009040303 姓 名 李 赛 指导老师 彭 维 平 2012年12月15日目 录一、概述71.1 课程设计的目的71.2 课程设计的内容71.3 课程设计的要求7二、需求分析72.1 系统需求72.2 数据字典7三、系统总体设计73.1系统总体设计思路73.2 概念模型设计73.2.1 局部E-R图73.2.2 全局E-R图73.3 逻辑结构设计73.4 数据库建立实施73.4.1 建立数据库73.4.2 建立关系表8四、系统实现8五、系统评价8六、课程设计心得、总结8参考文献:8一、概述1.1 课程设计的目的学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。1.2 课程设计的内容(1)主要的数据表药品分类代码表,药品库存表,供货商信息表,采购信息表等等。(2)主要功能模块1) 新药品的入库。2) 过期药品的出库登记、处理记录。3) 药品库存检索。4) 供货商信息检索。5) 药品采购记录管理。6) 药品用药说明信息管理。7) 输出相应的数据报表。8) 具有数据备份和数据恢复功能。1.3 课程设计的要求具体项目内容去医院进行调研,药品编码也应参考国家统一编码方法。二、需求分析2.1 系统需求企业经营如逆水行舟不进则退。每一个努力发展的企业都明白,先进管理的重要作用,引进先进管理系统使企业经营变得规范、合理。进销存管理系统无论是在功能设计还是业务流程上都尽可能做到满足经营管理运作流程的需求,并且操作方便、功能强大,即使操作者对计算机知识一窍不通也能一用就会。它强化库存管理,规范业务流程,提高资金管理的透明度,加快商品资金周转,是企业经营管理中数据分析中必不可少的管理工具。根据市场的需求,要求系统具有以下功能:1)新药品的入库。2)过期药品的出库登记、处理记录。3)药品库存检索。4)供货商信息检索。5)药品采购记录管理。6)药品用药说明信息管理。7)输出相应的数据报表。8)具有数据备份和数据恢复功能。系统主要为登陆,登陆后可以浏览,查询,添加,删除药品信息外还可以对销售记录进行浏览,删除,添加,修改。本系统是根据中小企业的实际需求而开发的,完全能够实现药品入库、销售管理,通过本系统可以达到以下目标:q 系统运行稳定,安全可靠。q 界面设计美观,人机交互界面友好。q 信息查询灵活、方便、快捷、准确,数据存储安全可靠。q 强大的报表预览、打印功能。q 信息安全保密。开发及运行环境硬件要求CPU:300MHz以上的处理器内存:128MB,推荐256MB硬盘:150MB以上剩余空间显示像素:最低800*600,最佳效果1024*768软件要求操作系统:Windows2000/NT/XP/Vista。数据库:SQL Server2000。2.2 数据字典基本表 表2.1 药品分类代码表字段中文名字段名类型长度类别leibiechar10药品代码yaodaimachar10药品名称yaomingchar30表2.2 供货商信息表: 字段中文名字段名类型长度供货商代码shangdaimachar10供货商名称shangmingchar40供货商地址addresschar50供货商电话phonechar20表2.3 药品库存表:字段中文名字段名类型长度药品名称yaomingchar30药品代码yaodaimachar10库存数量kucunliangfloat8药品信息yaoxinxivarchar50生产日期shengchanriqidatetime8有效期至youxiaoqizhidatetime8表2.4 采购信息表:字段中文名字段名类型长度药品代码yaodaimachar10供货商代码shangdaimachar10采购数量caigouliangfloat8采购总价czongfloat8表2.5 过期药品处理表字段中文名字段名类型长度药品代码yaodaimachar10处理数量chuliliangfloat8处理日期chuliriqidatetime8处理方法chulifavarchar50生产日期shenchanriqidatetime8表2.6 用户密码表字段中文名字段名类型长度用户yonghuchar30密码mimachar10三、系统总体设计3.1系统总体设计思路根据需求分析,设计系统框架。进销存系统由部分组成。设计各部分具体功能如下:1)药品信息模块。包括药品代码,名称,分类等。2)供货商信息模块。包括供货商代码,供货商名,地址,联系电话。3)库存模块。包括药品名称,药品代码,库存量,处理日期。4)采购信息模块。包括药品代码,采购量,采购日期,采购总价,主治症状。5)过期药品处理模块。包括药品代码,处理量,过期时间。6)用户密码模块。包括用户名,密码。3.2 概念模型设计3.2.1 局部E-R图供应商实体图的属性包括供应商编号,供应商名称,供应商品数量,供应商地址,联系方式。如图31所示供应商联系方式供应商编号供应商名称供应商品数量供应商地址图31供应商实体图管理员实体图的属性包括管理员编号,管理员姓名,性别,地址,联系方式,部门。如图3-2所示管理员联系方式部门管理员编号管理员姓名性别地址 图3-2管理员实体图客户实体图的属性包括编号,姓名,性别,年龄,联系方式,地址。如图3-3所示3.2.2 全局E-R图3.3 逻辑结构设计3.4 数据库建立实施 3.4.1 建立数据库 3.4.2 建立关系表四、系统实现4.1 登陆框设计图3.1登陆界面登录按钮的代码:UpdateData(true);mimaset set;set.m_strFilter.Format(id=%s,m_id);set.m_mima.TrimRight();set.Open();if(m_id.IsEmpty()MessageBox( 用户名不能为空!, 提示,MB_ICONSTOP);return;if(m_mima.IsEmpty()MessageBox( 密码不能为空!, 提示,MB_ICONSTOP);return;if(!set.IsEOF()set.m_id.TrimRight();set.m_mima.TrimRight();if(set.m_mima=m_mima)menu Dlg;Dlg.DoModal();elseMessageBox( 密码错误!, 提示,MB_ICONSTOP);elseMessageBox( 用户名不正确!, 提示,MB_ICONSTOP);4.2 主菜单模块设计图3.2功能选择窗口子菜单选择按钮代码:shuru Dlg;Dlg.DoModal();其余按钮代码相同4.3新药入库模块设计图3.3供货商信息查询窗口新药注册按钮的代码:UpdateData(TRUE);if(m_id.IsEmpty() MessageBox( 药品代码不能为空!, 提示,MB_ICONSTOP);shuruset set;set.m_strFilter.Format(id=%s,m_id);set.Open();if(set.IsEOF()set.AddNew();set.m_id=m_id;set.m_name=m_name;set.m_zongjia=m_zongjia;set.m_shuliang=m_shuliang;set.m_zhengzhuang=m_zhengzhuang;set.m_chulishijian=m_time;set.Update();m_list.InsertItem(0,set.m_id); m_list.SetItemText(0,1,set.m_name);m_list.SetItemText(0,2,set.m_zongjia); m_list.SetItemText(0,3,set.m_shuliang);m_list.SetItemText(0,4,set.m_zhengzhuang);CString strTmp;strTmp.Format(%d-%d-%d,set.m_chulishijian.GetYear(),set.m_chulishijian.GetMonth(),set.m_chulishijian.GetDay();m_list.SetItemText(0,5,strTmp);else MessageBox(此药品已存在!, 提示,MB_ICONSTOP);set.Close();新药录入复选框的代码:UpdateData(true);GetDlgItem(IDC_EDIT2)-EnableWindow(m_bEnabled);GetDlgItem(IDC_EDIT4)-EnableWindow(m_bEnabled);GetDlgItem(IDC_EDIT5)-EnableWindow(m_bEnabled);新药入库按钮代码:UpdateData(TRUE);if(m_id.IsEmpty() MessageBox( 药品代码不能为空!, 提示,MB_ICONSTOP);shuruset set;set.m_strFilter.Format(id=%s,m_id);set.Open();if(!set.IsEOF()set.Edit();set.m_shuliang=m_shuliang;set.Update();m_list.InsertItem(0,set.m_id); m_list.SetItemText(0,1,set.m_name);m_list.SetItemText(0,2,set.m_zongjia); m_list.SetItemText(0,3,set.m_shuliang);m_list.SetItemText(0,4,set.m_zhengzhuang);CString strTmp;strTmp.Format(%d-%d-%d,set.m_chulishijian.GetYear(),set.m_chulishijian.GetMonth(),set.m_chulishijian.GetDay();m_list.SetItemText(0,5,strTmp);else MessageBox(仓库内没有该药品,请先进行新药注册!, 提示,MB_ICONSTOP);取消按钮的代码:OnCancel();4.4过期药品出库模块设计 3.3过期药品出库页面录入按钮的代码:UpdateData(true);m_list.DeleteAllItems();chukuset set;shuruset set1;int flag=1;if(m_id.IsEmpty()|m_name.IsEmpty()|m_riqi.IsEmpty()|m_shuliang.IsEmpty()flag=0;for(int i=0;im_id.GetLength();i+) char c; c=m_id.GetAt(i); if(c9) flag=0; if (flag=0)MessageBox(有选项未填写或填写有误!,提示,MB_ICONSTOP);return;elseset1.m_strFilter.Format(id=%s,m_id);set1.Open();if(set1.IsEOF()MessageBox(仓库内没有此药品!,提示,MB_ICONSTOP);return;elseset1.Delete();set1.Requery();set1.Close();set.Open();set.AddNew();set.m_id=m_id;set.m_name=m_name;set.m_shuliang=m_shuliang;set.m_riqi=m_riqi;set.Update();set.MoveLast();m_list.InsertItem(0,set.m_id);m_list.SetItemText(0,1,set.m_name);m_list.SetItemText(0,2,set.m_shuliang);m_list.SetItemText(0,3,set.m_riqi);set.Close();UpdateData(false);MessageBox(添加成功!,提示,MB_OK);删除出库按钮:UpdateData(true);m_list.DeleteAllItems();chukuset set;int n=1;set.Open();set.MoveFirst();while(!set.IsEOF() set.m_id.TrimRight();if(set.m_id=m_id)set.Delete();set.Requery();n=0;set.MoveNext(); if(n=1) MessageBox(没有此药品!,警告,MB_ICONSTOP);elseMessageBox(删除成功,警告,MB_OK);set.Close();4.5 库存药品查询模块设计图3.5库存药品查询窗口查询按钮的代码同上。UpdateData();jiansuo1 set;m_list.DeleteAllItems();if(m_choose=0)if(m_cha.IsEmpty()MessageBox(请输入查询内容!,提示,MB_ICONSTOP);return;else set.m_strFilter.Format(id=%s,m_cha);set.Open();if(set.IsEOF()MessageBox(没有该药品!,提示,MB_ICONSTOP);return;elseint n=m_list.GetItemCount();/获取总行数m_list.InsertItem(n, set.m_id); /重新添加一行, 参数n:插入项的索引值,后面为插入的字符串 m_list.SetItemText(n,1,set.m_name);/n:行索引,1:列索引,最后为:文本字符串 m_list.SetItemText(n,2,set.m_zongjia); m_list.SetItemText(n,3,set.m_shuliang); m_list.SetItemText(n,4,set.m_zhengzhuang);CString strTmp; strTmp.Format(%d-%d-%d,set.m_chulishijian.GetYear(),set.m_chulishijian.GetMonth(),set.m_chulishijian.GetDay(); m_list.SetItemText(n,5,strTmp);set.Close();else if(m_choose=1)if(m_cha.IsEmpty()MessageBox(请输入查询内容!,提示,MB_ICONSTOP);return;else int n=0;set.Open();set.MoveFirst();while(!set.IsEOF()set.m_name.TrimRight( );if(set.m_name=m_cha)m_list.InsertItem(n, set.m_id); /重新添加一行, 参数n:插入项的索引值,后面为插入的字符串 m_list.SetItemText(n,1,set.m_name);/n:行索引,1:列索引,最后为:文本字符串 m_list.SetItemText(n,2,set.m_zongjia); m_list.SetItemText(n,3,set.m_shuliang); m_list.SetItemText(n,4,set.m_zhengzhuang);CString strTmp; strTmp.Format(%d-%d-%d,set.m_chulishijian.GetYear(),set.m_chulishijian.GetMonth(),set.m_chulishijian.GetDay(); m_list.SetItemText(n,5,strTmp);n+;set.MoveNext();set.Close();if(n=0)MessageBox(没有该药品!,提示,MB_ICONSTOP);elseMessageBox(请选择查找类型!,提示,MB_ICONSTOP);4.6采购商信息管理模块设计 3.6采购商信息管理模块界面修改按钮代码:UpdateData(true);shangset set;int n=0;set.Open();set.MoveFirst();while(!set.IsEOF()set.m_id.TrimRight();if(set.m_id=m_chaid)MessageBox(已找到采购商信息,确定修改吗?,提示,MB_OKCANCEL);set.Edit();if(m_chechname.GetState()=1)set.m_name=m_name;if(m_chechadd.GetState()=1)set.m_address=m_add;if(m_chechphone.GetState()=1)set.m_phone=m_phone;set.Update();MessageBox(修改成功!,提示,MB_OK);n=1;set.MoveNext();set.Close();if(n=0)MessageBox(未找到采购商信息,请确认信息正确性!,提示,MB_ICONSTOP);删除按钮代码:UpdateData(true);m_list.DeleteAllItems();shangset set;int n=1;set.Open();set.MoveFirst();while(!set.IsEOF() set.m_id.TrimRight();if(set.m_id=m_chaid)set.Delete();set.Requery();n=0;set.MoveNext(); if(n=1) MessageBox(没有此供货商!,警告,MB_ICONSTOP);elseMessageBox(删除成功!,警告,MB_OK); set.Close();4.7 药品采购信息查询模块设计 3.7药品采购信息查询界面查询按钮代码:m_list.DeleteAllItems();UpdateData(TRUE);if(m_chaid.IsEmpty()MessageBox(搜索信息不能为空!,提示,MB_ICONSTOP);return;caigouset set;int n=0;set.m_strFilter.Format(id=%s,m_chaid);set.Open();if(set.IsEOF()MessageBox(此药品不存在!,提示,MB_ICONSTOP);return;elsem_list.InsertItem(0,set.m_id); /重新添加一行, 参数n:插入项的索引值,后面为插入的字符串m_list.SetItemText(0,1,set.m_name);/n:行索引,1:列索引,最后为:文本字符串m_list.SetItemText(0,2,set.m_fenlei);set.Close();UpdateData(false);录入代码查询:UpdateData(TRUE);caigouset set;if(m_id.IsEmpty()|m_name.IsEmpty()MessageBox(信息不能为空!,提示,MB_ICONSTOP);return;set.Open();set.AddNew();set.m_id=m_id;set.m_name=m_name;if(m_a=0)set.m_fenlei=处方药;else if(m_a=1)set.m_fenlei=处方药;else MessageBox(请选择药品类型!,提示,MB_ICONSTOP);return;set.Update();set.MoveLast();m_list.InsertItem(0,set.m_id);m_list.SetItemText(0,1,set.m_name);m_list.SetItemText(0,2,set.m_fenlei);set.Close();UpdateData(false);MessageBox(添加成功!,提示,MB_OK);删除代码查询:UpdateData(TRUE);caigouset set;if(m_id.IsEmpty()|m_name.IsEmpty()MessageBox(信息不能为空!,提示,MB_ICONSTOP);return;set.Open();set.AddNew();set.m_id=m_id;set.m_name=m_name;if(m_a=0)set.m_fenlei=处方药;else if(m_a=1)set.m_fenlei=处方药;else MessageBox(请选择药品类型!,提示,MB_ICONSTOP);return;set.Update();set.MoveLast();m_list.InsertItem(0,set.m_id);m_list.SetItemText(0,1,set.m_name);m_list.SetItemText(0,2,set.m_fenlei);set.Close();UpdateData(false);MessageBox(添加成功!,提示,MB_OK);BOOL chuku:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_list.InsertColumn(0,药品代码,LVCFMT_LEFT,100); m_list.InsertColumn(1,药品名称,LVCFMT_LEFT,100);m_list.InsertColumn(2,处理数量,LVCFMT_LEFT,90); m_list.InsertColumn(3,处理日期,LVCFMT_LEFT,120);chukuset set;int n=0;set.Open();while(!set.IsEOF()m_list.InsertItem(n,set.m_id); /重新添加一行, 参数n:插入项的索引值,后面为插入的字符串m_list.SetItemText(n,1,set.m_name);/n:行索引,1:列索引,最后为:文本字符串m_list.SetItemText(n,2,set.m_shuliang);m_list.SetItemText(n,3,set.m_riqi);set.MoveNext();n+;set.Close();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE打印按钮代码:CWnd *cWnd;cWnd=GetDlgItem(IDOK); if(!KillTimer(0)SetTimer(0,100,NULL);cWnd-SetWindowText(手动);elsecWnd-SetWindowText(自动);五、系统评价进入如图3.1所示的登录界面后,根据数据库设计的用户密码表,如果密码输入不正确,或是用户名错误,都会弹出“用户名或密码有误”的窗口。进入如图3.2所示的选择界面,有5个选项,我主要设计的是药品入库,药品出库和仓库管理这几个按钮。单击进货商管理按钮,跳出如图4.1所示的窗口。这个窗口能够管理供货商信息。 图4.1 信息管理窗口 此窗口可以完成添加、修改,删除,查询的功能。录入的功能,按照要求在各个编辑框输入信息,单击录入则录入信息,若输入的药品代码已存在,或信息填写不准确,就会跳出“此供货商已存在”则会弹出如图5.1提示对话框 5.1 提示对话框添好信息后,若单击录入按钮,如果信息填写正确就会添加到列表控件里,并且数据库中会对应的添加对话框。添加成功后会弹出如图5.2对话框 5.2提示对话框修改的功能, 5.3界面填写供货商代码,此信息会对应出现在下边的编辑框中,如果要修改,选定修改复选框,选择修改的内容,修改后单击修改按钮就会显示修改成功对话框,单击删除就会跳出删除成功的对话框。查询可以按照供货商代码或供货商名称,只需单击与之对应的小圆圈就可以选择。单击查询后,在列表控件里会显示出对应的信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《共同债务分担与个人信用保护的离婚协议书》
- 离婚协议中车辆归属及权益划分明确约定合同
- 离婚协议书子女监护权与财产分割详细约定
- 劳动合同与聘用合同在人力资源管理中的实际操作比较
- 商业空间装修安全协议范本(施工环境防护)
- 旅游度假村租赁合同附加旅游服务协议
- 国际教育培训项目合同履行与师资力量保障
- 河北省张家口市2020-2021学年高一上学期名校联考(期中考试)考试历史试题
- 中考备考方法课件
- 芦花歌曲教学课件
- 农民公寓买卖合同协议书
- 燃气检修工模拟试题(附答案)
- 2025居间服务合同范本(合同版本)
- 中老年唱歌教学课件下载
- 立体车库应急预案范文
- 严重腹部创伤院内救治专家共识(2024)解读
- 2025年国企计算机测试题及答案
- 2025年北师大新版数学三年级上册第六单元《乘除法的应用(二)》教案
- 2025年秋期人教版3年级上册数学核心素养教案(第7单元)(教学反思有内容+二次备课版)
- 《繁星》课件 小学语文新部编版四年级上册
- 瓶颈材料管理办法
评论
0/150
提交评论