数据库课程设计.docx

上传人:b****6 文档编号:7094981 上传时间:2023-01-17 格式:DOCX 页数:29 大小:232.18KB
下载 相关 举报
数据库课程设计.docx_第1页
第1页 / 共29页
数据库课程设计.docx_第2页
第2页 / 共29页
数据库课程设计.docx_第3页
第3页 / 共29页
数据库课程设计.docx_第4页
第4页 / 共29页
数据库课程设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

数据库课程设计.docx

《数据库课程设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计.docx(29页珍藏版)》请在冰豆网上搜索。

数据库课程设计.docx

数据库课程设计

附件1:

 

《数据库系统原理》

课程设计

题目医院药品进销存系统

班级网络1003

学号311009040303

姓名李赛

指导老师彭维平

2012年12月15日

目录

一、概述7

1.1课程设计的目的7

1.2课程设计的内容7

1.3课程设计的要求7

二、需求分析7

2.1系统需求7

2.2数据字典7

三、系统总体设计7

3.1系统总体设计思路7

3.2概念模型设计7

3.2.1局部E-R图7

3.2.2全局E-R图7

3.3逻辑结构设计7

3.4数据库建立实施7

3.4.1建立数据库7

3.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)具有数据备份和数据恢复功能。

系统主要为登陆,登陆后可以浏览,查询,添加,删除药品信息外还可以对销售记录进行浏览,删除,添加,修改。

本系统是根据中小企业的实际需求而开发的,完全能够实现药品入库、销售管理,通过本系统可以达到以下目标:

❑系统运行稳定,安全可靠。

❑界面设计美观,人机交互界面友好。

❑信息查询灵活、方便、快捷、准确,数据存储安全可靠。

❑强大的报表预览、打印功能。

❑信息安全保密。

开发及运行环境

硬件要求

CPU:

300MHz以上的处理器

内存:

128MB,推荐256MB

硬盘:

150MB以上剩余空间

显示像素:

最低800*600,最佳效果1024*768

软件要求

操作系统:

Windows2000/NT/XP/Vista。

数据库:

SQLServer2000。

2.2数据字典

基本表

表2.1药品分类代码表

字段中文名

字段名

类型

长度

类别

leibie

char

10

药品代码

yaodaima

char

10

药品名称

yaoming

char

30

表2.2供货商信息表:

字段中文名

字段名

类型

长度

供货商代码

shangdaima

char

10

供货商名称

shangming

char

40

供货商地址

address

char

50

供货商电话

phone

char

20

表2.3药品库存表:

字段中文名

字段名

类型

长度

药品名称

yaoming

char

30

药品代码

yaodaima

char

10

库存数量

kucunliang

float

8

药品信息

yaoxinxi

varchar

50

生产日期

shengchanriqi

datetime

8

有效期至

youxiaoqizhi

datetime

8

表2.4采购信息表:

字段中文名

字段名

类型

长度

药品代码

yaodaima

char

10

供货商代码

shangdaima

char

10

采购数量

caigouliang

float

8

采购总价

czong

float

8

表2.5过期药品处理表

字段中文名

字段名

类型

长度

药品代码

yaodaima

char

10

处理数量

chuliliang

float

8

处理日期

chuliriqi

datetime

8

处理方法

chulifa

varchar

50

生产日期

shenchanriqi

datetime

8

表2.6用户密码表

字段中文名

字段名

类型

长度

用户

yonghu

char

30

密码

mima

char

10

三、系统总体设计

3.1系统总体设计思路

根据需求分析,设计系统框架。

进销存系统由7部分组成。

设计各部分具体功能如下:

1)药品信息模块。

包括药品代码,名称,分类等。

2)供货商信息模块。

包括供货商代码,供货商名,地址,联系电话。

3)库存模块。

包括药品名称,药品代码,库存量,处理日期。

4)采购信息模块。

包括药品代码,采购量,采购日期,采购总价,主治症状。

5)过期药品处理模块。

包括药品代码,处理量,过期时间。

6)用户密码模块。

包括用户名,密码。

3.2概念模型设计

3.2.1局部E-R图

供应商实体图的属性包括供应商编号,供应商名称,供应商品数量,供应商地址,联系方式。

如图3—1所示

图3—1供应商实体图

管理员实体图的属性包括管理员编号,管理员姓名,性别,地址,联系方式,

部门。

如图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);

mimasetset;

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)

{

menuDlg;

Dlg.DoModal();

}

else

MessageBox("密码错误!

","提示",MB_ICONSTOP);

}

else

MessageBox("用户名不正确!

","提示",MB_ICONSTOP);

4.2主菜单模块设计

图3.2功能选择窗口

子菜单选择按钮代码:

shuruDlg;

Dlg.DoModal();

其余按钮代码相同

4.3新药入库模块设计

图3.3供货商信息查询窗口

新药注册按钮的代码:

UpdateData(TRUE);

if(m_id.IsEmpty())

MessageBox("药品代码不能为空!

","提示",MB_ICONSTOP);

shurusetset;

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);

CStringstrTmp;

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);

shurusetset;

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);

CStringstrTmp;

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();

chukusetset;

shurusetset1;

intflag=1;

if(m_id.IsEmpty()||m_name.IsEmpty()||m_riqi.IsEmpty()||m_shuliang.IsEmpty())

flag=0;

for(inti=0;i

{

charc;

c=m_id.GetAt(i);

if(c<'0'||c>'9')

flag=0;

}

if(flag==0)

{

MessageBox("有选项未填写或填写有误!

","提示",MB_ICONSTOP);

return;

}

else

{

set1.m_strFilter.Format("id='%s'",m_id);

set1.Open();

if(set1.IsEOF())

{

MessageBox("仓库内没有此药品!

","提示",MB_ICONSTOP);

return;

}

else

{

set1.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();

chukusetset;

intn=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);

else

MessageBox("删除成功","警告",MB_OK);

set.Close();

4.5库存药品查询模块设计

图3.5库存药品查询窗口

查询按钮的代码同上。

UpdateData();

jiansuo1set;

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;

}

else

{

intn=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);

CStringstrTmp;

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();

}

}

}

elseif(m_choose==1)

{

if(m_cha.IsEmpty())

{

MessageBox("请输入查询内容!

","提示",MB_ICONSTOP);

return;

}

else

{

intn=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);

CStringstrTmp;

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);

}

}

else

MessageBox("请选择查找类型!

","提示",MB_ICONSTOP);

4.6采购商信息管理模块设计

3.6采购商信息管理模块界面

修改按钮代码:

UpdateData(true);

shangsetset;

intn=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();

shangsetset;

intn=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);

else

MessageBox("删除成功!

","警告",MB_OK);

set.Close();

 

4.7药品采购信息查询模块设计

3.7药品采购信息查询界面

查询按钮代码:

m_list.DeleteAllItems();

UpdateData(TRUE);

if(m_chaid.IsEmpty())

{

MessageBox("搜索信息不能为空!

","提示",MB_ICONSTOP);

return;

}

caigousetset;

intn=0;

set.m_strFilter.Format("id='%s'",m_chaid);

set.Open();

if(set.IsEOF())

{

MessageBox("此药品不存在!

","提示",MB_ICONSTOP);

return;

}

else

{

m_list.InsertItem(0,set.m_id);//重新添加一行,参数n:

插入项的索引值,后面为插入的字符串

m_list.SetItemText(0,1,set.m_name);//n:

行索引,1:

列索

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1