Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 28.03.2014
Сообщений: 15

Нужен совет в выборе темы для курсовой по ООП. 2 курс

16.09.2014, 23:09. Показов 8824. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Извиняюсь что пишу в основном разделе.

Я только перешел на 2 курс. У нас новый препод, достаточно молодой, весь на понтах, в общем поц конкретный. До этого был обычный препод, с которым мы считай переписывали стандартные функции си и начинали работать с классами
В общем мой уровень программирования был средним в группе. А новый сказал, что это полная чушь и т.д и т.п

Короче, сказали чтоб через 2 недели определились с темой курсовой, берите что нравится, главное что бы не слишком простое и было много ООП. Ребята в группе не поняли с чего это, в общем никто ничего не знает, а препода еще все побаюваются, он как то сразу стал давить авторитетом, на лекции начался "птичий язык".

Некоторые из парней, который особо башковитые уже получили согласие на такие вот проекты: онлайн крестики-нолики, сетевой месенджер(мне сказали что типо чата онлайн). Я рад за них, но в основном группа реально пересралась от страху.

Я собираюсь делать проект один, и попутно изучать то что понадобиться, но что то глобальное делать страшно. Ну помогите советом пожалуйста.

ВУЗ: СПБГПУ
направление: Программная инж.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.09.2014, 23:09
Ответы с готовыми решениями:

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

Нужен совет по выбору темы курсовой
Здравствуйте, уважаемые программисты. У меня в этом году первая курсовая работа. Нужно писать на С#, который мы только начали изучать. До...

Нужен анализ актуальности темы для курсовой
Нужен анализ актуальности темы для курсовой работы, по теме: «Разработка программного модуля, выполняющего шифрование и дешифрование текста...

31
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
16.09.2014, 23:28
ну не знаю, полистай мои темки, там где-то была тема про морской бой, симпотичный такой получился, но там есть 1 баг, когда комп стреляет, поправишь баг, допилишь логику компу и будет норм вроде бы
1
0 / 0 / 1
Регистрация: 28.03.2014
Сообщений: 15
16.09.2014, 23:34  [ТС]
Ок, посмотрю. Но все равно нужны еще советики
0
2393 / 1921 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
16.09.2014, 23:34
Перевод числа из int в число прописью. Т.е. ты ему 100500, а прога тебе - "Сто тысяч пятьсот". Не так просто, как кажется.
3
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
16.09.2014, 23:44
Программу-менеджер файлов, с возможностью прятать их в потоки метаданных ну и работать с ними оттуда же.
1
И целого heap'а мало
 Аватар для Andrej
96 / 57 / 17
Регистрация: 31.07.2014
Сообщений: 291
16.09.2014, 23:53
ArtemFO, попробуй написать веб-сервер (http). Оберни нативные сокеты в класс (если парень, пишуший чат, сделает, укради у него).
Если не видел сокетов, то это как работа с файлами, только со своей долбанутостью.
Поверх сокетов пойдёт буфферизатор. В http конец команды обозначается последовательностью \r\n. Принимаешь символы пока не увидишь конец.
Далее, тебе надо анализировать то, что пришло. Http достаточно хорошо продуман.
Например, у тебя есть на сайте файл по пути /cats/funny/cat_and_dog.jpg
То ты, кликнув на ссылку, сделаешь браузер послать запрос типа: GET /cats/funny/cat_and_dog.jpg http/1.
Пишешь класс-анализатор, который будет смотреть пришедшую команду и дёргать соответствующие методы.
Если файл настоящий, то отослать его. Если сделаешь простенький шаблонизатор типа php, то сгенерить страницу.
Только вот ещё с несколькими клиентами разобраться. Многопоточность (для учебного примера сойдёт) или же ухищерения epoll/kqueue. Если нравиться идея, то спроси препода про обслуживание нескольких клиентов. Робких не любят.
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
16.09.2014, 23:59
ребят, он сказал что у него средний уровень программирования в группе на 2 курсе, и обучение закончилось классами, я думаю ему морского боя будет выше крыши, а вот John Prick предложил хорошую мозголомку, на курсач не тянет, но вот сделать очень интересно
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.09.2014, 00:15
Типичное задание на втором курсе по ООП - организовать систему для взаимодействия с БД (бинарным/текстовым файлом) для (продажи билетов/автомобилей/продуктов).
В системе предусмотреть:
- абстрактный базовый класс с несколькими чисто виртуальными функциями
- несколько наследников от него с реализацией этих функций. В идеале, чтобы хоть от одного их этих наследников также были потомки.
- предусмотреть класс, имеющий набор производных объектов (читай указателей на базовый класс)
- в системе показать пример использования полиморфизма
- в классе-обёртке реализовать операции типа сортировки объектов, поиск по нескольким значениям, добавление и удаление информации. При поиске предусмотреть вывод на экран всех удовлетворяющих условию объектов.
- для удобного управления предусмотреть текстовое меню с несколькими подменю (пример, выбираем поиск - выводится меню с набором критериев поиска)
- при запуске программа должна считывать содержимое с файла
- при окончании работы записывать содержимое в файл
- очень хорошо, если вы предусмотрите возможность работы с русскими символами. Но настоятельно советую начать делать систему без этого
- если очень хочется - организуйте в классах работу с памятью. Тогда необходимо будет явно определить в каждом из классов конструктор по умолчанию/аргументированный/все сразу, копий, непустой деструктор (при наличии виртуальных функций его итак следует явно объявить с ключевым словом virtual), оператор присваиваний.
Во всех курсовых, что я видел, преподаватели требовали возни с памятью. Но лично я считаю, что следует использовать готовое решение в виде std::string и не плодить ошибок когда требуется изучить ООП, а не ненужную (в данном случае) возню с памятью.
1
И целого heap'а мало
 Аватар для Andrej
96 / 57 / 17
Регистрация: 31.07.2014
Сообщений: 291
17.09.2014, 00:53
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
ребят, он сказал что у него средний уровень программирования в группе на 2 курсе, и обучение закончилось классами, я думаю ему морского боя будет выше крыши
Надо бить сложные для нынешнего уровня задачи, чтобы развиваться. Да, и на самом деле, эти задачи не сложны.
Они время- и силозатратны. И да, как раз на втором курсе пора копаться в системе, её интерфейсами и проч.
Ну вот ещё идея. Реализовать расширенную версию игры жизнь (фичи1фичи1!!!).
Есть поле с животными, все они наследуются от родителя Animal (лучше сделать интерфейсом). Ну и, живут, так сказать.
Ходят по полю и жрякают друг-друга, если смогут. Ну и размножаются, тоже, если смогут.
Нанаследовать от Animal хищника и травоядное. А можно их тоже интерфесами зафигачить, чтоб удобно множественно наследоваться для всеядных. Настрополять волков, зайцев, кукушек и смотреть, кто победит. Хорошая модель должна повторить взаимоотношения типа хищник-жертва с соответствующими скачками популяций.
Делать это можно в циклах или же через потоки (да, пора их знать уже на 2м курсе), std::thread/std::mutex в помощь.
И обязательно прикрутить гуи! По собственному опыту, ни один препод не смотрит в код. Но вот гуи и оформление поднимают оценку.
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
17.09.2014, 01:14
Andrej, я такое делал на 3 курсе, было доп задание, там без гуи, но этот вариант тоже интересен
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
17.09.2014, 01:37
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
ребят, он сказал что у него средний уровень программирования в группе на 2 курсе, и обучение закончилось классами, я думаю ему морского боя будет выше крыши
Странно, я морской бой в 10 классе писал учась в языковой школе. Тут соглашусь с
Цитата Сообщение от Andrej Посмотреть сообщение
Надо бить сложные для нынешнего уровня задачи, чтобы развиваться. Да, и на самом деле, эти задачи не сложны.
Они время- и силозатратны.
ArtemFO, выберите несколько тем разного уровня сложности и выясните, какого ему будет достаточно и спокойно реализуйте.

Не по теме:

John Prick, ну это клепается за пару часов, вот к примеру мой вариант "в лоб", ушел примерно час, но усиленно не тестил

Кликните здесь для просмотра всего текста
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
using namespace std;
 
const string ex[] = { "тысяч", "миллион", "биллион", "триллион", "квадрилион", "квинтилион", "секстилион", "септилион" };
const string h[] = { "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот" };
const string d[] = { "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто" };
const string um[] = { "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять", "десять",
"одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать" };
const string uf[] = { "одна", "две" };
 
string parsetriplet(int i, int p)
{
    string s;
    if (!i) return s;
    if (!p)
    {
        if (i / 100) s += h[i / 100-1] + ' ';
        if (i % 100)
        if (i % 100 > 19)
        {
            s += d[i % 100 / 10 - 2] + ' ';
            if (i % 10 != 0) s+= ((i % 10 > 2) ? um[i % 10-1] : uf[i % 10-1]) + ' ';
        }
        else s += (i % 100 > 2) ? um[i % 100-1] + ' ' : uf[i % 10-1] + ' ';
        if (p != -1)
        {
            s += ex[p];
            if ((i % 100 > 10) && (i % 100 < 20))
                s += "";
            else if (i % 10 == 1)
                s += "а";
            else if (i % 10 == 2)
                s += "и";
            else if (i % 10 == 3)
                s += "и";
            else if (i % 10 == 4)
                s += "и";
            s += ' ';
        };
    }
    else 
    {
        if (i / 100) s += h[i / 100-1] + ' ';
        if (i%100)
        if (i % 100 > 19)
        {
            s += d[i % 100 / 10 - 2] + ' ';
            if (i % 10 != 0) s+=um[i % 10-1] + ' ';
        }
        else s += um[i%100-1] + ' ';
        if (p != -1)
        {
            s += ex[p];
            if ((i % 100 > 10) && (i % 100 < 20))
                s += "ов";
            else if (i % 10 == 2)
                s += "а";
            else if (i % 10 == 3)
                s += "a";
            else if (i % 10 == 4)
                s += "а";
            else if (i % 10 == 1)
                s += "";
            else s += "ов";
            s += ' ';
        }
    }
    return s;
}
 
string inttoword(long long int i, int p = -1)
{
    if ((p == -1) && (i == 0)) return string("ноль");
    if (!i) return string();
    if (i < 0) return "минус " + inttoword(abs(i) / 1000, p + 1) + parsetriplet(abs(i) % 1000, p);
    return inttoword(i / 1000, p + 1) + parsetriplet(i % 1000, p);
}
 
int main()
{
    srand(time(0));
    setlocale(LC_ALL, "RUSSIAN");
    long long int i;
    while (true)
    {
        cin >> i;
        //i = rand();
        cout << i << ' ' << inttoword(i) << '\n';
        _getch();
    }
    _getch();
}

0
2393 / 1921 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
17.09.2014, 01:51

Не по теме:

Цитата Сообщение от КОП Посмотреть сообщение
ну это клепается за пару часов, вот к примеру мой вариант "в лоб", ушел примерно час, но усиленно не тестил
А теперь смотрим первый пост:
Цитата Сообщение от ArtemFO Посмотреть сообщение
главное что бы не слишком простое и было много ООП
С "много ООП" у тебя проблемки. Да и "много" - понятие растяжимое. ;) В общем, вердикт: существенно переработать.



По теме: мне кажется, лезть в системные вещи (потоки, их взаимодействие, сети) пока рановато. Возможно, стоит глянуть на что-то стандартно-студенческое типа набора структур "Фамилия-Данные" и работы с ними: сортировка, выборка и т.д. Скучно, конечно, но зато наверняка.
0
17.09.2014, 01:54

Не по теме:

John Prick, просто для такой задачи вполне хватит функции, от того, что я ее запихну в класс, ООПшности не добавится, но спасибо за задачку, было интересно

0
17.09.2014, 01:55

Не по теме:

Цитата Сообщение от КОП Посмотреть сообщение
усиленно не тестил
Начнём с малого: компилировал?

0
17.09.2014, 01:57

Не по теме:

