C# 工资结算系统-类继承

本文介绍了一个薪资结算系统的实现方案,包括普通员工、销售员、计时工和计件工四类员工的不同工资计算方式。系统使用C#语言编程,通过类继承实现了不同类型的员工对象,提供了添加员工、计算工资、查询等功能。


(一)阐述

  1. 普通员工:Employee固定月薪。
  2. 销售员:Salesman固定月薪+销售额*提成率。
  3. 计时工人:HourlyWorker固定月薪+工作小时数每小时酬金(每月超过160小时,酬金1.5倍)
  4. 计件工人:固定月薪+每件酬金*生产的产品件数。

(二)截图

  1. 添加员工
    员工号由程序自动提供,添加员工需要输入姓名和工种。
    在这里插入图片描述在这里插入图片描述
    同样依次输入员工信息。

  2. 计算并输出每月工人工资
    通过ID对于对应的员工输入对应信息:

    • 对于普通员工直接输出工资信息
    • 对于销售员输入销售额
    • 对于计时工输入工时,并体现激励机制
    • 对于计件工输入生产数
      在这里插入图片描述
  3. 查询单个员工本月工资
    在这里插入图片描述
    其它类同。

  4. 打印所有员工工资
    在这里插入图片描述

(三)代码

/*
 * 工资结算系统
 * class
 *      普通员工    Employee
 *      销售员     Salesman
 *      计时工     HourlyWorker
 *      计件工     PieceWorker
 *      主类      Program
 */

using System;
using System.Collections;
using System.Text.RegularExpressions;
using static System.Console;
using static System.Convert;

namespace SalarySettlemen
{
   
   
    /*
     * 普通员工
     *  员工号、姓名、工种、固定工资
     */
    public class Employee
    {
   
   
        private int id;
        private string name = "";
        private string workType = "普通";
        private Decimal baseSalary;
        private Decimal salary;

        public Employee() {
   
   }

        public Employee(int id, string name, string workType, Decimal baseSalary)
        {
   
   
            this.id = id;
            this.name = name;
            this.workType = workType;
            this.baseSalary = baseSalary;
            salary = baseSalary;
        }
        // 打印
        public virtual void print()
        {
   
   
            WriteLine("员工号:{0}  员工姓名{1}\n工种:{2}  固定月薪:{3}k", id, name, workType, baseSalary); 
        }

        public int ID
        {
   
   
            get => id;
            set => id = value;
        }
        public string Name
        {
   
   
            get => name;
            set => name = value;
        }
        public string WorkType
        {
   
   
            get => workType;
            set => workType = value;
        }
        public Decimal BaseSalary
        {
   
   
            get => baseSalary;
            set => baseSalary = value;
        }
        public decimal Salary
        {
   
   
            get => salary;
            set => salary = value;
        }
    }
    /*
     * 销售员
     *  提成、销售额、薪水
     */
    public class Salesman:Employee
    {
   
   
        private double deductPercent;
        private Decimal saleAmount;
        private Decimal salary;
        
        public Salesman() {
   
   }
        public Salesman(Decimal saleAmount, double deductPercent,
                        int id, string name, string workType, Decimal baseSalary)
        {
   
   
            ID = id;
            Name = name;
            WorkType = workType;
            BaseSalary = baseSalary;
            this.saleAmount = saleAmount;
            this.deductPercent = deductPercent;
            salary = saleAmount * (Decimal) deductPercent + baseSalary;
            Salary = salary;
        }
        // 打印
        public override void print()
        {
   
   
            base.print();
            WriteLine("销售额:{0} 提成率:{1}% 月薪:{2}k", saleAmount, deductPercent * 100, salary);
        }
    }
    /*
     * 计时工
     *  工时、时金、薪水
     */
    public class HourlyWorker:Employee
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值