java毕业设计——基于java+Jbuilder+sqlserver的医药管理系统设计与实现(毕业论文+程序源码)——医药管理系统

基于java+Jbuilder+sqlserver的医药管理系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于java+Jbuilder+sqlserver的医药管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 文中重点讨论了一个企业办公自动化系统的设计和实现过程。在此之前介绍了此次开发过程中用到的相关技术,较详细的介绍了该系统的总体功能结构,简洁明了的阐述了本系统的功能。

  2. 开始部分首先简单的叙述了国内外办公自动化系统的过去,现在和未来。接着介绍了开发本系统所用到部分技术的相关概念和术语,着重分析了面向对象技术和java语言的特点,以及表明了所用技术在本系统中的作用和意义。之后详细地描述了整个系统的功能,然后通过对某医药公司的内部组织结构和业务过程的分析,在此基础上给出了系统的数据流程图和实体关系图,同时也全面地介绍了此次利用Java结合SQL 2000数据库开发一个企业办公自动化系统的设计和实现过程。

  3. 利用面向对象的技术建立各种模型对该系统进行分析和实现。在众多面向对象分析方法中,建立了实体关系模型图(E-R图)。该模型图主要为系统的数据库设计服务。最后,从数据库安全方面说明了该办公自动化系统的安全性。


2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:12078个字35页
包含内容:整套源码+完整毕业论文


3、关键词

办公自动化,数据库,面向对象

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

1 绪 论
办公自动化系统的特点是以办文处理、档案管理为核心的办公管理系统 。
其主要的功能包括收文管理、发文管理、会议管理、档案管理等内容。系统的高度集成,基于web,知识化和流程化将是办公自动化大发展方向。

1.1 办公自动化的基本定义和产生背景
办公自动化(OA, Office Automation),是70年代中期发达国家为解决办公业务量急剧增加企业生产率产生巨大影响问题的背景下,发展起来的一门综合性技术。他的基本任务是利用先进的科学技术,是人们借助各种解决对一部分办公业务的处理,达到提高生产效率、工作效率和质量,方便管理和决策的目的。OA的知识领域覆盖了行为科学、管理科学、社会科学、系统工程学等学科,并且OA体现了多学科的相互交叉、相互渗透性,所以的OA的应用是企业管理现代化的标志之一。

1.2 办公自动化的处理范围
OA的核心问题是如何提高日常的办公效率问题。因此人们日常工作的所有内容可以归入OA处理的范围,如文字处理、文件眷写、传真、申请审批、办公用品、办文管理、会议管理、资料管理、档案管理、客户管理、订货销售、库存管理、生产计划、器材需求、技术管理、质量管理、成本、财务计算、劳资、人事管理等等,那么这些都是办公软件的处理范围。

OA的承载过多,以至无法定义和处理这么丰富的内涵的名词,由于他如此耳熟,更换一个名词的成本太高,人们现在还不得不和这个丰富内涵的变色龙一样的名词打交道,并且通过上下文来揣摩他的确切含义。在这种情况下就迫切需要建立一个交流的基础。

在处理不同的名词的办法就是在OA 之前加上范围修饰和在之后加上附加名词来界定它们。同时把提高工作效率的电子设备,如打印机、复印机、传真机,称之为办公自动化设备。

对于提高日常工作效率的软硬件系统,称之为广义的办公自动化软件系统。这个名词仍然犯着上面的毛病。但是这种认识已经进一步了,如果人们在交流时已经明确自己谈的OA所谓何物(即加上了适当的前置语和后置语),那么Lotus(电子邮件厂商)和Xerox复印机厂商之间的交流是完全可能的。

如果再看看世面上的各种软件系统,就回发现很多事物性的工作已经被包含,并且从来不让人觉得自己是一个办公自动化软件系统。如果硬要把这些东西归为OA系统软件,理论上当然非常完美并且包容力非常强,因为无论以后有什么更好的发明,都是办公自动化的范围。这样就对讨论问题没有丝毫好处。因为这个时候还是不明确具体的含义是什么,根据目前的名称只能称为某某系统。在日常事物中,有许许多多都是和这些系统相关的。然而仍有一些事物是目前的系统处理不了或根本就不处理的。这些事物一般都是非结构化的内容譬如文件、会议、档案、日程安排和办公事物等,就称之为狭义的办公自动化软件系统。这就是目前世面上称之为办公自动化的软件系统所处理的内容。

