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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库系统原理》课程设计报告
课程设计题目:医药管理系统
班级:
姓名:
学号: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)
第5章总结 (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=;
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 JComboBox(new mycombox2());
t_mjixing.setBounds(70, 280, 150, 30); t_mjixing.setOpaque(false);
label.add(j_mjixing); label.add(t_mjixing);
JLabel j_mefficacy=new JLabel("功效:");//药品功效
j_mefficacy.setBounds(25, 320, 45,30);
t_mefficacy.setBounds(70, 320, 395, 30);
t_mefficacy.setOpaque(false);
label.add( j_mefficacy);
label.add( t_mefficacy);
JLabel j_mbiaozhung=new JLabel("进货数量:");//药品包装数量
j_mbiaozhung.setBounds(250, 120, 90, 30); t_mbiaozhung.setBounds(315, 120, 150, 30);
t_mbiaozhung.setOpaque(false);
label.add(j_mbiaozhung); label.add(t_mbiaozhung);
JLabel j_zhulianbiaozhun=new JLabel("质量标准:");//药品质量标准
JComboBox t_zhulianbiaozhun=new JComboBox(new mycombox3());
j_zhulianbiaozhun.setBounds(250, 160, 90, 30); t_zhulianbiaozhun.setBounds(315, 160, 150, 30);
t_zhulianbiaozhun.setOpaque(false); label.add(j_zhulianbiaozhun);
label.add(t_zhulianbiaozhun);
JLabel j_mxiaoshuojiage=new JLabel("销售价格:");//药品销售价格
j_mxiaoshuojiage.setBounds(250, 200, 90, 30); t_mxiaoshuojiage.setBounds(315, 200, 150, 30);
t_mxiaoshuojiage.setOpaque(false);
label.add(j_mxiaoshuojiage); label.add(t_mxiaoshuojiage);
JLabel j_mjinhuojiage=new JLabel("进货价格:");//药品进货价格
j_mjinhuojiage.setBounds(250, 240, 90, 30); t_mjinhuojiage.setBounds(315, 240, 150, 30);
t_mjinhuojiage.setOpaque(false); label.add(j_mjinhuojiage);
label.add(t_mjinhuojiage);
JLabel j_myaopinleiming=new JLabel("药品类名:");//药品类名
j_myaopinleiming.setBounds(250, 280, 90, 30);
JComboBox t_myaopinleiming=new JComboBox(new mycombox4());
t_myaopinleiming.setBounds(315, 280, 150, 30);
t_myaopinleiming.setOpaque(false); label.add(j_myaopinleiming);
label.add(t_myaopinleiming); JButton j_save=new JButton("保存");
j_save.setBounds(230, 380, 65, 30); j_save.addActionListener(new save());
label.add(j_save); JButton j_jixu=new JButton("继续");
j_jixu.setBounds(315, 380, 65, 30); j_jixu.addActionListener(new jixu());
label.add(j_jixu); J Button j_back=new JButton("返回");
j_back.setBounds(400, 380, 65, 30);j_back.addActionListener(new back());
label.add(j_back); co.add(label);
setMaximizable(true);// 设置允许自由调整大小
setIconifiable(true);// 设置提供关闭按钮
setIconifiable(true);// 设置提供图标化按钮
setMaximizable(true);// 设置提供最大化按钮
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
class mycombox extends AbstractListModel implements ComboBoxModel{
String[] name=;
public Object getElementAt(int index) {
return name[index];
}
public int getSize() {
return name.length;
}
public Object getSelectedItem() {
return select;
}
public void setSelectedItem(Object item) {
select=(String)item;
}
}
class mycombox1 extends AbstractListModel implements ComboBoxModel{
Object[] name={"盒","包","袋","个","罐","粒","片","瓶"};
public Object getElementAt(int index) {
return name[index];
}
public int getSize() {
return name.length;
}
public Object getSelectedItem() {
return danwei;
}
public void setSelectedItem(Object item) {
danwei=(String)item;
}
}
class mycombox2 extends AbstractListModel implements ComboBoxModel{
Object[] name={"针剂","片剂","胶囊","口服液","冲剂","丸剂"};
public Object getElementAt(int index) {
return name[index];
}
public int getSize() {
return name.length;
}
public Object getSelectedItem() {
return jx;
}
public void setSelectedItem(Object item) {
jx=(String)item;
}
}
class mycombox3 extends AbstractListModel implements ComboBoxModel{
Object[] name={"中国药典","卫生部药品标准","地方药品标准","进口国药标准","企业标准"}; public Object getElementAt(int index) {
return name[index];
}
public int getSize() {
return name.length;
}
public Object getSelectedItem() {
return zlbz;
}
public void setSelectedItem(Object item) {
zlbz=(String)item;
}
}
class mycombox4 extends AbstractListModel implements ComboBoxModel{
Object[] name={"西药","中药","中成药","中成药(外用)","消毒"};
public Object getElementAt(int index) {
return name[index];
}
public int getSize() {
return name.length;
}
public Object getSelectedItem() {
return lb;
}
public void setSelectedItem(Object item) {
lb=(String)item;
}
}
class mycombox6 extends AbstractListModel implements ComboBoxModel{
Object[] name=daoyaogys.caigou;
public Object getElementAt(int index) {
return name[index];
}
public int getSize() {
return name.length;
}
public Object getSelectedItem() {
turn cai;
}
public void setSelectedItem(Object item) {
cai=(String)item;
}
}
class save implements ActionListener{
public void actionPerformed(ActionEvent e) {
new daoyaop_tianjia();
}
}
class jixu implements ActionListener{
public void actionPerformed(ActionEvent e) {
t_mname.setText(""); t_mmode.setText("");
t_mefficacy.setText(""); t_mchangdi.setText("");
t_mbiaozhung.setText(""); t_mxiaoshuojiage.setText("");
t_mjinhuojiage.setText("");
}
}
class back implements ActionListener{
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
t_mname.setText(""); t_mmode.setText("");
t_mefficacy.setText(""); t_mchangdi.setText("");
t_mbiaozhung.setText(""); t_mxiaoshuojiage.setText("");
t_mjinhuojiage.setText(""); yaop_tianjia.this.dispose();
}
}
}
5.“信息修改”和“数据浏览”功能模块:包括顾客信息、药品信息、供应商信息、销售员信息及采购员的信息浏览及删除。

其中的药品信息和供应商信息浏览界面如下:
图5-7 药品信息浏览及删除界面
图5-8 顾客信息浏览及删除界面
药品的部分核心代码代码如下:
public class biaogeyaopin extends InternalFrame{
JTextField tid=new JTextField("");
public biaogeyaopin(String string){
super(string); Container co=getContentPane();
Dao c=new Dao(); Dao.con=c.Dao();
JLabel jlabel=new JLabel(); setBounds(400, 100, 500, 515);
URL url=this.getClass().getResource("/client.jpg");//设置背景图片
ImageIcon icon=new ImageIcon(url);
jlabel.setIcon(icon);
JLabel j=new JLabel("药品数据浏览");
j.setBounds(30,10,120,35); j.setOpaque(false);
jlabel.add(j); Vector biaotouname=new Vector();
biaotouname.add("编号"); biaotouname.add("药名");
biaotouname.add("方法"); biaotouname.add("功效");
biaotouname.add("产址"); biaotouname.add("单位");
biaotouname.add("剂型"); biaotouname.add("库存数");
biaotouname.add("质量标准");
biaotouname.add("销售价格");
biaotouname.add("进货价格");
biaotouname.add("药品类别");
biaotouname.add("供应商");biaotouname.add("采购员");
Vector tablevalue=new Vector();
try{
Dao.sql=Dao.con.prepareStatement("select * from medicine");
Dao.res=Dao.sql.executeQuery();
while(Dao.res.next()){
Vector row=new Vector();
row.add(Dao.res.getString(1).trim());
row.add(Dao.res.getString(2).trim());
row.add(Dao.res.getString(3).trim());
row.add(Dao.res.getString(4).trim());
row.add(Dao.res.getString(5).trim());
row.add(Dao.res.getString(6).trim());
row.add(Dao.res.getString(6).trim());
row.add(Dao.res.getString(8).trim());
row.add(Dao.res.getString(9).trim());
row.add(Dao.res.getString(10).trim());
row.add(Dao.res.getString(11).trim());
row.add(Dao.res.getString(12).trim());
row.add(Dao.res.getString(13).trim());
row.add(Dao.res.getString(14).trim());
tablevalue.add(row);
}
JTable table=new JTable(tablevalue,biaotouname);
table.setRowHeight(30);
JScrollPane js=new JScrollPane(table);
js.setBounds(30,40,900,170);
jlabel.add(js);
JLabel jid=new JLabel("输入删除的编号:");
jid.setBounds(30,225,100,30);
jid.setOpaque(false);tid.setBounds(140,225,110,30);
tid.setOpaque(false); label.add(jid);
jlabel.add(tid); JButton jshanchu=new JButton("删除");
jshanchu.setBounds(260,225,65,30);
jlabel.add(jshanchu);
jshanchu.addActionListener(new shanchu());
co.add(jlabel);
}catch(Exception e){
e.printStackTrace();
} setResizable(false);
setVisible(true);
}
class shanchu implements ActionListener{
public void actionPerformed(ActionEvent e) {
int result=JOptionPane.showOptionDialog(null, "是否删除"+tid.getText().trim()+"信息?"," 系统提示!"
, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
new String[]{"是","否"}, "否");
if(result==JOptionPane.NO_OPTION){
tid.setText(" "); return;
}
else{
try {
Dao.sql=Dao.con.prepareStatement("delete from medicine where mid='"+tid.getText().trim()+"'");
Dao.sql.executeUpdate();
} catch (SQLException e1) {
e1.printStackTrace();
}
JOptionPane.showMessageDialog(null, "删除成功!");
} } } }
6.“信息修改”功能模块:包括顾客信息、药品信息、供应商信息、销售员信息及采
购员的信息修改。

