【问题标题】:Course and Grades not displaying in C# console课程和成绩未显示在 C# 控制台中
【发布时间】:2016-03-24 13:55:58
【问题描述】:

我有接受用户名和主题标记的代码。我想在表格结构中显示课程、分数和成绩,但没有显示数据。

您能解释一下如何将数据放入表格格式,例如:{1,13}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace End_of_semester_results_assignment
{
class Program
{
    static void Main(string[] args)
    {

        string Name = "Please enter your name";
        string NameEntered;
        string csharp= "PROGRAMMING USING C#";
        string fcs = "FOUNDATIONS OF COMPUTER SCIENCE";
        string aw = "ACADEMIC WRITING";
        string ist = "INTRODUCTORY STATISTICS";
        string frl = "FRENCH";
        string adv = "African Development";

        double fx;
        double mean;
        double FTOTAL;
        double X;
        double OG;

        int CHours = 3;

        Console.WriteLine(Name);
        NameEntered = Console.ReadLine();
        Console.Clear();

        Console.WriteLine("Welcome To The CWA Calculator.....");
        Console.WriteLine("");
        Console.WriteLine(" GRADING SYSTEM ");
        Console.WriteLine("XXXXXXXXXXXXXXXX");
        Console.WriteLine("");
        Console.WriteLine(" 70-100  = A ");
        Console.WriteLine(" 60-69.9 = B");
        Console.WriteLine(" 50-59.9 = C");
        Console.WriteLine(" 40-49.9 = D");
        Console.WriteLine(" 0-39.9  = F");

        Console.WriteLine("");
        Console.WriteLine("END OF SEMESTER RESULTS FOR - {0}", NameEntered);



        Console.WriteLine("xxxxxxxxxxxxxxxxxxxxxxxxxxx");
        Console.WriteLine("");
        Console.WriteLine("Course List...");
        Console.WriteLine("1)PROGRAMMING USING C#: ");
        Console.WriteLine("");
        Console.WriteLine("2)FOUNDATIONS OF COMPUTER SCIENCE: ");
        Console.WriteLine("");
        Console.WriteLine("3)ACADEMIC WRITING: ");
        Console.WriteLine("");
        Console.WriteLine("4)INTRODUCTORY STATISTICS: ");
        Console.WriteLine("");
        Console.WriteLine("5)FRENCH: ");
        Console.WriteLine("");
        Console.WriteLine("6)AFRICAN DEVELOPMENT: ");
        Console.WriteLine("");
        Console.WriteLine("END OF SEMESTER CWA");
        Console.WriteLine("Enter your marks for PROGRAMMING USING C#: ");
        Console.WriteLine();
        int A = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine();

        Console.WriteLine("Enter your marks For Foundations Of Computer Science: ");
        Console.WriteLine();
        int B = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine();

        Console.WriteLine("Enter your marks for Academic Writing: ");
        Console.WriteLine();
        int C = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine();

        Console.WriteLine("Enter your marks for Introductory Statistics: ");
        Console.WriteLine();
        int D = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine();

        Console.WriteLine("Enter your marks for French(basic): ");
        Console.WriteLine();
        int E = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine();

        Console.WriteLine("Enter your  marks for African Development: ");
        Console.WriteLine();
        int F = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine();

        fx = A * CHours + B * CHours + C * CHours + D * CHours + E * CHours + F * CHours;
        FTOTAL = CHours + CHours + CHours + CHours + CHours + CHours;
        mean = fx / FTOTAL;
        OG = mean;

        Console.ForegroundColor = ConsoleColor.White;
        Console.BackgroundColor = ConsoleColor.Black;

        Console.WriteLine("|--------------------------------------------------------------|");
        Console.WriteLine("|COURSE       |   MARKS     |   GRADE     |  W.MARK            |");
        Console.WriteLine("|-------------|-------------|-------------|--------------------|");
        Console.WriteLine("|", csharp,  "|{0,6}        |{1,13}|{2,13}|", A, A * CHours,  "|");
        Console.WriteLine("|             |             |             |                    |");
        Console.WriteLine("|", fcs,     "|{0,6}        |{1,13}|{2,13}|", B, B * CHours,  "|");
        Console.WriteLine("|             |             |             |                    |");
        Console.WriteLine("|", aw,      "|{0,6}        |{1,13}|{2,13}|", C, C * CHours,  "|");
        Console.WriteLine("|             |             |             |                    |");
        Console.WriteLine("|", frl,     "|{0,6}        |{1,13}|{2,13}|", D, D * CHours,  "|");
        Console.WriteLine("|             |             |             |                    |");
        Console.WriteLine("|", ist,     "|{0,6}        |{1,13}|{2,13}|", E, E * CHours,  "|");
        Console.WriteLine("|             |             |             |                    |");
        Console.WriteLine("|", adv,     "|{0,6}        |{1,13}|{2,13}|", F, F * CHours,  "|");
        Console.WriteLine("|             |             |             |                    |");
        Console.WriteLine("|{2,13}", fx);
        Console.WriteLine("|----------   |-------------|-------------|                    |");
        Console.WriteLine("");
        Console.WriteLine("To calculate your CWA...");

        Console.WriteLine("CWA = W.Marks / Credit Hours");
        Console.WriteLine(" CWA = ∑fx", fx);
        Console.WriteLine("      ----");
        Console.WriteLine("       fx", FTOTAL);
        Console.WriteLine("Your CWA is {0}", mean);
        Console.WriteLine("");

        if (mean >= 70)
        {
            Console.WriteLine("Overall grade = A");
            Console.WriteLine("exceptional work");
            Console.WriteLine();
        }

        else if ((mean <= 69.9) & (mean >= 60))
        {
            Console.WriteLine("Overall grade = B");
            Console.WriteLine("good job");
            Console.WriteLine();
        }

        if ((mean <= 59.9) & (mean >= 50))
        {
            Console.WriteLine("Overall grade = C");
            Console.WriteLine("average");
            Console.WriteLine();
        }

        if ((mean <= 49.9) & (mean >= 40))
        {
            Console.WriteLine("Overall grade = D");
            Console.WriteLine("below average");
            Console.WriteLine();
        }

        if ((mean <= 39.9) & (mean >= 0))
        {
            Console.WriteLine("Overall grade = F");
            Console.WriteLine("fail");
            Console.WriteLine();
        }


        Console.WriteLine("");
        Console.WriteLine("");
        Console.WriteLine("Press Any Key To Exit");
        Console.WriteLine("");
        Console.WriteLine("");
        Console.ReadLine();










    }
}
}

