person類:
十載的張灣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整張灣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“張灣網(wǎng)站設(shè)計(jì)”,“張灣網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
public abstract class Person {
public double pay; // 總工資
public int hour; // 課時(shí)
public double countPay(int hour) {
return pay;
}
}
助教類:
public class Assistant extends Person {
public final double BASE_PAY = 800; // 基本工資
public final double HOUR_PAY = 25; // 每課時(shí)的費(fèi)用
public double countPay(int hour) {
pay = BASE_PAY + hour * HOUR_PAY;
return pay;
}
}
講師類:
public class Instructor extends Person {
public final double BASE_PAY = 1000; // 基本工資
public final double HOUR_PAY = 35; // 每課時(shí)的費(fèi)用
public double countPay(int hour) {
pay = BASE_PAY + hour * HOUR_PAY;
return pay;
}
}
副教授類:
public class AssistantProfesson extends Person {
public final double BASE_PAY = 1200; // 基本工資
public final double HOUR_PAY = 40; // 每課時(shí)的費(fèi)用
public double countPay(int hour) {
pay = BASE_PAY + hour * HOUR_PAY;
return pay;
}
}
教授類:
public class Professor extends Person {
public final double BASE_PAY = 1400; // 基本工資
public final double HOUR_PAY = 50; // 每課時(shí)的費(fèi)用
public double countPay(int hour) {
pay = BASE_PAY + hour * HOUR_PAY;
return pay;
}
}
測(cè)試類:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
System.out.println("人員類型如下:");
System.out.println("1 = 助教\r\n2 = 講師\r\n3 = 副教授\r\n4 = 教授");
System.out.print("請(qǐng)選擇:");
BufferedReader personType = new BufferedReader(new InputStreamReader(
System.in));
String type = null;
int hour = 0;
try {
type = personType.readLine();
} catch (Exception e) {
e.printStackTrace();
}
if (type.matches("[1-4]{1}")) {
switch (Integer.valueOf(type)) {
case 1:
hour = getHour();
if(hour == 0){return;}
Person p1 = new Assistant();
double pay1 = p1.countPay(hour);
System.out.println("助教工作" + hour + "課時(shí)的工資為:" + pay1);
break;
case 2:
hour = getHour();
if(hour == 0){return;}
Person p2 = new Instructor();
double pay2 = p2.countPay(hour);
System.out.println("講師工作" + hour + "課時(shí)的工資為:" + pay2);
break;
case 3:
hour = getHour();
if(hour == 0){return;}
Person p3 = new AssistantProfesson();
double pay3 = p3.countPay(hour);
System.out.println("副教授工作" + hour + "課時(shí)的工資為:" + pay3);
break;
case 4:
hour = getHour();
if(hour == 0){return;}
Person p4 = new Professor();
double pay4 = p4.countPay(hour);
System.out.println("教授工作" + hour + "課時(shí)的工資為:" + pay4);
break;
}
} else {
System.out.println("輸入數(shù)據(jù)錯(cuò)誤!程序提前推出!");
return;
}
}
public static int getHour() {
System.out.print("請(qǐng)輸入工作時(shí)間:");
BufferedReader hours = new BufferedReader(new InputStreamReader(
System.in));
String strHour = null;
int hour = 0;
try {
strHour = hours.readLine();
} catch (Exception e) {
e.printStackTrace();
}
if (strHour.matches("^[0-9]+?")) {
hour = Integer.parseInt(strHour);
} else {
System.out.println("輸入?yún)?shù)不正確!程序提前推出!");
}
return hour;
}
}
第一章 需求分析
1.1 功能要求
1.1.1 功能概況
本次設(shè)計(jì)要求運(yùn)用面向?qū)ο笤O(shè)計(jì)知識(shí),利用 JAVA 語言設(shè)計(jì)實(shí)現(xiàn)一個(gè)“小型公司工資管理系統(tǒng)”。
1.1.2 存儲(chǔ)功能
能夠存儲(chǔ)雇員的編號(hào)、姓名、性別、所在部門,級(jí)別,并進(jìn)行工資的計(jì)算。 其中,雇員級(jí)別分為經(jīng)理、技術(shù)人員、銷售人員和銷售經(jīng)理。四類人員的月薪計(jì)算方法如下:經(jīng)理拿固定月薪;技術(shù)人員按小時(shí)領(lǐng)取月薪;銷售人員按其當(dāng)月銷售額的提成領(lǐng)取工資;銷售經(jīng)理既拿固定月薪也領(lǐng)取銷售提成。由此要求,該項(xiàng)目需要利用數(shù)據(jù)庫(kù)的關(guān)系表存儲(chǔ)數(shù)據(jù)。
1.1.3 添加功能
程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求員工的編號(hào)要唯一,如果添加了重復(fù)編號(hào)的記錄時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加。需要利用 Java 語言連接數(shù)據(jù)庫(kù),使用數(shù)據(jù)庫(kù)添加語句。
1.1.4 查詢功能
可根據(jù)編號(hào)、姓名等信息對(duì)已添加的記錄進(jìn)行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息。利用 Java Swing 控件進(jìn)行展示。
1.1.5 編輯功能
可根據(jù)查詢結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意編號(hào)的唯一性。
1.1.6 刪除功能
主要實(shí)現(xiàn)對(duì)已添加的人員記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒有相應(yīng)的人員記錄, 則提示“記錄為空!”并返回操作;否則,輸入要?jiǎng)h除的人員的編號(hào)或姓名,根據(jù)所輸入的信息刪除該人員記錄,如果沒有找到該人員信息,則提示相應(yīng)的記錄不存。
1.1.7 統(tǒng)計(jì)功能
能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì)。例如,統(tǒng)計(jì)四類人員數(shù)量以及總數(shù),或者統(tǒng)計(jì)男、女員工的數(shù)量,或者統(tǒng)計(jì)平均工資、最高工資、最低工資等信息。利用數(shù)據(jù)庫(kù)語句完成統(tǒng)計(jì)。
1.1.8 界面功能
利用 java 的 GUI 功能設(shè)計(jì)系統(tǒng)的圖形用戶界面,要求界面美觀,易用。
代碼一:
private Double weeklySalary;
代碼二:
public void setWeeklySalary(Double weeklySalary){
this.weeklySalary=weeklySalary;
}
代碼三:
private Double salary;
private Integer piece;
public PieceWorker (String name,Integer p,Double s) {
super(name);
setSalary(s);
setPiece(p);
}
public void setPiece(Integer p){
this.piece=p;
}
public void setSalary(Double s){
this.salary=s;
}
public double earnings() {
return piece*salary;
}
代碼四:
private Double salary;
private Integer hour;
public PieceWorker (String name,Integer h,Double s) {
super(name);
setSalary(s);
setHour(h);
}
public void setHour(Integer h){
this.hour=h;
}
public void setSalary(Double s){
this.salary=s;
}
public double earnings() {
return h*salary;
}
JAVA計(jì)算工人工資,參考例子如下:
import java.util.Scanner;
public class Demo00 {
//定義一個(gè)三維數(shù)組,用于記錄每個(gè)部門、分支、績(jī)效工資
private static final float[][][] SALARY_OF_PER_HOUR = {
{{10.75f,12.50f,14.50f},{11.75f,14.50f,17.50f}},
{{13.00f,16.00f,18.50f},{15.00f,18.50f,22.00f}},
{{16.75f,18.50f,20.50f},{19.25f,25.00f,30.00f}}
};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//輸入姓名
System.out.println("請(qǐng)輸入姓名:");
String name = sc.nextLine();
//輸入部門并驗(yàn)證
System.out.println("請(qǐng)輸入部門: A,B,C");
char dept = sc.nextLine().charAt(0);
if(dept'A'||dept'C')
{
System.out.println("輸入有誤,系統(tǒng)將退出");
System.exit(0);
}
//輸入分支機(jī)構(gòu)并驗(yàn)證
System.out.println("請(qǐng)輸入分支機(jī)構(gòu): 1,2");
char div = sc.nextLine().charAt(0);
if(div'1'||div'2')
{
System.out.println("輸入有誤,系統(tǒng)將退出");
System.exit(0);
}
//輸入薪績(jī)表并驗(yàn)證
System.out.println("請(qǐng)輸入薪績(jī)表: a,b,c");
char sal = sc.nextLine().charAt(0);
if(sal'a'||sal'c')
{
System.out.println("輸入有誤,系統(tǒng)將退出");
System.exit(0);
}
//輸入小時(shí)數(shù)
System.out.println("請(qǐng)輸入本周工作時(shí)間(整小時(shí)數(shù)):");
int hours = sc.nextInt();
float salary = 0;
//每個(gè)小時(shí)的薪水
float salaryPerHour = SALARY_OF_PER_HOUR[dept-'A'][div-'1'][sal-'a'];
//分別計(jì)算40小時(shí)內(nèi)和超過40小時(shí)的薪水
if(hours=40)
{
salary += salaryPerHour*hours;
}
else
{
salary += salaryPerHour*hours+(hours-40)*1.5*salaryPerHour;
}
//輸出結(jié)果
System.out.println("姓名:\t"+name+"\n部門:\t"+dept+"\n分支機(jī)構(gòu):\t"+div
+"\n薪績(jī)表:\t"+sal+"\n工作時(shí)間:\t"+hours+"\n薪水:\t"+salary);
}
}
//Best wishes!
對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查?
以下是 sql server 2013+java.實(shí)現(xiàn)的是對(duì)MSC對(duì)象的增刪改查.
需要下載連接驅(qū)動(dòng)程序:com.microsoft.sqlserver.jdbc.SQLServerDriver
網(wǎng)上搜一下就行
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
class MSC
{
public String MscID;
public String MscName;
public String MscCompany;
public float MscLongitude;
public float MscLatitude;
public float MscAltitude;
public MSC(String MscID, String MscName, String MscCompany,
float MscLongitude, float MscLatitude,float MscAltitude){
this.MscID = MscID;
this.MscName = MscName;
this.MscCompany = MscCompany;
this.MscLongitude =MscLongitude;
this.MscLatitude = MscLatitude;
this.MscAltitude = MscAltitude;
}
}
public class sqlserverjdbc {
public Connection getConnection(){
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加載JDBC驅(qū)動(dòng)
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=gsm"; //連接服務(wù)器和數(shù)據(jù)庫(kù)sample
String userName = "sa"; //默認(rèn)用戶名
String userPwd = "123"; //密碼
Connection dbConn = null;
try {
Class.forName(driverName);
dbConn =DriverManager.getConnection(dbURL, userName, userPwd);
} catch (Exception e) {
e.printStackTrace();
}
return dbConn;
}
public void printUserInfo(){
Connection con = getConnection();
Statement sta = null;
ResultSet rs = null;
System.out.println("打印表格MSC信息");
try {
sta = con.createStatement();
rs = sta.executeQuery("select * from MSC信息");
System.out.println("MscID\tMscName\tMscCompany\tMscLongitude\tMscLatitude\tMscAltitude");
while(rs.next()){
System.out.println(rs.getString("MscID")+"\t"+
rs.getString("MscName")+"\t"+
rs.getString("MscCompany")+"\t"+
rs.getFloat("MscLongitude")+"\t"+
rs.getFloat("MscLatitude")+"\t"+
rs.getFloat("MscAltitude"));
}
con.close();
sta.close();
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("打印完成\n");
}
public void delete(String MscID){
Connection con = getConnection();
String sql = "delete from MSC信息 where MscID = " + MscID;
PreparedStatement pst;
System.out.println("刪除表格MSC信息中 ID = "+MscID+"的記錄");
try {
pst = con.prepareStatement(sql);
pst.execute();
pst.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("記錄刪除失?。。?!");
}
System.out.println("記錄刪除成功!??!\n");
}
public void insert(MSC msc){
Connection con = getConnection();
String sql = "insert into MSC信息 values(?,?,?,?,?,?)";
PreparedStatement pst;
System.out.println("插入一條記錄");
try {
pst = con.prepareStatement(sql);
pst.setString(1, msc.MscID);
pst.setString(2, msc.MscName);
pst.setString(3, msc.MscCompany);
pst.setFloat(4, msc.MscLongitude);
pst.setFloat(5, msc.MscLatitude);
pst.setFloat(6, msc.MscAltitude);
pst.execute();
pst.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("插入失?。。?!");
}
System.out.println("插入成功?。。n");
}
//更新MscID的MscName
public void updateMscName(String MscID, String MscName){
Connection con = getConnection();
String sql = "update MSC信息 set MscName = ? where MscID = ?";
PreparedStatement pst;
System.out.println("修改一條記錄");
try {
pst = con.prepareStatement(sql);
pst.setString(1, MscName);
pst.setString(2, MscID);
pst.execute();
pst.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("修改失?。。?!");
}
System.out.println("修改成功?。?!\n");
}
public static void main(String args[]){
sqlserverjdbc sql = new sqlserverjdbc();
sql.printUserInfo();
sql.delete("1111");
sql.printUserInfo();
sql.updateMscName("5215", "聯(lián)想");
sql.printUserInfo();
sql.insert(new MSC("1111", "中興" ," 中興", (float)12.2, (float)3.4,(float)45.5));
sql.printUserInfo();
}
}
網(wǎng)站標(biāo)題:工資系統(tǒng)代碼java,工資查詢系統(tǒng)源碼
文章分享:http://aaarwkj.com/article40/dsspcho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、微信公眾號(hào)、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、ChatGPT、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)