Реферат по предмету "Информатика, программирование"


Программирование на языке С++

Содержание
 
Введение
Индивидуально задание
Блок–схема
Листинги программ
Руководство пользователя
Список используемой литературы

Введение
 
Язык C++ возник в начале 1980-х годов, когда сотрудник фирмы Bell Laboratories Бьёрн Страуструп придумал ряд усовершенствований кязыку Си под собственные нужды. До началаофициальной стандартизации язык развивался в основном силами Страуструпа вответ на запросы программистского сообщества. В 1998 году был ратифицирован международныйстандарт языка C++: ISO/IEC 14882:1998 «Standard for the C++ ProgrammingLanguage»; после принятия технических исправлений к стандарту в 2003 году — нынешняя версия этогостандарта — ISO/IEC 14882:2003.
Ранние версииязыка, известные под именем «C с классами», начали появляться с 1980 года. Идея создания нового языка берётначало от опыта программирования Страуструпа для диссертации. Он обнаружил, чтоязык моделирования Симула (Simula) имеет такие возможности, которые были быочень полезны для разработки большого программного обеспечения, но работаетслишком медленно. В то же время язык BCPLдостаточнобыстр, но слишком близок к языкам низкого уровня и не подходит для разработкибольшого программного обеспечения. Страуструп начал работать в Bell Labs надзадачами теории очередей (в приложении к моделированию телефонных вызовов).Попытки применения существующих в то время языков моделирования оказалисьнеэффективными. Вспоминая опыт своей диссертации, Страуструп решил дополнитьязык Си (преемник BCPL) возможностями, имеющимися в языке Симула. Язык Си,будучи базовым языком системы UNIX,на которой работали компьютеры Bell, является быстрым, многофункциональным ипереносимым. Страуструп добавил к нему возможность работы с классами иобъектами. В результате, практические задачи моделирования оказались доступнымидля решения как с точки зрения времени разработки (благодаря использованиюСимула-подобных классов) так и с точки зрения времени вычислений (благодарябыстродействию Си). В начале в Си были добавлены классы (с инкапсуляцией), производные классы,строгая проверка типов, inline-функции и аргументы по умолчанию.
Разрабатывая Си с классами (позднее C++), Страуструп такженаписал программу cfront — транслятор,перерабатывающий исходный код Сис классами в исходный кодпростого Си. Новый язык, неожиданно для автора, приобрёл большую популярностьсреди коллег и вскоре Страуструп уже не мог лично поддерживать его, отвечая натысячи вопросов.
В 1983 году произошло переименование языка из Си с классами в C++. Кроме того, в него былидобавлены новые возможности, такие как виртуальные функции, перегрузка функцийи операторов, ссылки, константы, пользовательский контроль над управлениемсвободной памятью, улучшенная проверка типов и новый стиль комментариев (//).Его первый коммерческий выпуск состоялся в октябре 1985 года. В 1985 году вышло такжепервое издание «Языка программирования C++», обеспечивающее первое описаниеэтого языка, что было чрезвычайно важно из-за отсутствия официальногостандарта. В 1989 году состоялся выход C++ версии 2.0. Егоновые возможности включали множественное наследование, абстрактные классы,статические функции-члены, функции-константы и защищённые члены.
В 1990 году вышло «Комментированное справочноеруководство по C++», положенное впоследствии в основу стандарта. Последниеобновления включали шаблоны, исключения, пространства имён, новые способыприведения типов и булевский тип.
Стандартнаябиблиотека C++ также развивалась вместе с ним. Первым добавлением к стандартнойбиблиотеке C++ стали потоки ввода/вывода, обеспечивающие средства для заменытрадиционных функций Си printf иscanf.Позднее самым значительным развитием стандартной библиотеки стало включение внеё Стандартной библиотекишаблонов.
После многихлет работы совместный комитет ANSI-ISO стандартизировал C++ в 1998 году (ISO/IEC 14882:1998 — Языкпрограммирования C++). В течение нескольких лет после официального выходастандарта комитет обрабатывал сообщения об ошибках и в итоге выпустилисправленную версию стандарта C++ в 2003году. В настоящее время рабочая группа МОС (ISO) работает над новой версиейстандарта под кодовым названиемC++0x (ранееизвестный как C++09).

Индивидуальноезадание
 
Окружностизадаются координатами X,Y их центров и радиусами R. Датчик случайных чиселвырабатывает характеристики N окружностей. Определить, имеются ли среди этихокружностей три попарно пересекающихся. Найти среди этих окружностей всеуединенные.
 

Блок-схема
/> 



Листингипрограмм
 
KOMP.CPP
#include
#include
#include
#include
#include
#include
#include
#include
voidpomehi(int x, int y, int i)
{
setcolor(i);
line(x-100,y-60,x-80,y-60);
line(x-60,y-50,x-40,y-50);
line(x-20,y-60,x,y-60);
line(x+20,y-50,x+40,y-50);
line(x+60,y-60,x+80,y-60);
line(x-100,y-20,x-80,y-20);
line(x-60,y-10,x-40,y-10);
line(x-20,y-20,x,y-20);
line(x+20,y-10,x+40,y-10);
line(x+60,y-20,x+80,y-20);
line(x-100,y+20,x-80,y+20);
line(x-60,y+30,x-40,y+30);
line(x-20,y+20,x,y+20);
line(x+20,y+30,x+40,y+30);
line(x+60,y+20,x+80,y+20);
line(x-100,y+60,x-80,y+60);
line(x-60,y+70,x-40,y+70);
line(x-20,y+60,x,y+60);
line(x+20,y+70,x+40,y+70);
line(x+60,y+60,x+80,y+60);
}
voidkomp(int x, int y)
{
inti;
///////////////monitor////////////////
i=8;
setcolor(i);
rectangle(x-120,y-100, x+120, y+100);
setfillstyle(SOLID_FILL,i);
floodfill(x-115,y-95,i);
i=0;
setcolor(i);
rectangle(x-110,y-90, x+110, y+90);
setfillstyle(SOLID_FILL,i);
floodfill(x,y,i);
i=0;
setcolor(i);
line(x-120,y-100, x-110, y-110);
line(x+120,y+100, x+130, y+90);
line(x+120,y-100, x+130, y-110);
line(x-110,y-110, x+130, y-110);
line(x+130,y-110, x+130, y+90);
line(x+20,y+110, x+20, y+100);
line(x-20,y+110, x-20, y+100);
rectangle(x+60,y+110, x-60, y+120);
line(x+60,y+110, x+70, y+100);
line(x+60,y+120, x+80, y+100);
line(x-60,y+110, x-50, y+100);
line(x+20,y+110, x+30, y+100);
circle(x+110,y+95,3);
circle(x+100,y+95,2);
circle(x+90,y+95,2);
///////////////sistemnik//////////////
i=0;
setcolor(i);
rectangle(x-130,y+120, x-200, y-100);
line(x-200,y-100, x-110, y-190);
line(x-130,y-100, x-40, y-190);
line(x-110,y-190, x-40, y-190);
line(x-130,y+120, x-110, y+100);
line(x-40,y-190, x-40, y-110);
rectangle(x-190,y-90, x-140, y-80);
rectangle(x-190,y-70, x-140, y-60);
rectangle(x-190,y-50, x-140, y-40);
rectangle(x-190,y-30, x-140, y-20);
rectangle(x-180,y-10, x-150, y);
rectangle(x-180,y+10, x-150, y+20);
rectangle(x-190,y+100, x-140, y+110);
circle(x-165,y+80,5);
circle(x-165,y+60,4);
line(x-165,y+80,x-165,y+84);
circle(x-165,y+80,2);
}
voidkolonki(int x, int y, int i)
{
intk;
//////////////left//////////////////
k=i;
i=15;
setfillstyle(INTERLEAVE_FILL,i);
i=k;
setcolor(i);
rectangle(x-210,y+120, x-260, y+60);
line(x-210,y+120, x-200, y+110);
line(x-210,y+60, x-200, y+50);
line(x-260,y+60, x-240, y+40);
line(x-240,y+40, x-200, y+40);
i=k;
setcolor(i);
pieslice(x-235,y+90, 0, 180, 20);
rectangle(x-255,y+90, x-215, y+110);
floodfill(x-245,y+95,i);
//////////////right/////////////////
rectangle(x+140,y+120, x+190, y+60);
line(x+190,y+120, x+210, y+100);
line(x+190,y+60, x+210, y+40);
line(x+140,y+60, x+160, y+40);
line(x+160,y+40, x+210, y+40);
line(x+210,y+100, x+210, y+40);
i=k;
setcolor(i);
pieslice(x+165,y+90, 0, 180, 20);
rectangle(x+145,y+90, x+185, y+110);
floodfill(x+155,y+95,i);
circle(x+165,y+115,4);
circle(x+155,y+115,3);
circle(x+175,y+115,3);
arc(x+165,y+40,0,150,40);
}
voidmain()
{intdr=DETECT,mod;
floatsnd[] = {659.26, 880.00, 1046.50, 987.77, 880.00, 1046.50, 880.00, 987.77,880.00,
698.46,783.99, 659.26, 659.26, 880.00, 1046.50, 987.77, 880.00, 1046.50, 880.00,987.77, 880.00,
659.26,622.25, 587.33, 587.33, 698.46, 880.00, 987.77, 587.33, 698.46,
830.61,880.00, 440.00, 523.25, 698.46, 698.46, 659.26, 783.95, 698.46, 698.46,
659.26,493.88, 523.25, 440.00, 987.77, 987.77, 932.33, 880.00, 987.77, 987.77,
880.00,783.99, 698.46, 659.26, 659.26, 783.99, 659.26, 587.33, 587.33,
698.46,587.33, 493.88} ;
intx,y,err,i,ki,key,r,h,c,x1,x2,y1,y2;
chars,str[80]={'K','U','R','S','O','V','A','Y','A',' ','R','A','B','O','T','A'};
initgraph(&dr,&mod,"");
err=graphresult();
if(err){
cout
exit(1);
}
snachala:
cleardevice();
i=7;
x=getmaxx()/2;
y=getmaxy()/2;
setfillstyle(SOLID_FILL,i);
floodfill(x,y,i);
setcolor(4);
outtextxy(400,70,«Pressany key for STOP Music»);
outtextxy(400,80,«Press'P' for PLAY Music»);
outtextxy(400,90,«Press'M' for GOTO MENU»);
outtextxy(400,100,«Press'Esc' for exit»);
settextstyle(0,0,3);
setcolor(2);
outtextxy(150,15,str);
settextstyle(0,0,2);
setcolor(6);
outtextxy(330,380,«KAFEDRA:EVM»);
setcolor(5);
outtextxy(330,420,«SPECIALNOST:VMKSiS»);
setcolor(4);
outtextxy(30,380,«VIPOLNIL:»);
settextstyle(0,0,1);
setcolor(1);
outtextxy(180,380,«STUDENTFITU 1-2a»);
settextstyle(0,0,1);
setcolor(0);
outtextxy(180,390,«XLINTCEVA.G.»);
settextstyle(0,0,2);
setcolor(4);
outtextxy(30,420,«PROVERIL:»);
settextstyle(0,0,1);
setcolor(1);
outtextxy(180,420,«KOLOMEICEVAT.G.»);
settextstyle(0,0,1);
setcolor(0);
outtextxy(180,430,«BELIKOVI.Yu.»);
komp(x,y);m1:
for(r=0;r
{
if(kbhit()) break;
i=15;
pomehi(x,y,i);
delay(100);
i=7;
kolonki(x,y,i);
i=0;
kolonki(x,y-10,i);
i=0;
pomehi(x,y,i);
delay(100);
sound(snd[r]/1.5);
if(r==11 ^ r==23 ^ r==27 ^ r==31 ^ r==43) { delay (1500); nosound (); delay(600); }
elseif (r==53 ^ r==57 ^ r==61) { delay (300); nosound(); delay (1400); }
elseif (r==47) { delay (500); nosound (); delay (700); }
elsedelay(50);
i=7;
kolonki(x,y-10,i);
i=0;
kolonki(x,y,i);
}
nosound();
setcolor(RED);
m:
s=getch();
if(s==27) exit(1);
if(s=='p') {setfillstyle(SOLID_FILL,0); floodfill(getmaxx()/2,getmaxy()/2,8);goto m1;}
if(s!='m') goto m;
cleardevice();
i=15;
setcolor(i);
setfillstyle(SOLID_FILL,i);
floodfill(x,y,i);
settextstyle(0,0,2);
setcolor(RED);
outtextxy(150,30,«MENU»);
settextstyle(0,0,1);
setcolor(2);
outtextxy(20,100,«Zadaniepo assembleru #1»);
setcolor(3);
outtextxy(20,135,«Zadaniepo assembleru #2»);
setcolor(4);
outtextxy(20,170,«Zadaniepo assembleru #3»);
setcolor(5);
outtextxy(20,205,«Zadaniepo assembleru #4»);
setcolor(6);
outtextxy(20,240,«Zadaniepo assembleru #5»);
setcolor(0);
outtextxy(20,275,«Zadaniepo assembleru #6»);
setcolor(8);
outtextxy(20,310,«Zadaniepo programmirovaniu»);
setcolor(9);
outtextxy(20,345,«Backto previos display»);
setcolor(12);
outtextxy(20,380,«Exit»);
ki=1;x1=14; y1=95; x2=250; y2=115;
rectangle(x1,y1,x2,y2);
sled:
key=bioskey(0);
switch(key)
{
case18432:{setcolor(15);
rectangle(x1,y1,x2,y2);
if(y1==95) {y1=375;y2=395; ki=9;}
else{y1=y1-35; y2=y2-35; ki--;}
setcolor(RED);
rectangle(x1,y1,x2,y2);
break;
}
case20480:
{setcolor(15);
rectangle(x1,y1,x2,y2);
if(y1==375) {y1=95;y2=115; ki=1;}
else{y1=y1+35; y2=y2+35; ki++;}
setcolor(RED);
rectangle(x1,y1,x2,y2);
break;
}
case7181: switch(ki)
{
case1: spawnl(P_WAIT, «1.EXE», NULL); break;
case2: spawnl(P_WAIT, «2.EXE», NULL); break;
case3: spawnl(P_WAIT, «3.EXE», NULL); break;
case4: spawnl(P_WAIT, «4.EXE», NULL); break;
case5: spawnl(P_WAIT, «5.EXE», NULL); break;
case6: spawnl(P_WAIT, «6.EXE», NULL); break;
case7: spawnl(P_WAIT, «CPP.EXE», NULL); break;
case8: goto snachala;
case9: closegraph(); exit(1);
}
}
gotosled;
}
/>
/>
CPP.CPP
#include
#include
#include
#include
#include
#include
intsravnenie(long x1,long x2,long y1,long y2,long r1,long r2)
{intd;
d=int(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
if(d>(r1+r2)) return 1; else return 0;} //1-ne peresekajutsja 0-peresikajutsja
voidmain()
{chars,otv;
intdr=DETECT, mod, err;
intcolor[100],KOL,ist;
longx[100],y[100],r[100],l,i,f,k,j,n;
m1:
initgraph(&dr,&mod,"");
err=graphresult();
if(err){
cout
exit(1);
}
cout »; cin>>KOL;
randomize();
cleardevice();
for(i=0;i
{
x[i]=random(540)+50;
y[i]=random(320)+80;
r[i]=random(20)+30;
color[i]=random(13)+1;
}
for(i=0;i
{setcolor(color[i]);
circle(x[i],y[i],r[i]);}
outtextxy(5,5,«Press'1' for vivoda okryzhnostei yedinenih»);
outtextxy(5,15,«Press'2' for vivoda okryzhnostei sgrypirovanih po 3»);
outtextxy(5,25,«Press'q' for quit»);
m:ist=0;
s=getch();
if(s=='1') {
cleardevice();
for(i=0;i
{f=0;
for(j=0;j
if(i!=j) if (sravnenie(x[i],x[j],y[i],y[j],r[i],r[j])==1) f++;
if(f==KOL-1) {setcolor(color[i]); circle(x[i],y[i],r[i]); ist++;}
}if(ist==0) cout
}else
if(s=='2') { cleardevice();
for(i=0;i
for(j=0;j
if(i!=j) if (sravnenie(x[i],x[j],y[i],y[j],r[i],r[j])==0)
{f=0;
for(l=0;l
if((l!=i)&&(l!=j))
if
(sravnenie(x[i],x[l],y[i],y[l],r[i],r[l])==0)||(sravnenie(x[l],x[j],y[l],y[j],r[l],r[j])==0)){f++; k=l;}
if(f==1)
for(n=0;n
if((n!=k)&&(n!=i)&&(n!=j))
if(sravnenie(x[n],x[k],y[n],y[k],r[n],r[k])==0) f++;
if(f==1)
{setcolor(color[i]);
circle(x[i],y[i],r[i]);
setcolor(color[j]);
circle(x[j],y[j],r[j]);
setcolor(color[k]);
circle(x[k],y[k],r[k]);ist++;}
}
if(ist==0) cout
if(s=='q') exit(1); else goto m;
cout
if(otv=='y') {closegraph(); goto m1;} else exit(1);
}
/>
/>
 
Руководствопользователя
 
При запуске курсовойработы на дисплее появится титульный лист сопровождаемый мелодией и анимацией.
Нажмите:
— любую клавишудля остановки мелодии.
— Pдля проигрывания мелодии
— Mдля перехода к МЕНЮ
— ESCдля выхода
Перейдите к МЕНЮдля запуска курсовой работы
В МЕНЮ наведитекурсор на задание и нажмите ENTER.Запускаетсязадание курсовой работы. Просмотрев результат работы задания, нажимаем клавишу клавишуQ и выходим в МЕНЮ.Для выхода из программы нажимаем – ESC.
При работе с программоймогут возникнуть проблемы: программа может не запускаться, и выводить ошибку инициализацииграфики. Чтобы избежать этого пользователь должен перед запуском программыубедиться в том, что файл EGAVGA.BGIнаходитсяв данном каталоге. В каталоге так же должны находится исполняемые файлы KOMP.EXE(Титульныйлист) CPP.EXE(Заданиепо курсовой работе).
Программа нормальноработает в операционных системах WindowsXP/NT/2000/98,а так же в MS-DOS'e.В других операционных системах программа не тестировалась.

Списокиспользуемой литературы
 
— Бьерн Страуструп «Язык программирования С++»
— Дейтел и Дейтел «Как программировать на C++»
— Дейтел и Дейтел «Как программировать на C»
— А.Б.Крупник «Изучаем C++»
— В.В.Подбельский «Язык Си++»
— Курс лекций по предмету «Программирование на ЯВУ»
— Методические указания к лабораторным работам по предмету «Программирование наЯВУ»


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.