Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Помощ за решаване на задача на C#

Featured Replies

Здравейте! Ще съм много благодарен ако някой може да ми помогне с решаването на задачата, която съм прикачил на C#. (насоки или примерни решения). =)

 

Екранна снимка (98).png

На първо време може да започнеш с това:

https://www.google.com/search?q=C%23+lessons&num=20&source=lnms&tbm=vid&sa=X&ved=0ahUKEwij7Kv_lfbbAhXECSwKHQYtDQgQ_AUICigB&biw=1320&bih=903

След това, като стигнеш до някъде и нещо не ти се получава, даваш кода, който си написал и може и да получиш помощ.

  • Автор

Благодаря за бързия отговор! Запознат съм с основните неща, но нямам практически опит с такива задачи. Според мен трябва да направя обект (структурата на служителя), след това list, където ще ги вкарвам. Затруднява ме сортирането и генерирането на имейли. :((

Така ще е най-добре принципно. Потърси си в интернет има много подобни решения. За сортирането ще си направиш метод на обекта по кое поле да ти го сортира, а генерирането си е описано как става, добавяш нужните полета, ако съществуват - това става със съответните проверки дали има нещо записано в променливата/списъка и от стойността, на това което се търси, вземаш само първата буква, ако го има.

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

namespace Employees
{
    class Program
    {
        static Action[] action = { InputEmployee, OutputEmployeeData, MissingCompulsoryFields, GenerateEmails, Fin };
        static Dictionary<string, Employee> dic = new Dictionary<string, Employee>();
        static void Main(string[] args)
        {
            for (; ; )
            {
                Console.WriteLine("\nМеню:");
                Console.WriteLine("1. Въведете служител");
                Console.WriteLine("2. Изведете всички данни");
                Console.WriteLine("3. Изведете служителите с непопълнени задължителни полета");
                Console.WriteLine("4. Генерирайте имейли");
                Console.WriteLine("5. Изход от програмата");
                string s = Console.ReadLine();
                int choice;
                if (int.TryParse(s, out choice) == false)
                {
                    Console.WriteLine("Невалиден избор");
                    continue;
                }
                if (choice < 1 || choice > 5)
                {
                    Console.WriteLine("Невалиден избор");
                    continue;
                }
                action[choice - 1]();
            }
        }
        static void InputEmployee()
        {
            string name, egn, latinName, country, postalCode, city;
            for (; ; )
            {
                Console.Write("Въведете име -> ");
                name = Console.ReadLine();
                if (name.Length > 50)
                {
                    Console.WriteLine("Дължината на името не трябва да е по - голяма от 50 символа.");
                    continue;
                }
                break;
            }
            for (; ; )
            {
                Console.Write("Въведете егн -> ");
                egn = Console.ReadLine();
                if (egn.Length > 15)
                {
                    Console.WriteLine("Дължината на ЕГН не трябва да е по - голяма от 15 символа.");
                    continue;
                }
                break;
            }
            for (; ; )
            {
                Console.Write("Въведете името на латиница -> ");
                latinName = Console.ReadLine();
                if (latinName.Length > 50)
                {
                    Console.WriteLine("Дължината на името не трябва да е по - голяма от 50 символа");
                    continue;
                }
                break;
            }
            for (; ; )
            {
                Console.Write("Въведете държава -> ");
                country = Console.ReadLine();
                if (latinName.Length > 50)
                {
                    Console.WriteLine("Дължината на държавата не трябва да е по - голяма от 30 символа");
                    continue;
                }
                break;
            }
            for (; ; )
            {
                Console.Write("Въведете пощенски код -> ");
                postalCode = Console.ReadLine();
                if (latinName.Length > 50)
                {
                    Console.WriteLine("Дължината на пощенския код не трябва да е по - голяма от 30 символа");
                    continue;
                }
                break;
            }
            for (; ; )
            {
                Console.Write("Въведете град -> ");
                city = Console.ReadLine();
                if (latinName.Length > 50)
                {
                    Console.WriteLine("Дължината на града не трябва да е по - голяма от 50 символа");
                    continue;
                }
                break;
            }
            dic[name] = new Employee();
            dic[name].name = name;
            dic[name].egn = egn;
            dic[name].latinName = latinName;
            dic[name].country = country;
            dic[name].postalCode = postalCode;
            dic[name].city = city;
        }
        static void OutputEmployeeData()
        {
            List<string> order = dic.Keys.OrderBy(x => dic[x].country).ThenBy(x => dic[x].name).ToList();
            foreach (var x in order)
            {
                Console.WriteLine($"{dic[x].name}, {dic[x].egn}, {dic[x].latinName}, {dic[x].country}, {dic[x].city}");
            }
        }
        static void MissingCompulsoryFields()
        {
            List<string> order = dic.Keys.Where(x => dic[x].name == "" || dic[x].egn == ""
                  || dic[x].latinName == "" || dic[x].country == "").OrderBy(x => dic[x].egn).ToList();
            Console.WriteLine("Списък на служителите с непопълнени задължителни полета:");
            foreach (var x in order)
            {
                Console.WriteLine($"{dic[x].name}");
            }
        }
        static void GenerateEmails()
        {
            List<string> emails = dic.Keys.Where(x => dic[x].latinName != "").ToList();
            foreach (var x in emails)
            {
                string[] sa = dic[x].latinName.Split((char[])null, StringSplitOptions.RemoveEmptyEntries);
                if (sa.Length == 3)
                {
                    string email = sa[2] + "_" + sa[0] + "_" + sa[1].Substring(0, 1) + "@nncomputers.com";
                    dic[x].email = email;
                }
                else if (sa.Length == 2)
                {
                    string email = sa[1] + "_" + sa[0] + "@nncomputers.com";
                    dic[x].email = email;
                }
                else
                {
                    string email = sa[0] + "@nncomputers.com";
                }
                Console.WriteLine($"{dic[x].name}, email: {dic[x].email}");
            }
        }
        static void Fin()
        {
            Environment.Exit(0);
        }
    }
    class Employee
    {
        public string name;
        public string egn;
        public string latinName;
        public string country;
        public string postalCode;
        public string city;
        public string email = null;
    }
}

 

  • 3 години по-късно...

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.