Java药店管理系统设计报告剖析.pdf

上传人:白大夫 文档编号:5424253 上传时间:2020-05-06 格式:PDF 页数:19 大小:626.76KB
返回 下载 相关 举报
Java药店管理系统设计报告剖析.pdf_第1页
第1页 / 共19页
Java药店管理系统设计报告剖析.pdf_第2页
第2页 / 共19页
Java药店管理系统设计报告剖析.pdf_第3页
第3页 / 共19页
Java药店管理系统设计报告剖析.pdf_第4页
第4页 / 共19页
Java药店管理系统设计报告剖析.pdf_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Java药店管理系统设计报告剖析.pdf》由会员分享,可在线阅读,更多相关《Java药店管理系统设计报告剖析.pdf(19页珍藏版)》请在三一文库上搜索。

1、洛 阳 理 工 学 院 课 程 设 计 报 告 课程名称面向对象程序设计课程设计 设计题目药店管理系统 专业计算机科学与技术 班级 学号 姓名 完成日期2017.1.6 课 程 设 计 任 务 书 设计题目:药店管理系统 设计内容与要求: 1.问题描述 设计实现药店管理系统。能够实现药品库存管理、销售信息管理和查询功能。 2.基本要求 库存管理:包括药品入库、出库管理,药品库存报警,药品有效期管理(过期 报警)。 销售管理:根据实际销售自动生成销售单据。如果是会员,则药品价格按95 折计算。 查询及统计功能:对指定时间段内的出/ 入库进行查询 / 统计,对药品有效期进 行查询 / 统计,对药品

2、过期进行查询/ 统计,对指定时间段内的药品销售进行查询/ 统计以及利润查询 / 统计等。能帮顾客查询药品信息,能按品名、生产厂家、药品 类别、存货量进行查询。 指导教师: 2016年 12 月 20 日 课 程 设 计 评 语 成绩: 指导教师: 年月日 洛 阳 理 工 学 院课 程 设 计 报 告 I 目录 第 1 章需求分析 . 1 1.1 功能需求 1 1.2 数据需求 1 第 2 章数据库设计 2 2.1 数据库逻辑级设计. 2 2.2 关系模式 . 2 2.3 基本表 3 第 3 章概要设计 6 3.1 系统结构与模块功能. 6 第 4 章详细设计与实现 7 4.1 模块流程图 7

3、4.2 界面效果图及代码. 8 第 5 章总结 . 15 洛 阳 理 工 学 院课 程 设 计 报 告 1 第 1章需求分析 1.1 功能需求 药店管理系统能够实现药品库存、销售信息管理和查询功能,根据实 际销售自动生成销售单据。能帮顾客查询药品信息,能按品名、生产厂家、 药品类别、存货量进行查询。 库存管理:包括药品入库、出库管理,药品库存报警,药品有效期管理 (过期报警)。 销售管理:根据实际销售自动生成销售单据。如果是会员,则药品价格 按 95 折计算。 查询及统计功能:对指定时间段内的出/ 入库进行查询/ 统计,对药品有 效期进行查询/ 统计,对药品过期进行查询/ 统计,对指定时间段内

4、的药品销 售进行查询 / 统计以及利润查询/ 统计等。能帮顾客查询药品信息,能按品名、 生产厂家、药品类别、存货量进行查询。 1.2 数据需求 经过对学校附近的药店的调研以及在网上查找的资料,药店药品管理系 统的处理对象主要包括:药品信息、 供应商信息、 顾客信息、 药品销售信息、 药品存储信息等几个方面。根据市场需求需要的数据组成如下需要的数据有 操作员、会员、药品、订单、厂家、进货单这些实体的组成数据有,操作人 员需要包括:账号、密码、姓名、联系电话、邮箱、地址;会员表:账号、 姓名、年龄、联系电话、邮箱、地址;药品信息中含有:药品ID、药品名、 类别、生产日期、有效期、进价、售价、生产厂

5、家;订单详情中含有的有: 订单编号、药品名、购买数量、售价、购买人员、销售日期;厂家信息包括: 厂家编号、厂家名、电话、地址;进药表、药品ID 、操作员、进药日期、进 药数量 洛 阳 理 工 学 院课 程 设 计 报 告 2 第 2 章数据库设计 2.1数据库逻辑级设计 E-R 如下图所示 2.2 关系模式 管理员(账号、密码、姓名、联系电话、邮箱、地址) 会员(账号、姓名、年龄、联系电话、邮箱、地址) 药品(药品 ID、药品名称、类别、生产厂家编号) 仓库(批次 ID、药品 ID、药品名、类别、生产日期、有效期、进价、售价、 生产厂家) 订单详情(订单编号、药品名、购买数量、售价、购买人员、

6、销售日期、操 存储 N 仓库 N 1 年龄 姓名 账号 电话 邮箱 编号 品名 数量 售价 买家 日期 账号 密码 姓名 电话 邮箱 地址 药品 操作员 订单 会员 提交 参照 处理 厂家生产 1 1 厂名 类别 ID 电话 地址 名称 编号 编号 数量 生产期有效期 进价 售价 批次 ID 1 N N N 1 N N 洛 阳 理 工 学 院课 程 设 计 报 告 3 作员姓名) 厂家(厂家编号、厂家名、电话、地址) 进药(药品 ID、操作员姓名、进药日期、进药数量) 其中下划线部分为主键 2.3基本表 根据需求构建表的基本组成。 (1)管理员表如图2-1 名称字段名称数据类型长度主键允许空值

7、 账号Mno varchar 10 是否 密码Mpassw varchar 20 否否 姓名Mname varchar 20 否否 电话Mphone char 11 否是 邮箱Memail varchar 20 否是 地址Maddress varchar 50 否是 图 2-1 (2)会员表如图2-2 名称字段名称数据类型长度主键允许空值 会员号Cno varchar 10 是否 姓名Cname varchar 20 否否 年龄Cage int 否是 电话Cphone char 11 否是 邮箱Cemail varchar 20 否是 地址Caddress varchar 50 否是 图 2-

8、2 (3)药品表如图2-3 洛 阳 理 工 学 院课 程 设 计 报 告 4 名称字段名称数据类型长度主键允许空值 编号Dno varchar 10 是否 品名Dname varchar 20 否否 类别Dclass varchar 20 否否 生产商Sname varchar 20 否否 图 2-3 (4)供应商表如图2-4 名称字段名称数据类型长度主键允许空值 编号Sno varchar 10 是否 供应商名Sname varchar 20 否否 电话Sphone char 11 否是 邮箱Semail varchar 20 否是 地址Saddress varchar 50 否是 图 2-

9、4 (5)库存表如图2-5 名称字段名称数据类型长度主键允许空值 批次Lno varchar 10 是否 药品 ID Dno varchar 10 否否 药品名Dname varchar 20 否否 药品类别Dclass varchar 20 否否 数量Pquantity int 否否 入库时间Idate date 否否 过期时间out_date date 否否 洛 阳 理 工 学 院课 程 设 计 报 告 5 进价Dbidd float 否否 售价Dprice float 否否 供应商Sname varchar 20 否否 图 2-5 (6)销售表如图2-6 名称字段名称数据类型长度主键允许

10、空值 订单Slno varchar 10 是否 批次Lno varchar 10 否否 会员 ID Cno varchar 10 否是 售价Ddprice float 否否 数量Mquantity int 否否 总价Amoney float 否否 日期Idate date 否否 图 2-6 (7)缺货单表如图2-7 名称字段名称数据类型长度主键允许空值 缺货单号Lno varchar 10 是否 药品 ID Dno varchar 10 否否 数量Pquantity int 否否 日期Pdade date 否否 状态Astate varchar 10 否否 图 2-7 洛 阳 理 工 学 院课

11、 程 设 计 报 告 6 第 3 章概要设计 3.1系统结构与模块功能 本系统结构主要包括登录模块,主界面模块,添加药品名模块,修改和删除 品名模块,入库模块,会员管理模块,出售管理模块,有效期查询模块,盈 利查询模块,缺货查询模块。 (1) 登录界面设计:为了保护药店销售管理系统的安全性,所以设置必须 输入账号密码才能进入系统。 (2) 主界面设计:为了让系统更加简洁,更加人性化,特加入主界面,能 够让操作人员更加清晰的找到需要的功能,只要用户在该界面选择对 应的按钮,他就会弹出与各个相对应的界面。 (3) 添加品名设计:为了能够使自己的药店更加多元化,更加容易管理, 引入添加药品名称的设计

12、。能够让使用者更加清晰的知道现如今自己 药店中药品的种类以及药品类型,以进行更加方便的进货以及添加新 的药品。 (4) 修改品名设计:为了让使用者在不使用某一家的药品或者药品信息更 改后进行及时的删除修改。保持药品库的实时性。 (5) 入库设计:能够在该页面对已经录入的药品名进行入库,会自动添加 入库时间,生成一个批次编号,方便管理,能够在售卖中及时发现哪 批货物为最先入库的。 (6) 会员管理设计:进行会员系统的设计能够让药店更好的锁定固定用户, 在此界面中,使用者可以对会员信息进行录入,修改以及删除。 (7) 出售管理设计:出售管理中能够根据药品ID 以及药品名称进行搜索, 查找药品然后售

13、卖,并且有会员检测机制,当输入正确的会员ID 后检 测然后进行打折。 (8) 有效期查询设计:能够对库存中的药品进行有效期查询,当有效期低 于一定的时间就会在此窗口显示出来,并且支持对即将过期药品和已 经过期的药品进行销毁处理。 (9) 盈利查询设计:能够对规定时间范围的订单进行查询,并且计算总定 洛 阳 理 工 学 院课 程 设 计 报 告 7 价、总售价和总盈利。 能够详细显示药品批次ID、购买人的 ID,时间、 数量。如果是非会员就会显示出为匿名,默认是对所有的订单进行计 算查询 (10) 缺货查询设计:自动对售卖过程中的药品进行统计,当数量低于一定 数值的会自动在缺货单中显示出来,并且

14、显示目前状态,如果进行进 货后会将未处理改为已处理。 (11) 退出功能设计:此功能比较简单,仅仅在弹出警告窗口后退出。 第 4 章详细设计与实现 4.1模块流程图 根据系统需求做出的模块之间的大致流程图如下4-1 所示。 图 4-1 添加修改入库会员出售有效期盈利缺货 药品管理库存管理销售管理查询管理 登录 主界面 洛 阳 理 工 学 院课 程 设 计 报 告 8 4.2界面效果图及代码 (1)药店登录界面如图4-1 图 4-1 主要代码如下 privatevoid loginActionPerformed(ActionEvent evt ) String userName=this. Us

15、erNameTxt.getText(); String password=new String(this. UserPawTxt.getPassword(); if(StringUtil.isEmpty( userName) JOptionPane.showMessageDialog( null, “ 用户名不能为空!“ ); return; if(StringUtil.isEmpty( password) JOptionPane.showMessageDialog( null, “ 密码不能为空!“ ); return; User user =new User(userName, passw

16、ord); Connection con =null; try con =dbUtil.getCon(); User currentUser=userDao.login(con , user); if( currentUser!= null) dispose(); new MainFrm().setVisible(true); else JOptionPane.showMessageDialog( null, “ 用户名或者密码错误!“ ); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); f

17、inally try dbUtil.closeCon(con ); 洛 阳 理 工 学 院课 程 设 计 报 告 9 catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); (2)药店主界面如图4-2 图 4-2 (3)入库界面如图 4-3 图 4-3 主要代码: privatevoid DrugAddAction(ActionEvent e) Connection con =null; String dName =dNameTxt.getText(); String dClass=dClassTxt

18、.getText(); String sName =sNameTxt.getText(); String dNo =“ ; inta = 0; DrugDao drugDao = new DrugDao(); 洛 阳 理 工 学 院课 程 设 计 报 告 10 Drug drug =new Drug(dNo , dName , dClass, sName ); try con =dbUtil.getCon(); a=drugDao.insert(con , drug ); catch (Exception e1 ) / TODO Auto-generated catch block e1 .p

19、rintStackTrace(); if( a=1) JOptionPane.showConfirmDialog( null, “ 添加成功 “ ); resetValue(); else JOptionPane.showConfirmDialog( null, “ 添加失败 “ ); (4)添加药品如图 4-4 图 4-4 (5)修改药品如图 4-5 图 4-5 洛 阳 理 工 学 院课 程 设 计 报 告 11 主要代码如下: privatevoid drugAddActionPerformed(ActionEvent evt ) throws SQLException String pQ

20、uantity=this. pQuantityTxt.getText(); String dBidd=this. dBiddTxt.getText(); String dprice=this. dPriceTxt.getText(); String out_date=this. out_dateTxt.getText(); introw =drugTable.getSelectedRow(); String dno =(String)drugTable.getValueAt(row , 0); String dname =(String)drugTable.getValueAt(row , 1

21、); String dclass=(String)drugTable.getValueAt(row , 2); String sname =(String)drugTable.getValueAt(row , 3); if(StringUtil.isEmpty( pQuantity) JOptionPane.showMessageDialog( null, “ 数量不能为空!“ ); return; if(StringUtil.isEmpty( dBidd) JOptionPane.showMessageDialog( null, “ 进价不能为空!“ ); return; if(String

22、Util.isEmpty( dprice) JOptionPane.showMessageDialog( null, “ 售价不能为空!“ ); return; DrugStore drugStore=new DrugStore(dno , dname , dclass, sname ,Integer.parseUnsignedInt( pQuantity),F loat.parseFloat( dBidd),Float.parseFloat( dprice), out_date, mName); Connection con =null; try con =dbUtil.getCon();

23、intaddNum =drugStoreDao.add(con , drugStore); if( addNum =1) JOptionPane.showMessageDialog( null, “ 入库成功! “ ); resetValue(); else JOptionPane.showMessageDialog( null, “ 入库失败! “ ); catch(Exception e) e.printStackTrace(); JOptionPane.showMessageDialog( null, “ 入库失败! “ ); finally try dbUtil.closeCon(co

24、n ); catch (Exception e) 洛 阳 理 工 学 院课 程 设 计 报 告 12 / TODO Auto-generated catch block e.printStackTrace(); (6)会员管理界面如图4-6 图 4-6 主要代码如下: privatevoid custromerAddActionEvent(ActionEvent e) Connection con =null; String cNo =this. cNoTxt.getText(); String cName =this. cNameTxt.getText(); String cAge =thi

25、s. cAgeTxt.getText(); String cPhone =this. cPhoneTxt.getText(); String cEmail=this. cEmailTxt.getText(); String cAddress=this. cAddressTxt.getText(); Customer customer = new Customer(cNo , cName ,Integer.parseInt( cAge ), cPhone , cEmail, cAddress); try con =dbUtil.getCon(); intaddNum =customerDao.a

26、dd(con , customer); if( addNum =1) JOptionPane.showMessageDialog( null, “ 添加成功! “ ); resetValue(); else JOptionPane.showMessageDialog( null, “ 添加失败! “ ); catch (Exception e1 ) / TODO Auto-generated catch block e1 .printStackTrace(); 洛 阳 理 工 学 院课 程 设 计 报 告 13 (7)出售管理界面如图4-7 图4-7 主要代码如下: /监听会员信息事件 pri

27、vatevoid isNotUser1(ActionEvent e2 ) introw =drugTable.getSelectedRow(); Connection con =null; String cNo =this. cNoTxt.getText(); custormerDao=new CustomerDao(); Customer customer = new Customer(cNo ); try con= dbUtil.getCon(); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace

28、(); if( custormerDao.IsCustomer(con,customer) userTxt.setText(“ 是“ ); per =( float) 0.95; else per =1; userTxt.setText(“ 否“ ); return; /计算总金额事件 privatevoid drugActionMoney(MouseEvent arg0 ) String cmuantity=this. cMuantityTxt.getText(); if(StringUtil.isNotEmpty( this. cMuantityTxt.getText() if(Integ

29、er.parseInt( cmuantity)=Integer.parseInt(cMuantity) 洛 阳 理 工 学 院课 程 设 计 报 告 14 cMoneyTxt.setText(String.valueOf( per * money *Integer.parseInt( cmuant ity); zmoney =per * money *Integer.parseInt( cmuantity); else JOptionPane.showConfirmDialog( null, “ 购买数量不能大于库存量“ ); return; (8)有效期查询如图 4-8 图 4-8 (9)销

30、售查询如图 4-9 图 4-9 洛 阳 理 工 学 院课 程 设 计 报 告 15 (10)缺货查询如图 4-10 图 4-10 第5章总结 生活中处处需要处理数据,在人工管理阶段,人们耗费大量的人力、时间等 来处理这些数据,不仅效率低、而且出错率较高。现在,我们处在信息时代,有 了电脑这种高科技产品,使得我们的生活变得信息化,各行各业都与电脑计算机 联系起来了,人工管理数据的时代已经逐渐远去,取而代之的是数据库管理,它 使得人们的工作效率大大的提高了。 在这个课程设计中,我的题目是药店管理系统,在今天,我们周围的一些小 型个体在药品管理上还是由人来实现,所以,我的想法是设计一个针对小型个体

31、药店管理系统。 Java监听器是 Java功能实现的重要组成部分,监听器中的接口也是很重要的 一个环节。两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那 他们提供一个抽象父类,子类分别实现父类所定义的方法。问题的出现:Java是 一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给 它的父类加父类, 或者给它父类的父类加父类, 直到移动到类等级结构的最顶端。 这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类 的修改。 洛 阳 理 工 学 院课 程 设 计 报 告 16 在刚开始实验的时候,按键总是没反应,后来才知道是没有安装监听器的原 因,加上监听器后又出现问题了,还是没反应,原因是没有让监听器实现其反应, 在监听器中实现其方法后成功的解决问题。总之,本次实验就是这样一步步摸索 出来的,哪里出现问题,就在哪里寻找原因,还好总算把实验做出来了。

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1