• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      “1+X”證書制度下《Java程序設(shè)計》課程實踐教學(xué)探索

      2020-12-31 08:18:08郝麗娜
      關(guān)鍵詞:Java程序設(shè)計考勤證書

      林 敏 郝麗娜

      (武漢工程職業(yè)技術(shù)學(xué)院 湖北 武漢:430080)

      《Java程序設(shè)計》是一門重要的計算機(jī)編程課程,是計算機(jī)相關(guān)專業(yè)必修課程之一,具有較強(qiáng)的理論性、專業(yè)性和實踐性。目前,本門課程存在教學(xué)內(nèi)容多課時少,教學(xué)方式重理論輕實踐,學(xué)生動手實踐能力和編碼開發(fā)能力較弱的現(xiàn)象,進(jìn)而可能導(dǎo)致學(xué)生就業(yè)競爭力不強(qiáng)、求職信心受挫。通過調(diào)查發(fā)現(xiàn)不少學(xué)生感到該門課程入門難度較大、內(nèi)容較多、課程學(xué)完了但還是不太會運(yùn)用。為了解決這一問題,筆者在實踐教學(xué)中采用項目驅(qū)動教學(xué)方式,結(jié)合“1+X”證書制度下的《Java程序設(shè)計》課程教學(xué)改革的要求,以“采用Java實現(xiàn)員工考勤系統(tǒng)”為例,對該課程的實踐教學(xué)進(jìn)行了設(shè)計與探索,有助于提升該課程的教學(xué)質(zhì)量和教學(xué)效果。

      1 設(shè)計過程

      1.1 “1+X”證書制度解讀

      “1+X”證書制度是一套將學(xué)歷教育與職業(yè)培訓(xùn)并重的創(chuàng)新教育制度,其中的“1”代指學(xué)歷證書,“X”代指職業(yè)技能證書。以“大數(shù)據(jù)應(yīng)用開發(fā)(Java)職業(yè)技能”等級證書為例,證書共分為初、中、高三個等級,每一等級均包含理論考試和上機(jī)考試兩部分。理論考試為選擇題,上機(jī)考試為編程實踐題,同一次考試中兩部分考試成績均達(dá)到60分及以上者才能獲得證書。

      大數(shù)據(jù)應(yīng)用開發(fā)(Java)職業(yè)技能證書(初級)要求學(xué)生掌握J(rèn)ava開發(fā)環(huán)境搭建、語法基礎(chǔ)、Java面向?qū)ο蟪绦蛟O(shè)計、軟件測試、運(yùn)維基礎(chǔ)、成本核算方法等,初級對標(biāo)大數(shù)據(jù)領(lǐng)域的測試工程師。大數(shù)據(jù)應(yīng)用開發(fā)(Java)職業(yè)技能證書(中級)要求學(xué)生掌握J(rèn)ava編程基礎(chǔ)知識和面向?qū)ο箝_發(fā)技術(shù)中的類和對象、方法、封裝、繼承、多態(tài)、接口、集合、反射、JDBC和I/O流操作等知識,同時還需掌握數(shù)據(jù)庫中的增、刪、改、查等知識,能熟練編碼解決數(shù)據(jù)訪問需求等。中級為大數(shù)據(jù)領(lǐng)域的測試工程師和開發(fā)工程師之間的過渡級別。大數(shù)據(jù)應(yīng)用開發(fā)(Java)職業(yè)技能證書(高級)要求學(xué)生除了掌握中級的核心知識點外還需掌握MVC設(shè)計模式、Spring框架(Spring、SpringMVC、SpringBoot)、Hadoop集群環(huán)境搭建、數(shù)據(jù)遷移、數(shù)據(jù)處理、數(shù)據(jù)挖掘常用算法及工具、數(shù)據(jù)可視化等,高級對標(biāo)大數(shù)據(jù)領(lǐng)域的開發(fā)工程師。

      1.2 知識、能力與素質(zhì)目標(biāo)構(gòu)建

      依據(jù)教育部高等職業(yè)學(xué)校軟件技術(shù)專業(yè)教學(xué)標(biāo)準(zhǔn)和軟件技術(shù)專業(yè)人才培養(yǎng)方案,基于Java程序員崗位工作過程,將課程標(biāo)準(zhǔn)與“1+X”證書考核標(biāo)準(zhǔn)對接,以大數(shù)據(jù)應(yīng)用開發(fā)(Java)職業(yè)技能“1+X”證書(中級)的考綱考點要求為例,按照知識、能力與素質(zhì)三方面目標(biāo)要求(見表1),重建《Java程序設(shè)計》課程實踐教學(xué)內(nèi)容。采用項目驅(qū)動教學(xué)方式,以實際項目為例,培養(yǎng)學(xué)生的動手編程能力、應(yīng)用開發(fā)能力、創(chuàng)新能力和團(tuán)隊合作能力等。通過項目實踐和“1+X”證書的考試訓(xùn)練過程,促使學(xué)生養(yǎng)成良好的編碼習(xí)慣,提高學(xué)生編程興趣的同時也增強(qiáng)了就業(yè)的內(nèi)動力和競爭力。

      表1 知識、能力、素質(zhì)三方面目標(biāo)

      1.3 實踐學(xué)時安排

      建議實踐項目教學(xué)實施至少安排8學(xué)時,其中教師用2學(xué)時講解項目需求與整體設(shè)計思路,學(xué)生至少需6學(xué)時上機(jī)編碼完成項目中的數(shù)據(jù)庫與類設(shè)計、實體類設(shè)計、工具類設(shè)計、實體操作類設(shè)計和測試類設(shè)計等。

      2 教學(xué)實施

      以“采用Java實現(xiàn)員工考勤系統(tǒng)”為例,對《Java程序設(shè)計》課程的實踐教學(xué)進(jìn)行了設(shè)計和探索。

      2.1 需求分析

      某公司固定上下班時間,規(guī)定每個工作日8點上班17:00下班,并使用傳統(tǒng)指紋打卡機(jī)進(jìn)行員工考勤。在互聯(lián)網(wǎng)迅速發(fā)展的今天,該公司決定使用手機(jī)軟件取代傳統(tǒng)指紋打卡機(jī),規(guī)定遲到或早退1分鐘扣x元工資且不設(shè)上限。員工僅可在以(0,0)為圓心,100個單位為半徑的圓形范圍內(nèi)打卡并寫入到employees.txt考勤信息文件中。該項目實現(xiàn)自動統(tǒng)計員工出勤情況及計算員工的實發(fā)工資。

      2.2 項目設(shè)計

      2.2.1 系統(tǒng)功能設(shè)計

      系統(tǒng)按照功能分為三部分:

      第一部分(讀入數(shù)據(jù)):首先需要將數(shù)據(jù)從文件中讀入,然后由程序存入數(shù)據(jù)庫。具體的操作為將準(zhǔn)備好的考勤信息文件employees.txt和員工信息文件records.txt中的數(shù)據(jù)分別存入到數(shù)據(jù)庫中的EMPLOYEES表和RECORDS表。

      第二部分(添加數(shù)據(jù)):添加員工信息和考勤記錄。

      第三部分(查詢和處理數(shù)據(jù)):查詢員工信息、考勤信息和計算工資。

      2.2.2 數(shù)據(jù)庫與類的設(shè)計

      為了方便數(shù)據(jù)進(jìn)入數(shù)據(jù)庫的操作,在Oracle數(shù)據(jù)庫中創(chuàng)建表EMPLOYEES,在Eclipse中創(chuàng)建包,如org.min.bean,在此包下創(chuàng)建Employee.java,定義Employee類,Employee類與EMPLOYEES表相對應(yīng),字段的對應(yīng)關(guān)系見表2。

      表2 Employee類與EMPLOYEES表字段對應(yīng)關(guān)系

      在Oracle數(shù)據(jù)庫中創(chuàng)建表RECORDS,在Eclipse的org.min.bean包下創(chuàng)建Record.java,定義Record類,Record類與RECORDS表相對應(yīng),字段的對應(yīng)關(guān)系見表3。

      表3 Record類與RECORDS表對應(yīng)關(guān)系

      2.3 功能模塊劃分

      整個項目文件包、類文件結(jié)構(gòu)如圖1所示。

      圖1 項目結(jié)構(gòu)圖

      (1)實體類

      實體類有Employee員工信息實體類、EmployeeSalary員工工資實體類和Record考勤記錄實體類。

      Employee員工信息實體類中包含員工ID、員工姓名、員工工資及打卡記錄等信息。為增強(qiáng)數(shù)據(jù)安全性,將所有字段訪問屬性設(shè)置為private,然后用get和set方法對各個字段進(jìn)行封裝。相關(guān)字段如下。

      private int id; //員工ID

      private String name; //員工姓名

      private double salary; //員工工資

      private List records=new ArrayList(); //打卡記錄

      EmployeeSalary員工工資實體類中包含員工信息、月份、遲到總時長(單位為分鐘)、早退總時長(單位為分鐘)、實發(fā)工資等信息。為增強(qiáng)數(shù)據(jù)安全性,將所有字段訪問屬性設(shè)置為private,然后用get和set方法對各個字段進(jìn)行封裝。相關(guān)字段如下。

      private Employee employee; //員工信息

      private int month; //月份

      private int punchIn; //遲到總時長 單位為分鐘

      private int punchOut; //早退總時長 單位為分鐘

      private double actualSalary; //實發(fā)工資

      Record考勤記錄實體類中包含員工號、打卡時間、打卡類型(上班/下班)、打卡位置(橫坐標(biāo))、打卡位置(縱坐標(biāo))、打卡超時(單位為分鐘)等信息。為增強(qiáng)數(shù)據(jù)安全性,將上述字段訪問屬性設(shè)置為private,然后用get和set方法對各個字段進(jìn)行封裝。另外,定義了兩個靜態(tài)常量用來設(shè)置打卡的類型,相關(guān)字段如下。

      private int employeeId; //員工號

      private long recordTime; //打卡時間

      private int type; //打卡類型 上班/下班

      private double locationX; //打卡位置 橫坐標(biāo)

      private double locationY; //打卡位置 縱坐標(biāo)

      private int outTime; //超時 單位:分鐘

      public static final int PUNCH_IN=1; //打卡類型常量:上班打卡

      public static final int PUNCH_OUT=2; //打卡類型常量:下班打卡

      (2)工具類

      工具類中包含EmployeeUtil類、RecordUtil類和IOUtil類

      EmployeeUtil類的功能是將讀入的字符串轉(zhuǎn)為Employee對象。該類中定義了一個公有的靜態(tài)的toEmployee方法,實現(xiàn)了將傳入的字符串通過split()函數(shù)分解,然后將分解的字段存入Employee對象中。

      RecordUtil類的功能是將讀入的字符串轉(zhuǎn)為Record對象。該類中定義了一個公有的靜態(tài)的toRecord方法,實現(xiàn)將傳入的字符串通過split()函數(shù)分解,然后將分解的字段存入Record對象中。

      IOUtil類的設(shè)計中包含兩個方法,一個是readEmployees()方法,其功能是將存有員工信息的文本文件employees.txt通過FileReader文件輸入流順序地讀入,然后調(diào)用工具類EmployeeUtil將讀入的字符串存進(jìn)Employee對象中,返回Employee對象集合。另一個是readRecords()方法,其功能是將存有員工打卡記錄的文本文件records.txt通過FileReader文件輸入流順序地讀入,然后調(diào)用工具類RecordUtil將讀入的字符串存入Record對象中,返回Record對象集合。方法的定義如下。

      public static List readEmployees()

      public static List readRecords()

      (3)實體操作類

      實體操作類有EmployeeDao類和RecordDao類。

      EmployeeDao類主要用來對Employee實體類進(jìn)行操作,主要功能為:添加一個或多個員工多個員工和查詢某員工某個月的工資信息。方法的定義如下。

      public int addEmployee(Employee emp) //添加一個員工

      public boolean addAll(List employees) //添加多個員工

      public EmployeeSalary getEmployeeSalaryById(int employeeId,int year,int month)

      //查詢某員工某個月的工資信息

      RecordDao類主要用來對Record實體類進(jìn)行操作,實現(xiàn)了添加一條打卡記錄、批量添加打卡記錄和根據(jù)指定月份查詢某員工的打卡記錄的功能。方法的定義如下。

      public int addRecord(Record record) //添加打卡記錄

      public boolean addAll(List records) //批量添加打卡記錄

      public List getAllById(int id,int year,int month) //根據(jù)指定月份查詢某員工的打卡記錄

      (4)測試類

      測試類有ConnTest測試類、EmployeeDaoTest測試類和RecordDaoTest測試類。

      ConnTest測試類中主要方法有:

      public void connTest() //獲取數(shù)據(jù)庫連接測試

      EmployeeDaoTest測試類中主要方法有:

      EmployeeDaoTest //批量添加員工測試

      public void testAddEmployee() //添加一個員工測試

      public void testGetEmployeeSalary() //查詢某員工的考勤和工資信息測試

      RecordDaoTest測試類中主要方法有:

      public void testAddAllRecords() //批量添加打卡記錄測試

      public void testAddRecord() //添加一個打卡記錄測試

      public void testGetMonthRecordById() //根據(jù)員工ID查詢打卡記錄

      2.4 項目編碼(部分)

      (1)讀取文本文件中所有的員工信息

      public static List readEmployees(){

      FileReader fr=null;

      BufferedReader br=null;

      List emps=new ArrayList();

      try {

      fr=new FileReader (empFilePath);

      br=new BufferedReader(fr);

      String str;

      while((str=br.readLine ())!=null) {

      Employee employee=EmployeeUtil.toEmployee(str);

      emps.add (employee);

      }

      } catch (Exception e) {

      e.printStackTrace();

      }

      return emps;

      }

      (2)查詢某員工某個月的工資信息和考勤記錄

      public EmployeeSalary getEmployeeSalaryById(int employeeId,int year,int month) {

      String sql="select id,name,salary from EMPLOYEES where id=?";

      Employee employee=new ObjectUtil().getOne(sql, Employee.class, employeeId);

      //查詢考勤記錄

      List records=new RecordDao().getAllById (employeeId, year, month);

      employee.setRecords (records);

      int punchIn=0;

      int punchOut=0;

      //統(tǒng)計缺勤時間

      for(Record record:records) {

      if(record.getType ()==Record.PUNCH_IN) {

      punchIn=record.getOutTime();

      }else if(record.getType ()==Record.PUNCH_OUT) {

      punchOut=record.getOutTime();

      }

      }

      return new EmployeeSalary (employee,month, punchIn, punchOut);

      }

      3 教學(xué)效果

      通過真實案例的項目教學(xué)實踐,學(xué)生全程參與了項目的需求分析、功能設(shè)計、數(shù)據(jù)庫設(shè)計、實體類設(shè)計、工具類設(shè)計、實體操作類設(shè)計、測試類設(shè)計和編碼等,對項目的開發(fā)流程有了一定的了解,在理論課上所學(xué)的《Java程序設(shè)計》課程的章節(jié)知識點通過項目實踐得到綜合運(yùn)用,學(xué)生的學(xué)習(xí)積極性和自信心也得到相應(yīng)的提高,進(jìn)而增強(qiáng)了就業(yè)的內(nèi)動力和競爭力。

      猜你喜歡
      Java程序設(shè)計考勤證書
      WJCI 收錄證書
      CSCD收錄證書
      草原與草坪(2022年1期)2022-05-11 10:44:40
      收錄證書
      收錄證書
      基于人臉識別技術(shù)的考勤應(yīng)用研究
      電子制作(2019年12期)2019-07-16 08:45:28
      智能人臉識別考勤系統(tǒng)
      電子制作(2019年9期)2019-05-30 09:42:00
      便攜式指紋考勤信息管理系統(tǒng)設(shè)計
      《Java程序設(shè)計》課程網(wǎng)站的設(shè)計與實現(xiàn)
      Java程序設(shè)計基礎(chǔ)課實踐教學(xué)中的分層教學(xué)模式研究
      基于實訓(xùn)項目的Java程序設(shè)計實驗教學(xué)模式改革與實踐
      新和县| 临桂县| 敖汉旗| 辽宁省| 舟曲县| 韶关市| 雷山县| 筠连县| 鹤岗市| 林口县| 广安市| 潜山县| 宜宾市| 永登县| 旅游| 福清市| 孝感市| 昆明市| 台北市| 南皮县| 虹口区| 永丰县| 丹东市| 揭东县| 洛宁县| 修水县| 阜南县| 芦溪县| 全椒县| 天峨县| 德格县| 会同县| 嘉兴市| 玉环县| 壶关县| 孟村| 白银市| 英吉沙县| 腾冲县| 永康市| 且末县|