资源描述
药 店 药 品 管 理 系 统
院(系)名称 信息工程学院
专 业 班 级 计算机科学技术
学 号
学 生 姓 名
指 导 教 师
2014年 3 月 日
一.总体设计
1. 引言
随着我国市场经济的蓬勃发展,近年来医药行业发展迅速。由于药品种类不断增加和需求的日益旺盛,旧有的企业管理模式已不能适应新型企业的需要,靠手工记账进行药品的管理已经明显力不从心。如何利用现代信息技术使企业拥有快速、高效的市场反应能力和更高的效率是医药经营企业关心的问题。因此,开发一套适合中小型药店使用的管理系统是十分必要的。
1.1 编写目的
药店药品管理系统的设计与实现在现代信息技术的基础上,实现了对药店药品信息的全面管理,使药店药品管理者通过简单易懂的界面实现多功能的信息化管理!大大提高了工作效率,为企业、管理者节省了大量的时间,降低了劳动强度。更为企业创造了更多的价值!
1.2 编写背景
随着我国市场经济的蓬勃发展和人们对医药需求的迅速增加,医药行业 正处于一个高速发展时期。行业的快速发展必然会导致竞争的加剧,要想在激烈的市场竞争中谋求发展,客观上要求企业必须加强内部管理,提高运营效率。而我国大部分医药企业是由原来的国有零售药店改造或医药企业职工下海创办的,虽然经营实现了专业化,但是从信息机制上还没有摆脱原有的管理模式,企业内部没有形成完善、有效的激励和约束的信息化管理机制,企业发展动力不足,从而影响了企业的持续、稳定、快速发展。
同时,我国医药经营形式正在向集团化、连锁化发展。在这一发展过程中,旧的企业管理模式已不能适应新型的社会主义市场经济的要求。由于每天大量的输入输出数据对象,管理者经常在管理中出现这样那样的错误。为提高企业管理水平,更好的服务于广大用户,方便管理者对药店药品的管理,这样一个药店药品管理系统的设计与实现变得越来越重要。
1.3 编写意义
伴随着社会经济的发展,特别是社会物质商品的日渐丰富多彩和人民生活水平的提高,药店的零售业也发生了巨大的变革。城市规模的扩大、居民点的拓展,客观上要求药店的管理采取新的措施和状态来适应这一变化。通过计算机对药店进行管理,既能方便百姓,缩短时间,又有利于降低成本、强化内部管理、提高企业效益。用计算机管理,这既成为医药企业 改革发展的必然热点,又形成这些企业参与市场竞争新的经济增长点。
1.4 参考资料
[1]张永常:M Java程序设计实用教程,电子工业出版社,2009年6月
[2]王灏,马军等:M Java自学手册,机械工业出版社,2007年4月
2. 总体设计
2.1 概述
2.1.1 系统设计目标
本系统设计既要满足用户的要求又要满足设计人员的设计目标。从用户的观点看,要求系统能够达到以下目标:
(1)减少人工信息录入的错误,减少不必要的经济损失。 (2)药品采购、销售信息用计算机来完成,节省人力和物力。
(3)建立查询功能。可以查询药品的厂商、生产日期、剩余量等。以使工作人员知道哪些药品不再需要,哪些药品需要加大进货量,实现药品的最佳利用。
(4)建立财务模块。能够对药品的采购、销售的应收款和应付款进行汇总编制报表。
2.1.2 系统设计策略
本系统采用事物分析和变换分析两种策略的结合。通过事务分析,将药店管理系统分为有关药品的采购、销售、库存、财务管理等模块,对底层模块采用变换分析法将有关药品采购的模块分为:订单管理、退货管理、查询等处理功能。以系统设计为原则,提高模块的内聚性,降低模块间间的耦合程度,建立数据库,实现数据共享,并且提高模块的独立性,使系统具有很好的可修改性和较高的灵活性。
2.2 运行环境
1、硬件平台:
(1)CPU:P41.8GHz。
(2)内存:256MB以上。
2、软件平台:
(1)操作系统:Windows XP
(2)数据库:SQL Server 2005
(3) 开发工具:Eclipse
2.2 尚未解决的问题
根据目前的调查情况和经济条件,暂时无法满足将系统内的数据进行的分析,仍然需要一定的人工操作,而且当药品的存量低于一定数量的时候没有提醒,药品过期之前也没有提醒。在日后经济允许的条件下,可以增加服务窗口的设置和新设备的替换。
二、详细设计
1. 引言
随着我国市场经济的蓬勃发展,近年来医药行业发展迅速。由于药品种类不断增加和需求的日益旺盛,旧有的企业管理模式已不能适应新型企业的需要,靠手工记账进行药品的管理已经明显力不从心。如何利用现代信息技术使企业拥有快速、高效的市场反应能力和更高的效率是医药经营企业关心的问题。因此,开发一套适合中小型药店使用的管理系统是十分必要的。
1.1 编写目的
药店药品管理系统的设计与实现在现代信息技术的基础上,实现了对药店药品信息的全面管理,使药店药品管理者通过简单易懂的界面实现多功能的信息化管理!大大提高了工作效率,为企业、管理者节省了大量的时间,降低了劳动强度。更为企业创造了更多的价值!
1.2 编写背景
随着我国市场经济的蓬勃发展和人们对医药需求的迅速增加,医药行业 正处于一个高速发展时期。行业的快速发展必然会导致竞争的加剧,要想在激烈的市场竞争中谋求发展,客观上要求企业必须加强内部管理,提高运营效率。而我国大部分医药企业是由原来的国有零售药店改造或医药企业职工下海创办的,虽然经营实现了专业化,但是从信息机制上还没有摆脱原有的管理模式,企业内部没有形成完善、有效的激励和约束的信息化管理机制,企业发展动力不足,从而影响了企业的持续、稳定、快速发展。
同时,我国医药经营形式正在向集团化、连锁化发展。在这一发展过程中,旧的企业管理模式已不能适应新型的社会主义市场经济的要求。由于每天大量的输入输出数据对象,管理者经常在管理中出现这样那样的错误。为提高企业管理水平,更好的服务于广大用户,方便管理者对药店药品的管理,这样一个药店药品管理系统的设计与实现变得越来越重要。
1.3 编写意义
伴随着社会经济的发展,特别是社会物质商品的日渐丰富多彩和人民生活水平的提高,药店的零售业也发生了巨大的变革。城市规模的扩大、居民点的拓展,客观上要求药店的管理采取新的措施和状态来适应这一变化。通过计算机对药店进行管理,既能方便百姓,缩短时间,又有利于降低成本、强化内部管理、提高企业效益。用计算机管理,这既成为医药企业 改革发展的必然热点,又形成这些企业参与市场竞争新的经济增长点。
1.4 参考资料
[1]张永常:M Java程序设计实用教程,电子工业出版社,2009年6月
[2]王灏,马军等:M Java自学手册,机械工业出版社,2007年4月
2. 系统组织结构
药店药品管理系统
药品管理
基本信息
用户管理
帮助信息
药品查询
药品变更
药品信息
药店信息
普通用户
管理员
使用手册
3 .模块设计
3.1 登录管理模块
登录模块是为保证信息的安全,只允许由用户名和密码的用户进入对系统进行相关的操作,当输入正确时即可进入系统。
登入界面log.java,效果图如图4.1所示。
图4.1 登录界面
3.2系统主模块
系统主模块提供对药店药品信息和用户的管理。
主模块zhujiemian.java,效果图如图4.3所示。
图4.3 系统主模块
主模块zhujiemian.java的主要代码:
public static void main(String[] args) {
installLnF();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
zhujiemian frame = new zhujiemian();
frame.setDefaultCloseOperation(zhujiemian.EXIT_ON_CLOSE);
frame.setTitle("欢迎进入主界面");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setBounds(168,100,666,555);
frame.setVisible(true);
}
});
}
3.3信息管理模块
信息管理模块是一个集查询、添加、修改、删除的综合模块,它可以将用户需要的信息显示出来,并进行相关的操作。
3.3.1 药品插入模块
药品插入模块是录入信息的重要渠道,通过本模块可以将数据写入后台数据库。药品插入模块效果图如图4.5所示:
图4.5 药品插入模块
药品插入模块ypcr.java 的主要代码:
private void jButton0ActionActionPerformed(ActionEvent event) {
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e){}
try{ con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=ydypsystem","sa","1111");
con.setAutoCommit(false);
sql=con.createStatement();
String a=jTextField0.getText().trim();
String b=jTextField1.getText().trim();
String c=jTextField2.getText().trim();
String d=jTextField3.getText().trim();
String f=jTextField4.getText().trim();
String g=jTextField5.getText().trim();
String h=jTextField6.getText().trim();
String i=jTextField7.getText().trim();
String j=jTextField8.getText().trim();
String k=jTextField9.getText().trim();
if(h.equals("")||i.equals("")){
String message="药店号、药品号不能为空";
JOptionPane.showMessageDialog(this, message);
}else{
String l="insert into yaodian values ('"+h+"','"+a+"','"+d+"')";
String m="insert into yaopin values ('"+i+"','"+b+"','"+c+"','"+j+"','"+k+"')";
String n="insert into guanli values ('"+h+"','"+i+"','"+f+"','"+g+"')";
rs=sql.executeUpdate(l);
rs=sql.executeUpdate(m);
rs=sql.executeUpdate(n);
JOptionPane.showMessageDialog(null, "添加信息记成功");
mit();}
}catch(SQLException e){JOptionPane.showMessageDialog(null, e.getMessage());}
} private void jButton1ActionActionPerformed(ActionEvent event) {
new zhujiemian().setVisible(true);
dispose();
}
3.3.2 药品更改模块
药品更改模块是将录入的错误信息进行修改,此模块重新调用ypgg.java窗体将要更改的全部信息显示出来方便用户进行修改。
药品更改模块的主要代码:
public static void main(String[] args) {
installLnF();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ypgg frame = new ypgg();
frame.setDefaultCloseOperation(ypgg.EXIT_ON_CLOSE);
frame.setTitle("药品信息更改中……");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
3.3.3 药品删除模块
药品删除模块是进行信息更新的模块,它可以将数据库中多余的或者没用的信息及时删除,这样可以节省数据库空间。
药品删除模块的主要代码:
public class ypsc extends JFrame {
Connection con;
Statement sql;
ResultSet rs;
int i=0;
Object a[][]=new Object [50][10];
Object b[]=new Object[] {"药店号","药店名","药店址","药品号", "药品名", "药品单价", "药品有效期", "生产商","入库","库存" };
private static final long serialVersionUID = 1L;
private JLabel jLabel0;
private JTextField jTextField0;
private JButton jButton0;
private JButton jButton1;
private JButton jButton2;
private JTable jTable0;
private JScrollPane jScrollPane0;
private JLabel jLabel1;private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
public ypsc() {
initComponents();
}
3.4 药品查询模块
药品查询模块可以实现对输入药品的药品号查询出药品的相关信息,方便地查看所要了解的信息。
药品查询模块ypcx.java,效果图如图4.6所示。
图4.6 药品查询模块
药品查询模块ypcx.java的主要代码:
public static void main(String[] args) {
installLnF();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ypcx frame = new ypcx();
frame.setDefaultCloseOperation(ypcx.EXIT_ON_CLOSE);
frame.setTitle("正在查询……");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setLocation(256,256);
frame.setVisible(true);
}
});
}
3.5 用户管理模块
用户增加模块用来增加新的用户来管理药店药品信息,包括用户信息、修改用户、删除用户、添加用户。
用户增加模块yhxx.java,效果图如图4.7所示。
图4.7 用户信息模块
用户信息模块yhxx.java的主要代码:
private void jButton0ActionActionPerformed(ActionEvent event) {
while(i>=0){
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
i--;
}
i=0;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e){JOptionPane.showMessageDialog(null, "error");}
try{
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=ydypsystem","sa","1111");
sql=con.createStatement();
rs=sql.executeQuery("select * from denglu where yh_name='"+jTextField0.getText().trim()+"'");
if(rs.next()){
String no1=rs.getString("yh_name");
String no2=rs.getString("yh_password");
String no3=rs.getString("yh_xm");
String no4=rs.getString("yh_xb");
jTextField0.setText(no1);
jTextField1.setText(no2);
jTextField2.setText(no3);
jTextField3.setText(no4);
}else{JOptionPane.showMessageDialog(null,"你输入的信息不存在!");}
con.close();
repaint();
}catch(Exception e){JOptionPane.showMessageDialog(null, e.getMessage());}
}
private void jButton1ActionActionPerformed(ActionEvent event) {
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(Exception e){}
try{
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;NatabaseName=ydypsystem","sa","1111");
sql=con.createStatement();
String gg="update denglu set yh_password='"+jTextField1.getText().trim()+"',yh_xm='"+jTextField2.getText().trim()+"',yh_xb='"+jTextField3.getText().trim()+"' where yh_name='"+jTextField0.getText().trim()+"'";
sql.executeUpdate(gg);
con.close();
repaint();
}catch(Exception e){}
}
private void jButton2ActionActionPerformed(ActionEvent event) {
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(Exception e){}
try{
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=ydypsystem","sa","1111");
sql=con.createStatement();
String sc="delete from denglu where yh_name='"+jTextField0.getText().trim()+"'";
sql.executeUpdate(sc);
con.close();
repaint();
JOptionPane.showMessageDialog(null, "删除成功!");
}catch(Exception e){JOptionPane.showMessageDialog(null, e.getMessage());}
}
private void jButton3ActionActionPerformed(ActionEvent event) {
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e){JOptionPane.showMessageDialog(null,e.getMessage());}
try{ con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=ydypsystem","sa","1111");
sql=con.createStatement();
String l=jTextField0.getText().trim();
String m=jTextField1.getText().trim();
String n=jTextField2.getText().trim();
String o=jTextField3.getText().trim();
if(l.equals("")||m.equals(""))JOptionPane.showMessageDialog(null, "输入的内容不完整,请重新输入!");
else{
String aa="insert into denglu values('"+l+"','"+m+"','"+n+"','"+o+"')";
sql.executeUpdate(aa);
JOptionPane.showMessageDialog(null, "添加成功!");
con.close();
repaint();
}
}catch(Exception e){}
}
展开阅读全文