1.3 办公自动化在国内的发展
省略

2工作流技术
省略

3面向对象技术
省略

3.1向对象技术的基本感念和术语
对象(Object),在应用领域中有意义的,如所要解决问题有关系的任何事物都可以看作对象,她既可以是物理的实体的抽象,也可以是认为的概念,或者是任何有明确边界和意义的东西。
类(Class),现实世界中存在的客观事物有些是彼此相似的,人们习惯把他们归为一类,在计算机软件中,“类”就是对有相数据和相同操作的一组相似对象的定义,也就是说,类是有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括得怎么要创建该类的新对象的说明。
实例(Instance),实例就是有某个特定的类所描述的一个具体的对象。
消息(Message),消息,就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明,通常,一个消息由下述三部分组成:接收消息的对象;消息选择符(也叫消息名);零个或多个变元。
方法(Method),方法就是对多能执行的操作,也是类中所定义的服务
继承(Inheriance)。继承是只能直接获得已有的性质和特征,也不必重复他们。
多态性(Polymorphism),多态是指子类对象可以像父类对象那样使用,同样的消息既可以发给父类对象也可以发给子类对象。
重载(Overloading),函数重载是指在同一个领域内若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加\于不同类型的操作数上面。

3.2面向对象思想方法
省略

3.3 面向对象分析简介
省略

4 Java概述
省略

4.1Java的字节码
省略

5系统的详细设计
面对企业办公自动化的现状和发展趋势,应孝感药都医药公司的要求,本小组有针对性的为该公司开发一套办公自动化系统,借助该自动化系统,提高了办公过程的自动化程度,也提高员工日常工作效率,减少了纸张浪费和规范管理层的工作。

一套软件,首先要能够满足用户的使用要求,这是基本条件。诚然,经过这么多年的发展,时常上的进销存软件的功能都已经非常完整,可以说基本上可以满足一般企业的仓库管理要求。

了解到该医药公司的业务流程特点,结合现代企业的先进管理思想和模式,采用了Client/Server的可靠、高效系统作为平台,该系统包括了七大功能模块:系统管理、基本信息设置、进货信息管理、售货信息管理、库存信息管理、财务信息管理、系统帮助。

开发软件使用Jbuilder开发工具,SQL数据库系统作为后台数据库,整体系统采用传统的C/S(Client/Server,客户端/服务器)够架。在客户端为用户提供了一个高集成度的服务和应用体系。

对于一般的企业,采用相应的安全措施,没有可能权限的用户不能直接大开文件查看数据,有足够安全措施。从而构成了严密的权限保护系统。
创建面向整个公司所处理的数据对象的数据结构,从而减少、消除相同数据多次重复录入,数据一直性差、冗余的现象,以保证数据准确性、安全性提高工作的时效性。

5.1系统的目标
市场竞争的激烈意味着管理工作的重要性,药品种类和数量的增加也就意味着销售管理的重要性。本医药公司销售管理系统的目标大体有:
1.为该公司提供一体化解决方案涵盖物流的整个过程,满足业内各种经营模式和特性。
2.适合特色管理和经营,针对该行业经营品种繁多,对药品的有效期,批准文号,合格证等要有比较严格的管理。

5.2 系统的功能图
在这里插入图片描述

图1 系统功能结构图

5.3 系统功能模块设计
系统开发的总体任务是实现各种信息的系统化,规范化和自动化。该公司的销售管理系统完成功能的设计如下:
1系统管理用于管理本系统用户的增加、删除和修改用户密码等操作。

在这里插入图片描述

图2 系统管理功能图

2基本信息设置包括对药品类别的设置、药品的设置、供应商的设置和业务员的设置等。

在这里插入图片描述

图3 基本信息设置功能图

3货源信息管理主要完成对订货单的录入和进货入库等操作。

在这里插入图片描述

图4 货源信息管理功能图

4分类销售查询主要完成销售结果的查询,如按照药品查询和按照业务员查询。

在这里插入图片描述

图5 基本信息设置功能图

5.4系统实现
面向对象分析首要的高能工作,是建立问题域的对象模型,这个模型描述了现实世界的“类—&----对象”以及它们之间的关系,表示了目标系统的静态数据结构,静态数据结构对应细节以来较少,比较容易确定;当用户的需求变化时,静态数据结构相对来说比较稳定。因此,用面向对象开发的决大多数软件时,都首先建立对象模型,然后再建立子模型。

类和对象是对应用领域中的概念的标识,是系统分析及软件的复用的基础,这一过程需要考虑多种情况,正确的表示类—对象,以形成下一步软件的复用性,提高软件质量及生产效率。例如,在办公自动化系统中,文档是整个软件的基础,如果没有标识此类对象,一旦文档稍有改变,则整个系统就会面临重建的风险。

OOA系统的属性层包括对象的属性及对象间的实例连接(关系),属性为对象的一些静态信息,它是对象的内部资料描述,即内部封装的资料。
对象所能执行的操作称为服务或方法。在属性层讨论是应用领域的静态方面。而对象间的动态关系及对象实例间的消息连接构成了服务层。
结合面向对象的语言,就非常符合实际的情况。应用户在各种处理方面的需求,以及针对系统功能的具体设计将得到如下所示的本系统所要处理的数据流程图。

在这里插入图片描述

图6 数据流程图

5.4.1 用户登陆模块的创建
运行本系统后将出现一个对话框如图6所示,提供用户输入用户名和密码,验证用户的合法性。如果用户3次输入登陆信息错误,将退出系统。这个模块包括三个类:LoginSystem.java、CheckUser.java和Main.java。其中Main.java是系统启动后运行的第一个类,在该类中初始化登陆窗口(Longinsystem.java)并将它显示出来,CheckUser.java封装了登陆和验证中一些公用的方法。
在这里插入图片描述

图7 登陆界面图
在CheckUser类中用JDBC连接数据库,提供了验证用户,也实现了为以后添加用户和修改密码的功能。

package com.csbook.restaurant.utility;

import java.sql.*;
import javax.swing.*;

public class CheckUser{
  //构造数据库连接参数
    //private String url="jdbc:odbc:yumen","","";
    public CheckUser() {
      try {
        //装载数据库驱动程序
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      }
      catch (Exception ex) {
        ex.printStackTrace();
      }
    }

    //检查指定用户是否为合法用户
    public boolean isValidUser(String operator,String password)
    {
      Connection con=null;
      PreparedStatement ps=null;
      ResultSet rs=null;
      boolean isValid=false;
      try{
        con = DriverManager.getConnection("jdbc:odbc:yumen","","");
        String queryStr = "select * from operator WHERE id=? and password=?";
        ps = con.prepareStatement(queryStr);
        ps.setString(1, operator);
        ps.setString(2, password);
        rs = ps.executeQuery();
        if (rs.next())
          isValid = true;
      }
      catch(SQLException exc){
         exc.printStackTrace();
           }
      finally{
           if (rs != null) try {  rs.close();}catch (SQLException ignore) {}
           if (ps != null) try{  ps.close();}catch (SQLException ignore) {}
           if (con != null) try{con.close();}catch (SQLException ignore) {}
      }
      return isValid;
    }

    //更改用户密码
    public void updatePassword(String operator,String password)
    {
        Connection con=null;
        PreparedStatement ps=null;
        try{
          //con = DriverManager.getConnection(url);
          con = DriverManager.getConnection("jdbc:odbc:yumen","","");
          String updateStr = "update operator set password=? WHERE id=?";
          ps = con.prepareStatement(updateStr);
          ps.setString(1, password);
          ps.setString(2, operator);
          ps.executeUpdate();
        }
        catch(SQLException exc){
           exc.printStackTrace();
             }
        finally{
         if (ps != null) try{  ps.close();}catch (SQLException ignore) {}
         if (con != null) try{con.close();}catch (SQLException ignore) {}
        }
    }

