0
抽象クラス月額料金は、1か月の勤務日数を掛けて計算されます。例えば給与やネット賃金給与控除 の控除計算し、従業員や控除の給与計算給与計算しようとして イム:医師= 10000、教師= 20000、エンジニアを= 30000抽象クラスを使用して計算賃金の計算、控除計算、正味賃金の計算を試みているC#
にしよう私はそれが間違って手に入れたところ、私の質問があり、出力 //
ID 001 Name J Salary 15750.00 Deduction 3386.25 Net Pay 12363.75
namespace Practice
{
////////////////////////////////////////////
////////////////////////////////////////////
///////////// class employee ///////////////
////////////////////////////////////////////
////////////////////////////////////////////
abstract class Employee
{
int employeeid;
string name;
double salary, deduction, daysworked;
public Employee()
{
}
public int Employeeid
{
get { return employeeid; }
set { employeeid = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public double Daysworked
{
get { return daysworked; }
set { daysworked = value; }
}
public double Deduction
{
get { return deduction; }
set { deduction = value; }
}
public double Salary
{
get { return salary; }
set { salary = value; }
}
public virtual double calculatesalary()
{
return Salary * Daysworked;
}
public virtual double calulatededuction()
{
return calculatesalary() * Deduction;
}
}
////////////////////////////////////////////
////////////////////////////////////////////
///////////// class sample1 ///////////////
////////////////////////////////////////////
////////////////////////////////////////////
class sample1 : Employee
{
public sample1 (string name,int employeeid, double daysworked,double salary)
{
Name = name;
Employeeid = employeeid;
Daysworked = daysworked;
Salary = salary;
}
public override double calculatesalary()
{
if (calculatesalary() <= 10000)
{
Deduction = 0.11;
}
if (calculatesalary() >= 10001 && calculatesalary() <= 20000)
{
Deduction = 0.22;
}
if (calculatesalary() >= 20001 && calculatesalary() <= 30000)
{
Deduction = 0.34;
}
if (calculatesalary() >= 30001)
{
Deduction = 0.58;
}
return calculatesalary() * Deduction;
}
}
}
を取得しますか? :
あなたの質問は何ですか? –
どこが間違っていたのですか?それは私の苦労したダブル計算法ですか? –
'calculatealary'はそれ自身を再帰的に呼び出すようです。おそらく、このコードで無限ループに陥るでしょう。おそらく 'base.calculatesalary'を呼び出すことを意味しますか? –