나는 순수 지불을 계산하는 프로그램을 만드는 짧은 프로젝트를 진행하고 있습니다. 사용자는 이름, 근무 시간 및 요금을 입력합니다. 데이터를 수신하려면 생성자 대신 속성을 사용해야합니다. 두 가지 수업이 있어야합니다. Main 클래스 및 계산을 수행하고 overrideToString() 메서드를 사용하여 결과를 표시하는 Pay (string.format 명령 사용) 클래스를 호출합니다.C# 2 클래스의 개체/인스턴스 값을 참조/사용/설정하는 방법
프로그램에서 이름, 근무 시간 및 지불 한 금액 (모두 사용자 입력)을 표시 할 수있는 문제가 있습니다. 그러나 다른 여러 변수는 "0"으로 표시됩니다. 또한 Main 클래스에서 만든 객체 "aPay"의 인스턴스가되도록 이러한 변수를 설정하는 방법을 알 수 없습니다.
이러한 변수를 Main 클래스 또는 Pay 클래스의 aPay 개체 인스턴스로 설정해야합니까? 그렇다면 어떻게해야합니까? 지난 한 시간 동안 여러 가지 시도를했거나 지난 주에 과제로 사용했던 유사한 프로그램을 참조하는 경우에도이를 파악하려고 시도했지만이 개념과 올바른 내용으로 머리를 감싸고있는 것처럼 보일 수 없습니다. 이행.
나는 아래 코드를 게시 할 것이며, 어떤 도움이나 설명이든 진심으로 감사 할 것입니다. 메인 클래스했다
class MainClass
{
public static void Main(string[] args)
{
Header();
Directions();
Pay aPay = new Pay();
Write("**********************************\n");
Write("Enter name: ");
aPay.WorkerName = ReadLine();
Write("Enter hours: ");
aPay.HoursWorked = double.Parse(ReadLine());
Write("Enter rate: ");
aPay.RateOfPay = double.Parse(ReadLine());
Write("**********************************\n");
WriteLine(aPay.ToString());
}
private static void Header()
{
WriteLine("*************************************************************");
WriteLine("\t Pay");
WriteLine("\t Calculate Net Pay");
WriteLine("\t Matt Craig");
WriteLine("\t " + DateTime.Today);
WriteLine("*************************************************************");
}
private static void Directions()
{
WriteLine("This program will determine pay.");
WriteLine(" ");
WriteLine("You will be asked to enter hours worked"
+ "\n and rate of pay");
WriteLine(" ");
WriteLine("*************************************************************");
}
}
, 나는 아래의 지불 클래스를 게시합니다 :
public class Pay
{
private string workerName;
private double hoursWorked;
private double rateOfPay;
private double grossPay;
private double netPay;
private double FICA_TAX = 0.0765;
private double FED_TAX = 0.20;
private double STATE_TAX = 0.10;
private double HEALTH_INS = 0.07;
private double ficaTax;
private double fedTax;
private double stateTax;
private double healthIns;
public Pay()
{
/* Pay aPay = new Pay();
aPay.grossPay = grossPay;
aPay.netPay = netPay;
aPay.ficaTax = ficaTax;
aPay.fedTax = fedTax;
aPay.stateTax = stateTax;
aPay.healthIns = healthIns; */
}
public string WorkerName
{
set
{
workerName = value;
}
}
public double HoursWorked
{
set
{
hoursWorked = value;
}
}
public double RateOfPay
{
set
{
rateOfPay = value;
}
}
public double GrossPay
{
get
{
grossPay = (hoursWorked * rateOfPay);
return grossPay;
}
}
public double NetPay
{
get
{
netPay = grossPay - FICA_TAX - FED_TAX - STATE_TAX - HEALTH_INS;
return netPay;
}
}
public double FicaTax
{
get
{
ficaTax = FICA_TAX * grossPay;
return ficaTax;
}
}
public double FedTax
{
get
{
fedTax = FED_TAX * grossPay;
return fedTax;
}
}
public double StateTax
{
get
{
stateTax = STATE_TAX * grossPay;
return stateTax;
}
}
public double HealthIns
{
get
{
healthIns = HEALTH_INS * grossPay;
return healthIns;
}
}
public override string ToString()
{
string stats;
stats = string.Format("Name\t\t {0} \n", workerName);
stats += string.Format("Gross Pay\t {0} \n", grossPay);
stats += string.Format("FICA tax\t {0} \n", ficaTax);
stats += string.Format("Federal tax\t {0} \n", fedTax);
stats += string.Format("State tax\t {0} \n", stateTax);
stats += string.Format("Health Insurance {0} \n", healthIns);
stats += string.Format("Net pay\t\t {0} \n", netPay);
return stats;
}
}
4 가지 답변 주셔서 감사합니다. 나는 이미 그것을 시도했다는 것을 맹세 할 수 있었지만 나는 가질 수 없었을 것입니다. 또는 나는 프로그램을 작성하는 초기 단계에서 그것을 시도 할 것입니다. 너는 매우 도움이되었다! – Snags
이 값은 aPay 객체의 인스턴스가 아니며 정확합니까? WorkerName, HoursWorked 및 RateOfPay의 사용자 입력 값을 aPay에 할당해야합니까? 그렇다면 Pay 클래스에 포함 된 다른 값도 aPay 인스턴스입니까? (grossPay, ficaTax, fedTax, stateTax, healthIns, netPay) – Snags
그렇다면 다음과 유사한 작업을 수행 할 수 있습니까? Write ("Enter name :"); aPay.WorkerName = ReadLine(); Pay 클래스에 포함 된 사용자가 입력하지 않은 변수에 aPay 객체의 인스턴스를 만들기 위해? – Snags