资源描述
目录
一、 设计目的………………………………………………………………2
二、 功能介绍………………………………………………………………2
三、 程序流程………………………………………………………………2
四、 设计步骤………………………………………………………………3
五、 设计总结………………………………………………………………7
六、 程序清单………………………………………………………………7
一、设计目的
通过课程设计,使自己提高理论联系实际解决实际问题的能力;也使自己对基于面向对象的理论进行系统设计过程中的诸多具体问题有感性的认识和深入的理解;进而提高自己的学习兴趣为其将来顺利进入毕业环节作必要的准备。按照教师给出的思路和计划进度安排独立完成课程设计
二、功能介绍
1、具有新用户注册功能。
2、具有注册用户登录功能。
3、具有员工信息的录入功能。
4、具有员工出勤信息的录入功能。
5、具有数据查询功能,可以实现查询全部信息和按条件执行查询。
6、具有按条件删除数据功能。
7、具有统计功能
8、.本程序采用RCP技术,和SQL数据库。
三.程序流程
四、设计步骤
(一)程序设计步骤
1.建立RCP工程并构建数据库
2.建立RCP工程需要的view和editor
3.构建基本框架,并主要修改Perspective和WorkbenchWindowAdvisor两个文件
4.构建需要的辅助文件
5. 测试
(二)图片说明:
1.登录窗口和注册窗口
2.菜单部分
3.功能实现模块
查询所有人的出勤情况
修改出勤情况
增加新的员工信息
删除不用的信息
管理员密码修改
(三)数据库设计
员工出勤表
管理员表
五、设计总结
经过将近一周的课程设计,对java有了更深一层次的认识,感觉java很强大。
虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。
开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具有先现实意义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。
通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。虽然课程设计结束了,但是java的学习却没有结束,以后更加努力的。
六.部分主要程序清单
1. RCP中需要修改的ApplicationWorkbenchAdvisor文件
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchAdvisor;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
import views.Loginshell;
public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
private static final String PERSPECTIVE_ID = "rsgl.perspective";
public static boolean tag = false;
public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
try {
Display display = Display.getDefault();
Loginshell shell = new Loginshell(display, SWT.SHELL_TRIM);
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
} catch (Exception e) {
e.printStackTrace();
}
if(tag){
return new ApplicationWorkbenchWindowAdvisor(configurer);
}else{
return null;
}
}
public String getInitialWindowPerspectiveId() {
return PERSPECTIVE_ID;
}
}
2.RCP中需要修改的Perspective文件
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
import views.Menus;
import views.MyInfo;
public class Perspective implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
layout.addView(Menus.ID, IPageLayout.LEFT, 0.45f, layout.getEditorArea());
layout.addView(MyInfo.ID, IPageLayout.BOTTOM, 0.6f, Menus.ID);
}
}
3.功能部分程序
3.1用户注册
public class LoginShell extends Shell {
private Text text_2;
private Text text_1;
private Text text;
public static void main(String args[]) {
try {
Display display = Display.getDefault();
LoginShell shell = new LoginShell(display, SWT.SHELL_TRIM);
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public LoginShell(Display display, int style) {
super(display, style);
createContents();
setBackgroundImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/4ddf962769045c6b8b82a188.jpg"));
setBackground(SWTResourceManager.getColor(255, 255, 255));
setImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/4ddf962769045c6b8b82a188.jpg"));
setBackgroundMode(SWT.INHERIT_DEFAULT);
setText("用户登陆");
}
protected void createContents() {
setSize(507, 400);
final Label label = new Label(this, SWT.NONE);
label.setBackground(SWTResourceManager.getColor(255, 255, 255));
label.setText("登录名:");
label.setBounds(148, 195, 47, 17);
text = new Text(this, SWT.BORDER);
text.setBounds(220, 192, 116, 20);
final Label label1 = new Label(this, SWT.NONE);
label1.setBackground(SWTResourceManager.getColor(255, 255, 255));
label1.setText("密码:");
label1.setBounds(148, 235, 39, 17);
text_1 = new Text(this, SWT.BORDER | SWT.PASSWORD);
final Label label4 = new Label(this, SWT.NONE);
text_1.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
label4.setBackground(SWTResourceManager.getColor(255, 255, 255));
if(text.getText().trim() != ""){
label4.setImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/4.PNG"));
}else{
label4.setImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/3.PNG"));
}
label4.setBounds(342, 195, 23, 17);
}
});
text_1.setBounds(220, 232, 116, 20);
final Label label2 = new Label(this, SWT.NONE);
label2.setBackground(SWTResourceManager.getColor(255, 255, 255));
label2.setText("验证码:");
label2.setBounds(148, 274, 47, 17);
text_2 = new Text(this, SWT.BORDER);
final Label label3 = new Label(this, SWT.NONE);
label3.setForeground(SWTResourceManager.getColor(255, 0, 0));
label3.setFont(SWTResourceManager.getFont("@方正舒体", 18, SWT.BOLD, true,false));
final Label label4_1 = new Label(this, SWT.NONE);
text_2.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
String[] a2 = { "0", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u",
"v", "w", "x", "y", "z" };
Random r = new Random();
String result = "";
while (result.length() < 4) {
int temp = r.nextInt(36);
result = result + a2[temp];
}
label3.setText(result);
System.out.println(label3.getText());
label4_1.setBackground(SWTResourceManager.getColor(255, 255, 255));//获取label的背景色
if(text_1.getText().trim() != ""){
label4_1.setImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/4.PNG"));
}else{
label4_1.setImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/3.PNG"));
}
label4_1.setBounds(342, 235, 23, 17);
label3.setBackground(SWTResourceManager.getColor(255, 255, 255));
label3.setBounds(386, 271, 72, 27);
}
});
text_2.setBounds(220, 271, 116, 20);
final Button button = new Button(this, SWT.NONE);
final Label label4_2 = new Label(this, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
System.out.println(text_2.getText());
if(text_1.getText().trim() != ""&&text_2.getText().equals(label3.getText())){
label4_2.setImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/4.PNG"));
}else{
label4_2.setImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/3.PNG"));
}
label4_2.setBounds(342, 274, 23, 17);
label4_2.setText("");
String name = text.getText();
String password = text_1.getText();
String sql = "select * from users where name='"+name+"'";
DBHelper db = new DBHelper();
ResultSet rs = db.query(sql);
try {
if(rs.next()){
String passwordQ = rs.getString("password");
if(passwordQ.equals(password)&&text_2.getText().equals(label3.getText())){
ApplicationWorkbenchAdvisor.tag = true;
Property.NAME = rs.getString("name");
Property.PASSWORD = rs.getString("password");
Property.ID = rs.getString("uid");
MessageDialog.openInformation(LoginShell.this, "登录成功", "登录成功");
LoginShell.this.dispose();
}else{
MessageDialog.openError(LoginShell.this, "登录失败", "登录失败,密码或者验证码错误!");
}
}else{
MessageDialog.openError(LoginShell.this, "登录失败", "登录失败,不存在该用户!");
}
} catch (SQLException e1) {
e1.printStackTrace();
}
db.close();
}
});
button.setBackground(SWTResourceManager.getColor(255, 255, 255));
button.setText("登陆");
button.setBounds(272, 325, 64, 27);
}
@Override
protected void checkSubclass() {
// Disable the check that prevents subclassing of SWT components
}
}
3.2用户注册
public class Zhuce extends EditorPart {
public static final String ID = "editors.Zhuce"; //$NON-NLS-1$
private Text text2;
private Text text1;
private Text text3;
protected static final Shell Shell = null;
@Override
public void createPartControl(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setBackgroundImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/4ddf962769045c6b8b82a188.jpg"));
container.setBackground(SWTResourceManager.getColor(255, 255, 255));
final Label label = new Label(container, SWT.WRAP);
label.setBackground(SWTResourceManager.getColor(255, 255, 255));
label.setText("姓名:");
label.setBounds(350, 150, 64, 17);
final Label label2 = new Label(container, SWT.NONE);
label2.setBackground(SWTResourceManager.getColor(255, 255, 255));
label2.setText("密码:");
label2.setBounds(350, 190, 50, 17);
final Label label3 = new Label(container, SWT.NONE);
label3.setBackground(SWTResourceManager.getColor(255, 255, 255));
label3.setText("确认密码:");
label3.setBounds(350, 230, 50, 17);
text1 = new Text(container, SWT.BORDER);
text1.setBounds(450, 150, 155, 23);
text2 = new Text(container, SWT.BORDER);
text2.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
if(text1.getText().trim()==""){
MessageDialog.openError(Shell, "提示!", "姓名不能为空!");
}
}
});
text2.setBounds(450, 190, 155, 23);
text3 = new Text(container, SWT.BORDER);
text3.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
if(text2.getText().trim()==""){
MessageDialog.openWarning(Shell, "提示!", "密码不能为空!");
}
}
});
text3.setBounds(450, 230, 155, 23);
final Button button_2 = new Button(container, SWT.NONE);
button_2.setImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/emoticon_evilgrin.png"));
button_2.addMouseMoveListener(new MouseMoveListener() {
public void mouseMove(final MouseEvent arg0) {
if(text3.getText().trim()==""){
MessageDialog.openWarning(Shell, "警告!", "确认不能为空!");
}else if(!text3.getText().trim().equals(text2.getText().trim())){
MessageDialog.openWarning(Shell, "警告!", "两次密码不同!");
}
}
});
button_2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
DBHelper db = new DBHelper();
String sql="insert into users(name,password) " +
"values('"+text1.getText()+"','"+text2.getText()+"')";
System.out.println(sql);
int m=db.update(sql);
if(m>0){
MessageDialog.openInformation(Shell, "恭喜你", "注册成功");
}else{
MessageDialog.openError(Shell, "很遗憾", "注册失败!");
}
db.close();
}
});
button_2.setBackground(SWTResourceManager.getColor(255, 255, 255));
button_2.setText("提交");
button_2.setBounds(501, 279, 104, 23);
}
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
setSite(site);
setInput(input);
}
@Override
public boolean isDirty() {
return false;
}
@Override
public boolean isSaveAsAllowed() {
return false;
}
}
3.3增加信息
public class Addzg extends EditorPart {
public static final String ID = "editors.Addzg"; //$NON-NLS-1$
private Text text2;
private Text text1;
private Text text3;
protected static final Shell Shell = null;
public void createPartControl(Composite parent) {
System.currentTimeMillis();
Composite container = new Composite(parent, SWT.NONE);
container.setBackgroundImage(ResourceManager.getPluginImage(Activator.getDefault(), "image/4ddf962769045c6b8b82a188.jpg"));
container.setBackground(SWTResourceManager.getColor(255, 255, 255));
final Label label = new Label(container, SWT.WRAP);
label.setBackground(SWTResourceManager.getColor(255, 255, 255));
label.setText("姓名:");
label.setBounds(350, 153, 64, 17);
final Label label1 = new Label(container, SWT.WRAP);
label1.setBackground(SWTResourceManager.getColor(255, 255, 255));
label1.setText("性别:");
label1.setBounds(350, 190, 64, 17);
final Label label2 = new Label(container, SWT.NONE);
label2.setBackground(SWTResourceManager.getColor(255, 255, 255));
label2.setText("部门:");
label2.setBounds(350, 230, 50, 17);
final Label label3 = new Label(container, SWT.NONE);
label3.setBackground(SWTResourceManager.getColor(255, 255, 255));
label3.setText("手机:");
label3.setBounds(350, 270, 50, 17);
text1 = new Text(container, SWT.BORDER);
text1.setBounds(450, 150, 155, 23);
final Button button = new Button(container, SWT.RADIO);
button.setBackground(SWTResourceManager.getColor(255, 255, 255));
button.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
if(text1.getText().trim()==""){
MessageDialog.openError(Shell, "提示!", "姓名不能为空!");
}
}
});
button.setText("男");
button.setBounds(450, 190, 33, 17);
final Button button_1 = new Button(container, SWT.RADIO);
button_1.setBackground(SWTResourceManager.getColor(255, 255, 255));
button_1.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
if(text1.getText().trim()==""){
MessageDialog.openWarning(Shell, "提示!", "姓名不能为空!");
}
}
});
button_1.setBounds(572, 190, 33, 17);
button_1.setText("女");
text2 = new Text(container, SWT.BORDER);
text2.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
if(!(button.getSelection())&&!(button_1.getSelection())){
MessageDialog.openWarning(Shell, "提示!", "请选择性别!");
}
}
});
text2.setBounds(450, 227, 155, 23);
text3 = new Text(container, SWT.BORDER);
text3.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
if(text2.getText().trim()==""){
MessageDialog.openWarning(Shell, "提示!", "部门信息不能为空!");
}
}
});
text3.setBounds(450, 267, 155, 23);
final Button button_2 = new Button(container, SWT.NONE);
button_2.addMouseMoveListener(new MouseMoveListener() {
public void mouseMove(final MouseEvent arg0) {
if(text3.getText().trim()==""){
MessageDialog.openWarning(Shell, "警告!", "手机号不能为空!");
}
}
});
button_2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
展开阅读全文