




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
济南大学毕业设计药店销售管理系统设计毕业论文目 录摘 要IABSTRACTII1 前言11.1 概述11.2 设计的目的和意义12 系统分析22.1 系统需求分析22.2 系统可行性分析22.3 系统开发工具22.3.1 Java语言介绍22.3.2 JSP介绍32.3.3 JavaScript介绍32.3.4 CSS介绍32.3.5 JavaBean介绍32.3.6 MyEclipse介绍32.3.7 Tomcat介绍32.3.8 数据库介绍42.3.9 JDBC介绍43 系统设计53.1 系统总体设计53.2 系统功能模块53.3 系统功能模块图54 数据库设计74.1 数据库中表的设计74.1.1 数据库中表总浏览74.1.2 数据库中表的详细设计74.2 触发器的设计94.3 数据库的连接105 系统各模块介绍135.1 登录模块135.2 销售管理135.3 库存管理和进货管理165.4 档案管理185.5 用户管理19结 论21参 考 文 献22致 谢23附 录24 - 44 -1 前言1.1 概述当今社会是信息化的社会,信息量的多少是衡量知识多寡的一个重要标致1。 新世纪,计算机已广泛运用到国民经济各个领域中,如在科研、设计、生产、商业、服务等许多方面。计算机在企业中的广泛应用,能帮助技术人员和管理人员在产品设计、生产计划、销售、财务、人事和工资等方面提高工作效率,企业决策人员在获得大量信息的基础上提高科学的决策水平,使企业的创新发展更具有前瞻性2。我国医药经济的发展长期被企业多、规模小、成本高、效益低等顽疾所困。随着经济与科技的发展,伴随着市场竞争加剧,一些企业难免将被兼并、重组,一些企业将退出市场,中国医药市场格局将重新划分。这种汰弱留强的结果是医药企业数量逐年减少。计算机基于语言基础融合了强大的数据库开发能力是一种非常好的数据开发工具。事实证明,计算机在管理体系的应用,使数据管理更现代化,自动化,智能化;减轻了人工管理的工作量,使其变得更具有条理性,科学性。因此药店需要一套科学的,专业的依靠计算机的高速处理和存储的管理模式来维持自己的优势,提高自身的价值,让药店的工作可以紧张而高效的运行3。1.2 设计的目的和意义药店主要从事医药产品的零售、批发等工作。由于药店每天销售的药品数量特别大,种类特别多,如果采用手工记账的话,会造成工作任务过大、工作效率效率低、药店需求的工作人员较多、服务质量差、销售账目容易发生错误、库存查询麻烦、顾客的信息不能及时准确的掌握等问题4。面对药品销售行业竞争日益严峻的现实,加强药品管理、提高工作效率和改善服务质量成了必须马上解决的问题。因此,建立一个先进的,高效的,实用的药店销售管理系统来适应市场的发展是企业生存所必须的。药店销售管理系统能够对药品的销售,库存,进货模块进行规范化的管理和查询统计,方便快捷;还可以对供应商,客户,员工的档案进行统一的管理。能够高效的、便捷的、保质保量的满足药品销售日常管理的需要,让企业在现代化的管理模式下,蓬勃发展5。2 系统分析2.1 系统需求分析系统开发的目标是实现药房药品进销存管理的系统化,规划化和自动化。这是在药房药品管理的要求基础上提出来的:销售管理:利用销售记录管理后,要求能对整个药房药品的销售过程进行实时的监控。对销售的药品进行查询统计。库存管理:通过本系统,能够清楚的看到企业库存中的产品数量,以及其他库存信息。使得药房能够根据库存信息作出决策。进货管理:根据药品的销售情况要求药房对现有的库存中少于限定的库存量的药品进行采购计划。档案管理:对于客户,供应商,员工能够根据电脑一直跟踪下去,对客户,供应商以及员工的信息进行保存,统一管理。用户管理:用户注册和删除。2.2 系统可行性分析管理是企业的核心,科学的,规范的管理系统能够让企业健康快速的发展。药店也是一样,合理的运用管理软件可以提高药店的营运效率,改善销售管理流程,让其在药品销售行业内处于优势位置。经济可行性:开发只需要一台配置一般的电脑即可,网络上有很多开源的数据库以及小型的服务器,虽说功能不是很强大,但是用于小型药店销售管理系统的开发却是足够了。技术可行性:通过系统的管理,实现了对药店的销售,进货以及库存管理环节的查询统计,为药店的销售管理提供了可靠又丰富的数据支持。2.3 系统开发工具药店销售管理系统是一个功能完善,使用方便的为小型药店开发的办公管理系统.使用的技术包括java语言,MySQL数据库,MyEclipse,Tomcat等,应用了JDBC连接数据库。2.3.1 Java语言介绍Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。他的语法规则和C+类似。 Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本6。Java语言编写的程序通过一次编译,有到处都可运行的特性,这使得它能够提供一个随处可用的开放结构和多平台之间传递信息的低成本方式。2.3.2 JSP介绍JSP就是Java Server Pages ,传统的HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页,即JSP=HTML+Java,它是一种动态的网页技术标准7。 图2.1 JSP的实现过程如图2.1所示,JSP具有以下优势: 内容与表示分离 强调可重用组件 简化页面开发2.3.3 JavaScript介绍首先,JavaScript其实并不是Java语言,他是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。JavaScript是动态的,他可以直接对用户输入做出响应,不需要经过Web服务程序8。2.3.4 CSS介绍CSS即级联样式表,又称风格样式表,它是用来进行页面风格设计的,是一种能够做到网页表现与内容分离的一种样式设计语言9。目前很多软件的换肤功能就是用它实现的。2.3.5 JavaBean介绍JavaBean 是一种Java语言写成的可重用组件。JavaBean的类必须是具体的和公开的,具有公开的setter和getter方法。在JSP中可以用它将程序的逻辑处理和视图部分分离10。2.3.6 MyEclipse介绍MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错11。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate, JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。2.3.7 Tomcat介绍Tomcat是一个免费的开放源代码的Web 应用服务器,具有开源免费、容易安装使用、占用资源小、易于和其他软件集成等优点,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP的首选。另外它还是一个Servlet和JSP容器12。2.3.8 数据库介绍MySQL是一个真正的多用户、多线程SQL数据库服务器13。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。MySQL 具有许多吸引人之处: 1、速度。MySQL 运行速度很快。2、容易使用。MySQL 是一个高性能且相对简单的数据库系统,与一些更大系统的设置和管理相比,其复杂程度较低。3、价格。MySQL 对多数个人用户来说是免费的。4、支持查询语言。5、性能。许多客户机可同时连接到服务器。多个客户机可同时使用多个数据库。可利用几个输入查询并查看结果的界面来交互式地访问 MySQL。6、连接性和安全性。MySQL 是完全网络化的方便共享,而且 MySQL 还能进行访问控制。7、可移植性。MySQL 可运行在各种版本的 UNIX 以及其他非 UNIX 的系统上。2.3.9 JDBC介绍JDBC就是在SQL水平上的API,为Java语言定义的一个SQL调用级界面,其中心在于执行基本的SQL 声明和取回结果。在此基础上可以定义更高层次的API。JDBC可在现有的数据库接口之上实现14。3 系统设计3.1 系统总体设计系统的开发过程中采用的是B/S模式。它以访问数据服务器为中心,HTTP协议为传输协议,客户端通过浏览器访问WEB服务器和数据服务器15。其三层结构见图:浏览器WEB服务器后台数据库图3.1 B/S三层结构图3.2 系统功能模块 销售管理:显示药品的商品名称,进货单号,单价,销售数量,销售日期等信息。可以对销售记录进行新增,删除,修改操作,还可以根据进货单号以及商品名称进行查询。 库存管理:显示药品的进货单号,供应商,商品名称,进货日期,库存数量等信息。可以对库存记录进行新增,删除,修改操作,还可以根据进货单号以及商品名称进行查询。 销售管理:显示药品的进货单号,供应商,商品名称,进货日期,进货数量等信息。可以对进货记录进行新增,删除,修改操作,还可以根据进货单号以及商品名称进行查询。 档案管理:可以为客户,供应商以及员工建立档案,存储他们的个人信息,记录药店与其往来关系。可以增加和删除档案。 用户管理:分为用户注册和用户列表,用来管理登陆系统时的用户名和密码。3.3 系统功能模块图图3.2 系统功能模块图4 数据库设计4.1 数据库中表的设计4.1.1 数据库中表总浏览表4.1 数据库中表总览表名说明user用户表xsjl销售表kcjl库存表jhjl进货表khda客户档案gysda供应商档案ygda员工档案4.1.2 数据库中表的详细设计(1)user(用户)表的详细设计表4.2 用户表(user)字段名类型说明IdInt编号UsernameVarchar用户名PasswordVarchar密码PhoneVarchar电话AddrVarchar地址(2)xsjl(销售)表的详细设计表4.3 销售表(xsjl)字段名类型说明IdInt编号SpmcVarchar商品名称JhdhVarchar进货单号DanjiaVarchar单价XsslInt销售数量XsrqVarchar销售日期(3)kcjl(库存)表的详细设计表4.4 库存表(kcjl)字段名类型说明IdInt编号JhdhVarchar进货单号GysVarchar供应商SpmcVarchar商品名称JhrqVarchar进货日期KcslInt库存数量(4)jhjl(进货)表的详细设计表4.5 进货表(jhjl)字段名类型说明IdInt编号JhdhVarchar进货单号GysVarchar供应商SpmcVarchar商品名称JhrqVarchar进货日期JhslInt进货数量(5)khda(客户档案)表的详细设计表4.6 客户档案表(khda)字段名类型说明IdInt编号NameVarchar姓名TelVarchar电话AddrVarchar地址QtVarchar其他(6)gysda(供应商档案)表的详细设计表4.7 供应商档案表(gysda)字段名类型说明IdInt编号NameVarchar姓名DanweiVarchar工作单位TelVarchar电话AddrVarchar地址QtVarchar其他(7)ygda(员工档案)表的详细设计表4.8 员工档案表(ygda)字段名类型说明IdInt编号NameVarchar姓名SexVarchar性别AgeVarchar年龄TelVarchar电话AddrVarchar地址QtVarchar其他4.2 触发器的设计在数据库中,触发器可以监听table的增、删、改事件的操作,靠事件触发增、删、改的操作,常用在给数据增强业务规则和完整性约束上。16delimiter $ /修改结束符号create trigger xsjladd /当销售列表有新的销售,库存列表减少相应的数目after insert on xsjlfor each rowbeginupdate kcjl set kcsl=kcsl-new.xssl where jhdh=new.jhdh;end$ create trigger xsjlmodify /当销售列表有改动时,库存列表发生相应改动after update on xsjlfor each rowbeginupdate kcjl set kcsl=kcsl+old.xssl-new.xssl where jhdh=new.jhdh;end$create trigger jhjlmodify /当进货列表有改动时,库存列表发生相应改动after update on jhjlfor each rowbeginupdate kcjl set kcsl=kcsl+old.jhsl-new.jhsl where jhdh=new.jhdh;end$4.3 数据库的连接import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;public class DB statictry Class.forName(com.mysql.jdbc.Driver); catch (ClassNotFoundException e) e.printStackTrace();private DB() public static Connection getConn() Connection conn=null;try conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/bysj?user=root&password=root); catch (SQLException e) e.printStackTrace();return conn;public static void closeConn(Connection conn) try if(conn!=null)conn.close();conn=null; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public static Statement getStmt(Connection conn) Statement stmt=null;try stmt=conn.createStatement(); catch (Exception e) e.printStackTrace();return stmt;public static PreparedStatement getPStmt(Connection conn,String sql) PreparedStatement pStmt=null;try pStmt=conn.prepareStatement(sql); catch (Exception e) e.printStackTrace();return pStmt;public static void closeStmt(Statement stmt) try if(stmt!=null)stmt.close();stmt=null; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public static ResultSet executeQuery(Statement stmt,String sql) ResultSet rs=null;try rs=stmt.executeQuery(sql); catch (Exception e) / TODO: handle exceptione.printStackTrace();return rs;public static void closeRs(ResultSet rs)try if(rs!=null)rs.close();rs=null; catch (SQLException e) e.printStackTrace();public static ResultSet executeQuery(Connection conn,String sql) ResultSet rs=null;try rs=conn.createStatement().executeQuery(sql); catch (Exception e) / TODO: handle exceptione.printStackTrace();return rs;5 系统各模块介绍5.1 登录模块系统登录界面如图5.1,输入正确的用户名和密码,点击登陆,即可进入系统主界面,如果登录名或者密码不正确,点击登陆则弹出请输入正确的用户名和密码对话框,点击确定后再次进入登陆页,无法进入主界面。图5.1 登陆页面5.2 销售管理点击新的销售,进入销售页面,如图5.2输入相应内容,提交,即可增加销售记录。如果有新的销售产生,该药品相应的库存数量也会减少。图5.2 新增销售销售列表如图5.3,显示了销售药品的详细信息。每页可以显示15条销售记录,可以进行翻页操作。对于销售记录可以进行修改和删除的操作。图5.3 销售列表进行删除操作后,会有如图5.4提示即证明删除成功。销售列表中将不再显示该记录。图5.4 删除销售记录如果销售记录的输入出现错误,点击修改进入修改页面如图5.5进行修改操作。修改后提交即可改变销售记录列表。当销售列表发生修改时,库存列表也会发生改变。图5.5 修改销售记录软件提供了搜索的功能,点击销售记录搜索进入搜索页面,如图5.6。可以根据商品名称的关键字和进货单号进行搜索操作。方便销售的管理。图5.6 销售记录搜索5.3 库存管理和进货管理库存管理和进货管理模块提供了库存和进货的管理办法,其功能大体与销售管理模块类似,同样提供了增加,删除,修改,查询的功能。图5.7 增加库存图5.8 库存列表图5.9 增加进货图5.10 进货列表5.4 档案管理档案管理模块分为:客户档案管理,供应商档案管理以及员工档案管理三个部分,用来储存药店的客户,供应商以及员工的相关信息。他们的功能大概类似,都可以进行增加和删除的操作。图5.11 增加客户档案图5.12 客户档案列表5.5 用户管理用户管理模块记录了本软件使用者的信息,分为用户注册和用户列表两个模块,用户可以通过注册,定义登录时的用户名和密码。用户列表显示了所有用户的注册信息,可以对其进行删除操作。图5.13 用户注册图5.14 用户列表结 论经过初期的调研、中期的设计及后期的调试,如今药店销售管理系统设计完毕,调试并运行通过了,开发过程本着实用、高效的原则,一切从实际情况出发。药店销售管理系统是一个小型的管理系统,它涉及到销售管理(包括新增销售、销售列表、销售查询),库存管理(包括新增库存、库存列表、库存查询),档案管理(包括客户档案、供应商档案、员工档案)和用户管理(个人资料和登陆密码)。本系统采用JSP实现前台界面和MySQL控制后台数据库。在后台用的是数据库的二维表,并尽量简单化数据表,表与表之间没有直接的数据关联,也就是说没有外键相连,这样就提高了数据的查询速度,从而提高系统的运行速度。 后期调试中,出现过不少毛病。其中最主要的是连接数据源(ODBC)的问题以及数据库MySQL身份验证登录密码问题。最终经过不懈努力,问题基本都解决了。通过这次设计,我对JSP,JavaScript技术以及MySQL数据库在系统中的查询应用有了更深一层的认识和了解。以后在管理系统设计中可能会遇到一些意想不到的难题,我会在以后的学习和工作中会做进一步的学习和探索,以取得更大的进步。参 考 文 献1 唐丰云.21世纪社会信息科学.山西:山西高等教育出版社,2002:23-572 刘阳.现代企业管理.广州:广州人民出版社,2003:135-2013 全文成.药库效期药品管理系统.北京:中国卫生经济,2002:128-2344 刘秀荣.计算机药库应用.北京:北京人民卫生出版社,2003:43-885 Zeko. Drug Management System of Development and Application. International Journal of Medicine,2003:52-936 李伟,王国辉.JAVA典型模块与项目实战大全M. 电子工业出版社,2012窗体底端7 孙涌.现代软件工程.北京希望电子出版社,2003年8月:1-2468 陈丹丹.JAVA全能速查宝典M. 人民邮电出版社,2012.049 Buczek. Website programming. Tsinghua University Press,2002:1-28.10 赛奎春JSP信息系统开发实例精选北京:机械工业出版社,2006: 66-72 11 陈刚Eclipse从入门到精通北京:清华大学出版社, 2005:416-417. 12 飞思科技产品研发中心.JSP应用开发详解.电子工业出版社,2003年9月:32-300 13 罗晓沛. 数据库技术(中级). 北京:清华大学出版社,1999 14 王克宏. JAVA语言 SQL接口:JDBC编程技术M. 北京:清华大学出版社,1997.415 孙卫琴精通Struts:基于MVC的Java Web设计与开发北京:电 子工业出版社,2004: 1-916 萨师煊,王珊.数据库系统概论.高等教育出版社,2002年2月:3460 附 录*Login* % request.setCharacterEncoding(gb2312); String username = request.getParameter(username); String password = request.getParameter(password); String userName=root; String userpasswd=root; String dbName=bysj; String tableName=user; String url=jdbc:mysql:/localhost:3306/+dbName+?user=+userName+&password=+userpasswd+&useUnicode=true&characterEncoding=GB2312; Class.forName(com.mysql.jdbc.Driver).newInstance(); Connection conn =DriverManager.getConnection(url) ; String sql = SELECT username FROM user WHERE username=? AND password=? ; boolean flag = false ; try Class.forName(DBDRIVER) ; conn = DriverManager.getConnection(DBURL,root,root) ; pstmt = conn.prepareStatement(sql) ; pstmt.setString(1,username) ; pstmt.setString(2,password) ; rs = pstmt.executeQuery() ; if(rs.next() System.out.println(-); username = rs.getString(1) ; flag = true ; if(flag) String name_s=null; session.putValue(name_s,username); response.sendRedirect(index.jsp);/成功,传递session,转向 else out.print(alert(请输入正确的用户名或密码);); rs.close() ; pstmt.close() ; conn.close() ; catch(Exception e) System.out.println(e) ; %BODY FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: 宋体TD FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: 宋体药店销售管理系统 var speed=20;var temp=new Array(); var clipright=document.body.clientWidth/2,clipleft=0 for (i=1;i=2;i+) tempi=eval(document.all.div+i+.style);tempi.width=document.body.clientWidth/2;tempi.height=document.body.clientHeight;tempi.left=(i-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南永州东安县人民法院招聘4名编外聘用制审判辅助人员模拟试卷附答案详解(黄金题型)
- 赣州市赣县区文化旅游投资集团有限公司及各子公司招聘劳务派遣制工作人员行政管理岗位增加笔试环节笔试历年参考题库附带答案详解
- 2025北京市海淀区实验小学教育集团招聘考前自测高频考点模拟试题及答案详解(典优)
- 浙江国企招聘2025年杭州市余杭区商务局公开招聘招商雇员4人笔试历年参考题库附带答案详解
- 浙江国企招聘2025余宁波姚市规划测绘设计有限公司招聘4人笔试历年参考题库附带答案详解
- 2025陕西环保集团生态建设管理有限公司选聘经理层岗位笔试历年参考题库附带答案详解
- 2025年春季甘肃兰州市引进高层次人才和急需紧缺专业技术人才1199人考前自测高频考点模拟试题及答案详解(网校专用)
- 2025重庆合川城市建设投资集团招聘6人笔试历年参考题库附带答案详解
- 2025江苏南京市建邺区平安联盟工作辅助人员招聘42人(二)模拟试卷及答案详解(名师系列)
- 2025福建福州天宇电气股份有限公司校园招聘笔试历年参考题库附带答案详解
- 预防老年误吸的课件
- 2025年国家能源投资集团有限责任公司校园招聘笔试备考题库附答案详解(综合题)
- 钢箱梁桥面铺装施工细节及专项方案研究
- 2025年银行意识形态工作专题研究会议记录
- 教育大数据在国际化教育决策中的应用与创新报告
- 四川省2025年普通高校职教师资高职班对口招生统一考试英语试卷
- 技能通道管理办法
- 从戎装到职场:退役军人心理健康赋能讲座
- 天津农村宅基地管理办法
- 信贷尽职调查培训课件
- 筋膜理论培训课件
评论
0/150
提交评论