【问题讨论】:

  • 您的写行格式错误。使用这个:Console.WriteLine("{0,6}|{1,13}|{2,13}|", csharp, A, A * CHours);。格式首先在一组双引号中,然后是变量。

标签: c#


【解决方案1】:

您调用了错误的 WriteLine 重载来使用格式化功能,您需要将格式作为第一个参数传递的那个,并且它之后的所有内容都是值。

例如,您将更改此行:

Console.WriteLine("|", csharp,  "|{0,6}        |{1,13}|{2,13}|", A, A * CHours,  "|");

对于这样的事情:

Console.WriteLine("|{0}|{1,6}|{2,13}|", csharp, A, A * CHours);

另外,如果您对表格的对齐有问题,您可能需要查看here 的解决方案。

【讨论】:

  • @arcyqwerty 您的编辑评论是这篇元帖子的主题:meta.stackoverflow.com/questions/312801/…如果您能就行动的原因表达您的想法,我将不胜感激。
  • 他的编辑是有道理的,它使帖子更清晰,我的错误是不缩小链接,这是我通常做的,但在这种情况下忘记了。
  • 我认为@Zizouz212 是在谈论我建议的编辑,但被拒绝了,但问题是按照我建议的方式编辑的。
  • 哦,好吧,我没看到,当我回答时我从电脑上下来了,当我回来时它已经被编辑了。
【解决方案2】:

Console.WriteLine的第一个参数是格式字符串,后面的参数是插入到字符串中的参数。示例:

Console.WriteLine("A = {0}, B = {1}, C = {2}", a, b, c);

您还可以指定长度和格式,例如:{1,15:N2}

这意味着参数 1(必须是数字类型)长度为 15 个字符,格式为 2 位小数。

您也可以仅使用长度 {1,15} 或仅使用格式 {1:N2}。右对齐使用正长度,左对齐使用负长度。


如果您使用的是 Visual Studio 15,还可以使用新的字符串插值功能。和上面一样的例子可以写成这样:

Console.WriteLine($"A = {a}, B = {b}, C = {c}");

变量(和其他表达式)可以直接写入格式字符串。

【讨论】:

  • 感谢您的洞察力,非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多