Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Описать структуру с именем ZNAK 
:(
    Опции темы
NeoX12
Дата 28.4.2012, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.3.2012

Репутация: нет
Всего: нет



Помогите пожалуйста с кодом.
Описать структуру с именем ZNAK, содержащую следующие поля:
    фамилия, имя;
    знак Зодиака;
    дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
    ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK (записи должны быть упорядочены по дате рождения);
    вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры (если таких нет, вывести соответствующее сообщение).
PM MAIL   Вверх
fedyunina
Дата 29.4.2012, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 1.3.2012
Где: Питер

Репутация: нет
Всего: нет




Ну структуру можно описать так:

Код

     public struct ZNAK
        {
                public string F_Name, L_Name, Znak;
                public int[] DateOfBirth 
                {
                    get 
                    {
                        return new int[3];
                    }
                }

        }


и дальше по коду к ней обращаться так:

Код

            ZNAK a = new ZNAK();
            a.F_Name = "Ivan";
            a.L_Name = "Ivanov";
            a.Znak = "Lev";
            a.DateOfBirth[0] = 25;
            a.DateOfBirth[1] = 7;
            a.DateOfBirth[2] = 1988;


Полность программу Вам писать кто-нибудь вряд ли будет. Учеба нужна для того чтобы учиться все же  smile 
PM MAIL Skype   Вверх
IvanAlexandrovich
Дата 16.6.2012, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.6.2012

Репутация: нет
Всего: нет



Собственно было такое задание - для будущих поколений выставлю свою реализацию.
Прошу только конструктивные высказывания, а то надоели эти холивары в стиле: "Ты - быдлокодер, и пишешь криво, не там и не так". 
Среда разработки MS Visual Studio 2008.
Код

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

namespace _5_Struct
{
    public struct ZNAK
    {
        string name;
        public string Name
        {
            get { return name; }
            set
            {
                if (value.Length > 0) name = value;
                else throw new System.ArgumentException("Обнаружено пустое поле.");
            }
        }
        string surname;
        public string Surname
        {
            get { return surname; }
            set
            {
                if (value.Length > 0) surname = value;
                else throw new System.ArgumentException("Обнаружено пустое поле.");
            }
        }
        string znak;
        public string Znak
        {
            get { return znak; }
            set
            {
                if ((value.ToString() == "Овен") || (value.ToString() == "Телец") || (value.ToString() == "Близнецы") ||
                    (value.ToString() == "Рак") || (value.ToString() == "Лев") || (value.ToString() == "Дева") ||
                    (value.ToString() == "Весы") || (value.ToString() == "Скорпион") || (value.ToString() == "Стрелец") ||
                    (value.ToString() == "Козерог") || (value.ToString() == "Водолей") || (value.ToString() == "Рыбы"))
                    znak = value;
                else throw new System.ArgumentException("Неверно введён знак зодиака.");
            }
        }
        public int[] BDate;
    }

    class Program
    {
        static void Main(string[] args)
        {
            List<ZNAK> MyZnakList = new List<ZNAK>();

        menu:
            int choise = -1;
            Console.WriteLine("                         Зодиак");
            Console.WriteLine("1) Ввод данных.");
            Console.WriteLine("2) Вывод инофрмации о людях, рождённых под выбранным знаком.");
            Console.WriteLine("3) Выход.");
            choise = Convert.ToInt16(Console.ReadLine());
            Console.Clear();
            switch (choise)
            {
                case 1:
                    goto menu1;
                case 2:
                    goto menu2;
                case 3:
                    return;
                default:
                    Console.WriteLine("Введите число от 1 до 3.");
                    goto menu;
            }
        menu1:
            for (int i = 0; i < 2 /*8*/; i++)
            {
                ZNAK znak = new ZNAK();
                znak.BDate = new int[3];
                Console.WriteLine("Введите имя: ");
                znak.Name = Convert.ToString(Console.ReadLine());
                Console.WriteLine("Введите фамилию: ");
            todate:
                znak.Surname = Console.ReadLine();
                Console.WriteLine("Введите число рождения: ");
                znak.BDate[0] = Convert.ToInt16(Console.ReadLine());
                Console.WriteLine("Введите месяц рождения: ");
                znak.BDate[1] = Convert.ToInt16(Console.ReadLine());
                Console.WriteLine("Введите год рождения: ");
                znak.BDate[2] = Convert.ToInt16(Console.ReadLine());
                if (((znak.BDate[0] >= 21) && (znak.BDate[0] <= 31) && (znak.BDate[1] == 3)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 20) && (znak.BDate[1] == 4))) znak.Znak = "Овен";
                else if (((znak.BDate[0] >= 21) && (znak.BDate[0] <= 30) && (znak.BDate[1] == 4)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 20) && (znak.BDate[1] == 5))) znak.Znak = "Телец";
                else if (((znak.BDate[0] >= 21) && (znak.BDate[0] <= 31) && (znak.BDate[1] == 5)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 21) && (znak.BDate[1] == 6))) znak.Znak = "Близнецы";
                else if (((znak.BDate[0] >= 22) && (znak.BDate[0] <= 30) && (znak.BDate[1] == 6)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 22) && (znak.BDate[1] == 7))) znak.Znak = "Рак";
                else if (((znak.BDate[0] >= 23) && (znak.BDate[0] <= 31) && (znak.BDate[1] == 7)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 23) && (znak.BDate[1] == 8))) znak.Znak = "Лев";
                else if (((znak.BDate[0] >= 24) && (znak.BDate[0] <= 31) && (znak.BDate[1] == 8)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 23) && (znak.BDate[1] == 9))) znak.Znak = "Дева";
                else if (((znak.BDate[0] >= 24) && (znak.BDate[0] <= 30) && (znak.BDate[1] == 9)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 23) && (znak.BDate[1] == 10))) znak.Znak = "Весы";
                else if (((znak.BDate[0] >= 24) && (znak.BDate[0] <= 31) && (znak.BDate[1] == 10)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 22) && (znak.BDate[1] == 11))) znak.Znak = "Скорпион";
                else if (((znak.BDate[0] >= 23) && (znak.BDate[0] <= 30) && (znak.BDate[1] == 11)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 21) && (znak.BDate[1] == 12))) znak.Znak = "Стрелец";
                else if (((znak.BDate[0] >= 22) && (znak.BDate[0] <= 31) && (znak.BDate[1] == 12)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 20) && (znak.BDate[1] == 1))) znak.Znak = "Козерог";
                else if (((znak.BDate[0] >= 21) && (znak.BDate[0] <= 31) && (znak.BDate[1] == 1)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 20) && (znak.BDate[1] == 2))) znak.Znak = "Водолей";
                else if (((znak.BDate[0] >= 21) && (znak.BDate[0] <= 29) && (znak.BDate[1] == 2)) ||
                    ((znak.BDate[0] >= 0) && (znak.BDate[0] <= 20) && (znak.BDate[1] == 3))) znak.Znak = "Рыбы";
                else
                {
                    Console.WriteLine("Неверно введена дата");
                    goto todate;
                }
                MyZnakList.Add(znak);
                Console.WriteLine("Информация добавлена в базу.");
                Console.ReadKey();
                Console.Clear();
            }
            goto menu;
        menu2:
            string Zn;
            string BD0,BD1;
            Console.WriteLine("Введите интересующий Вас знак зодиака:");
            Zn = Convert.ToString(Console.ReadLine());
            for (int i = 0; i < 2 /*8*/; i++)
            {
                if (MyZnakList[i].Znak == Zn)
                {
                    BD0 = Convert.ToString(MyZnakList[i].BDate[0]);
                    if (BD0.Length == 1) BD0 = "0" + BD0;
                    BD1 = Convert.ToString(MyZnakList[i].BDate[1]);
                    if (BD1.Length == 1) BD1 = "0" + BD1;
                    Console.WriteLine(MyZnakList[i].Name + " " + MyZnakList[i].Surname + " " +
                        BD0 + "." + BD1 + "." + MyZnakList[i].BDate[2] + ".");
                }
            }
            Console.ReadKey();
            Console.Clear();
            goto menu;
        }
    }
}

Думаю, что комментарии излишни из-за небольшой сложности кода.

Это сообщение отредактировал(а) IvanAlexandrovich - 16.6.2012, 12:50
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0648 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.