Java课程设计-个人简历录入

摘 要

近年来,中国高校毕业生数量逐年增多,大学生面临严峻的就业形势,加之当前金融危机的影响,毕业生的就业受到前所未有的挑战,大学生在毕业后能否顺利就业,已成为全社会普遍关注的热点问题。大学生就业难既有社会原因、政策原因,也有大学生自身的原因。而就业问题最根本的原因还是生产力和社会发展需要的一个矛盾,生产力严重跟不上社会需求增长速度,生产力跟不上,能提供的就业缺口就小,供给大于需求的局面就会长期存在。再就是,中国拥有世界第一的人口量,随着社会的发展,每年新增的高素质劳动力也在不断增多,人口数量大、高素质劳动力不断增多,导致供求现状长期不可改变。可以说,就业问题中国基本不可能解决,最多能缓解,能发展更多的产业,在高新产业上力求赶上世界水平,还能提供相当分量的就业岗位,但要说完全改善就业环境,那是不可能实现的。

本文运用基本的java技术解决了个人简历录入系统中存在的数据安全性、数据一致性以及系统运行速度等问题。本系统使用null布局页面,整个效果比较友好,便于操作,一定程度上个人信息录入的效率。 

关键词  JAVA null布局 个人简历录入

第一章   概述

1.1 引

个人简历录入系统,主要为人录入简历。简历,又称履历表,是求职材料中最为重要的部分,一般紧跟在求职信的后面,是求职者全面素质和能力体现的缩影,个人简历的重要性。简历同时也是对求职者能力,经历,技能等的简要总结。中国拥有世界第一的人口量,随着社会的发展,每年新增的高素质劳动力也在不断增多,人口数量大、高素质劳动力不断增多,导致供求现状长期不可改变。 基于这一点,笔者设计了一个个人简历录入系统,方便于个人多种个人信息录入。

1.2 系统目标

编写一个个人简历录入程序,通过文本框录入姓名,通过单选按钮选择性别,通过下拉列表选择专业(计算机,电子,工商等)和文化程度(大专,本科,硕士,博士等),设置“提交”与“取消”两个按键,当用鼠标点击“提交”按键时,在文本框中显示所填写以及选择的信息。当点击“取消”按键退出系统。

2.1 系统功能需求

2.1.1 录入界面

2.1.2 姓名录入

2.1.3 性别选择

2.1.4 专业选择

2.1.5 文化程度选择

2.1.6 提交文本区显示个人信息

2.1.7 取消退出系统

2.2系统的性能要求

一般能安装jdk的系统都能运行,性能要求并不高。

2.3统配置

设备名称 LAPTOP-6O2UGOPR

处理器 AMD Ryzen 7 4800U with Radeon Graphics            1.80 GHz

机带 RAM 16.0 GB (15.4 GB 可用)

设备 ID 8F3A673E-116B-46BA-8D19-CA5B9E1B9C30

产品 ID 00342-36120-65286-AAOEM

系统类型 64 位操作系统, 基于 x64 的处理器

笔和触控 没有可用于此显示器的笔或触控输入

2.3.1软件配置

服务器端:安装Java虚拟机,Web服务器软件Resin,数据库软件Mysql

客户端:  安装Java虚拟机,Chrome浏览器

开发环境:INTelliJ IDEA

开发语言:Java

Web服务平台:resin-4.0.36

数据库: Mysql5.0

2.3.2硬件配置

服务器端:Centos6.5,有网络接口卡(NIC),内存应在4GB以上,硬盘在160GB以上。

电脑配置:CPU: Core i5 2.30GHz 内存:DDR3 8GB 硬盘:500GB

操作系统:Microsoft Windows10专业版

客户端:Core i5以上配置的PC机,有网络接口卡(NIC),内存应在4GB以上,硬盘在500GB以上。 

电脑配置:CPU: Core i5 2.30GHz 内存:DDR3 8GB 硬盘:500GB

操作系统:Windows 10 家庭中文版

2.3.3络配置

网络:服务器和客户端应有网络连通。配置TCP/IP协议。

2.4系统的未来可能提出的要求

1.应具有方便,强大的资料管理和良好的人机界面,使用户易于操作,便于浏览。

2.系统的健壮性,扩展性良好。系统具有对数据备份和日志记录的功能。

3.系统的安全性好,通过密码和权限的管理是用户的数据不受到侵害。

4.系统的动态信息交互功能强,系统根据不同的用户的权限开放不同的处理权限;不同的用户可以通过留言板进行信息的沟通。

5.系统尽量给用户提供一个良好的操作环境。

2.5可行性分析

2.5.1经济可行性

本系统由于本身并不复杂,采用先进的技术后,不需要投入太多的人力、物力,从而开发所需要的资金投入也不会很大,在经济上是完全可行的。

2.5.2技术可行性

本程序以JDK为基础,JDK (Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。

JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。

JDK包含的基本组件包括:

javac  – 编译器,将源程序转成字节码

jar  – 打包工具,将相关的类文件打包成一个文件

javadoc  – 文档生成器,从源码注释中提取文档

jdb  – debugger,查错工具

JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。

JDK安装教程:

01、鼠标右键计算机“属性”

02、找到“高级系统设置”,点击“高级——环境变量”选项

03、点击“新建”

04、新建3个变量值
新建第一个系统变量:
变量命名为:JAVA_HOME
变量值为:D:\DJK\JDK1.8(这个变量值是你的JDK1.8安装目录,每个人定义的安装目录不一样,变量值也不一样),点击“确定”

05、新建第二个系统变量:
变量命名为:Path
变量值为:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;点击“确定”

06、新建第三个系统变量:
变量命名为:CLASSPATH
变量值为:.%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar点击“确定”

07、按住“Windows+R”键,输入“cmd”进入命令提示符,点击“确定”

08、在命令提示符输入:java-version
显示信息,说明配置成功.

2.5.2 社会可行性

简历,又称履历表,是求职材料中最为重要的部分,一般紧跟在求职信的后面,是求职者全面素质和能力体现的缩影,个人简历的重要性。简历同时也是对求职者能力,经历,技能等的简要总结。它的主要任务就是争取让对方和求职者联系,唯一的目的就是争取到面试的机会。一份简历,好比是产品的广告和说明书,既要在短短几页纸中把求职者的形象喝其他竞争者区分开来,又要切实把求职者的确价值令人信服地表现出来。一份简历无疑是新的敲门砖。撰写个人简历的目的主要是有针对性的展示“自己能干什么”并主动去吻合“企业需要什么”来实现求职者和用人单位“双赢”的目标。在写个人简历时一般会遵循两大规则:一是中心目标规则,我们时刻清醒地懂得用人单位的目标是在找一个合用的人,并不一定是优秀的人,那么在阅读简历时,用人单位最想知道的就是你能不能为公司做什么。二是营销原则,作简历不是在陈述一个全面而真实的求职者,而是在作一次简短而富有感召力的广告,因此要扬长避短,突出重点和优势。该系统正好使简历的录入变的更加方便,简单,极大减小了工作的时间。

综上所述,此系统开发目标已明确,在技术和经济方面都是都可行。所依此系统的开发是完全可行的。

                第三章 需求与总体设计

3. 1系统目标

编写一个个人简历录入程序,通过文本框录入姓名,通过单选按钮选择性别,通过下拉列表选择专业(计算机,电子,工商等)和文化程度(大专,本科,硕士,博士等),设置“提交”与“取消”两个按键,当用鼠标点击“提交”按键时,在文本框中显示所填写以及选择的信息。当点击“取消”按键退出系统。

3.2整体框架

3.3程序类图

需要调用到Jpanel面板作为容器,然后采用null布局方式,把窗体,组件都设置成空布局(null),空布局容器可以准确地定位器中的位置和大小。setBounds(int a,int bj int width,int height)方法是所有组件都拥有方法,组件调用该方法可以设置本身的大小和在容器中的位置。使得面板布局更加美观,简单大方。并在相应的按钮上添加了相应的监视器,以便于触发Action Event。

章 详细设计

4.1.null布局的实现 

根据Java书中对null布局的介绍可知,

组件都设置成空布局(null),空布局容器可以准确地定位器中的位置和大小。setBounds(int a,int bj int width,int height)方法是所有组件都拥有方法,组件调用该方法可以设置本身的大小和在容器中的位置。

p是某个容器,
p.setLayout(null);
把p的布局设置为空布局。
向空布局的容器p添加一个组件c需要两个步骤:首先,容器p使用add(c)方法添加组件;然后组件c再调用setBounds(int a. int b. int width,int height)方法设置该组件在容器p中的位置和本身的大小。组件都是一个矩形结构,方法中的参数a、b是组件c的左上角在容器p中的位置坐标,即该组件距容器p左面a个像素,距容器p上方b个像素,width、height是组件c的宽和高。因此有:

  JPanel jContentPane = null;

  JLabel jLabel = null;

  JLabel jLabel1 = null;

  JLabel jLabel2 = null;

  JLabel jLabel3 = null;

  JTextField jTextField = null;

  JRadioButton jRadioButton = null;

  JRadioButton jRadioButton1 = null;

  

  JComboBox jComboBox = null;

  JComboBox jComboBox1 = null;

  JButton jButton = null;

  JButton jButton1 = null;

  JTextArea jTextArea = null;

将其以上部件统一设置为空布局,利于控制他们在窗口中的大小,位置。

   JPanel getJContentPane() {

   if (jContentPane == null) {

   jLabel3 = new JLabel();

   jLabel3.setBounds(16, 150, 65, 18);

   jLabel3.setText("文化程度:");

利用上述同样的方法控制了各个部件大小以及位置,并将其进行实例化,赋予相应的内容。

4.2组件的的相互组合

根据Java教材中有着重小到大的组合方式,因此我采取了同样的方式。

   jContentPane.add(jLabel);

   jContentPane.add(jLabel1);

   jContentPane.add(jLabel2);

   jContentPane.add(jLabel3);

   jContentPane.add(getJTextField());

   jContentPane.add( getJRadioButton());

   jContentPane.add(getJRadioButton1());  

  

   group.add(jRadioButton);

   group.add(jRadioButton1);

   jContentPane.add(getJComboBox());

   jContentPane.add(getJComboBox1());

   jContentPane.add(getJTextField());

   jContentPane.add(getJButton());

   jContentPane.add(getJButton1());

   jContentPane.add(getJTextArea());

这里先将标签,文本框,下拉列表,按钮等组件添加进有Jpanel创建的面板中,

  void initialize() {

  setSize(268, 407);

  setContentPane(getJContentPane());

  setTitle("录入");

最后利用窗口初始化时,将面板添加进窗口,完成整个窗口的布局。

4.3监视器的利用

根据Java教材中对监视器详细介绍,我们可知为了在文本区显示上述录入的信息,那么就需要经过这样一个过程:事件源发生的事件传递到监视器对象,然后进行处理。这就意味着把监视器注册到相应的组件上,但是这样显得过于麻烦。而此时窗口监视器正好可以解决这个问题,能触发事件的组件经常位于窗口中,如果让组件所在的窗口作为监视器,能让事件的处现比较方便,这是因为,监视器可以方便地操作窗口中的其他成员。

 addWindowListener(new java.awt.event.WindowAdapter() {

//采用匿名类的实例监视窗口事件

public void windowClosing(java.awt.event.WindowEvent e) {

    System.exit(0);

   }

  });

   首先,将窗口注册上监视器,监视各类组件

jButton.addActionListener(new java.awt.event.ActionListener() {采用匿名类的实例监视按钮事件

    public void actionPerformed(java.awt.event.ActionEvent e) {

     String strname=jTextField.getText();

     String strsex="男";

     if(jRadioButton1.isSelected()){

      strsex="女";

     }

     String strzy=jComboBox.getSelectedItem().toString();

     String strwh=jComboBox1.getSelectedItem().toString();

     jTextArea.setText("姓名:"+strname+"\r\n"+"性别:"+strsex+"\r\n"+"专业:"+strzy+"\r\n"+"文化:"+strwh);

    }

   });

   在“提示”键上添加了监视器,作为在文本区显示录入信息的事件源,由于窗口监视器的存在,在ActionEvent时就可以直接操作窗口中的其它组件。

jButton1.addActionListener(new java.awt.event.ActionListener() {

采用匿名类的实例监视按钮事

public void actionPerformed(java.awt.event.ActionEvent e) {

     System.exit(0);

    }

   });

“取消”按钮上注册监视器,点击取消可以直接退出系统。

程序代码

import javax.swing.*;

import java.awt.*;

public class MyLuRu extends JFrame {

  JPanel jContentPane = null;

  JLabel jLabel = null;

 JLabel jLabel1 = null;

 JLabel jLabel2 = null;
 JLabel jLabel3 = null;

 JTextField jTextField = null;

 JRadioButton jRadioButton = null;

 JRadioButton jRadioButton1 = null;

 JComboBox jComboBox = null;

  JComboBox jComboBox1 = null;

  JButton jButton = null;

  JButton jButton1 = null;

  JTextArea jTextArea = null;

  ButtonGroup mybg=new ButtonGroup();

 

 public MyLuRu() {

  initialize();

 }

 

 private void initialize() {

  this.setSize(268, 407);

  this.setContentPane(getJContentPane());

  this.setTitle("录入");

  this.addWindowListener(new java.awt.event.WindowAdapter() {

   public void windowClosing(java.awt.event.WindowEvent e) {

    System.exit(0);

   }

  });

  this.setVisible(true);

 }

 
  JPanel getJContentPane() {

  if (jContentPane == null) {

   jLabel3 = new JLabel();

   jLabel3.setBounds(16, 150, 65, 18);

   jLabel3.setText("文化程度:");

   jLabel2 = new JLabel();

   jLabel2.setBounds(16, 108, 39, 18);

   jLabel2.setText("专业:");

   jLabel1 = new JLabel();

   jLabel1.setBounds(16, 66, 39, 18);

   jLabel1.setText("性别:");

   jLabel = new JLabel();

   jLabel.setBounds(16, 24, 39, 18);

   jLabel.setText("姓名:");

   jContentPane = new JPanel();

   jContentPane.setLayout(null);

   jContentPane.add(jLabel);

   jContentPane.add(jLabel1);

   jContentPane.add(jLabel2);

   jContentPane.add(jLabel3);

   jContentPane.add(getJTextField());

   jContentPane.add(getJRadioButton());

   jContentPane.add(getJRadioButton1());  

   mybg.add(jRadioButton);

   mybg.add(jRadioButton1);

   jContentPane.add(getJComboBox());

   jContentPane.add(getJComboBox1());

   jContentPane.add(getJButton());

   jContentPane.add(getJButton1());

   jContentPane.add(getJTextArea());   

  }

  return jContentPane;

 }

 

 JTextField getJTextField() {

	  if (jTextField == null) {

   jTextField = new JTextField();

   jTextField.setBounds(61, 24, 180, 18);

	  }

  return jTextField;

 }

 

  JRadioButton getJRadioButton() {

  if (jRadioButton == null) {

   jRadioButton = new JRadioButton();

   jRadioButton.setBounds(61, 62, 38, 26);

   jRadioButton.setText("男");

  }

  return jRadioButton;

 }

 
  JRadioButton getJRadioButton1() {

  if (jRadioButton1 == null) {

   jRadioButton1 = new JRadioButton();

   jRadioButton1.setBounds(117, 62, 38, 26);

   jRadioButton1.setText("女");

  }

  return jRadioButton1;

 }

 

  JComboBox getJComboBox() {

  if (jComboBox == null) {

   String[] strcb={"计算机","电子","工商"};

   jComboBox = new JComboBox(strcb);

   jComboBox.setBounds(62, 108, 93, 18);

  }

  return jComboBox;

 }



 JComboBox getJComboBox1() {

  if (jComboBox1 == null) {

   String[] strcb2={"大专","本科","硕士","博士"};

   jComboBox1 = new JComboBox(strcb2);

   jComboBox1.setBounds(92, 150, 125, 18);

  }

  return jComboBox1;

 }


  JButton getJButton() {

  if (jButton == null) {

   jButton = new JButton();

   jButton.setBounds(66, 181, 60, 28);

   jButton.setText("提交");

   jButton.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent e) {

     String strname=jTextField.getText();

     String strsex="男";

     if(jRadioButton1.isSelected()){

      strsex="女";

     }

     String strzy=jComboBox.getSelectedItem().toString();

     String strwh=jComboBox1.getSelectedItem().toString();

     jTextArea.setText("姓名:"+strname+"\r\n"+"性别:"+strsex+"\r\n"+"专业:"+strzy+"\r\n"+"文化:"+strwh);

    }

   });

  }

  return jButton;

 }

 

  JButton getJButton1() {

  if (jButton1 == null) {

   jButton1 = new JButton();

   jButton1.setBounds(158, 181, 60, 28);

   jButton1.setText("取消");

   jButton1.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent e) {

     System.exit(0);

    }

   });

  }

  return jButton1;

 }

  JTextArea getJTextArea() {

  if (jTextArea == null) {

   jTextArea = new JTextArea();

   jTextArea.setBounds(16, 225, 229, 130);

  }

  return jTextArea;

 }

 public static void main(String args[]){

  new MyLuRu();

 }

} 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-MTing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值