Оценка достоинств и недостатков языка программирования С++
Краткое сожержание материала:
Размещено на
Размещено на
Введение
Передача информации всегда была привилегией вычислительной техники. В последние десятилетия технологии по производству вычислительной техники сделали огромный рывок. В настоящее время процесс развития и совершенствования данной области настолько быстр, что новинки можно отслеживать не по годам, а по месяцам.
Одним из показателей уровня развития государства является его компьютеризированность. Компьютеры повсеместно встречаются в повседневной жизни, они прочно вошли не только в производственную сферу, но и в простой домашний обиход. Естественно, что наличие такой техники требует соответствующих инженерных кадров тем более в автоматизации процессов перевозки, где без современных технологий обойтись нельзя. Знание языка программирования в таких условиях необходимо.
С++ является языком программирования общего назначения. Естественная для него область применения - системное программирование, понимаемое в широком смысле этого слова. Кроме того, С++ успешно используется во многих областях. Реализации С++ теперь есть на всех машинах, начиная с самых скромных микрокомпьютеров - до самых больших супер-ЭВМ, и практически для всех операционных систем. Таким образом, знание этого языка программирования служит начальным, базовым инструментом для написания соответствующих программ. При автоматизации каких-либо процессов одним из основных умений является умение составлять алгоритмы, т.е. задание ряда последующих действий в зависимости от начального условия. В этом смысле практика программирования как нельзя лучше влияет на уровень подготовки соответствующего специалиста. Не секрет, что нынешний век - это век глобальных и локальных информационных сетей, программное обеспечение для которых обладает специфическими свойствами, основанными на элементарных знаниях о связи. По словам профессиональных программистов, такой мощный инструмент сетевого программирования как JAVA синтаксически очень похож на C Builder, который в свою очередь базируется на предыдущих версиях языка С. В автоматике на транспорте широко используется сетевое оборудование и ЭВМ, поэтому специалистам данного профиля необходимы знания в области информационных технологий.
1. Постановка задачи и алгоритм решения
Задача:
Очереди и стеки.
Написать программу, демонстрирующую принцип заполнения очереди и стека и принцип удаления элементов из очереди и стека.
В блоке Cur.cpp определен класс win. Данный класс создает объект, содержащий информацию об окне (кнопке).
Определение класса:
class win
{
public:
int dx, height, width, top, selected;
char *text;
void DrawWindow (int, int, int, int, int, char*);
void HideWindow (int, int, int, int);
void TextOut (char*, int, int, int, int);
};
dx-координата по х левого края окна относительно начала координат.
height - высота окна (кнопки).
width - ширина окна (кнопки).
top - координата по у верхнего края окна (кнопки) относительно начала координат.
selected-параметр окна (кнопки), определяющий его закраску в зависимости от того активное оно или нет (1-активное, 0-неактивное).
*text - указатель на строку выводимую в окно.
void DrawWindow (int, int, int, int, int, char*) - функция, которая по заданным координатам рисует окно. В нее передаются параметры dx, height, width, top, selected и *text.
void HideWindow (int, int, int, int) - функция, которая по заданным координатам зарисовывает (удаляет) окно. В нее передаются параметры dx, height, width, top, selected.
void TextOut (char*, int, int, int, int) - функция, которая по заданным координатам окна выводит в него текстовую строку. В нее передаются параметры *text, dx, height, width, top.
Определения всех перечисленных функций:
void win: DrawWindow (int lx, int hght, int wdth, int t, int slct, char*str)
{height=hght; width=wdth; top=t; selected=slct; text=str;
setcolor(WHITE);
setfillstyle (SOLID_FILL, selected? MAGENTA:BLUE);
dx=lx;
bar (dx, top, dx+width, top+height);
TextOut (text, dx, height, width, top);
int poly [12];
poly[0] = dx;
poly[1] = top;
poly[2] = dx+width;
poly[3] = top;
poly[4] = dx+width-3;
poly[5] = top+3;
poly[6] = dx+3;
poly[7] = top+3;
poly[8] = dx+3;
poly[9] = top+height-3;
poly[10] = dx;
poly[11] = top+height;
setfillstyle (SOLID_FILL, selected? CYAN:LIGHTBLUE);
fillpoly (6, poly);
poly[0] = dx;
poly[1] = top+height;
poly[2] = dx+width;
poly[3] = top+height;
poly[4] = dx+width;
poly[5] = top;
poly[6] = dx+width-3;
poly[7] = top+3;
poly[8] = dx+width-3;
poly[9] = top+height-3;
poly[10] = dx+3;
poly[11] = top+height-3;
setfillstyle (SOLID_FILL, BLACK);
fillpoly (6, poly);
}
void win: HideWindow (int lx, int hght, int wdth, int t)
{dx=lx; height=hght; width=wdth; top=t;
setfillstyle (SOLID_FILL, BLUE);
bar (dx, top, dx+width, top+height);
}
void win: TextOut (char *text, int dx, int height, int width, int top)
{
int w = textwidth(text);
int h = textheight(text);
int y = (height-h)/2;
int x = (width-w)/2;
outtextxy (dx+x, top+y, text);
}
В блоке Menu.cpp определены:
struct coord {int x, lx, ly, rx, ry;} - структура содержащая параметры окна.
x - координата по х левого края окна относительно начала координат.
lx - высота окна (кнопки).
ly - ширина окна (кнопки).
rx - координата по у верхнего края окна (кнопки) относительно начала координат.
ry - параметр окна (кнопки), определяющий его закраску в зависимости от того активное оно или нет (1-активное, 0-неактивное).
void mnu_bild (win *mnu, coord *t, int reakt, int flag, char**name) - функция, в которую передаются параметры окна (кнопки), указатель на указатель на строку и указатель на созданный объект класса win, в свою очередь она активизирует или деактивизирует заданное окно.
void mnu_bild (win *mnu, coord *t, int reakt, int flag, char**name)
{if (flag==1)
{
t[reakt].ry=1;
mnu[reakt].DrawWindow (t[reakt].x, t[reakt].lx, t[reakt].ly, t[reakt].rx, t[reakt].ry, name[reakt]);
}
else {
if (reakt!=0) t[reakt].ry=0;
mnu[reakt].DrawWindow (t[reakt].x, t[reakt].lx, t[reakt].ly, t[reakt].rx, t[reakt].ry, name[reakt]);
}
}
void steck(void) - функция демонстрирующая работу со стеком.
void steck(void)
{
win unit;
win main_win[3];
char *str[]={{«1»}, {«2»}, {«3»}, {«4»}, {«5»}, {«6»}, {«7»}};
char *dialog[]={{«Добавление элементов в стек»},
{«Удаление элементов из стека»},
{«Нажмите любую клавишу»}};
coord mwin[]={{260,460,366,10,0}, {350,20,183,30,0}, {350,400,250,60,0}};
coord unit_c={310,20,20,60,1};
win temp=unit;
mnu_bild (main_win, mwin, 0,0, name);
mnu_bild (main_win+1, mwin+1,0,1, name+2);
mnu_bild (main_win+2, mwin+2,0,0, name);
main_win[2].TextOut (*dialog, main_win[2].dx, 40, main_win[2].width, main_win[2].top);
Text (main_win+2, «Стек.txt»);
mnu_bild (&unit,&uni...
Разработка программы "Переключатели цвета и фигуры" в среде программирования Visual Basic
Исследование теоретических аспектов разработки программы посредством использования Visual Basic. Анализ достоинств и недостатков данного языка програм...
Теория и практика языков программирования
Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинс...
Языки программирования высокого уровня
Сравнительный анализ наиболее распространенных языков, их классификация, описание достоинств и недостатков. Использование процедур, функции и подпрогр...
Оценка достоинств и недостатков высшего образования в Российской Федерации. Перспективы и сложности медицинского образования. Оценка достоинств и недостатков подготовки в ММА им. И.М.Сеченова.
Оценка достоинств и недостатков высшего образования в Российской Федерации. Перспективы и сложности медицинского образования. Оценка достоинств и недо...
Технология программирования
Цели и задачи дисциплины "Технология программирования". Программные средства ПК. Состав системы программирования и элементы языка. Введение в систему...