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

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

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

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

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

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

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

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

ВУЗ: СПБГПУ
направление: Программная инж.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2014, 23:09
Ответы с готовыми решениями:

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

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

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

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

31
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
16.09.2014, 23:28 2
ну не знаю, полистай мои темки, там где-то была тема про морской бой, симпотичный такой получился, но там есть 1 баг, когда комп стреляет, поправишь баг, допилишь логику компу и будет норм вроде бы
1
0 / 0 / 1
Регистрация: 28.03.2014
Сообщений: 15
16.09.2014, 23:34  [ТС] 3
Ок, посмотрю. Но все равно нужны еще советики
0
2278 / 1769 / 741
Регистрация: 27.07.2012
Сообщений: 5,253
16.09.2014, 23:34 4
Перевод числа из int в число прописью. Т.е. ты ему 100500, а прога тебе - "Сто тысяч пятьсот". Не так просто, как кажется.
3
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
16.09.2014, 23:44 5
Программу-менеджер файлов, с возможностью прятать их в потоки метаданных ну и работать с ними оттуда же.
1
И целого heap'а мало
96 / 57 / 17
Регистрация: 31.07.2014
Сообщений: 291
16.09.2014, 23:53 6
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 7
ребят, он сказал что у него средний уровень программирования в группе на 2 курсе, и обучение закончилось классами, я думаю ему морского боя будет выше крыши, а вот John Prick предложил хорошую мозголомку, на курсач не тянет, но вот сделать очень интересно
1
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.09.2014, 00:15 8
Типичное задание на втором курсе по ООП - организовать систему для взаимодействия с БД (бинарным/текстовым файлом) для (продажи билетов/автомобилей/продуктов).
В системе предусмотреть:
- абстрактный базовый класс с несколькими чисто виртуальными функциями
- несколько наследников от него с реализацией этих функций. В идеале, чтобы хоть от одного их этих наследников также были потомки.
- предусмотреть класс, имеющий набор производных объектов (читай указателей на базовый класс)
- в системе показать пример использования полиморфизма
- в классе-обёртке реализовать операции типа сортировки объектов, поиск по нескольким значениям, добавление и удаление информации. При поиске предусмотреть вывод на экран всех удовлетворяющих условию объектов.
- для удобного управления предусмотреть текстовое меню с несколькими подменю (пример, выбираем поиск - выводится меню с набором критериев поиска)
- при запуске программа должна считывать содержимое с файла
- при окончании работы записывать содержимое в файл
- очень хорошо, если вы предусмотрите возможность работы с русскими символами. Но настоятельно советую начать делать систему без этого
- если очень хочется - организуйте в классах работу с памятью. Тогда необходимо будет явно определить в каждом из классов конструктор по умолчанию/аргументированный/все сразу, копий, непустой деструктор (при наличии виртуальных функций его итак следует явно объявить с ключевым словом virtual), оператор присваиваний.
Во всех курсовых, что я видел, преподаватели требовали возни с памятью. Но лично я считаю, что следует использовать готовое решение в виде std::string и не плодить ошибок когда требуется изучить ООП, а не ненужную (в данном случае) возню с памятью.
1
И целого heap'а мало
96 / 57 / 17
Регистрация: 31.07.2014
Сообщений: 291
17.09.2014, 00:53 9
Цитата Сообщение от 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 10
Andrej, я такое делал на 3 курсе, было доп задание, там без гуи, но этот вариант тоже интересен
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
17.09.2014, 01:37 11
Цитата Сообщение от 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
2278 / 1769 / 741
Регистрация: 27.07.2012
Сообщений: 5,253
17.09.2014, 01:51 12

Не по теме:

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



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

Не по теме:

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

0
John Prick
17.09.2014, 01:55
  #14

Не по теме:

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

0
КОП
17.09.2014, 01:57
  #15

Не по теме:

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

0
John Prick
17.09.2014, 02:05
  #16

Не по теме:

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

0
КОП
17.09.2014, 02:10
  #17

Не по теме:

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

0
2278 / 1769 / 741
Регистрация: 27.07.2012
Сообщений: 5,253
17.09.2014, 02:20 18

Не по теме:

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

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 19

Не по теме:

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



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

Не по теме:

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

0
John Prick
17.09.2014, 02:28     Нужен совет в выборе темы для курсовой по ООП. 2 курс
  #20

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2014, 02:28

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru