一、题目详情:
该系统主要功能有:
1) 系统用户登录以及权限管理。能够对管理员的权限进行添加和删除。
2) 公司员工基本信息管理。能够增、删、改、查看公司员工的信息。能够增、删、改公司各部门的名称。
3) 会议记录管理。能够添加、删除、修改、查询公司任何一天的会议记录。
4) 任务管理。能够添加、删除、修改、查询公司任何一天分配的任务。
二、类及数据的设计
本次实验一共设计了15个类:一个是主类也是登陆界面(LoginWindow),一个数据库连接类(DataBaseCreate),一个主页面类(Function),四个员工信息类(Addperson,Deleteperson,Updateperson,Findperson),四个会议信息类(Addhuiyi,Deletehuiyi,Updatehuiyi,Findhuiyi),四个任务信息类(Addrenwu,Deleterenwu,Updaterenwu,Findrenwu)
数据:本题题解采用了MySQL数据库连接,设计如下图
三、部分代码展示
DataBaseCreate.java
package renshiguanli;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DataBaseCreate {
public static Connection getConnection()throws SQLException,java.lang.ClassNotFoundException{
//建立本地数据库连接,编码规则转换为utf-8(正常录入中文)
String url = "jdbc:mysql://localhost:3306/personmanagement?useUnicode=true&characterEncoding=utf8";
Class.forName("com.mysql.cj.jdbc.Driver");
String userName = "root";
String password = "XXX";
Connection con = DriverManager.getConnection(url,userName,password);
return con;
}
}
Addperson.java
package renshiguanli;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Addperson extends JPanel implements ActionListener{
/*
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
JPanel p5 = new JPanel();
JPanel p6 = new JPanel();
JPanel p7 = new JPanel();
JPanel p8 = new JPanel();
JPanel p9 = new JPanel();
JPanel p10 = new JPanel();
JPanel p11 = new JPanel();
JPanel p12 = new JPanel();
*/
JLabel la1 = new JLabel("工号:");
JLabel la2 = new JLabel("姓名:");
JLabel la3 = new JLabel("性别:");
JLabel la4 = new JLabel("生日:");
JLabel la5 = new JLabel("考勤:");
JLabel la6 = new JLabel("工龄:");
JLabel la7 = new JLabel("底薪:");
JLabel la8 = new JLabel("提成:");
JLabel la9 = new JLabel("工资:");
JLabel la10 = new JLabel("部门:");
JLabel la11 = new JLabel("权限:");
JButton b1 = new JButton("确定");
JButton b2 = new JButton("取消");
JTextField num = new JTextField(10);
JTextField name = new JTextField(10);
JTextField brithday = new JTextField(10);
JTextField dixin = new JTextField(10);
JTextField ticheng = new JTextField(10);
JTextField gz = new JTextField(10);
JTextField workyea = new JTextField(10);
String[] sex = {"","男","女"};
JComboBox s =new JComboBox(sex);
String[] classes = {"","正常","请假","迟到","早退","旷工"};
JComboBox clas = new JComboBox(classes);
String[] majors = {"","销售部","设计部","策划部","秘书部"};
JComboBox major = new JComboBox(majors);
String[] qx = {"","管理员","员工"};
JComboBox q = new JComboBox(qx);
public Addperson() {
this.setTitle("增加员工信息");
this.setSize(650,350);
this.setLayout(null);
this.setBackground(Color.CYAN);
la1.setSize(200,30);
la1.setLocation(60, 40);
num.setSize(120,30);
num.setLocation(100, 40);
this.add(la1);
this.add(num);
la2.setSize(200,30);
la2.setLocation(60, 80);
name.setSize(120,30);
name.setLocation(100, 80);
this.add(la2);
this.add(name);
la3.setSize(200, 30);
la3.setLocation(60, 120);
s.setSize(120, 30);
s.setLocation(100, 120);
this.add(la3);
this.add(s);
la4.setSize(200,30);
la4.setLocation(60, 160);
brithday.setSize(120,30);
brithday.setLocation(100, 160);
this.add(la4);
this.add(brithday);
la6.setSize(200,30);
la6.setLocation(60, 200);
workyea.setSize(120, 30);
workyea.setLocation(100, 200);
this.add(la6);
this.add(workyea);
la5.setSize(200,30);
la5.setLocation(60,240);
clas.setSize(120, 30);
clas.setLocation(100, 240);
this.add(la5);
this.add(clas);
la7.setSize(200, 30);
la7.setLocation(300, 40);
dixin.setSize(120, 30);
dixin.setLocation(340, 40);
this.add(la7);
this.add(dixin);
la8.setSize(200, 30);
la8.setLocation(300, 80);
ticheng.setSize(120, 30);
ticheng.setLocation(340, 80);
this.add(la8);
this.add(ticheng);
la9.setSize(200,30);
la9.setLocation(300, 120);
gz.setSize(120, 30);
gz.setLocation(340, 120);
this.add(la9);
this.add(gz);
la10.setSize(200, 30);
la10.setLocation(300, 160);
major.setSize(120, 30);
major.setLocation(340, 160);
this.add(la10);
this.add(major);
la11.setSize(200, 30);
la11.setLocation(300,200);
q.setSize(120, 30);
q.setLocation(340, 200);
this.add(la11);
this.add(q);
b1.setSize(100, 30);
b1.setLocation(150, 300);
b2.setSize(100, 30);
b2.setLocation(300, 300);
this.add(b1);
this.add(b2);
/*
this.add(p1);
this.add(p2);
this.add(p3);
this.add(p4);
this.add(p5);
this.add(p6);
this.add(p7);
this.add(p8);
this.add(p9);
this.add(p10);
this.add(p11);
this.add(p12);
*/
//设计布局
/*getContentPane().setLayout(new GridLayout(6,2));
getContentPane().add(p1);
getContentPane().add(p2);
getContentPane().add(p3);
getContentPane().add(p4);
getContentPane().add(p5);
getContentPane().add(p6);
getContentPane().add(p7);
getContentPane().add(p8);
getContentPane().add(p9);
getContentPane().add(p10);
getContentPane().add(p11);
getContentPane().add(p12);
*/
b1.addActionListener(this);
b2.addActionListener(this);
}
private void setTitle(String string) {
// TODO 自动生成的方法存根
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if(e.getActionCommand()=="确定") {
try {
//建立数据库连接
Connection con = DataBaseCreate.getConnection();
Statement sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//添加数据到数据库
sql.executeUpdate("insert into student(Num,Name,Sex,workyea,Class,Major,Brithday,dixin,ticheng,gz,quanxian)"+"values('"+num.getText()+"','"+name.getText()+"','"+s.getSelectedItem()+
"','"+workyea.getText()+"','"+clas.getSelectedItem()+"','"+major.getSelectedItem()+
"','"+brithday.getText()+"','"+dixin.getText()+"','"+ticheng.getText()+"','"+gz.getText()+"','"+q.getSelectedItem()+"')");
//关闭数据连接
sql.close();
con.close();
JOptionPane.showMessageDialog(null, "成功录入人员信息","Message",JOptionPane.INFORMATION_MESSAGE);
setVisible(false);
}catch(java.lang.ClassNotFoundException err) {
JOptionPane.showMessageDialog(null, err.getMessage(),"ClassNotFoundException:",JOptionPane.INFORMATION_MESSAGE);
} catch (SQLException ex) {
// TODO 自动生成的 catch 块
JOptionPane.showMessageDialog(null, ex.getMessage(),"SQLException:",JOptionPane.INFORMATION_MESSAGE);
ex.printStackTrace();
}
}
else if(e.getActionCommand()=="取消") {
setVisible(false);
}
}
}
四、运行程序
主界面
如需获取源码可私聊博主或以下链接,后期会发布GitHub链接: