【发布时间】:2013-12-04 05:02:46
【问题描述】:
我需要用 C# 编写一个简单的测试控制台应用程序来跟踪学校筹款活动。这是预期输出的样子。用户输入提示将被放置在一个循环内,因此程序会继续要求输入,直到输入“999”作为用户的等级。如果/当输入 999 值时,程序应计算贡献的平均值,并将结果与祝贺信息显示给最大的收集器。
//创建一个将实现所需私有变量的类。创建类方法来完成所需的功能。在 main 方法中,实例化一个募捐对象,并使用该对象访问私有变量。这个问题甚至有意义吗?你如何创建一个类来完成所有这些任务?
Sample output:
/*School Fund Raiser Tracker Application */
Please enter the grade of the contributor (6, 7 or 8)
(Enter 999 to exit): 6
Please enter the amount of the contribution: 100
Please enter the grade of the contributor (6, 7 or 8)
(Enter 999 to exit): 6
Please enter the amount of the contribution: 200
Please enter the grade of the contributor (6, 7 or 8)
(Enter 999 to exit): 7
Please enter the amount of the contribution: 500
Please enter the grade of the contributor (6, 7 or 8)
(Enter 999 to exit): 7
Please enter the amount of the contribution: 100
Please enter the grade of the contributor (6, 7 or 8)
(Enter 999 to exit): 999
Grade Level # of Contrib Total Amount Average
6 2 300 150
7 2 600 300
我的看法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FundRaiser
{
public class SchoolFundRaiser
{
//public int grade { get; set; }
//public double contribution { get; set; }
public double average { get; set; }
public int numOfContributions { get; set; }
public void CalculateContribution()
{
int grade= 0; double contribution = 0.0;
double total6 = 0.0, total7 = 0.0, total8 = 0.0, average6 = 0.0, average7 = 0.0, average8 = 0.0;
int count6 = 0, count7 = 0, count8 = 0;
while (grade != 999)
{
Console.WriteLine("Please Enter your grade(6, 7, 8). Enter 999 to quit.");
grade = Convert.ToInt32(Console.ReadLine());
if (grade != 999)
{
Console.WriteLine("Please Enter the Amount you want to contribute. ");
contribution = Convert.ToDouble(Console.ReadLine());
}
else
{
Console.WriteLine("Exiting...");
}
if (grade == 6)
{
total6 = total6 + contribution;
count6 = count6 +1;
}
if (grade == 7)
{
total7 = total7 + contribution;
count7 = count7 + 1;
}
else if (grade == 8)
{
total8 = total8 + contribution;
count8= count8 + 1;
}
}
average6 = total6 / count6;
average7 = total7 / count7;
average8 = total8 / count8;
Console.WriteLine("Grade \t" + "Num of Contributions \t" + "Total Contribution \t" + "Average contribution");
if (grade == 6)
{
average = average6;
numOfContributions = count6;
Console.WriteLine(grade + "\t" + numOfContributions + "\t" + total6 + "\t" + average);
}
if (grade == 7)
{
average = average7;
numOfContributions = count7;
Console.WriteLine(grade + "\t" + numOfContributions + "\t" + total7 + "\t" + average);
}
else
{
average = average8;
numOfContributions = count8;
Console.WriteLine(grade + "\t" + numOfContributions + "\t" + total8 + "\t" + average);
}
}
}
class Program
{
static void Main(string[] args)
{
SchoolFundRaiser testSchoolFundRaiser = new SchoolFundRaiser();
testSchoolFundRaiser.CalculateContribution();
}
}
}
【问题讨论】:
-
您至少尝试过什么吗?如果是,请在此处发布。
-
@Szymon 出于某种原因,它一开始选择不显示我的代码。 Ctrl + K 错误?
-
您的代码看起来不错。什么问题?
-
我讨厌我设计课程的方式。我想使用数组而不是所有这些变量。我如何创建数组来跟踪所有可能等级(6,7 或 8)的用户输入以及它们各自的贡献,所以我可以稍后使用它们来计算平均,总计等