C ++ основи

Infopulse University Ukraine

Опис на програмата

Read the Official Description

C ++ основи

Infopulse University Ukraine

Содржина на курсот

Основни поими:

  • Што е компјутер, компјутерски команда, апликација и програмскиот јазик? Еволуцијата на овие поими.
  • Компјутерска програма извршување Детална анализа: опишувајќи улоги на оперативниот систем, возачите, процесорот, меморија, автобус, тастатура, глувче, и други компоненти
  • Разликите помеѓу високи и ниски програмски јазици ниво (машина код, асемблер, C, C ++, Java, SQL, HTML).
  • Како да започнете да напишете програма. Текст едитор, компајлер, врска.
  • Идеите (Интегрирани развојни околини).

Како да започнете:

  • Објаснување на претходната програма кодот линија по линија.
  • препроцесори на - програмата за влез точка.
  • Воведување на првиот кодирање правила. Грешки, како да се справи со нив.
  • типови на податоци (големина, со опсег), декларација на променливи. Именување правила, кодот читливост и добар стил кодирање.
  • Магацинот (LIFO дното). Променливи видливост и работен век. Глобални и локални променливи. Bad кодирање стил - со користење на глобални променливи. Видливост оператор наставката "::".
  • Променливи и константи, разлика помеѓу иницијализација и задача.
  • Бинарни, децимала и хексадецимален формат.

пракса:

  • "Здраво свету!" програмата.
  • Како да се добијат податоци од корисник влез и го покаже. дијалог корисникот.

Првиот алатки:

  • Поимите на операторот, изразување и настава. Правилна употреба терминологија значење за успешно полагање интервју.
  • Аритметички оператори, споредба и правила за нивната употреба. Потпишан и непотпишана типови. Експлицитни и имплицитни тип Наѓ. Пост и preincrement. Приоритет и асоцијативност. Условна оператори (доколку, на друго место ако), троичен оператор, прекинувач (пропаднете концепт).
  • Јамки: за, време, не подолго време. Вгнездени јамки (i, j, k шалтери нарачаш).
  • Debug: Како да се трага извршување на програмата, точки на прекин, F5, F10, часовници.

пракса:

  • Неколку прашања од интервјуата.
  • А едноставен калкулатор. Испита способност за обработка на секој корисник влез.
  • Како да се намали бројот на можни грешки. Првиот дизајн концепт на примена крос-платформа.
  • Форми цртеж: полни, празни, со дебелина дефинирани граници, правоаголници, триаголници, ромб.
  • Како да се прикаже текст во средината на правоаголникот. екран позиционирање
  • Неколку форми во ред.
  • Едноставен анимации (поместување форми), getch (), првата алатка за да се добие бараната информација.
  • Најдете и обработка на одредени броеви во опсегот.
  • На првата програма "Цртеж", што може да има вечен; тоа мора да се покаже мени, да привлече било која форма по избор на корисникот или да го прекине.

Низи, совети, препораки, алгоритми:

  • Магацинот врз низа, на својот оператор големина, индекс, sizeof (), низа иницијализација.
  • Покажувачи, како не iArray [i] израз всушност се работи, што значи типот на покажувачот за компајлерот. Динамична алокација на меморија, грамада, нови, избришете ги избришете [] оператори. Сите совети во врска нијанси: деиницијализира покажувачи, обесен (заборавени) покажувачи, меморија протекување (и алатки за да го детектира). Покажувач на сè - празнина *.
  • Референци, разликите меѓу нив и совети.
  • Сортирање, пребарување и споредба алгоритми, нивните перформанси. Профили. Компајлирате и траење грешки.
  • Динамична низи (што може да се промени големината на траење). Повеќедимензионални низи. -

пракса:

  • Алгоритми: пребарување, минималната вредност, максималната вредност, брои предмети, сума, просек.
  • Повеќе сложени алгоритми: работа со повеќедимензионални низи, создавање хистограм, ротација матрица. Како да се погледне напред од сегашната позиција во низа.
  • Неколку алгоритми за сортирање со анализа на нивните перформанси.
  • Првиот натпревар: штиклирајте-тактика-пети. Опис: Корисникот ќе има можност за избор на "0'-тите или" X'-а и да наместите колку круга да се игра. Програмата треба да се утврди победникот на сегашниот круг и одржување на вкупниот број на победи, реми и порази.
  • Програмата, исто така, треба да бидат заштитени од грешки корисникот (со образложение од нив), да имаат добар употребливоста и интерфејс. Напредно: користи боја за текст излез.

функции:

  • Зошто ни се потребни во функции?
  • Предавање функција аргументи од вредност, со адреса и со повикување.
  • Прв поглед на просторот за адреси на апликацијата, и извршна формат на датотека, а цената на повик на функција.
  • Функции преоптоварување, стандардните параметри.
  • Рекурзија, магацинот повик, магацинот претекување, број претекување.
  • Покажувачи и const модификатор: разлика помеѓу постојана покажувач и покажувач на константна.
  • Еден добар кодирање стил. Зошто е толку важно.

пракса:

  • Алгоритам за мерење на перформансите. Како да се добие разумна точност.
  • Некои задачи од интервјуто (употреба рекурзија).
  • Преработи Tick_tack-пети, калкулатор и апликации цртеж со користење функции.

стрингови:

  • Конзола апликацијата, системот тампон и тастатурата прекинува.
  • Библиотека функции: strcmp, strlen, strtok_s, strstr.
  • Како да го форматирате текст излез (во C и C ++), cin.getline.
  • знак и wchar_t, нула прекинат стринг. Динамичка низа од стрингови.

пракса:

  • Создаде помошни функции за да се заштити вашиот стан од погрешно внесување на корисникот:
  • спречи влегувањето карактери наместо цифри;
  • спречи влегувањето повеќе симболи од тампон капацитет;
  • да биде подготвен за екстра-голем внес на текст
  • Колку пати на даден збор присутни во една реченица?
  • Корисникот ќе влезе на било кој број на реченици, апликацијата ги парсира, создава низа на зборови од овие казни, се брои бројот от зборови, се наоѓа на најдолгиот и најкраткиот, сортира зборови по должина и по азбучен ред.
  • Креирај "лизгање текст стринг" стан со опција да го прекине циклусот и ажурирање на содржината.
  • Напредно: Спроведување на зборот-фолија алгоритам.

Bitwise операции:

  • Оператори и, |, ^, ~,, <<, >>!. -

пракса:

  • Да се ​​чува во една целобројна променлива четири броја од различни опсези (0-5, 0-100, 10-60, 100- 40000).
  • Прикажи бинарно претставување на целобројна вредност
  • Она што е најголем број може да се чуваат во 1 бајт?
  • Кренете 2 на моќта на 200.
  • Листа на сите логички дискови на компјутерот.
  • Шифрирање и дешифрирање на внесениот текст.

Структури, enumerations, синдикатите, малку области:

  • Што се кориснички дефинирани типови. Разлики помеѓу С и С ++. Првиот познаник со објектно-ориентираното програмирање.
  • Универзална чување за секој тип на податок.
  • enum како компактен декларација на поврзани константи.

пракса:

  • Како да го користите синдикатите да праќаат и примаат податоци било кој тип.
  • Развивање стан "Студенти" за чување и обработка на лични податоци. "Студентски" структура (чување на податоци) мора да имаат следните области: име, презиме, возраст, 5 знаци (низа), просечната оценка. Спроведување на едноставни операции со низа на предмети, пребарување, сортирање, да додадете, избришете, уреди. Креирај алгоритам за автоматско иницијализација на низа на структури (вклучувајќи имиња). Ќе влезат големина низа од тастатурата. Напредна задача: вид и да го покаже на податоци користејќи покажувачи на објекти не се објектите.

Препроцесори директиви:

  • Како и каде треба да се дефинираат критичните ограничувања, константи.
  • Како да се вклучуваат компилација единици од исти или различни места, спречувајќи вклучувајќи датотека неколку пати.
  • класи меморија: екстерните, статична, се регистрирате, авто.
  • Статички променливи во функциите и датотеки.
  • Условна компилација. развој на крстот платформа.
  • Користење # и ## оператори во дебагирање.
  • Макроа: како да се напише макро, про и контра, и како да се напише единица тестови погодно.

пракса:

  • Направете неколку .h * и * .cpp датотеки и да ги поврзе правилно.
  • Напиши макро за евалуација на перформансите на која било изјава.

додадени фајлови:

  • Улогата на оперативниот систем, возачите и примена во работењето IO, референци сметководство, режими на работа датотека.
  • Какви видови на грешки поврзани датотеки треба да се проверуваат во примената производство.
  • Читате, пишувате и операции за позиционирање. големината на датотеката и формат. Ублажен излез.
  • Разлики помеѓу текст и бинарни начини на отворање на датотеката. Кои треба да се користи еден.

пракса:

  • Како да се истражуваат содржината дискови и директориуми.
  • Како да ја копирате голема датотека.
  • Да запишам во датотеката енкриптирани податоци од било кој формат. Прочитајте го, ја декриптираат и шоу.
  • Се создаде еден стан како потсетник (дневник, организатор). Опис: На корисникот ќе влезе некои информации и поставува на време да ги потсети за тоа. Откако корисникот започна оваа апликација, се проверува дали тековните датум и време, ги разгледува сите податоци се чуваат во досие. Ако има нешто да се потсетиме во овој момент тоа не се појави порака за потсетување.

Проектот на предметната програма:

  • Едноставен менаџер на датотеки што може да пребарување и прикажување на содржината на секоја датотека (како што е, без признавање на формат на датотека), и уредување на одделни датотеки. Студентот треба да се развие свој формат на датотека за складирање на податоци и обработка - голем спектар на структури "ученик" (види описот погоре во пракса дел од структури).
  • Напредно сложеност: полето Add искуство "структура" ученик "(низа на карактери во куп) и неговата должина. Не сите студенти имаат искуство, тоа треба да го комплицираат формат на датотека.
  • На програмата мора да има user-friendly интерфејс и да работат во два модови:
  • Направете датотека и да ја најдете во датотечниот систем.
  • отворено, да се прочита, да додадете или избришете рекорд, уреди, сортирање на податоците, врз основа на нивните различни критериуми утврдени од страна на корисникот.
  • Кои работат во било кој начин, корисникот треба да биде во можност да се види на контекстното мени. Апликацијата мора да бидат заштитени од било кориснички грешки и не треба било каков вид на меморија протекување (грамада меморија, дескриптори).

C ++ напредни

Траење на курсот: 120 часа Функција совети:

  • Употреба на покажувачи на функција како критериум на пребарување и споредба, која може да се пренесе како аргументи за барање или средиме алгоритми. Предикати.
  • Адаптација на вашиот функционалноста на постојните интерфејс, како на пример: средиме било низи користење qsort_s функција. Повратен повик функции, typedef.
  • Како да се прошири функционалноста на вашата програма, без да го рекомпајлирање. Цената на екстра ОК работа.

пракса:

  • Подреди ученици (види база разбира практика) од страна на неколку критериуми доби за време на извршувањето.
  • Преработи "Калкулатор" стан користење низа на функција покажувачи.

Шаблон функции:

  • Тип на изведените, typecast и функција аргументи, дефиниција функција преоптоварување.
  • параметри Не-тип.

пракса:

  • Се развие еден стан, што ги сортира низи на ints, знаци и двојки со користење дефиниција функции.
Функции со променлива (недефинирана) број на параметри:
  • Улогата на првиот параметар, назначувачи формат, VA_LIST.
пракса:
  • Развивање на "мини printf" функција.

Класи (база на концепти):

  • Филозофија на класа дизајн и употреба.
  • Конструктори, деструктори, преоптоварен конструктори, класа интерфејс како збир на правила за работа со него ...
  • Како да се трага сите повици на функции класа во програмата.
  • класа функција функционалности стандардно и како да го исклучите.
  • Состав: агрегација и познаник, дијаграм интеракција, UML.
  • Иницијализација правило. Како да се работи со ресурси. ова, јавни, приватни.
  • Препроцесори #ifndef и директиви #pragma компајлерот зависни. Што е стандард за C ++; Класа А има објект од класа Б, но класа Б има покажувач на А - како да се реши тоа. Пријатели: Како една функција или класа може да стане пријатели во друга класа. Односите меѓу "пријатели".

пракса:

  • Развивање Array и линија класи.
  • Друга алатка: класа резерви, кои може да се користи од страна на било кој клиент за безбедно да ја преработи на секоја датотека, и безбедно да пристапат на податоци (посредник помеѓу клиентот и на датотека);

Копија конструктор и операторот преоптоварување:

  • Кога ви е потребно овие алатки? Плитки и длабоки копија.
  • Како да ја копирате објект кој има друг објект внатре.
  • Експлицитно конструктори.
  • Вграден и кориснички дефинирани типови на податоци. Оператор преоптоварување правила.

пракса:

  • Преоптоварување на +, =, << (typecast), * (околни), нови, ++, <, == and [] operators.

Поврзани листа, дефиниција, по вовед на STL:

  • Како работи поврзани листа. Разликата помеѓу листа и низа, споредба на нивните настапи.
  • Кои се процесорот нивоа кеш, кеш хит и ја пропуштиме кеш. Зошто поврзани листи се прилично лошо отколку добро.
  • Вовед во STL: контејнери, повторувачи.
  • Шаблон класи: * .hpp датотеки, конструктори врз основа на други класи на објекти.
  • Користење оператори преоптоварување во шаблони. Шаблони за специјализација.

пракса:

  • Развивање на STL-како Листа класа.

Употреба на "const" модификатор во класи:

  • const_cast, променливи, разликата меѓу "реалниот постојано и само за читање област.
  • const член функции.

пракса:

  • Развивање на класа со const членови;

Статични членовите на групата:

  • Приватни конструктор, како да се избројат сите објекти на една класа. Што е шема? Singleton шема. Како треба да бидат дизајнирани за да не се биде анти-шема.
  • Статични член функции.
  • Воведување на паметни совети, преоптоварување на -> оператор.
  • Покажувачи на членовите на групата.

пракса:

  • Број на бројот на сите објекти од класата.
  • Развие едноставен SmartPtr класа.

Наследство и полиморфизам:

  • Заштитени членовите на групата, приватниот и заштитено наследство.
  • Иницијализација на детето објект.
  • Работат од покажувачот на база класа. Нов UML симболи.
  • Виртуелни функции, деструктор, апстрактен база класа, интерфејсот, vptr, vtbl
  • Статички и динамички обврзувачки, static_cast, dynamic_cast, typeid, RTTI.
  • Разликата меѓу наследство на функционалност (и податоци) и интерфејс наследство.
  • Кога еден виртуелен деструктор е лошо решение. АБИ - Пријава Бинарни интерфејс.

пракса:

  • Креирај класа хиерархија, проверете видливост член од класата и од објектот.
  • Модели: мост, Абстракт Фабрика, адаптер, посетител, декоратор.
  • Некои прашања од интервјуата.

Динамичен структури на податоци. STL, зајакнување на:

  • STL контејнери: вектор, листа, во собата, на сајтот, deque, оџакот, unordered_set. Нијанси на работа со нив. std :: shared_ptr, make_shared (), std :: unique_ptr.
  • Алгоритми, functors, функција адаптери: најдете, копирате, find_if, се отстранат, equal_to, bind2nd и така натаму.
  • Именски простори. Биг О нотација.
  • Промоција: како да ги собере своите библиотеки и да ги вклучат во проектот. shared_ptr, weak_ptr, make_shared, услови, и така натаму.

пракса:

  • Работи со сите главни контејнери и алгоритми.

Исклучок ракување:

  • Архитектурата на програмата, со исклучок ракување.
  • Rethrowing исклучоци, фати (...), магацинот премотување низа и правила. Животниот век на throwed исклучок објект. dynamic_cast<>.

пракса:

  • Моделот "синџирот на одговорност.
  • Делумно опис на проектот на диплома 'Онлајн продавница "(без теми, библиотеки и вмрежување).

C ++ 11:

  • Lambdas, авто, rvalue, подвижен конструктори и операторот задача. std :: потег (), decltype, униформа листа initializer, nullptr.

пракса:

  • Проверка на условите под кои извршувањето на потег конструктор ќе биде подобро од копија конструктор прави тоа.

Повеќе наследство:

  • Друга примена на моделот на адаптер.
  • Виртуелна наследство, разликите помеѓу компајлери. На делови од објектот.
  • Зошто C # и Java им овозможи на повеќе наследство од само интерфејси.
  • Основи на технологија COM: IUnknown, QueryInterface, компонентата за регистрација, GetClassObject, regsvr32, CLSID.

пракса:

  • Проверете стапици на кастинг тип од празнина *.

Динамички и статички библиотеки:

  • Како за извоз на функции и класи од библиотека. Како да се вклучат во проектот.
  • Експлицитни и имплицитни поврзување, дебагирање.
  • Дизајн на апликацијата за крос-платформа.

пракса:

  • Користете библиотеки во вашиот проект "Онлајн продавница.
  • Идејата за системи за контрола верзија. Git.

GUI апликации со употреба на Win32 API. Qt GUI .:

  • Која е разликата помеѓу стан конзола и апликација прозорецот. Бесконечна јамка, пораки, постапката прозорец, разликите помеѓу SendMessage и PostMessage функции? Ресурс датотека * .rc.
  • Како да се креирате сопствени прозорецот и да дефинирате сопствена порака.
  • Како да се работи со помош на контроли: Копчињата (радио, проверете, groupbox), комбинирано поле, уреди, итн (вклучувајќи Qt).
  • InitCommonControls функција.
  • Настани и слотови во Qt. Како да подкласа на прозорецот (заменете постапка прозорец) (вкл. Qt), менувањето на гледиштето на прозорецот. Креирање на корисник контрола, OWNERDRAW стил.
  • Компатибилен HDC.