   //检查指定用户是否存在
    public boolean userExist(String userID)
    {
      Connection con = null;
      PreparedStatement ps = null;
      ResultSet rs=null;
      boolean exist=false;
        try{
         // con = DriverManager.getConnection(url);
         con = DriverManager.getConnection("jdbc:odbc:yumen","","");
          String selectStr = "select id from operator where id=?";
          ps = con.prepareStatement(selectStr);
          ps.setString(1, userID);
          rs=ps.executeQuery();
          if(rs.next())
            exist=true;
        }
        catch(SQLException exc){
           exc.printStackTrace();
        }
        finally{
           if (rs != null) try{  rs.close();}catch (SQLException ignore) {}
           if (ps != null) try{  ps.close();}catch (SQLException ignore) {}
           if (con != null) try{con.close();}catch (SQLException ignore) {}
        }
        return exist;
      }

    //添加新用户
    public void addOperator(String userID,String username,String userType,String password,String PICNo,String tel,String addr,String remark)
    {
        Connection con=null;
        PreparedStatement ps=null;
        try{
          //con = DriverManager.getConnection(url);
          con = DriverManager.getConnection("jdbc:odbc:yumen","","");
          String updateStr = "insert into operator(id,password,name,type,tel,addr,PICNo,remark) values(?,?,?,?,?,?,?,?)";
          ps = con.prepareStatement(updateStr);
          ps.setString(1, userID);
          ps.setString(2, password);
          ps.setString(3,username);
          ps.setString(4,userType);
          ps.setString(5,tel);
          ps.setString(6,addr);
          ps.setString(7,PICNo);
          ps.setString(8,remark);
          ps.executeUpdate();
        }
        catch(SQLException exc){
           exc.printStackTrace();
             }
        finally{
         if (ps != null) try{  ps.close();}catch (SQLException ignore) {}
         if (con != null) try{con.close();}catch (SQLException ignore) {}
        }
    }

    //删除用户
    public boolean deleteOperator(String userID)
    {
       Connection con=null;
       PreparedStatement ps=null;
       boolean succeed=true;
       try{
         //con = DriverManager.getConnection(url);
         con = DriverManager.getConnection("jdbc:odbc:yumen","","");
         String deleteStr="delete from operator where id=?";
         ps=con.prepareStatement(deleteStr);
         ps.setString(1,userID);
         ps.executeUpdate();
       }
       catch(SQLException exc){
           succeed=false;
       }
      finally{
         if (ps != null) try{  ps.close();}catch (SQLException ignore) {}
         if (con != null) try{con.close();}catch (SQLException ignore) {}
      }
      return succeed;
    }

    //获得用户类型
    public String getUserType(String user)
    {
       Connection con=null;
       PreparedStatement ps=null;
       ResultSet rs=null;
       String userType="";
       try{
         //con = DriverManager.getConnection(url);
         con = DriverManager.getConnection("jdbc:odbc:yumen","","");
         String queryStr = "select * from operator WHERE id=?";
         ps = con.prepareStatement(queryStr);
         ps.setString(1, user);
         rs = ps.executeQuery();
         if (rs.next())
           userType = rs.getString("type");
       }
       catch(SQLException exc){
          exc.printStackTrace();
            }
       finally{
            if (rs != null) try {  rs.close();}catch (SQLException ignore) {}
            if (ps != null) try{  ps.close();}catch (SQLException ignore) {}
            if (con != null) try{con.close();}catch (SQLException ignore) {}
       }
       return userType;
    }
  }

5.4.2用户管理功能的实现
以添加用户为例说明用户管理功能的实现,在Jbuilder自动生成的jbInint()方法的末尾加上如下的代码:

userType.addItem("operator");
    userType.addItem("manager");
    userType.addItem("sa");

然后在设计(design)界面选定“确定”按钮,在Events选项的actionPerformed后的空格中双击,加入如下代码:void ok_actionPerformed(ActionEvent e)

{
    String id = userID.getText();
    //检查用户名是否为空,如为空,提示用户输入用户名
    if(id.trim().equals("")){
      JOptionPane.showMessageDialog(this, "用户名不能为空!", "警告",
                                    JOptionPane.ERROR_MESSAGE);
      return;
    }
    String name = username.getText();
    String userT = (String) userType.getSelectedItem();
    String telephone = tel.getText();
    String addr = address.getText();
    char temp[]=password.getPassword();
    String pass=new String(temp);
    String PIC = PICNo.getText();
    String note = remark.getText();
    CheckUser cUser = new CheckUser();
    boolean userExist=cUser.userExist(id);
    if(userExist)
    {
      JOptionPane.showMessageDialog(this, "系统中已存在该用户!", "错误",
                                    JOptionPane.ERROR_MESSAGE);
      return;
    }
    //调用CheckUser类中的方法添加用户
    cUser.addOperator(id,name,userT,pass,PIC,telephone,addr,note);
    //刷新列表显示
    JButton refreshButton=DBNavToolBar.getRefreshButton();
    refreshButton.doClick();
    //提示用户添加成功
    JOptionPane.showMessageDialog(this,"该用户已成功添加","提示",JOptionPane.PLAIN_MESSAGE);
  }

5.4.3药品信息设置功能的实现
在药品信息设置界面中,药品类型和生产厂商的输入信息是以下拉框的形式给出的,它不能由用户自由输入,它们的选项列表分别从yType和supplier中读取的。在本系统中它们是在prepareShow()方法中实现的。

private void prepareShow(){
    Connection conn=null;
    PreparedStatement ps=null;
    ResultSet rs=null;
  try{
    conn=DriverManager.getConnection("jdbc:odbc:yumen","","");
    ps=conn.prepareStatement("select name from supplier");
    rs=ps.executeQuery();
    while(rs.next())
      producer.addItem(rs.getString("name"));
    ps=conn.prepareStatement("select name from foodType");
    rs=ps.executeQuery();
    while(rs.next())
      foodType.addItem(rs.getString("name"));
  }
  catch(SQLException e){
  e.printStackTrace();
  }
  finally{
  if(rs!=null)try{rs.close();}catch(SQLException ignore){}
  if(ps!=null)try{ps.close();}catch(SQLException ignore){}
  if(conn!=null)try{conn.close();}catch(SQLException ignore){}
  }
  }

在添加之前,先要检测系统中是否已经存在相同名称的药品,通过加入下面的方法来实现。

private boolean foodExist(String food)
  {
    Connection conn=null;
    PreparedStatement ps=null;
    ResultSet rs=null;
    boolean exist=false;
    try{
      conn=DriverManager.getConnection("jdbc:odbc:yumen","","");
      ps=conn.prepareStatement("select name from food where name='"+food+"'");
      rs=ps.executeQuery();
      if(rs.next())
         exist=true;
   }
   catch(SQLException e){
      e.printStackTrace();
   }
   finally{
     if(rs!=null)try{rs.close();}catch(SQLException ignore){}
     if(ps!=null)try{ps.close();}catch(SQLException ignore){}
     if(conn!=null)try{conn.close();}catch(SQLException ignore){}
   }
   return exist;
  }

在这里插入图片描述

图9药品信息设置

5.4.4 创建销售功能模块
销售模块是本系统中比较复杂的功能模块,主要是同时更新销售信息表和库存信息表里的对应信息和一些异常处理。把Jbuilder自动生成的构造函数修改为:

public BookService(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable,String operator) {
super(title,resizable,closable,maximizable,iconifiable);
this.currentOper=operator;
    try {
      jbInit();
         }
    catch(Exception ex) {
      ex.printStackTrace();
    }
  }

此外,还要在BookServer中声明一个String类型的变量currentOper来保存传入的数据。在系统的构造函数中还应有下面的方法,提供下拉框的选项。

public void prepareShow(){
      Connection conn=null;
      PreparedStatement ps=null;
      ResultSet rs=null;
      try{
        conn=DriverManager.getConnection("jdbc:odbc:yumen","","");
        ps=conn.prepareStatement("select id from room");
        rs=ps.executeQuery();
        while(rs.next())
          roomNo.addItem(rs.getString("id"));
      }
      catch(SQLException ex){
          ex.printStackTrace();
          }
          
          try{
        conn=DriverManager.getConnection("jdbc:odbc:yumen","","");
        ps=conn.prepareStatement("select commodity from stockInfo");
        rs=ps.executeQuery();
        while(rs.next())
          customer.addItem(rs.getString("commodity"));
      }
      catch(SQLException ex){
          ex.printStackTrace();
          }
      finally{
          if(rs!=null)try{rs.close();}catch(SQLException ignore){}
          if(ps!=null)try{ps.close();}catch(SQLException ignore){}
          if(conn!=null)try{conn.close();}catch(SQLException ignore){}
        }
  }

