具有不同显示的输入

本文关键字:输入 显示 | 更新日期: 2023-09-27 18:36:01

我想显示不同的输出,但我的程序显示相同。希望你能帮帮我!

主要:

        //DECLARATION
        Cake cake = new Cake();
        //INTEGERS
        int max = 5;
        int[] qty = new int[max];
        int[] price = new int[max];
        int i;
        int qty_search;
        int counter = 0, found = 0;
        //STRINGS
        string search;
        string[] cakename = new string[max];
        string[] id = new string[max];
        //CHAR'S
        char opt;
        //LOOP
        //MENU
        do
        {
            Console.Write("1 - add cake'n2 - display cake'n3 - search cake'n4 - increase qty'n5 - decrease qty'n6 - Update qty'nx - exit'nopt --> ");
            opt = Convert.ToChar(Console.ReadLine());
            //SWITCH CASES
            switch (opt)
            {
                //ADD CAKE
                case '1':
                    Console.Write("name: ");
                    cakename[counter] = Console.ReadLine();
                    cake.cake_Name = cakename[counter];
                    Console.Write("id: ");
                    id[counter] = Console.ReadLine();
                    cake.id = id[counter];
                    Console.Write("qty: ");
                    qty[counter] = Convert.ToInt32(Console.ReadLine());
                    cake.qty = qty[counter];
                    Console.Write("price: ");
                    price[counter] = Convert.ToInt32(Console.ReadLine());
                    cake.price = price[counter]; 
                    counter++;
                    break;
                //DISPLAY CAKE
                case '2':
                    Console.WriteLine("List of Cakes");
                    Console.WriteLine("id -.- Name -.- qty -.- price");
                    for (i = 0; i < counter; i++)
                    {
                        Console.WriteLine("{0}  {1} {2} {3}", cake.id, cake.cake_Name, cake.qty, cake.price);
                    }
                    Console.WriteLine("------------------");
                    break;
                //SEARCH CAKE
                case '3':
                    found = 0;
                    Console.Write("enter your search cake id: ");
                    search = Console.ReadLine();
                    for (i = 0; i < counter; i++)
                    {
                        if (string.Equals(id[i], search, StringComparison.OrdinalIgnoreCase))
                        {
                            found++;
                        }
                    }
                    Console.Write("found = ");
                    Console.WriteLine(found);
                    break;
                case '4':
                    Console.WriteLine("List of Cakes");
                     for (i = 0; i < counter; i++)
                    {
                        Console.WriteLine("{0}  {1}  {2}  {3}", cake.id, cake.cake_Name, cake.qty, cake.price);
                    }
                    Console.WriteLine("------------------");
                    Console.Write("Selected Item ID: ");
                    qty_search = Convert.ToInt32(Console.ReadLine());
                    for (i = 0; i < counter; i++)
                    {
                        if (qty_search == qty[i])
                        {
                            qty[i]++;
                        }
                    }
                    Console.WriteLine("cake qty + 1");
                    break;
                case '5':
                    Console.WriteLine("List of Cakes");
                     for (i = 0; i < counter; i++)
                    {
                        Console.WriteLine("{0}  {1}  {2}  {3}", cake.id, cake.cake_Name, cake.qty, cake.price);
                    }
                    Console.WriteLine("------------------");
                    Console.Write("Selected Item ID: ");
                    qty_search = Convert.ToInt32(Console.ReadLine());
                    for (i = 0; i < counter; i++)
                    {
                        if (qty_search == qty[i])
                        {
                            qty[i]--;
                        }
                    }
                    Console.WriteLine("cake qty + 1");
                    break;
                case '6':
                    Console.WriteLine("-- update cake name --");
                    Console.WriteLine("Cake list");
                     for (i = 0; i < counter; i++)
                    {
                        Console.WriteLine("{0}  {1}  {2}  {3}", cake.id, cake.cake_Name, cake.qty, cake.price);
                    }
                    Console.WriteLine("------------------");
                    Console.Write("Select item ID: ");
                    search = Console.ReadLine();
                    for (i = 0; i < counter; i++)
                    {
                        if (search == id[i])
                        {
                            Console.Write("Enter Name: ");
                            cakename[i] = Console.ReadLine();
                            Console.WriteLine("cake updated");
                        }
                    }
                    break;
                case 'X':
                case 'x':
                    Console.WriteLine("exit");
                    break;
                default:
                    Console.WriteLine("Invalid Option");
                    break;
            }
            //SWITCH CASE END
        } while (opt != 'x' && opt != 'X');
        //OUTER MENU LOOP END
        //PROGRAM TERMINATE
    }

}

}

输入:

第一个输入: 名称:蛋糕
编号: 2
数量: 2
价格: 2

第二个输入:
名称: 蛋糕2
编号: 3
数量: 3
价格: 3

当我显示:
3 蛋糕2 3 3
3 蛋糕2 3 3

是一样的,请帮助我。

具有不同显示的输入

显示蛋糕时,您只需输出上次输入的值,输入的次数与输入蛋糕的次数一样多。

快速解决方法是从stringint数组中读取值,而不是从您拥有的唯一Cake实例中读取值:

for (i = 0; i < counter; i++)
{
    Console.WriteLine("{0}  {1} {2} {3}", id[i], cakename[i], qty[i], price[i]);
}
按照

KCdod 的建议,使用一系列蛋糕Cake[]重写程序将是一个更好的想法。

不会在程序中创建新的Cake实例。您要做的是使用相同的Cake实例并对其进行更新。

我的建议 - 制作一个Cake数组并将其填充到您的循环中

 Cake[] CakeArray = new Cake[MAX]; 

您可以使用以下方法访问每个对象

       CakeArray[0] = new Cake(); 
       CakeArray[0].ID =  Console.ReadLine();;
       CakeArray[0].Price =  Convert.ToInt32(Console.ReadLine()); 

希望我能帮到你

编辑:在您的案例中,您可以使用蛋糕数组,如下所示

       case '2':
                Console.WriteLine("List of Cakes");
                Console.WriteLine("id -.- Name -.- qty -.- price");
                for (i = 0; i < counter; i++)
                {
                   if(CakeArray[i]!=null){ // A safe check for null
                       Console.WriteLine("{0}  {1} {2} {3}", CakeArray[i].id, CakeArray[i].cake_Name, CakeArray[i].qty, CakeArray[i].price);
                    }
                 }
                 Console.WriteLine("------------------");
                 break;

编辑 - 为前两种情况添加了建议答案 - 按照此操作并更新完整答案

 //DECLARATION
        //INTEGERS
        int max = 5;
        int i;
        int qty_search;
        int counter = 0, found = 0;
        char opt;
        Cake[] CakeArray = new Cake[max]; 
        do
        {
            Console.Write("1 - add cake'n2 - display cake'n3 - search cake'n4 - increase qty'n5 - decrease qty'n6 - Update qty'nx - exit'nopt --> ");
            opt = Convert.ToChar(Console.ReadLine());
            //SWITCH CASES
            switch (opt)
            {
                //ADD CAKE
                case '1':
                    CakeArray[counter] = new Cake();
                    Console.Write("name: ");
                    CakeArray[counter].cake_Name= Console.ReadLine();
                    Console.Write("id: ");
                    CakeArray[counter].id = Console.ReadLine();
                    Console.Write("qty: ");
                    CakeArray[counter].qty= Convert.ToInt32(Console.ReadLine());
                    Console.Write("price: ");
                    CakeArray[counter].price = Convert.ToInt32(Console.ReadLine());
                    counter++;
                    break;
                //DISPLAY CAKE
                case '2':
                    Console.WriteLine("List of Cakes");
                    Console.WriteLine("id -.- Name -.- qty -.- price");
                    for (i = 0; i < counter; i++)
                    {
                        if(CakeArray[i]!=null){ // A safe check for null
                            Console.WriteLine("{0}  {1} {2} {3}", CakeArray[i].id, CakeArray[i].cake_Name, CakeArray[i].qty, CakeArray[i].price);
                        }
                    }
                    Console.WriteLine("------------------");
                    break;    
                default:
                    Console.WriteLine("Invalid Option");
                    break;
            }
            //SWITCH CASE END
        } while (opt != 'x' && opt != 'X');
        //OUTER MENU LOOP END
        //PROGRAM TERMINATE
    } 
这是

您必须编写的正确代码:

static void Main(string[] args)
    {
        //INTEGERS
        int max = 5;
        Cake[] cakes = new Cake[max];
        int[] qty = new int[max];
        int[] price = new int[max];
        int i;
        int qty_search;
        int counter = 0, found = 0;
        //STRINGS
        string search;
        string[] cakename = new string[max];
        string[] id = new string[max];
        //CHAR'S
        char opt;
        //LOOP
        //MENU
        do
        {
            Console.Write("1 - add cake'n2 - display cake'n3 - search cake'n4 - increase qty'n5 - decrease qty'n6 - Update qty'nx - exit'nopt --> ");
            opt = Convert.ToChar(Console.ReadLine());
            //SWITCH CASES
            switch (opt)
            {
                //ADD CAKE
                case '1':
                    Console.Write("name: ");
                    cakename[counter] = Console.ReadLine();
                    cakes[counter] = new Cake();
                    cakes[counter].cake_Name = cakename[counter];
                    Console.Write("id: ");
                    id[counter] = Console.ReadLine();
                    cakes[counter].id = id[counter];
                    Console.Write("qty: ");
                    qty[counter] = Convert.ToInt32(Console.ReadLine());
                    cakes[counter].qty = qty[counter];
                    Console.Write("price: ");
                    price[counter] = Convert.ToInt32(Console.ReadLine());
                    cakes[counter].price = price[counter];
                    counter++;
                    break;
                //DISPLAY CAKE
                case '2':
                    Console.WriteLine("List of Cakes");
                    Console.WriteLine("id -.- Name -.- qty -.- price");
                    for (i = 0; i < max; i++)
                    {
                        Console.WriteLine("{0}  {1} {2} {3}", cakes[i].id, cakes[i].cake_Name, cakes[i].qty, cakes[i].price);
                    }
                    Console.WriteLine("------------------");
                    break;
                //SEARCH CAKE
                case '3':
                    found = 0;
                    Console.Write("enter your search cake id: ");
                    search = Console.ReadLine();
                    for (i = 0; i < counter; i++)
                    {
                        if (string.Equals(id[i], search, StringComparison.OrdinalIgnoreCase))
                        {
                            found++;
                        }
                    }
                    Console.Write("found = ");
                    Console.WriteLine(found);
                    break;
                case '4':
                    Console.WriteLine("List of Cakes");
                    for (i = 0; i < counter; i++)
                    {
                        Console.WriteLine("{0}  {1}  {2}  {3}", cakes[i].id, cakes[i].cake_Name, cakes[i].qty, cakes[i].price);
                    }
                    Console.WriteLine("------------------");
                    Console.Write("Selected Item ID: ");
                    qty_search = Convert.ToInt32(Console.ReadLine());
                    for (i = 0; i < counter; i++)
                    {
                        if (qty_search == qty[i])
                        {
                            qty[i]++;
                        }
                    }
                    Console.WriteLine("cake qty + 1");
                    break;
                case '5':
                    Console.WriteLine("List of Cakes");
                    for (i = 0; i < counter; i++)
                    {
                        Console.WriteLine("{0}  {1}  {2}  {3}", cakes[i].id, cakes[i].cake_Name, cakes[i].qty, cakes[i].price);
                    }
                    Console.WriteLine("------------------");
                    Console.Write("Selected Item ID: ");
                    qty_search = Convert.ToInt32(Console.ReadLine());
                    for (i = 0; i < counter; i++)
                    {
                        if (qty_search == qty[i])
                        {
                            qty[i]--;
                        }
                    }
                    Console.WriteLine("cake qty + 1");
                    break;
                case '6':
                    Console.WriteLine("-- update cake name --");
                    Console.WriteLine("Cake list");
                    for (i = 0; i < counter; i++)
                    {
                        Console.WriteLine("{0}  {1}  {2}  {3}", cakes[i].id, cakes[i].cake_Name, cakes[i].qty, cakes[i].price);
                    }
                    Console.WriteLine("------------------");
                    Console.Write("Select item ID: ");
                    search = Console.ReadLine();
                    for (i = 0; i < counter; i++)
                    {
                        if (search == id[i])
                        {
                            Console.Write("Enter Name: ");
                            cakename[i] = Console.ReadLine();
                            Console.WriteLine("cake updated");
                        }
                    }
                    break;
                case 'X':
                case 'x':
                    Console.WriteLine("exit");
                    break;
                default:
                    Console.WriteLine("Invalid Option");
                    break;
            }
            //SWITCH CASE END
        } while (opt != 'x' && opt != 'X');
        //OUTER MENU LOOP END
        //PROGRAM TERMINATE
    }