BG Development


Страници: (12) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> НАЧИНАЕЩ! Може ли малко помощ?
Jekobo1
Публикувано на: 29-02-2020, 20:38
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 29.02.20



Здравейте! Решавам задача изискваща списък с отстъпкови данни за клиенти на магазин. Горе-долу съм решил задачата на половина, метода ми за въвеждане на информация (InputData), сортиране по азбучен ред (FirstSorting) и отразяване на списъка в конзолата (DisplayData) тръгват без проблем, но защо според вас допълнителния ми метод (SecondSorting) не тръгва?
CODE
{
   class Program
   {
       public static void Main(string[] args)
       {
           int n;

           do
           {
               Console.Write("Customers: ");
               n = int.Parse(Console.ReadLine());
           } while (n < 1 || n > 500);

           Clients[] clients = new Clients[n];

           InputData(clients);

           FirstSorting(clients);

           SecondSorting(clients);

           DisplayData(clients);


       

       }
       public static void InputData(Clients[] clients)
       {
           for (int i = 0; i < clients.Length; i++)
           {
               Clients client = new Clients();

               Console.Write("Name: ");
               client.Name = Console.ReadLine();

               Console.Write("Residency: ");
               client.Residence = Console.ReadLine();

               Console.Write("10 digit code: ");
               client.Category = Console.ReadLine();
               
               clients[i] = client;
           }

       }
       public static void DisplayData(Clients[] clients)
       {
           
           
           for (int i = 0; i < clients.Length; i++)
           {

               

                string category = clients[i].Category.Substring(0, 1);
               if (category == "1")
               {
                   category = "Cosmetics";
               }
               else if(category == "2")
               {
                   category = "Fragrance";
               }
               else if (category == "3")
               {
                   category = "Accessories";
               }
               else if (category == "4")
               {
                   category = "Service";
               }
                string option = clients[i].Category.Substring(1, 1);
               if (option == "0")
               {
                   option = "Bez natrupvane";
               }
               else if (option == "1")
               {
                   option = "s natrupvane";
               }
                string discount = clients[i].Category.Substring(2, 2);
               if (discount == "05")
               {
                   discount = "5 % Discount";
               }
               else if (discount == "10")
               {
                   discount = "10 % Discount";
               }
               else if (discount == "20")
               {
                   discount = "20 % Discount";
               }
               else if (discount == "30")
               {
                   discount = "30 % Discount";
               }
               string DateDay = clients[i].Category.Substring(4, 2);
               string DateMount = clients[i].Category.Substring(6, 2);
               string DateYear = clients[i].Category.Substring(8, 2);

               Console.WriteLine(clients[i].Name + ", " +
                   clients[i].Residence + ", " +
                   category + ", " +
                   option + ", " +
                   discount + ", " +
                   DateDay + "." + DateMount + "." + DateYear);






           }

       }
       public static void FirstSorting(Clients[] clients)
       {

           for (int i = 0; i < clients.Length; i++)
           {
               for (int y = i + 1; y < clients.Length; y++)
               {
                   if (clients[i].Name.CompareTo(clients[y].Name) > 0)
                   {
                       Clients temp = clients[i];
                       clients[i] = clients[y];
                       clients[y] = temp;
                   }
               }
           }

       }
       public static void SecondSorting(Clients[] clients)
       {
           for (int i = 0; i < clients.Length; i++)
           {
               for (int y = i + 1; y < clients.Length; y++)
               {
                   if (clients[i].Residence == "Plovdiv" && clients[i].Category.Substring(0) == "1")
                   {
                       Clients temp = clients[i];
                       clients[i] = clients[y];
                       clients[y] = temp;
                   }
                   if (clients[i].Category.Substring(2, 2).CompareTo(clients[y].Category.Substring(2, 2)) > 0)
                   {
                       Clients temp = clients[i];
                       clients[i] = clients[y];
                       clients[y] = temp;
                   }





                   else if (clients[i].Category.Substring(2, 2).CompareTo(clients[y].Category.Substring(2, 2)) == 0)
                   {
                       if (clients[i].Name.CompareTo(clients[y].Name) > 0)
                       {
                           Clients temp = clients[i];
                           clients[i] = clients[y];
                           clients[y] = temp;
                       }
                   }



               }

           }
       }
   }
}



Благодаря предварително за информацията и отделеното време!

Това мнение е било редактирано от Jekobo1 на 29-02-2020, 21:02
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 29-02-2020, 20:52
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4014
Регистриран на: 21.02.18



сложи си кода в таг за код
PMEmail PosterUsers Website
Top
Gamma Goblin
Публикувано на: 29-02-2020, 21:21
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4014
Регистриран на: 21.02.18



кой ви учи да слагате отварящите скоби на нов ред, кода става напълно нечетим icon_evil.gif
PMEmail PosterUsers Website
Top
Golden Gega
Публикувано на: 01-03-2020, 09:34
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2188
Регистриран на: 04.06.10



"кой ви учи да слагате отварящите скоби на нов ред" това си е стандарт за .net, вземи понаучи нещо преди да се изказваш

Jekobo1, и в двете сортировки трябва първия цикъл да е
for (int i = 0; i < clients.Length - 1; i++)
вместо
for (int i = 0; i < clients.Length; i++)

иначе се получава:

clients = { 0, 1, 2 }, clients.Length = 3

i ше се върти от 0 до 2 и когато е i = 2, цикъла ти
for (int y = i + 1; y < clients.Length; y++)
ще почне от y = 2 + 1, т.е. от 3, което ще предизвика грешка.
PMEmail Poster
Top
Jekobo1
Публикувано на: 01-03-2020, 10:04
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 29.02.20



Благодаря за отговора Golden Gega и да разбирам логиката ти, но защо тогава първия цикъл, който е в (FirstSorting) метода, за подреждане по азбучен ред работи а другите не?
PMEmail Poster
Top
Golden Gega
Публикувано на: 01-03-2020, 15:09
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2188
Регистриран на: 04.06.10



QUOTE (Jekobo1 @ 01-03-2020, 10:04)
Благодаря за отговора Golden Gega и да разбирам логиката ти, но защо тогава първия цикъл, който е в (FirstSorting) метода, за подреждане по азбучен ред работи а другите не?

Ми първия е ясно че сортира по име, а какво трябва да прави втория само ти си знаеш
PMEmail Poster
Top
Jekobo1
Публикувано на: 01-03-2020, 15:57
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 29.02.20



1. Да се въведе и контролира цяло число N (в диапазона [1;500]), определящо броя на клиентите, имащи право на карта за отстъпки. За всеки от тези N клиенти да се въведе следната информация:
 име и фамилия (знаков низ, не по дълъг от 30 знака);
 град на местожителство (знаков низ, не по-дълъг от 10 знака);
 10 цифрен код (знаков низ). Първата цифра от него е код за категория стоки (1 – козметика, 2 – парфюми, 3 – аксесоари, 4 – услуги). Втората цифра е код за натрупване на промоции, т.е. прилагане на отстъпката върху вече намалена стока (0 – без натрупване, 1 – с натрупване). Втората двойка цифри е процент на отстъпката (05, 10, 20 или 30). Третата двойка цифри от кода обозначават деня, четвъртата – месеца, а петата – годината на датата на издаване на картата. Например код 2020140517 означава, че картата за отстъпки важи за козметика, без натрупване на промоции, процент на отстъпки: 20%, дата на издаване на картата 14 май 2017 г.
2. Да се изведе списък на всички клиенти, подредени по име в азбучен ред, като за всеки клиент се извежда: име и фамилия, град, категория стоки, натрупване на промоции, процент на отстъпката, дата на издаване на картата. Полетата да бъдат разделени със запетая и един интервал. Например:
Петър Иванов, Пазарджик, парфюми, без натрупване, 20, 06.06.17
3. Да се изведе списък на клиентите от Пловдив с карта за отстъпки на козметика. Изведената информация за клиент да бъде във формата от условие 2. Списъкът да се подреди в нарастващ ред по процентна отстъпка, а при еднаква стойност клиентите да бъдат подредени по име в азбучен ред.
4. Да се въведе категория на стока (например 2). Да се намери и изведе максималният процент на отстъпка за въведената категория

Това е цялото условие на задачата. Можеш ли да ме насочиш какво точно трябва да използвам за 4. Условие
PMEmail Poster
Top
dvader
Публикувано на: 01-03-2020, 16:50
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 5270
Регистриран на: 12.07.05



QUOTE (Gamma Goblin @ 29-02-2020, 21:21)
кой ви учи да слагате отварящите скоби на нов ред,

Много добре си ги учат, така и трябва...
Виж тия, дето го учат да слагат първият израз на същият ред след отварящата скобка трябва да горят в ада...


--------------------
I find your lack of faith disturbing
PM
Top
gat3way
Публикувано на: 01-03-2020, 21:04
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 5090
Регистриран на: 22.06.12



QUOTE (Gamma Goblin @ 29-02-2020, 21:21)
кой ви учи да слагате отварящите скоби на нов ред, кода става напълно нечетим icon_evil.gif

Аз ги слагам така, по-прегледно ми е така.
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 01-03-2020, 21:13
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4014
Регистриран на: 21.02.18



QUOTE (gat3way @ 01-03-2020, 21:04)
QUOTE (Gamma Goblin @ 29-02-2020, 21:21)
кой ви учи да слагате отварящите скоби на нов ред, кода става напълно нечетим  icon_evil.gif

Аз ги слагам така, по-прегледно ми е така.

много е гадно, 3 пъти увеличава празните редове :Ж

Това мнение е било редактирано от Gamma Goblin на 01-03-2020, 21:20
PMEmail PosterUsers Website
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (12) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0