Премини към съдържанието

Препоръчан отговор


Здравейте! Ще съм много благодарен ако някой може да ми помогне с решаването на задачата, която съм прикачил на 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, където ще ги вкарвам. Затруднява ме сортирането и генерирането на имейли. :((

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

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

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Благодаря!


Сподели този отговор


Линк към този отговор
Сподели в други сайтове
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;
    }
}

 

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

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