пракса:

  • Креирај три верзии (секој од нив се протега на претходната верзија) на апликацијата "VectorDraw", кој се базира на едноставни форми и продавници нив како на сликата со користење на векторска графика принципи. Развивање на формат на датотека и програма за архитектура (со користење на полиморфизам) за да се постигне компатибилност наназад.

Процеси и теми:

  • места за корисникот и OS адреса. објекти кернелот е.
  • Кога треба да го користите теми и што од нив може да го забрза вашата програма. Тема контекст е.
  • Теми, испарливи и оптимизација на компајлерот.
  • Теми (и процеси) синхронизација користење на Win32 API. Mutexes, настани, semaphores, waitable тајмери. WaitForSingleObjects и други. Семејството на атомска Interlocked- функции. Во она што цел мора да се отклучи со mutexes?
  • TLS (конец локално складирање). Reenterable и конец безбедно код.
  • Процеси: приоритет, preemptive multitasking, како дете процес наследува рачки.
  • IPC (интепроцесно комуникации), меморија мапирање, цевки, заеднички делови во библиотека.
  • Функции за виртуелна меморија, слика на процеси, теми, библиотеки.
  • Теми синхронизација користење на C ++ 11 и поттик. std :: тема (разлика од поттик :: конец), mutex, lock_guad, condition_variable, unique_lock, зајакнување :: Chrono.

пракса:

  • Опис на примена: конзола сака да го забрза некоја работа. Треба да се создаде и да се иницијализира во "главните" и int низа, подели на делови во зависност од бројот на јадра процесорот. Започнете со ист број на теми и им даде делови на податоци. Во меѓувреме, "главните" продолжува да ја работи својата работа и да чекаат за теми. Покажете му на податоци во "главните".
  • Како да ги синхронизирате по ред: Еден влез тема испраќа нареди низа од структури на податоци до три работник теми. Тие го прават истата работа, но време да се процес, секој предмет може да биде различен. Работник теми обработува објекти и да им даде на еден излез конец за да го состави низа на податоци во претходниот ред. GUI тема покажуваат податоците.
  • Како да се создаде листа на чекање лична порака. WAIT_TIMEOUT.
  • Како да го користите прозорецот за да испраќате порака на конец.
  • Како да го користите TLS.
  • Како да се користи атомски функции.
  • Како да го пренасочам излезот од конзола апликација на друга процес - исто што и IDE прави кога ќе биде пуштен на компајлерот.
  • C ++ 11: користење на конец, mutex, condition_variable, lock_guard, unique_lock класи.
  • Што библиотеки се користи во примената и каде се тие?
  • Во внатрешноста на DllMain. Како да го блокира, како да го користам.

мрежни апликации:

  • Протокол (IP, TCP, UDP, HTTP), подлошки, блокирање и nonblocking разговори со користење на winsock2 библиотека. изберете, WSAAsyncSelect, WSAEventSelect.
  • TCP конекција држави и ракување со грешки.

пракса:

  • Едноставен ехо серверот.
  • Вмрежување верзија на Селектирај-тактика-пети.
  • Мини Git.

Диплома проектот Онлајн продавницата:

апликација клиент-сервер: еден сервер, еден клиент за купување на производи, неколку клиенти да ги купат. Во првиот сервер во можност да продаде само две категории на производи. Апликација треба да имаат способност да додадете plug-in - библиотеки со часови на работа со некои други категории на производи. Апликацијата мора да го признае својот прв лансирање за да го поставите почетниот капитал да се започне со работа (купување на производи).

Серверот почнува со работа по анализирањето тековниот директориум на листата на plug-in (библиотеки). Кога се открива нова библиотека, таа мора да биде во можност да работат со нова категорија производ без рекомпајлирани. Апликацијата мора да поддржува крос-платформа архитектура: секоја платформа зависни рутински (ресурси, хардвер) треба да бидат одделени од логиката.

Апликацијата треба да бидат заштитени од корисникот и мрежни грешки

This school offers programs in:
  • Англиски
Времетраењето и Цена
This course is Он-лајн студии
Start Date
Дата на започнување
Oct. 2018
Duration
Време на траење
60 Часа
Price
цена
720 USD
Locations
Украина - Киев
Дата на започнување : Oct. 2018
Крајна дата за аплицирање Контактирај
Дата на завршување Контактирај
Dates
Oct. 2018
Украина - Киев
Крајна дата за аплицирање Контактирај
Дата на завршување Контактирај
Price
24 седници, 2,5 часа, 2 пати неделно