其中的顾客信息修改界面如下:
图5-9 顾客信息修改界面
6.“数据报表”功能模块:包括顾客信息、药品信息、供应商信息、销售员信息及采购员的数据报表。

其中的点击顾客数据报表的界面如下:
图5-10 顾客数据报表界面
图5-11 顾客数据报表界面
7.系统帮助及使用说明功能模块:在线帮助、使用说明、关于。

其中的在线帮助是要联网。

使用说明的界面如下:
图5-11 系统帮助界面
5.2数据库连接
数据库:sqlsever 2005
需要的驱动:JDBC
JDBC连接数据库的代码如下:
package lz.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Dao {
protected static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
protected static String dbUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=db_yiyao";
protected static String dbUser = "yaodong";
protected static String dbPwd = "123456";
public static PreparedStatement sql;
public static ResultSet res;
public static Connection con;
public Connection Dao() {//连接数据库
try {
if (con == null) {
Class.forName(dbClassName);
con = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
}
// else
// return;
} catch (Exception ee) {
ee.printStackTrace();
}
return con;
}
}
第5章总结
在这次的数据库课程设计中,我从中学到了许多东西,包括知识、以及实现每个功能模块的喜悦。

俗话说“开头万事难”,对于之前从没学过可视化编程语言的我,要做这样一个系统真得有不少的阻力,不过,还好自己克服了这个困难,慢慢地学习一门可视化编程语言,通过几个星期的学习,大体掌握了可视化编程这一模块。

一开始,我就把所需要到的数据表都建好,包括表与表之间的关系,数据的完整性。

然后通过画图大概确定了系统的大体的功能模块,对于一些模块功能的实现通过上网找相应的资料,或者查找相关的书籍。

这让我的进度提高了不少。

有时一些问题在网上找不到相应的资料,我就会通过跟同学交流,互相讨论,进而解决问题,实现共同进步,同时也收获友谊。

课程设计为我们提供了一个较好的锻炼机会,使我们能将所学用于实践,在处理问题的过程中同时也提高了解决问题的能力和思维的缜密性。

同时,一个大的数据需要多方的参与,及时与用户进行沟通也是必不可少的环节。

这样,也提高了我们的沟通能力和表达能力,为以后的发展打下良好的基础。

在这一学期的学习里,我也深刻的体会到SQL Server 2005功能的丰富,表达能力的强,应用面之广。

随着社会的发展,人类需要处理的数据越来越多,对于数据管理的要求也越来越高,软件的发展也应从面向程序发展成为面向数据。

第7章参考文献
萨师煊、王珊.数据库系统概论(第四版).北京:高等教育出版社,2006年
Java编程基础、应用于实例/(韩)徐明浩著;武传海译—北京:人民邮电出版社,2005.10 Java程序设计技巧与开发实例/朱福喜,唐晓军等编著.—北京:人民邮电出版社,2004.2 Java从入门到精通/李中尉,周小彤—北京:清华大学出版社,2012.6。

相关文档
最新文档