国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

林 敏 郝麗娜

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

《Java程序設(shè)計》是一門重要的計算機編程課程,是計算機相關(guān)專業(yè)必修課程之一,具有較強的理論性、專業(yè)性和實踐性。目前,本門課程存在教學(xué)內(nèi)容多課時少,教學(xué)方式重理論輕實踐,學(xué)生動手實踐能力和編碼開發(fā)能力較弱的現(xiàn)象,進而可能導(dǎo)致學(xué)生就業(yè)競爭力不強、求職信心受挫。通過調(diào)查發(fā)現(xiàn)不少學(xué)生感到該門課程入門難度較大、內(nèi)容較多、課程學(xué)完了但還是不太會運用。為了解決這一問題,筆者在實踐教學(xué)中采用項目驅(qū)動教學(xué)方式,結(jié)合“1+X”證書制度下的《Java程序設(shè)計》課程教學(xué)改革的要求,以“采用Java實現(xiàn)員工考勤系統(tǒng)”為例,對該課程的實踐教學(xué)進行了設(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è)技能”等級證書為例,證書共分為初、中、高三個等級,每一等級均包含理論考試和上機考試兩部分。理論考試為選擇題,上機考試為編程實踐題,同一次考試中兩部分考試成績均達到60分及以上者才能獲得證書。

大數(shù)據(jù)應(yīng)用開發(fā)(Java)職業(yè)技能證書(初級)要求學(xué)生掌握Java開發(fā)環(huán)境搭建、語法基礎(chǔ)、Java面向?qū)ο蟪绦蛟O(shè)計、軟件測試、運維基礎(chǔ)、成本核算方法等,初級對標大數(shù)據(jù)領(lǐng)域的測試工程師。大數(shù)據(jù)應(yīng)用開發(fā)(Java)職業(yè)技能證書(中級)要求學(xué)生掌握Java編程基礎(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ù)可視化等,高級對標大數(shù)據(jù)領(lǐng)域的開發(fā)工程師。

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

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

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

1.3 實踐學(xué)時安排

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

2 教學(xué)實施

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

2.1 需求分析

某公司固定上下班時間,規(guī)定每個工作日8點上班17:00下班,并使用傳統(tǒng)指紋打卡機進行員工考勤。在互聯(lián)網(wǎng)迅速發(fā)展的今天,該公司決定使用手機軟件取代傳統(tǒng)指紋打卡機,規(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ù)庫。具體的操作為將準備好的考勤信息文件employees.txt和員工信息文件records.txt中的數(shù)據(jù)分別存入到數(shù)據(jù)庫中的EMPLOYEES表和RECORDS表。

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

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

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

為了方便數(shù)據(jù)進入數(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、員工姓名、員工工資及打卡記錄等信息。為增強數(shù)據(jù)安全性,將所有字段訪問屬性設(shè)置為private,然后用get和set方法對各個字段進行封裝。相關(guān)字段如下。

private int id; //員工ID

private String name; //員工姓名

private double salary; //員工工資

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

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

private Employee employee; //員工信息

private int month; //月份

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

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

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

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

private int employeeId; //員工號

private long recordTime; //打卡時間

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

private double locationX; //打卡位置 橫坐標

private double locationY; //打卡位置 縱坐標

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將讀入的字符串存進Employee對象中,返回Employee對象集合。另一個是readRecords()方法,其功能是將存有員工打卡記錄的文本文件records.txt通過FileReader文件輸入流順序地讀入,然后調(diào)用工具類RecordUtil將讀入的字符串存入Record對象中,返回Record對象集合。方法的定義如下。

public static List readEmployees()

public static List readRecords()

(3)實體操作類

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

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

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

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

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

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

RecordDao類主要用來對Record實體類進行操作,實現(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é)知識點通過項目實踐得到綜合運用,學(xué)生的學(xué)習(xí)積極性和自信心也得到相應(yī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é)模式改革與實踐
滨海县| 信宜市| 安溪县| 丹棱县| 郓城县| 灵宝市| 玉田县| 定日县| 赤水市| 安义县| 南木林县| 池州市| 怀柔区| 新宁县| 军事| 闽侯县| 广州市| 潼关县| 乌兰浩特市| 柯坪县| 维西| 涞水县| 鄄城县| 东安县| 永定县| 慈溪市| 泗阳县| 中西区| 澄城县| 大竹县| 德钦县| 个旧市| 潮州市| 虹口区| 贵南县| 聂拉木县| 兴文县| 屏东县| 泽州县| 清苑县| 扬州市|