收藏 分销(赏)

医药管理信息系统课程设计报告.doc

上传人:可**** 文档编号:9621860 上传时间:2025-04-01 格式:DOC 页数:22 大小:4.71MB 下载积分:8 金币
下载 相关 举报
医药管理信息系统课程设计报告.doc_第1页
第1页 / 共22页
医药管理信息系统课程设计报告.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
《数据库系统原理》课程设计报告 课程设计题目:医药管理系统 班 级: 姓 名: 学 号: 201124131239 指导教师: 开始日期: 13.4.10 撰写日期: 13.6.10 目录 第1章 概述 1 1.1 项目背景 1 1.2编写目的 1 1.3软件定义 1 1.4开发环境 1 第2章 需求分析 1 2.1信息要求 1 2.2处理要求 2 2.3安全性与完整性要求 2 第3章 概念结构设计 3 3.1 系统E—R图 3 3.1.1局部E—R图 3 3.1.2 系统全局E—R图 3 第4章 逻辑结构设计 4 4.1把ER模型图转换为关系表 4 第5章 主要模块的设计以及代码 6 5.1系统主要模块设计 6 5.2数据库连接 19 第6章 总结 20 第7章 参考文献 20 第1章 概述 1.1 项目背景 学习了数据库,为了能让我们更加了解数据库的操作,结合前台软件界面和后台数据库进行的可视化信息系统操作。同时随着科技的不断进步,企业都在不断的注重管理的信息化以完善企业管理,增强企业自身的竞争力。医药业也不例外,通过较完善的信息系统实现自身企业对内部管理的方便性、合理性、快捷性、高效性等要求。 以前的手工管理效率低是最明显的缺陷,另外,数据的一致性不好维护,如某个药品信息的记录有所改动,那么该药品的其他记录就与此不一致,造成查询的费时费力。要把全部数据都更改又相当不方便。而药品业是关民生的行业,错误信息可能会造成不可收拾的严重后果。因此,运用高效、准确的信息管理系统来代替手工管理是完善医药业管理的有效手段。 1.2编写目的 利用数据库系统可以很好的对数据进行维护,减少由于数据不一致等错误带来的麻烦。方便数据的更新与查询,降低错误率,方便药品信息的维护及库存的盘点。还可以运用较少的人员,高效的完成对医药的管理。 由于社会的发展不断趋于信息化,各个行业都要加强自身的信息化程度以适应社会的发展。而管理信息化正迎合了这个趋势,数据库系统在医药业的应用业实现了医药业执行工具、业务管理等的信息化,在这个信息化社会为医药业的发展增加了新的动力。相信随着社会的不断发展对该类系统的需求会越来越高。 医药管理信息系统,即服务于个人,又服务于企业,并最终服务于社会,这是让科技为人类服务的最好例证,其开发意义显而易见。 1.3软件定义 应用型软件,应用于医药信息管理的一门软件 1.4开发环境 Microsoft SQL Server 2005、eclipse(java编译器) 第2章 需求分析 2.1信息要求 不同的用户有不同的权限,不同的权限可从该数据库中进行不同的操作。 用户类型有四种:(1)普通顾客 (2)采购员 (3)管理员。(4)供应商 1.“信息查询统计”功能 1) 查询药品经销商信息并统计其供应药品的总金额 2) 查询药品信息及库存量 3) 查询顾客信息及其购药的总金额。 4) 统计采购人员的采购总金额 2.“信息录入”功能 1) 录入药品经销商信息 2) 录入药品信息 3) 录入负责药品采购的超市员工(采购员)的信息 4) 录入药品销售人的信息 5) 录入顾客信息 3.“信息删除”功能 1)删除顾客信息 注:删除顾客信息后,其相应的购买记录中的顾客字段置为空值。 2)删除销售人员信息 注:删除销售人员信息后,其相应的销售记录中的销售人员字段置为空值。 4.“信息修改”功能模块 1)修改顾客信息 2)修改销售人员信息 3)修改药品信息 顾客信息:顾客编号、姓名、性别、年龄、住址、电话、备注。 顾客交易信息:顾客编号、症状、药品编号。 采购员信息:编号、姓名、性别、年龄、住址、电话、备注。 药品信息:药品编号、药品名称、服用方法、功效等。 2.2处理要求 系统要实现的功能有: (1)用户登陆功能与用户管理:可以选择不同的用户身份登录、同时修改用户的密码。 (2)信息查询功能:查询相应的顾客信息、采购员人信息、药品信息、采购信息、销售员信息。 (3)信息修改功能:修改相应的顾客信息、采购信息、药品信息、销售员。 (4)信息删除功能:删除相应的顾客信息、经办人信息、药品信息、销售员。 (5)信息录入功能:录入相应的顾客信息、采购员信息、药品信息、销售员。 (6)浏览功能:浏览全部的顾客信息、药品交易信息、采购员信息、药品信息。 (7)报表功能:实现导出顾客信息、采购员信息、销售员信息与药品信息。 (8)帮助功能:对各类操作进行详细说明。 (9)用户的注册:必须先在复选框里面选择身份,才能注册。 2.3安全性与完整性要求 (1)顾客信息:添加顾客时,顾客的编号是系统自动增加每次增加一;删除顾客时,该顾客的信息将会删调;修改顾客信息时,顾客编号不允许修改,一个顾客只有一条记录。 (2)药品信息:药品的信息包括产地等信息。 (3)供应商信息:添加供应商时,供应商的编号是系统自动增加每次增加一;删除供应商时,该供应商的信息将会删调;修改供应商信息时,供应商编号不允许修改,一个供应商只有一条记录。 第3章 概念结构设计 3.1 系统E—R图 3.1.1局部E—R图 年龄 性别 姓名 编号 住址 名称 电话 编号 顾客 购买 药品信息 症状 图3.1 药品——顾客实体联系图 年龄 性别 姓 名 姓 名 住址 编号 性别 电话 编号 顾客 服务 销售员 症状 n 1 已购药品 备注 电话 录入日期 采购员 图3.2 顾客——采购员实体联系图 3.1.2 系统全局E—R图 通过系统局部E—R图优化设计系统的基本E—R图如下: 药品 购买 顾客 服务 销售员 1 n n 1 1 供应 N 供应商 图3.3 医药管理实体联系图 第4章 逻辑结构设计 4.1把ER模型图转换为关系表 数据库的表: 数据库里面包括九个表其各个表如下: 顾客信息表(client) 表4-1 顾客信息表 供应商信息表(gys) 表4-2 供应商信息表 采购员信息表(caigou) 表4-3 采购员信息表 药品信息表(medicine) 表4-4 药品信息表 销售员信息(xiaoshou) 表4—5 销售员 顾客购买药品信息(xiaoshou) 表4—6 销售员 其余的表的结构原理是一样的所以不一一列出,详细的信息请浏览数据库! 第5章 主要模块的设计以及代码 5.1系统主要模块设计 系统主要有一下几大大模块: 1. 用户登陆功能模块:复选框里面有四个选项包括:管理员、顾客、销售员、采购员。 图5.1 登陆界面 2. 用户登陆成功后界面: 图5.2 登陆成功后界面 登录界面的部分代码如下: public class yiyao_log extends JFrame{ //省略部分不是核心代码 public yiyao_log(){ setBounds(200, 200,330, 255); URL url=this.getClass().getResource("/log.jpg");//设置背景图片 ImageIcon icon=new ImageIcon(url); jlabel.setIcon(icon);//使图片在标签上显示 co.add(jlabel);JComboBox jc=new JComboBox(new mycombox4()); jc.setBounds(90, 60, 150, 25); jc.setOpaque(false); jlabel.add(jc);final JLabel jl=new JLabel("用户名:"); java.awt.Font awt=new java.awt.Font("用户名:",1,15);//设置字体大小 jl.setFont(awt);jl.setBounds(30, 30,60, 170); jlabel.add(jl);jt.setBounds(90, 100,150, 25); jlabel.add(jt);jt.setOpaque(false); final JLabel jl1=new JLabel("密 码:"); jl1.setBounds(30, 60,60, 180); jlabel.add(jl1); jp.setBounds(90, 135,150, 25); jp.setOpaque(false); jlabel.add(jp); final JButton jb1=new JButton("登 录"); jb1.setBounds(95, 170,65, 30); jb1.addActionListener(new queding()); jlabel.add(jb1); JButton jb2=new JButton("重 置"); jb2.setBounds(175, 170,65, 30); jlabel.add(jb2); jb2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub jp.setText(""); jt.setText(""); } }); JButton jb_zuzhe=new JButton("注 册"); jb_zuzhe.setBounds(250, 170,65, 30); jlabel.add(jb_zuzhe); jb_zuzhe.addActionListener(new jb_zuzhe()); setVisible(true); setResizable(false);//使窗体不能变化 setDefaultCloseOperation(EXIT_ON_CLOSE); } class jb_zuzhe implements ActionListener{ public void actionPerformed(ActionEvent e) { new zhuce_log(); } } class mycombox4 extends AbstractListModel implements ComboBoxModel{ String[] name=daoyaogys.name; Object[] name={"管理员","顾客","供应商","采购员"}; public Object getElementAt(int index) { return name[index]; } public int getSize() { return name.length; } public Object getSelectedItem() { return selecte; } public void setSelectedItem(Object item) { selecte=(String)item; } } class queding implements ActionListener{ public void actionPerformed(ActionEvent e) { if(selecte.equals("管理员")){ new Maininform();setVisible(false); } else if(jt.getText().trim().length()==0||jp.getText().trim().length()==0){ JOptionPane.showMessageDialog(null, "用户名或密码不允许为空"); return; } else{ if(selecte.equals("顾客")){ new daoguke_log(); setVisible(false); } else if(selecte.equals("供应商")){ new daogys_log(); setVisible(false); } } } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { //更换皮肤代码///////////////// JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); // SubstanceLookAndFeel.setSkin(new NebulaSkin()); try //更改风格和皮肤 { UIManager.setLookAndFeel(UIManager .getCrossPlatformLookAndFeelClassName()); UIManager .setLookAndFeel(new SubstanceGreenMagicLookAndFeel()); SubstanceLookAndFeel.setCurrentTheme("org.jvnet.substance.theme.SubstanceCremeTheme"); //改变主题 } catch (Exception e) { e.printStackTrace(); } new Maininform(); new yiyao_log(); } }); } } 2.“注册”功能模块 图5-3注册界面 部分代码如下: public class zhuce_log extends JFrame{ //省略部分不是核心代码 public zhuce_log(){ // setTitle("注册信息"); setBounds(100, 100, 310, 350); JLabel jlabel=new JLabel(); URL url=this.getClass().getResource("/yaopin.jpg"); ImageIcon icon=new ImageIcon(url); jlabel.setIcon(icon); JLabel jgys_name=new JLabel("姓 名:"); jgys_name.setBounds(24,54, 50, 60); jlabel.add(jgys_name); zc_name.setBounds(70,70, 150, 30); zc_name.setOpaque(false); jlabel.add(zc_name); JLabel jgys_jiancheng=new JLabel("性 别:"); jgys_jiancheng.setBounds(24,97, 50, 60); jlabel.add(jgys_jiancheng); zc_jiancheng.setBounds(70,110, 150, 30); zc_jiancheng.setOpaque(false); jlabel.add(zc_jiancheng); JLabel jgys_youbian=new JLabel("密 码:"); jgys_youbian.setBounds(24,137, 50, 60); jlabel.add(jgys_youbian); zc_youbian.setBounds(70,150, 150, 30); zc_youbian.setOpaque(false); jlabel.add(zc_youbian); JButton j_zhuce=new JButton("确 定"); j_zhuce.setBounds(70, 210,65, 30); j_zhuce.addActionListener(new zhuce()); jlabel.add(j_zhuce); JButton j_quxiao=new JButton("取 消"); j_quxiao.setBounds(145, 210,65, 30); j_quxiao.addActionListener(new quxiao()); jlabel.add(j_quxiao); JButton j_fanhui=new JButton("返 回"); j_fanhui.setBounds(220, 210,65, 30); j_fanhui.addActionListener(new fanhui()); jlabel.add(j_fanhui); co.add(jlabel); setVisible(true); setResizable(false); setDefaultCloseOperation(DISPOSE_ON_CLOSE); } class zhuce implements ActionListener{ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub new daojb_zuzhe(yiyao_log.selecte); } } } }} 3.“信息查询”功能模块包括有:顾客信息、药品信息、供应商信息、销售员信息及采购员的信息查询。其中的顾客信息和供应商信息查询界面如下: 图5-3 顾客信息查询界面 图5-4 供应商信息查询界面 顾客信息查询部分代码如下: public class client_chaxun extends InternalFrame{ //省略部分不是核心代码 public client_chaxun(String string){ super(string); setTitle("顾客信息查询"); setLayout(null); jlabel.setBounds(0,0,980,650); URL url=this.getClass().getResource("/client.jpg");//设置背景图片 ImageIcon icon=new ImageIcon(url); jlabel.setIcon(icon);//使图片在标签上显示 JLabel j_i=new JLabel("顾客信息查询"); j_i.setBounds(30, 30, 160, 30); jlabel.add(j_i); java.awt.Font awt=new java.awt.Font("顾客信息查询",1,25);//设置字体大小 j_i.setFont(awt); j_i.setForeground(Color.red); JLabel j_id=new JLabel("请 输 入 查 询 的 编 号:"); j_id.setBounds(29, 70, 160, 30); jlabel.add(j_id); t_id.setBounds(175, 70, 180, 30); t_id.setOpaque(false); jlabel.add(t_id); JLabel j=new JLabel("购买的药品:"); j.setBounds(480,70,110,30); jlabel.add(j); JButton j_ckeek1=new JButton("查 询"); j_ckeek1.setBounds(365, 70, 95, 30); j_ckeek1.addActionListener(new cheek()); jlabel.add(j_ckeek1); JLabel j_name=new JLabel("姓 名:"); j_name.setBounds(125, 115, 45, 30); jlabel.add(j_name); t_name.setOpaque(false);//设置为透明 t_name.setEditable(false);//使其不能够改写 t_name.setBounds(175, 115, 285, 30); jlabel.add(t_name); JLabel j_sage=new JLabel("年 龄:"); j_sage.setBounds(125, 155, 45, 30); t_sage.setEditable(false); t_sage.setOpaque(false); t_sage.setBounds(175, 155, 110, 30); jlabel.add(t_sage); JLabel j_sex=new JLabel("性 别:"); j_sex.setBounds(300,155,45,30); t_sex.setEditable(false); t_sex.setOpaque(false); t_sex.setBounds(350, 155, 110, 30); jlabel.add(t_sex); jlabel.add(j_sage); jlabel.add(j_sex); JLabel j_adress=new JLabel("住 址:"); j_adress.setBounds(125, 195, 45, 35); co.add(j_adress); t_adress.setEditable(false); t_adress.setOpaque(false); t_adress.setBounds(175, 195, 285, 30); jlabel.add(t_adress); JLabel j_phome=new JLabel("电 话:"); j_phome.setBounds(125,230, 45, 35); jlabel.add(j_phome); t_phome.setBounds(175, 235, 285, 30); t_phome.setEditable(false); t_phome.setOpaque(false); jlabel.add(t_phome); JLabel j_date=new JLabel("录 入 日 期: "); j_date.setBounds(90,275, 90, 35); jlabel.add(j_date); t_date.setBounds(175, 275, 285, 30); t_date.setEditable(false); t_date.setOpaque(false); jlabel.add(t_date); JLabel j_menony=new JLabel("购 药 总 金 额:"); j_menony.setBounds(70,310, 100, 35); jlabel.add(j_menony); t_menony.setOpaque(false); t_menony.setBounds(175, 315, 285, 30); t_menony.setEditable(false); jlabel.add(t_menony); JLabel j_symtom=new JLabel("症 状:"); j_symtom.setBounds(105,355, 40, 25); jlabel.add(j_symtom); jt_symtom.setBounds(175, 355, 125, 100); jt_symtom.setBorder(new LineBorder(Color.blue)); jt_symtom.setOpaque(false); jt_symtom.setEditable(false); jt_symtom.setLineWrap(true); jlabel.add(jt_symtom); JLabel j_cremark=new JLabel("备 注:"); j_cremark.setBounds(300,355, 40, 25); jlabel.add(j_cremark); jt_cremark.setBounds(340, 355, 120, 100); jt_cremark.setBorder(new LineBorder(Color.blue)); jt_cremark.setOpaque(false); jt_cremark.setEditable(false);//不允许再编辑 jt_cremark.setLineWrap(true);//自动换行 jlabel.add(jt_cremark); JButton j_move=new JButton("继 续"); j_move.setBounds(280, 470, 70, 30); j_move.addActionListener(new move()); jlabel.add(j_move); JButton j_close=new JButton("关 闭"); j_close.setBounds(390, 470, 70, 30); j_close.addActionListener(new close()); jlabel.add(j_close); co.add(jlabel); setMaximizable(true);// 设置允许自由调整大小 setIconifiable(true);// 设置提供关闭按钮 setIconifiable(true);// 设置提供图标化按钮 setMaximizable(true);// 设置提供最大化按钮 setFrameIcon(icon); // 设置窗体图标 } class cheek implements ActionListener{ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub new daoclient_chaxun(t_id.getText().trim()); new daobiaoclient_yaopinchaxun(t_id.getText().trim()); JScrollPane js=new JScrollPane(daobiaoclient_yaopinchaxun.table); js.setBounds(480,115,400,120); jlabel.add(js); t_menony.setText(daobiaoclient_yaopinchaxun.st+"元"); } } } 4.“信息录入”功能模块:包括顾客信息、药品信息、供应商信息、销售员信息及采购员的信息录入。其中的顾客信息和供应商信息添加界面如下: 图5-5 顾客添加界面 图5-6 药品添加界面 药品添加部分核心代码代码如下: public class yaop_tianjia extends InternalFrame{ public yaop_tianjia(String string){ super(string); setTitle("药品添加"); // setBounds(250,60,510,500); label.setBounds(0,0,980,650); URL url=this.getClass().getResource("/client.jpg"); ImageIcon icon=new ImageIcon(url); label.setIcon(icon); new daoyaogys(); JComboBox t_mgys=new JComboBox(new mycombox()); JLabel j_i=new JLabel("药品信息添加"); j_i.setBounds(30, 30, 250, 30); label.add(j_i); java.awt.Font awt=new java.awt.Font("药品信息添加",1,25);//设置字体大小 j_i.setFont(awt); j_i.setForeground(Color.red); JLabel j_mgys=new JLabel("供应商:");//id 编号 j_mgys.setBounds(20, 80, 55, 30); t_mgys.setBounds(70, 80, 150, 30); label.add(j_mgys); label.add(t_mgys); JComboBox t_mid=new JComboBox(new mycombox6()); JLabel j_mid=new JLabel("采购员:");//id 编号 j_mid.setBounds(250, 80, 55, 30); t_mid.setBounds(315, 80, 150, 30); // t_mid.setEnabled(false); t_mid.setOpaque(false); label.add(j_mid); label.add(t_mid); JLabel j_mname=new JLabel("名 称:");//药品名称 j_mname.setBounds(25,120, 45, 30); t_mname.setBounds(70, 120, 150, 30); t_mname.setOpaque(false); label.add(j_mname); label.add(t_mname); JLabel j_mmode=new JLabel("方 法:");//药品服用方法 j_mmode.setBounds(25, 160, 45, 30); t_mmode.setBounds(70, 160, 150, 30); t_mmode.setOpaque(false); label.add(j_mmode); label.add(t_mmode); JLabel j_mchangdi=new JLabel("产 地:");//药品产地 j_mchangdi.setBounds(25, 200, 45, 30); t_mchangdi.setBounds(70, 200, 150, 30); t_mchangdi.setOpaque(false); label.add(j_mchangdi); label.add(t_mchangdi); JLabel j_mdanwei=new JLabel("单 位:");//药品单位 j_mdanwei.setBounds(25, 240, 45, 30); JComboBox t_mdanwei=new JComboBox(new mycombox1()); t_mdanwei.setBounds(70, 240, 150, 30); t_mdanwei.setOpaque(false); label.add(j_mdanwei); label.add(t_mdanwei); JLabel j_mjixing=new JLabel("剂 型:");//药品剂型 j_mjixing.setBounds(25, 280, 45, 30); JComboBox t_mjixing=new JComboBo
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服