Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
EZHIK163
.NET 3.x

Есть N универов и K абитуриентов. Вывести список их предпочтений по убыванию

18.04.2012, 19:16. Показов 679. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, в универе задали такую задачу: есть N универов и K абитуриентов. У тех и у других есть свои предпочтения.
Например: Вася хочет в престижный универ. Гос. университет хочет абитуриентов с победами в олимпиадах.
Абитуриенты и Универы создаются рандомно. Проблема в том, что нужно вывести список по убыванию предпочтений. Для того чтобы это сделать нужен как я предполагаю массив объектов, который содержит "вес" и "наличие бинарных свойств". Сейчас в этой программе есть только бинарные свойства в массиве cand. Что нужно добавить, чтобы добавить поле "вес", к массиву cand[i].
Есть два класса Student и Univer. Выложил Univer, так как они идентичны....
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
public enum Univer_Properties { phizica_60 = 1, math_55 = 2, russkij_40 = 4, pobedy_v_olimp = 8, recediv = 16 }
    public enum Stud_Properties { prestig_50 = 1, budget = 2, bassein = 4, v_oblasti = 8 }
 
    public class Univer
    {
 
        int n;
        Univer_Properties[] cand;
        string[] strCand;
        Univer_Properties pattern;
        Univer_Properties currentScale;
        Random rnd;
        public Univer(int n) //Конструктор
        {
            this.n = n;
            cand = new Univer_Properties[n];
            strCand = new string[n];
            rnd = new Random();
        }
        public Univer_Properties Pattern { set { pattern = value; } }
        public void FormCands()
        {
            int properties = 5;
            int p = 0, q = 0, currentProps = 0;
            string strQ;
            for (int i = 0; i < n; i++)
            {
                currentProps = 0; strQ = "";
                for (int j = 0; j < properties; j++)
                {
                    p = rnd.Next(6);
                    q = (int)Math.Pow(2, j);
                    if (p % 2 == 0)
                    {
                        if (q == 1) { strQ += "Ф > 60, "; currentProps += q; } else if (q == 2) { strQ += "М > 55, "; currentProps += q; } else if (q == 4) { strQ += "Р > 40, "; currentProps += q; } else if (q == 8) { strQ += "О, "; currentProps += q; } else if (q == 16) { strQ += "Рецедив, "; currentProps -= q; }
                    }
 
                }
                cand[i] = (Univer_Properties)currentProps;
                if (strQ != "")
                    strCand[i] = strQ.Remove(strQ.Length - 2);
                else strCand[i] = "";
            }
        }//FormCands
        public string[] GetStrCands() { return strCand; }
        public Univer_Properties[] GetCands() { return cand; }
 
       
 
        // Список кандидатов, которые обладают
        // свойствами, заданных образцом.
        public ArrayList CandsHavePat()
        {
            ArrayList temp = new ArrayList();
            for (int i = 0; i < n; i++)
                if ((cand[i] & pattern) == pattern)
                    temp.Add("Абитуриент " + i);
            return temp;
        }
        // Список кандидатов, которые не обладают
        // всеми свойствами, заданных образцом.
        public ArrayList CandsHaveNotAllPat()
        {
            ArrayList temp = new ArrayList();
            for (int i = 0; i < n; i++)
                if ((~cand[i] & pattern) == pattern)
                    temp.Add("Абитуриент " + i);
            return temp;
        }
        // Список кандидатов, которые обладают
        // некоторыми свойствами, заданных образцом.
        public ArrayList CandsHaveSomePat()
        {
            ArrayList temp = new ArrayList();
            for (int i = 0; i < n; i++)
            {
                currentScale = cand[i] & pattern;
                if (currentScale > 0 && currentScale < pattern)
                    temp.Add("Абитуриент " + i);
            }
            return temp;
        }
        public string TestJob1(int n)
        {
            //Prog_Properties pattern = Prog_Properties.phizica_60 | Prog_Properties.math_55 | Prog_Properties.russkij_40 | Prog_Properties.pobedy_v_olimp;
            Univer mys = new Univer(n);
            mys.FormCands();
            Univer_Properties[] cand = mys.GetCands();
            string[] strCand = mys.GetStrCands();
            string text = "";
            for (int i = 0; i < n; i++)
            {
                text += ("Абитуриент №" + i + "; "+ strCand[i] + "\n");
            }
            return text;
        }
        public string TestJob2(int n) {
            Univer_Properties pattern = Univer_Properties.phizica_60 | Univer_Properties.math_55 | Univer_Properties.russkij_40 | Univer_Properties.pobedy_v_olimp | Univer_Properties.recediv;
            Univer mys = new Univer(n);
            mys.FormCands();
            string text = "";
            mys.Pattern = pattern;
            ArrayList result;
            result = mys.CandsHavePat();
            text += "100 % поступят:\n";
            foreach (string pretender in result)
                text += pretender + "\n";
            result = mys.CandsHaveSomePat();
            text += "Поступят, если небудет новых абитуриентов:\n";
            foreach (string pretender in result)
                text +=pretender + "\n";
            result = mys.CandsHaveNotAllPat();
            text += "Не поступят 100%:\n";
            foreach (string pretender in result)
                text += pretender + "\n";
            return text;
        }
 
    }
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2012, 19:16
Ответы с готовыми решениями:

Составить список зачисленных абитуриентов в порядке убывания балла и список абитуриентов с полупроходным баллом
Решение задач с использованием структурированных типов данных Помогите, пожалуйста. Беда с Паскалем.. В текстовом файле заданы...

Вывести список абитуриентов, имеющих неудовлетворительные оценки
Помогите решить. Вот условие: Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…)....

Считая фамилии абитуриентов и их оценки после первого экзамена исходными данными, составить список абитуриентов, допущенных ко второму экзамену
Задача 3. При поступлении в университет лица, получившие оценку &quot;неудовлетворительно&quot; на первом экзамене, ко второму экзамену не...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2012, 19:16
Помогаю со студенческими работами здесь

Создать запрос: вывести список абитуриентов со средним балом
помогите создать запрос через конструктор запросов Запрос 8. Разработать запрос ,при помощи которого можно вывести список абитуриентов...

Определить средний балл по университету и вывести список абитуриентов
Вообщем у меня такая задачка: Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: фамилию абитуриента, три...

Вывести список абитуриентов, имеющих в аттестате оценки только 5
Подготовить данные об абитуриентах, поступающих в техникум. Информацию о каждом абитуриенте оформить в виде записи, содержащей следующие...

Вывести список абитуриентов, отсортированный по сумме баллов, полученных на экзаменах
*Ввести и сохранить в файле данные следующей структуры:*ф.,и.,о. абитуриента, * средний балл аттестата, * оценки, * полученные на...

Добавить N записей и вывести на печать Список абитуриентов, сдавших экзамены с двумя оценками 4
Во внешний файл, содержащий исходные данные, добавить N записей и вывести на печать Список абитуриентов, сдавших экзамены с двумя оценками...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru