Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2011, 00:09   #41
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Цитата:
Сообщение от nikozavr Посмотреть сообщение
Да, блин....
А что, нельзя сделать эту прогу без БД?
Можно, Вы же сами привели пример со switch на весь экран, чем не вариант.
Spawn™Production® вне форума Ответить с цитированием
Старый 09.05.2011, 00:13   #42
nikozavr
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 140
По умолчанию

Так я там с классами запутался, потому и создал тему. Да и архитектуру программы не могу четко представить.
Хочу шарить как Daramant!!!
nikozavr вне форума Ответить с цитированием
Старый 09.05.2011, 17:29   #43
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Так я там с классами запутался, потому и создал тему. Да и архитектуру программы не могу четко представить.
Так, на чем остановились? Если без бд, то необходимо занести все данные в программу: сделайте switch-и или используйте словарь (Dictionary<int, double>).
Если хотите сделать именно с наследованием, то в базовом классе объявите метод: Nachislenie_Balov(float _ocenka), для каждого теста создайте производный класс, в котором будет реализован этот метод и будет возвращать нужное значение.
И что-то на подобии можно сделать для нижней таблицы.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 09.05.2011, 18:50   #44
nikozavr
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 140
По умолчанию

Попробую, выложу что получится
Хочу шарить как Daramant!!!
nikozavr вне форума Ответить с цитированием
Старый 13.05.2011, 17:18   #45
nikozavr
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 140
По умолчанию

У меня впечатление,что я базовый класс неправильно описал?


Если упростить задачу:
юзер из списка тестов выбирает несколько, вводит полученный балл по каждому, программа выдает оценку общую в зависимости от возраста и группы юзера.
Хочу шарить как Daramant!!!
nikozavr вне форума Ответить с цитированием
Старый 14.05.2011, 22:52   #46
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
У меня впечатление,что я базовый класс неправильно описал?
Да, давайте немного изменим описание. Посмотрите это:
Код:
    /// <summary>
    /// Базовый класс для тестов.
    /// </summary>
    public abstract class Test
    {
        /// <summary>
        /// Название личного качества.
        /// </summary>
        public abstract string SkillName { get; }

        /// <summary>
        /// Название теста.
        /// </summary>
        public abstract string TestName { get; }

        /// <summary>
        /// Максимальная оценка.
        /// </summary>
        public abstract float MaxMark { get; }

        /// <summary>
        /// Возвращает количество баллов по оценке.
        /// </summary>
        /// <param name="mark">Оценка.</param>
        public abstract int GetBall(float mark);
    }

    /// <summary>
    /// Тест номер 1.
    /// </summary>
    public class Test1 : Test
    {
        public override string SkillName
        {
            get { return "лояльность"; }
        }

        public override string TestName
        {
            get { return "Тест 1"; }
        }

        public override float MaxMark
        {
            get { return 30; }
        }

        public override int GetBall(float mark)
        {
            if (mark == 1) return 14;
            if (mark == 2) return 18;
            if (mark == 3) return 22;
            // ...

            // Если для указанной оценки нет соответствующего ей балла, 
            // то возвращает -1, как признак ошибки.
            return -1;
        }
    }

    /// <summary>
    /// Базовый класс для возрастных групп.
    /// </summary>
    public abstract class AgeGroup
    {
        /// <summary>
        /// Нижняя граница возраста.
        /// </summary>
        public abstract int AgeLowerBound { get; }

        /// <summary>
        /// Верхняя граница возраста.
        /// </summary>
        public abstract int AgeUpperBound { get; }

        /// <summary>
        /// Категория.
        /// </summary>
        public abstract int Category { get; }

        /// <summary>
        /// Минимум балов в одном тесте.
        /// </summary>
        public abstract int BallLowBound { get; }

        /// <summary>
        /// Возвращает результирующую оценку.
        /// </summary>
        /// <param name="testCount">Количество тестов.</param>
        /// <param name="ball">Суммарный балл за тесты.</param>
        public abstract int GetSummaryMark(int testCount, int ball);

        /// <summary>
        /// Возвращает название квалификационного уровня.
        /// </summary>
        /// <param name="ball">Полученный балл.</param>
        public abstract string GetQualificationLevelName(int ball);
    }
P.S.
От класса AgeGroup будет производный класс для каждой группы и категории в группе, например:
AgeGroup1_1 - первая группа, категория 1.
AgeGroup1_2 - первая группа, категория 2.
...
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 31.05.2011, 16:14   #47
nikozavr
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 140
По умолчанию

Вот что получилось.
Вложения
Тип файла: rar sotrudmik.rar (23.6 Кб, 12 просмотров)
Хочу шарить как Daramant!!!
nikozavr вне форума Ответить с цитированием
Старый 01.06.2011, 10:44   #48
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Может Вам это подойдёт. Писал тест для технаря.
http://www.biz-for.ru/with_payment/I...idual_test.exe
Немного доработать придётся.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приход уход сотрудников ray_kh Microsoft Office Excel 10 22.02.2012 11:46
База сотрудников Syltan Общие вопросы по Java, Java SE, Kotlin 3 20.05.2010 18:47
Тестирование сотрудников ProKsimus Microsoft Office Access 3 08.01.2009 18:01
Личные дела сотрудников asale БД в Delphi 3 05.11.2007 21:33