在这里插入图片描述

图10 销售功能图

5.4.5数据库设计
数据库在一个信息管理系统中占有一个非常重要的地位,数据库结构设计的好坏将直接对系统的效率和实现的效果产生影响。合理的数据结构可以提高数据存储的效率,保证数据的完整和一致。
通过医药行业管理工作过程的内容和数据流程的分析,简要的数据库设计如下:
药品类别信息,包括的数据项有:类别编号、类别名称等。
药品信息,包括的数据项有:药品编号、药品名称、类别、计量单位、入库价格、分销价格、生产厂家等等。
客户信息,包括的数据项有:供应商编号、供应商名称、地址、电话号码等。
业务员类别信息,包括的数据项有:类别编号、业务员名称、地址、电话号码等。
仓库信息,包括的信息项有:仓库编号、仓库名称。
进货定单信息,包括的数据项有:订货日期、编号、业务员、供应商编号、药品编号等等。
入库单信息,包括的信息项有:入库日期、编号、业务员、供应商编号、药品编号等等。
售货定单信息,包括的数据项有:售货日期、编号、业务员、客户编号、药品编号等等。
销售出货单信息,包括的数据项有:销售日期、编号、业务员、客户编号、药品编号等等。
库存信息,包括的信息项有:更新日期、编号、仓编号、药品编号等。
现在需要将上面的数据库结构转化为SQL Server2000数据库系统所支持 的实际数据模型,也就是数据的逻辑结构。根据数据库的需求分析和概念结构设计,设计了一个数据库。数据库由多个表组成。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将上面的数据库观念结构化为SQL Server 数据库支持的实际数据模型就可以了,也就是数据库的逻辑结构同时得到系统E-R图。

在这里插入图片描述

图10简单总体E-R图

在这里插入图片描述
图11 部分实体相关属性图

6.安全性
数据库的安全性是指保护数据库以防止不合法的使用所造成的资料泄露、更改破坏。安全性问题不是数据库系统所独有的,计算机系统都有这个问题。这是在数据库系统中大量资料集中存放,而且为许多用户直接共享,是宝贵的信息资源。从而使安全性问题更为突出。系统安全性保护措施是否幽香是数据库系统的主要性能指标之一。

与管理的层次和权限想适应,OA系统中不同拥护的级别不用,因而能使用的系统功能和资源也是不同的。通过访问权限的设置来限定用户能够使用系统功能和资源,是进行系统访问控制的基本方法和策略。在本系统中设计了不同种类别的用户,也赋予他们不同的权限,为了保护数据库的安全性同时也设计了不同的角色和数据库用户。

7.结 束 语
办公自动化是为了解决办公业务量急剧增加对企业生产率产生巨大影响问题的背景下,发展起来的一门综合性技术。它的基本任务是利用先进的科学技术,使人们借助各种设备解决对一部门办公业务的处理,达到提高生产率工作效率和质量,方便管理和决策的目的。OA的知识领域覆盖了行为科学、管理科学、社会科学、系统工程学等学科,并且OA体现了多学科的相互交叉、相互渗透性,所以OA的应用是企业管理现代化的标志之一。
本文在前面部分简单的介绍了开发医药公司销售管理所要用的基本技术,重点介绍了的技术和面向对象的分析和设计方法,讨论了该系统的需求分析和逻辑结构设计,如何选择最优的分析和设计方法,建立最优的返工自动化系统的分析和设计模型是一个需要不断研究的课题。

致 谢
省略

参考文献
[1]作者:张海潘 书名:软件工程 出版社:人民邮电出版社
[2]作者:杨岚 刘静 书名:java实例导航 出版社:人民邮电出版社
[3]作者:Herbert Schilot 书名:java2参考大全 出版社:电子工业出版
[4]作者:陆正中 马进德 石正贵 书名:JBiulder软件开发项目实践
出版社:清华大学出版社
[5] 网络文章:工作流技术在流程分析中的应用研究
[6] 网络文章:基于面向对象技术的异构系统整合


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于java+Jbuilder+sqlserver的医药管理系统设计与实现(源码+文档)_java_Jbuilder_CS架构_医药管理系统.zip
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值