John Prick, конечно), инклуды не выложил. Кстати, это можно обернуть в класс "словестных чисел" с парсером и перегрузкой, вот тогда уже ООПшно будет чуток

0
17.09.2014, 02:05

Не по теме:

Цитата Сообщение от КОП Посмотреть сообщение
инклуды не выложил
Типа, чтоб другие не догадались?
Цитата Сообщение от КОП Посмотреть сообщение
Кстати, это можно обернуть в класс "словестных чисел" с парсером и перегрузкой, вот тогда уже ООПшно будет чуток
Да там все if-else бери да оборачивай в что-то более интеллектуальное. Короче, простор для деятельности.

0
17.09.2014, 02:10

Не по теме:

John Prick, если вы уже делали, не сохранилась ли у вас ваша реализация?
и чем if else плох? знаю, что непонятно, но в голову не идет, как прям кардинально изменить. Практически все проверки необходимы.

0
2393 / 1921 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
17.09.2014, 02:20

Не по теме:

Ну и раз уж мы в ролевые игры препод-студент начали играть:

C++
1
const string ex[] = { "тысяч", "миллион", "биллион", "триллион", "квадрилион", "квинтилион", "секстилион", "септилион" };
По-русски будет:
C++
1
const string ex[] = { "тысяч", "миллион", "миллиард", "триллион", "квадрилЛион", "квинтилЛион", "секстилЛион", "септилЛион" };
:)



Добавлено через 7 минут
Цитата Сообщение от КОП Посмотреть сообщение
если вы уже делали, не сохранилась ли у вас ваша реализация?
Ну на самом деле, толковой не было. Было что-то типа классов, как ты говоришь, "словестных чисел". И всё было заточено под интерфейс STL. Т.е. для пользователя это выглядело примерно так:
C++
1
2
Number2String x(100500, InWords());
std::copy(x.begin(), x.end(), std::ostream_iterator<Number2String>(std::cout, x.delimiter()));
Но это всё не работало толком как надо. Да и вообще не понятно, была ли такая идея концептуально правильной.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
17.09.2014, 02:23

Не по теме:

John Prick, я студент лишь с октября, сейчас я просто тот, кому видимо пора поспать, раз половину с лл, а другую с л пишу :D
но против игры ничего не имею, завтра может попробую это в класс обернуть, как написал выше. И пожалуй надо будет отдельную тему для критики создать, а то зафлудим человеку тему



Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от John Prick Посмотреть сообщение
Было что-то типа классов
имеете ввиду с парсером строковых чисел?
Ну и чисто из интереса, не дадите взглянуть?
пс: (реально спать пора, вместо дадите написал данете :D)

0
17.09.2014, 02:28

Не по теме:

КОП, ну для развития, можешь. На самом деле, молодец, что быстро справился. Но подумай, как можно грамматику обобщить. Ну или добавь, например, английский язык. 100500 = One hundred thousand and five hundred. Или как там оно правильно?..

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.09.2014, 02:28
Помогаю со студенческими работами здесь

Нужен совет с выбором темы для дипломного проекта C#
Нужен совет. В следующем году у меня последний курс колледжа и у меня будет дипломное проектирование. Тему для дипломного проекта разрешили...

Нужен совет в выборе языка для приложения
Добрый день Дамы и Господа! Нужна помощь в выборе языка для приложения. Приложение под Андроид. Приложение для фильтрации объявлений...

Нужен совет в выборе компонентов для работы с БД
Доброго всем времени суток! Помогите с выбором компонентов для работы с базой данных. Delphi 7 изучаю несколько месяцев, в основном,...

Очень нужен совет в выборе комплектующих для компьютера, для работы с 3D графикой и тп. (Есть предвар. список)
Друзья, очень нужен ваш совет в выборе комплектующих для компьютера, заточенного под работу с 3D графикой, композом, монтажем и т.п. ...

Нужен совет в выборе процессора для мат платы asus m4a78 am
Посоветуйте самый мощный/лучший процессор, который подойдет для мат платы asus m4a78 am. На данный момент стоит процессор amd athlon ii x2...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru