您的位置:首页 > 编程语言 > Java开发

医疗保险管理系统设计 Java

2017-01-14 20:59 357 查看

说明:所有源码已上传到笔者GitHub上,欢迎follow。感谢!!!

一、系统需求

应用面向对象技术分析一在职职工医疗保险管理系统,用来对职工的个人医保帐户进行管理,系统的需求为:

1. 每个职工有一个位数为12位的帐号唯一的医保卡,有支付密码,记录该职工的帐上余额。个人每月交纳的保险金额为工资的2%,单位为个人每月交纳的保险金额为工资的7%。每次就医后可凭卡支付医疗费用,医保卡可挂失、重发,但任何时候都只有一张卡有效。

2. 每个职工有一个16位的工资卡,有支付密码,与职工的个人工资帐户相关联。每当有工资收入时计算缴纳的医保金额,并直接从工资账户扣除。单位支付部分设为同步自动支付,直接加入到保险金中。

3. 支付费率分为三类,分别是自费门诊、普通门诊与大病门诊,普通门诊就医后支付医疗费用的70%,大病门诊就医后支付医疗费的80%,而自费门诊为全部自费。

4. 系统要记录每次交纳医疗保险金的往来帐,并能以个人、单位进行查询打印这些信息。

5. 系统要记录每次支付医疗保险金的往来帐,并能以个人、单位进行查询打印这些信息。系统不能透支。

6. 系统具有对医保卡的管理功能,包括考虑入保和退保的处理、单位变更。

7. 医院提供三类费率一览表,即那种治疗属于那个支付费率。

8. 不考虑对个人工资和工资卡的管理、个人所属单位的管理。

二、实现功能

我用Java语言实现的部分功能:(附系统界面截图)

注:

1.时间仓促,系统界面做的比较简单,望各位大神不吝赐教!

2.使用的数据库为MySQL,具体创建SQL语句可到我的个人资源中下载。

3.下面只放了一个main类代码,如需全部代码可到我的个人资源中下载。







/**
* 这是一个主函数
*/
package com.mims;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.util.*;
import java.util.Date;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class main extends JFrame implements ActionListener{

//定义所需控件
JPanel jp1,jp2;
JLabel jl1;
JButton jb1,jb2,jb3,jb4,jb5;
JTable jt;
JScrollPane jsp;
JTextField jtf1,jtf2;
userModel um;
connDB cd;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Vector rowData,columnNames;//rowData存放行数据,columnNames存放列名

public static void main(String[] args) {

main m=new main();
}

//构造函数
public main(){

//上面布局
jp1=new JPanel();
jtf1=new JTextField(10);
jb1=new JButton("查询");
jb1.addActionListener(this);
jl1=new JLabel("请输出名字");
jb5=new JButton("费率一览表");
jb5.addActionListener(this);
jtf2=new JTextField("登录时间:"+df.format(new Date()));
jtf2.setBorder(new EmptyBorder(0,0,0,0));
jtf2.setBackground(null);

//把各个控件加到jp1
jp1.add(jl1);
jp1.add(jtf1);
jp1.add(jb1);
jp1.add(jb5);
jp1.add(jtf2);

//下面布局
jp2=new JPanel();
jb2=new JButton("入保");
jb2.addActionListener(this);
jb3=new JButton("退保");
jb3.addActionListener(this);
jb4=new JButton("挂失");
jb4.addActionListener(this);

//把各个控件加到jp2
jp2.add(jb2);
jp2.add(jb3);
jp2.add(jb4);

//中间布局
//创建数据模型userModel对象
um=new userModel();

jt=new JTable(um);//初始化JTable

jsp=new JScrollPane(jt);//初始化jsp JScrollPane

this.add(jsp);//jsp加入到JFrame中
this.add(jp1,"North");//jp1加入到JFrame中
this.add(jp2,"South");//jp2加入到JFrame中

this.setSize(600, 400);//设置窗口大小
this.setTitle("职工医保卡管理系统");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭JFrame时关闭资源窗口
this.setVisible(true);

}

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//判断是哪个按钮被点击
if(e.getSource()==jb1){

String sql;
String name=this.jtf1.getText().trim();//获取输入框中输入的姓名
if(name.equals("")){

sql="select * from user";
}else{
sql="select * from user where username='"+name+"'";
}
//          String sql="select * from user where username='"+name+"'";

//创建新的数据模型类
um=new userModel(sql);
//更新JTable
jt.setModel(um);

}else if(e.getSource()==jb2){

userAdd us=new userAdd(this,"入保",true);

//创建新的数据模型类
um=new userModel();
//更新JTable
jt.setModel(um);

}else if(e.getSource()==jb3){

//getSelectedRow将返回用户所点中的行,若没有选择则返回-1
int rowNum=this.jt.getSelectedRow();
if(rowNum==-1){
//弹出提示框
JOptionPane.showMessageDialog(this, "请选择要退保职工!");
return;
}
String id=(String) um.getValueAt(rowNum, 0);
String sql="delete from user where userid='"+id+"'";
cd=new connDB();
cd.updExecute(sql);

um=new userModel();
//更新JTable
jt.setModel(um);

JOptionPane.showMessageDialog(this, "退保成功!");
return;

//          System.out.println(id);

}else if(e.getSource()==jb4){

int rowNum=this.jt.getSelectedRow();
if(rowNum==-1){
JOptionPane.showMessageDialog(this, "请选择要挂失职工!");
return;
}
String id=(String) um.getValueAt(rowNum, 0);
String sql="update user set state='挂失' where userid='"+id+"'";
cd=new connDB();
cd.updExecute(sql);

um=new userModel();
jt.setModel(um);

JOptionPane.showMessageDialog(this, "恭喜您!挂失成功!");
return;
}else if(e.getSource()==jb5){

PayRate pr=new PayRate();
pr.print();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息