肇庆学院医药管理系统.doc_第1页
肇庆学院医药管理系统.doc_第2页
肇庆学院医药管理系统.doc_第3页
肇庆学院医药管理系统.doc_第4页
肇庆学院医药管理系统.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

医药管理系统专业技能训练数据库应用系统开发报告课程设计题目:医药管理系统班级: 姓名: 学号: 任课教师: 开始时间: 结束时间: 目录1.系统概述31.1.项目背景31.2.课设报告编写目的31.3.软件定义31.4.开发环境32.系统需求分析42.1.信息要求42.2.处理要求52.3.安全性与完整性要求52.4.系统总体设计63.数据库设计63.1.概念结构设计63.1.1.分E-R图63.1.2.全部的E-R图83.2.逻辑结构设计93.2.1细化表结构94.主要模块的设计以及代码104.1.登录模块104.2.销售人员模块124.3.采购人员模块194.4.管理员模块255.总结296.参考文献301. 系统概述1.1. 项目背景设计本系统,模拟医药超市的部分管理功能。药品由专门的采购人员从医药经销商处购进医药超市,并将药品信息记录入库,顾客从超市购买药品需填写相关个人信息,每次售药需登记经办人(医药超市员工,即销售人员)的信息,以及所售药品的信息。1.2. 课设报告编写目的现代社会的信息自动化和网络式信息已被人们广泛应用,同时为了增强自身的编程能力,提高自己对数据库的了解,为了对药店员工管理方便,为了对药品进货管理的方便,为了对药品结账时的方便,医药管理系统可以提供这些功能。1.3. 软件定义从医药管理系统的需求分析到数据库的设计,我进行了需求分析,逻辑设计,物理设计,然后选用SQL Server 2008建立学生选课数据库,再用Visual Studio 2010设计了WinForm程序,再到最后的实现与维护,包括最初的设计理念,数据库具体觉得建立以及数据的输入、管理及更新。这个系统符合正常逻辑,操作简单,管理方便。1.4. 开发环境操作系统:win7 页面设计软件:Visual Studio 2010 开发语言:C#数据库软件:SQL Server 20082. 系统需求分析2.1. 信息要求设计的本系统,模拟了医药超市的部分管理功能。药品由专门的采购人员从医药经销商处购进超市,并将药品信息及医药经销商信息记录入库。顾客首次从超市购买药品需填写相关个人信息。每次售药需登记经手的超市员工即销售人员的信息,以及所售药品的信息。简化的系统数据库(SCDB)中主要包含以下三个数据表(设计时可根据实际业务需要适当追加其它的数据表),各表及其相应字段分别描述如下:(1)用户信息表(Users) 用户编号 Uno :int用户名 Usersname:nvarchar(50)用户密码Password:nvarchar(50)用户性别 Psex:nvarchar(3)用户职务Post:nvarchar(15)用户电话 Phone :nvarchar(15)用户地址 Uno :nvarchar(50)(2)顾客信息表(Client)顾客编号 Cno :int顾客姓名 Cname :nvarchar(20)顾客性别 Csex :nvarchar(5)顾客年龄 Cage :nvarchar(5)顾客电话 Cphone :nvarchar(20)顾客症状Czhengzhuang :nvarchar(50)备注 Cremark :nvarchar(50)药品编号 Cmedino :nvarchar(15)经办人编号 Coperno :nvarchar(15)(3)药品信息表(Medicine)药品编号 Mno :int药品数量 Mnum :int药品名字 Manme :nvarchar(50)服用方法Mmode :nvarchar(5)药品价格 Mprice :numeric(18.2)药品功效 Mefficacy :nvarchar(50)药品备注 Mremark :nvarchar(50)2.2. 处理要求(1)销售人员界面1)我的销售:购买药品,记录顾客信息表2)顾客信息查询:查询所有顾客信息或者查询需要的信息,修改顾客信息,删除顾客信息3) 药品信息查询:查询所有药品信息或者查询需要的信息4)数据打印:打印需要的信息5) 我的个人信息:显示自己的个人信息6) 修改密码:修改个人密码7)注销登录(2)采购人界面1)药品信息录入:录入需要进货的药品信息2)药品信息查询:查询所有药品信息或者查询需要的信息,修改药品信息,删除药品信息3)数据打印:打印需要的东西4)我的个人信息:显示自己的个人信息5)修改密码:修改个人密码6)注销登录(3)管理员界面1)员工管理:添加员工的信息2)员工信息浏览:查询所有员工信息或者查询需要的信息,修改员工信息,删除员工信息3)修改密码:修改个人密码4)注销登录注:通过系统提供的相关界面与User、Client、Medicine等数据表中的内容进行浏览。2.3. 安全性与完整性要求本系统由于是供学习交流用的,所以在数据库的安全性方面做的不是特别严密,对于药品的信息可以公开查询,而系统中的账户的信息则不对外公开。一般的账户时没办法查看其他账户的信息(除管理员外)。这些都是根据不同账户设定的,安全性可以跟据情况作恰当的改动。至于完整性也是一样,可以根据实际情况修改数据库的完整性约束条件,以此来满足用户的要求。2.4. 系统总体设计在医药管理系统的系统功能分析中,可以将系统划分成3个模块,如图:医药管理系统登录管理管理员界面销售人员界面采购人员界面 3. 数据库设计3.1. 概念结构设计根据需求分析,设计出“学生选课系统”的E-R图,该E-R图包括四个实体:学生信息实体、教师信息实体、管理员信息实体、课程信息实体、院系信息实体,还有选课信息E-R图等等。3.1.1. 分E-R图 各个实体的分E-R图分别如下图所示:销售、管理、采购人员登录实体图登录密码登录账号管理、销售、采购人员顾客信息实体图顾客编号购买的药品经办人备注症状联系电话年龄顾客信息顾客姓名性别销售、采购人员信息职务编号联系电话性别姓名家庭住址销售、采购人员信息实体图药品名称服用方法药品价格药品数量药品功效药品编号备注药品信息药品信息实体图3.1.2. 全部的E-R图医药管理系统药品信息顾客信息删除修改查询录入删除修改查询录入采购人员销售人员管理管理管理员包含3.2. 逻辑结构设计3.2.1细化表结构为了方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:一、 数据库的设计(1) 销售、采购人员的登录信息表(Users)中文名称英文名称类型主键备注用户编号Unoint是是唯一的用户姓名UsernameNvarchar(50)否密码PasswordNvarchar(50)否性别PsexNvarchar(3)否0是女,1是男职务PostNvarchar(15)否联系电话PhoneNvarchar(15)否家庭住址AddressNvarchar(50)否(2) 药品信息表(Medicine)中文名称英文名称类型主键备注药品编号Mnoint是是唯一的药品数量Mnumint否药品名称 MnameNvarchar(50)否服用方法 MmodeNvarchar(5)否0是内服,1是外服药品价格 MpriceNumeric(18.2)否药品功效 MefficacyNvarchar(50)否药品备注 MremarkNvarchar(50)否(3) 顾客信息表(Client)中文名称英文名称类型主键备注顾客编号Cno int是是唯一的顾客姓名 Cname Nvarchar(20)否 顾客性别 CsexNvarchar(5)否 顾客年龄 CageNvarchar(5)否 顾客电话 CphoneNvarchar(20)否 顾客的症状 CzhengzhuangNvarchar(50)否 备注 CremarkNvarchar(50)否所购买药品的编号CmedinoNvarchar(15)否经办人编号CopernoNvarchar(15)否4. 主要模块的设计以及代码4.1. 登录模块登录界面登录的部分代码private void btnOk_Click(object sender, EventArgs e) string Apost = cmbselect.SelectedItem.ToString(); BLL.UserInfo bll = new BLL.UserInfo(); switch (bll.CheckLogin(txtno.Text, txtpwd.Text, Apost) case Comm.LoginState.NoName: MessageBox.Show(账户不存在,请重新输入!, 温馨提示); txtno.Clear(); txtpwd.Clear(); break; case Comm.LoginState.PostBuyerOK: /得到采购员的账号 Comm.UserComm.Uno = txtno.Text.Trim(); /得到采购员的密码 Comm.UserComm.Userpwd = txtpwd.Text.Trim(); Buyer by = new Buyer(); by.Show(); Comm.Comm.PFL = this; this.Hide(); txtno.Clear(); txtpwd.Clear(); cmbselect.SelectedIndex = 0; break; case Comm.LoginState.PostSaleOK: /得到销售员的账号 Comm.UserComm.Uno = txtno.Text.Trim(); /得到销售员的密码 Comm.UserComm.Userpwd = txtpwd.Text.Trim(); Saleman sm = new Saleman(); sm.Show(); Comm.Comm.PFL = this; this.Hide(); txtno.Clear(); txtpwd.Clear(); cmbselect.SelectedIndex = 0; break; case Comm.LoginState.PostAdminOK: /得到管理员的账号 Comm.UserComm.Uno = txtno.Text.Trim(); /得到管理员的密码 Comm.UserComm.Userpwd = txtpwd.Text.Trim(); Fadmin fa = new Fadmin(); fa.Show(); Comm.Comm.PFL = this; this.Hide(); txtno.Clear(); txtpwd.Clear(); cmbselect.SelectedIndex = 0; break; case Comm.LoginState.PostNOOK: MessageBox.Show(登录身份错误,请重新选择!, 温馨提示); cmbselect.SelectedIndex = 0; break; case Comm.LoginState.PwdErr: MessageBox.Show(密码错误,请重新输入!, 温馨提示); txtpwd.Clear(); break; 4.2. 销售人员模块销售人员界面“我的销售“功能的部分代码private void btnquery1_Click(object sender, EventArgs e) string cshow = txtquery1.Text.Trim(); BLL.Addpatient bll = new BLL.Addpatient(); List list = bll.ShowCustomer1(cshow); if (list != null) dgvshow1.DataSource = list; else MessageBox.Show(查询结果为空,请重新输入!, 温馨提示); private void btnmediquery_Click(object sender, EventArgs e) if (txtmediquery.Text.Trim() = ) MessageBox.Show(查询的药品编号不能为空,请输入!, 温馨提示); else string mno = txtmediquery.Text.Trim(); BLL.Addmedi bll = new BLL.Addmedi(); List list = bll.GetMedicine3(mno); if (list != null) dgvmedishow.DataSource = list; else MessageBox.Show(查询结果为空,请重新输入!, 温馨提示); 当焦点离开销售数量时,计算药品总价 private void txtsellnum_Leave(object sender, EventArgs e) /获取药品数量 if (txtsellnum.Text.Trim() = null) Comm.Medicine.Cusbuynum = 0;double allprice; allprice = Convert.ToDouble(Comm.Medicine.Cusbuynum) * Convert.ToDouble(Comm.Medicine.Cusbuyprice); lbjiezhang.Text = allprice.ToString(); else Comm.Medicine.Cusbuynum = txtsellnum.Text.Trim(); double allprice; allprice = Convert.ToDouble(Comm.Medicine.Cusbuynum) * Convert.ToDouble(Comm.Medicine.Cusbuyprice); lbjiezhang.Text = allprice.ToString(); 查询顾客信息界面查询顾客信息部分代码 private void btnquery1_Click(object sender, EventArgs e) string cshow = txtquery1.Text.Trim(); BLL.Addpatient bll = new BLL.Addpatient(); List list = bll.ShowCustomer1(cshow); if (list != null) dgvshow1.DataSource = list; else MessageBox.Show(查询结果为空,请重新输入!, 温馨提示); private void btnmodify1_Click(object sender, EventArgs e) if (Comm.UserComm.Cusno != null) Cusmodify cm = new Cusmodify(); cm.Show(); else MessageBox.Show(您尚未选择任何一行信息,请选择, 温馨提示, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; private void dgvshow1_CellClick(object sender, DataGridViewCellEventArgs e) DataGridViewRow dgvr = dgvshow1.SelectedRows0; DataGridViewCell dgvc = dgvr.Cells0; Comm.UserComm.Cusno = Convert.ToString(dgvc.Value); 药品信息查询功能药品信息查询部分代码 private void btnmediquery_Click(object sender, EventArgs e) if (txtmediquery.Text.Trim() = ) MessageBox.Show(查询的药品编号不能为空,请输入!, 温馨提示); else string mno = txtmediquery.Text.Trim(); BLL.Addmedi bll = new BLL.Addmedi(); List list = bll.GetMedicine3(mno); if (list != null) dgvmedishow.DataSource = list; else MessageBox.Show(查询结果为空,请重新输入!, 温馨提示); private void dgvshow2_CellClick(object sender, DataGridViewCellEventArgs e) DataGridViewRow dgvr = dgvshow2.SelectedRows0; DataGridViewCell dgvc = dgvr.Cells0; Comm.UserComm.Medino = Convert.ToString(dgvc.Value); private void btnquery2_Click_1(object sender, EventArgs e) string bshow = txtquery2.Text; BLL.Addmedi bll = new BLL.Addmedi(); List list = bll.GetMedicine1(bshow); if (list != null) dgvshow2.DataSource = list; else MessageBox.Show(查询结果为空,请重新输入!, 温馨提示); 个人信息界面个人信息部分代码 private void Saleman_Load(object sender, EventArgs e) lbtime.Text = DateTime.Now.ToString(); cmbsex.SelectedIndex = 0; BLL.PersonMG bll = new BLL.PersonMG(); Model.PersonMG model = bll.GetPersonMG(Comm.UserComm.Uno); txtsno.Text = model.Uno; txtsname.Text = model.UserName; txtssex.Text = model.Sex; txtspost.Text = model.Post; txtsphone.Text = model.Phone; txtsaddress.Text = model.Address;修改密码功能部分代码private void btnOK_Click(object sender, EventArgs e) if (txtOldPwd.Text.Trim()!=Comm.UserComm.Userpwd) MessageBox.Show(旧密码输入错误,请重新输入!, 温馨提示); /清除txt所有内容 txtOldPwd.Clear(); txtNewpwd.Clear(); txtNewpwd1.Clear(); else if (txtNewpwd.Text != & txtNewpwd1.Text != ) if (txtNewpwd.Text.Trim() = txtNewpwd1.Text.Trim() if (txtOldPwd.Text.Trim()!=txtNewpwd.Text.Trim() BLL.UserInfo bll = new BLL.UserInfo(); /把实参传给bll,dal层的_name和_pwd bll.Updatepwd(Comm.UserComm.Uno , txtNewpwd.Text.Trim(); MessageBox.Show(修改成功!, 温馨提示); this.Close(); else MessageBox.Show(旧密码不可以与新密码相同!,温馨提示); else MessageBox.Show(新密码不一致,请重新输入!, 温馨提示); txtNewpwd1.Clear(); else MessageBox.Show(新密码不能为空!, 温馨提示); 注销功能部分代码 private void btnzhuxiao_Click_1(object sender, EventArgs e) _selectstate = false; Comm.Comm.PFL.Show(); Close(); 4.3. 采购人员模块采购人员药品录入功能private void BbtnOK_Click(object sender, EventArgs e) BLL.Addmedi bll = new BLL.Addmedi(); if (txtmno.Text = ) MessageBox.Show(药品编号不能为空,请输入!, 温馨提示); else if (txtmnum.Text.Trim() = ) MessageBox.Show(药品数量不能为空,请输入!, 温馨提示); else if (txtmname.Text.Trim() = ) MessageBox.Show(药品名称不能为空,请输入!, 温馨提示); else if (CBmode.SelectedIndex = 0) MessageBox.Show(服用方法不能为空,请选择!, 温馨提示); else if (txtmprice.Text.Trim() = ) MessageBox.Show(药品价格不能为空,请输入!, 温馨提示); else if (txtmefficacy.Text.Trim() = ) MessageBox.Show(药品功效不能为空,请输入!, 温馨提示); else if (bll.Addm(txtmno.Text.Trim(), txtmnum.Text.Trim(), txtmname.Text.Trim(), CBmode.Text, txtmprice.Text.Trim(), txtmefficacy.Text.Trim(), txtmremark.Text.Trim() MessageBox.Show(录入成功!, 温馨提示); txtmno.Clear(); txtmnum.Clear(); txtmname.Clear(); CBmode.SelectedIndex = 0; txtmprice.Clear(); txtmefficacy.Clear(); txtmremark.Clear(); else MessageBox.Show(录入失败,请重新填写内容!, 温馨提示); txtmno.Clear(); txtmnum.Clear(); txtmname.Clear(); CBmode.SelectedIndex = 0; txtmprice.Clear(); txtmefficacy.Clear(); txtmremark.Clear(); 药品查询功能药品查询部分代码 private void btnquery_Click_1(object sender, EventArgs e) string bshow = txtquery.Text; BLL.Addmedi bll = new BLL.Addmedi(); List list = bll.GetMedicine1(bshow); if (list != null) dgvshow.DataSource = list; else MessageBox.Show(查询结果为空,请重新输入!, 温馨提示); private void dgvshow_CellClick(object sender, DataGridViewCellEventArgs e) DataGridViewRow dgvr = dgvshow.SelectedRows0; DataGridViewCell dgvc = dgvr.Cells0; Comm.UserComm.Medino = Convert.ToString(dgvc.Value); private void btnmodify_Click(object sender, EventArgs e) if (Comm.UserComm.Medino != null) Medimodify mm = new Medimodify(); mm.Show(); else MessageBox.Show(您尚未选择任何一行信息,请选择, 温馨提示, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; 采购人员个人信息界面采购人员个人信息部分代码 private void Buyer_Load(object sender, EventArgs e) lbtime.Text = DateTime.Now.ToString(); CBmode.SelectedIndex = 0; BLL.PersonMG bll = new BLL.PersonMG(); Model.PersonMG model = bll.GetPersonMG(Comm.UserComm.Uno); txtbno.Text = model.Uno; txtbname.Text = model.UserName; txtbsex.Text = model.Sex; txtbpost.Text = model.Post; txtbphone.Text = model.Phone; txtbaddress.Text = model.Address; 药品信息修改界面药品信息修改部分代码 private void Medimodify_Load(object sender, EventArgs e) Model.Medicine model = bll.Medimodify(Comm.UserComm.Medino); txtmno.Text = model.Mno; txtmnum.Text = model.Mnum; txtmname.Text = model.Mname

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论