Применение языка программирования С/С++ при создании рабочего проекта

Алгоритмизация и структурное программирование на языке С/С++. Создание справочника в памяти (ввод данных), вывод справочника на экран с использованием потоковых классов, сортировка методом Шелла. Циклы, описание применяемых специальных алгоритмов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.02.2012
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Оглавление

Введение

1. Постановка задачи

2. Структура данных с указанием типов

3. Структурная схема программы

4. Описание работы программы

5. Описание специальных алгоритмов

6. Листинг программы

7. Результаты сортировки

Заключение

Список литературы

Введение

Целью данной курсовой работы является углубить теоретические знания по языку программирования С\С++ и применение их на практике при создании рабочего проекта, расширить кругозор студентов в вопросах возможности применения ЭВМ в конкретной практической деятельности, овладевания навыками структурного программирования на языке С. В этой работе для выполнения всех требований преподавателя к функциональности рабочего приложения мне будут необходимы знания по всему курсу «Алгоритмизация и программирование на языке «С/С++». При выполнении курсовой работы предстоит:

· изучить теорию и технологию работы со средой программирования С\С++;

· изучить и проанализировать соответствующую литературу;

· провести сравнительный анализ языков программирования этого класса, выявить достоинства и недостатки;

· привести элементы методической работы в виде разработки вариантов заданий.

Таблица 1 - Экспериментальная база реле

Марка реле

R нормальное,

Ом

U рабочее,

В

I рабочее,

А

Масса,

г

1

P1

690

220

1

100

2

P3

690

220

1

110

3

PTK-X(M)

720

220

1

110

4

DSH-15

720

220

1

100

5

ТАМ 112-1М

770

250

6

140

6

ТАМ 103

750

340

3

450

7

ТАМ 123

900

380

5

500

8

Т425

650

110

1

100

9

МРТ 110

700

220

10

220

10

ТАМ 126

720

250

3

150

11

BI-1-М

150

24

5

400

12

PТСВ

250

24

4

800

13

PТ-СМ-Ех

300

24

2

400

14

TAB102

320

110

5

15

15

Т4М013

800

380

8

150

16

ТАМ 127

720

380

10

240

17

ТАМ133-2М-46

400

250

6

140

18

МРТ 12

150

220

10

220

19

ТРE 974

500

220

5

500

20

ТРE108

650

220

10

100

1. Постановка задачи

Создание справочника в памяти (Ввод данных) с использованием функций С.

Вывод справочника на экран (с использованием функций С++).

Удаление записи в справочник.

Сортировка методом Шелла по полю строкового типа (по алфавиту).

Сортировка методом быстрой сортировки по числовому полю (на усмотрение разработчика).

Сортировка методом Шелла по числовому полю (на усмотрение разработчика).

Поиск записи в справочнике по части названия марки радиодетали.

Сохранение справочника в файле с использованием функций языка С++.

Открытие справочника из файла с использованием функций языка С++.

Выход из программы.

Каждая запись должна состоять из 5 полей: марка (строковой тип); остальные 4 поля выбираются самостоятельно из справочников и должны представлять реальные параметры радиодеталей. При работе с программой также должны вводиться реальные марки и соответствующие им параметры деталей. Таблица с параметрами должна быть приведена в приложении.

При разработке программы создать собственный заголовочный файл, включающий директивы препроцессора, определение структуры данных, прототипы используемых функций. Каждый пункт меню, кроме выхода из программы, должен быть реализован в виде пользовательской функции, определяемой в отдельном файле. В программе использовать двоичный ввод/вывод в файлы. При запуске программы из командной строки в качестве аргумента командной строки должно передаваться имя файла-базы данных. При отсутствии аргумента при запуске программы имя файла-базы данных должно вводиться пользователем программы.

Предусмотреть защиту программы от ввода пользователем некорректных данных.

Курсовая работа выполняется с помощью компилятора gcc.

2. Структура данных с указанием типов

struct rele s[20] - структура, содержащая информацию о 20 реле;

float U - рабочее напряжение на реле, вещественный тип данных;

char marka[15] - наименование реле, символьный массив, максимальное количество символов в котором равно 15;

int R,I,massa - номинальное сопротивление, рабочая сила тока, масса, целочисленный тип данных;

int i - глобальная переменная целочисленного типа, используется как количество вводимых реле.

3. Структурная схема программы

Прототипы функций:

void vvod()- функция, использующаяся для ввода данных о реле в справочник, хранится в модуле vvod.с;

void vivod()- функция, использующаяся для вывода на экран информации о всех введенных в справочник реле, хранится в модуле vivod.c;

void shell()-функция, предназначенная для сортировки реле по их маркам по полю строкового типа методом Шелла, хранится в модуле shell.c;

void q_sort(int l, int r)- функция, предназначенная для сортировки реле по числовому полю (I) методом быстрой сортировки, хранится в модуле q_sort.c;

void shell_str()-функция, предназначенная для сортировки реле по числовому полю (U) методом Шелла, хранится в модуле shell_str.c;

void save(char *)- функция, предназначенная для сохранения справочника в файле, хранится в модуле save.c;

void open(char *)- функция, предназначенная для открытия справочника из файла, хранится в модуле open.c;

void del()-функция, предназначенная для удаления записи из справочника, хранится в модуле del.c.

void search()-функция, предназначенная для поиска записи в справочнике по части названия марки реле, хранится в модуле search.c;

4. Описание работы программы

Программа начинается с цикла, который завершится только если переменная “х” получит не нулевое значение, что и происходит при выборе от а до q пункта меню и выполнится оператор continue;

Далее при помощи конструкции

switch(x)

{

case a:…

case b:…

}

В программе реализованы следующие функции:

a- Создание справочника в памяти(ввод данных) с использованием функция языка С.

b- Вывод справочника на экран с использованием потоковых классов языка С++

c -Удаление записи из справочника

d- Сортировка методом Шелла по полю строкового типа

e- Быстрая сортировка по числовому полю (I)

f -Сортировка методом Шелла по числовому полю (U)

g- Поиска записи в справочнике по части названия марки

s- Сохранение справочника в файле с использованием потоковых классов С++

o- Открытие справочника из файла с использованием потоковых классов С++

q- Выход из программы

5. Описание специальных алгоритмов

Сортировка Шелла:

Конкретная последовательность шагов может быть и другой. Единственное правило состоит в том, чтобы последний шаг был равен 1. Например, такая последовательность: 9, 5, 3, 2, 1 дает хорошие результаты и применяется в показанной здесь реализации сортировки Шелла.

void shell(char *items, int count) {

register int i, j, gap, k;

char x, a[5];

a[0]=9; a[1]=5; a[2]=3; a[3]=2; a[4]=1;

for(k=0; k < 5; k++) {

gap = a[k];

for(i=gap; i < count; ++i) {

x = items[i];

for(j=i-gap; (x < items[j]) && (j >= 0); j=j-gap)

items[j+gap] = items[j];

items[j+gap] = x;

}

}

Вы могли заметить, что внутренний цикл for имеет два условия проверки. Очевидно, что сравнение x<items[j] необходимо для процесса сортировки. Выражение j>=0 предотвращает выход за границу массива items. Эти дополнительные проверки в некоторой степени понижают производительность сортировки Шелла.

В слегка модифицированных версиях данного метода сортировки применяются специальные элементы массива, называемые сигнальными метками. Они не принадлежат к собственно сортируемому массиву, а содержат специальные значения, соответствующие наименьшему возможному и наибольшему возможному элементам. Это устраняет необходимость проверки выхода за границы массива. Однако применение сигнальных меток элементов требует конкретной информации о сортируемых данных, что уменьшает универсальность функции сортировки.

Анализ сортировки Шелла связан с очень сложными математическими задачами, которые выходят далеко за рамки этой книги. Примите на веру, что время сортировки пропорционально при сортировке n элементов. Тем не менее, не стоит чрезмерно восхищаться сортировкой Шелла -- быстрая сортировка еще лучше.

Быстрая сортировка:

Быстрая сортировка построена на идее деления. Общая процедура заключается в том, чтобы выбрать некоторое значение, называемое компарандом (comparand)[10], а затем разбить массив на две части. Все элементы, большие или равные компаранду, перемещаются на одну сторону, а меньшие -- на другую. Потом этот процесс повторяется для каждой части до тех пор, пока массив не будет отсортирован. Например, если исходный массив состоит из символов fedacb, а в качестве компаранда используется символ d, первый проход быстрой сортировки переупорядочит массив следующим образом:

Начало f e d a c b

Проход 1 b c a d e f

Затем сортировка повторяется для обеих половин массива, то есть bса и def. Как вы видите, этот процесс по своей сути рекурсивный, и, действительно, в чистом виде быстрая сортировка реализуется как рекурсивная функция.

Значение компаранда можно выбирать двумя способами -- случайным образом либо усреднив небольшое количество значений из массива. Для оптимальной сортировки необходимо выбирать значение, которое расположено точно в середине диапазона всех значений. Однако для большинства наборов данных это сделать непросто. В худшем случае выбранное значение оказывается одним из крайних. Тем не менее, даже в этом случае быстрая сортировка работает правильно. В приведенной ниже версии быстрой сортировки в качестве компаранда выбирается средний элемент массива.

алгоритмизация программирование справочник шелл

/* Функция, вызывающая функцию быстрой сортировки. */

void quick(char *items, int count){

qs(items, 0, count-1);

}

/* Быстрая сортировка. */

void qs(char *items, int left, int right){

register int i, j;

char x, y;

i = left; j = right;

x = items[(left+right)/2]; /* выбор компаранда */

do {

while((items[i] < x) && (i < right)) i++;

while((x < items[j]) && (j > left)) j--;

if(i <= j) {

y = items[i];

items[i] = items[j];

items[j] = y;

i++; j--;

}

} while(i <= j);

if(left < j) qs(items, left, j);

if(i < right) qs(items, i, right);

}

В этой версии функция quick() готовит вызов главной сортирующей функции qs(). Это обеспечивает общий интерфейс с параметрами items и count, но несущественно, так как можно вызывать непосредственно функцию qs() с тремя аргументами.

Необходимо упомянуть об одном особенно проблематичном аспекте быстрой сортировки. Если значение компаранда в каждом делении равно наибольшему значению, быстрая сортировка становится "медленной сортировкой" со временем выполнения порядка n2. Поэтому внимательно выбирайте метод определения компаранда. Этот метод часто определяется природой сортируемых данных. Например, в очень больших списках почтовой рассылки, в которых сортировка происходит по почтовому индексу, выбор прост, потому что почтовые индексы довольно равномерно распределены -- компаранд можно определить с помощью простой алгебраической функции. Однако в других базах данных зачастую лучшим выбором является случайное значение. Популярный и довольно эффективный метод -- выбрать три элемента из сортируемой части массива и взять в качестве компаранда значение, расположенное между двумя другими.

6. Листинг программы

Makefile

- служит для компиляции всех функций, используемых в программе в один исполняемый файл rele.exe

rele: vvod.o menu.o vivod.o shell_str.o save.o open.o q_sort.o shell.o del.o search.o

g++ -o rele vvod.o menu.o vivod.o shell_str.o save.o open.o q_sort.o shell.o del.o search.o

menu.o: menu.c rele.h

g++ -c menu.c

vvod.o: vvod.c rele.h

g++ -c vvod.c

vivod.o: vivod.cpp rele.h

g++ -c vivod.cpp

save.o: save.cpp rele.h

g++ -c save.cpp

open.o: open.cpp rele.h

g++ -c open.cpp

shell.o: shell.c rele.h

g++ -c shell.c

shell_str.o: shell_str.c rele.h

g++ -c shell_str.c

q_sort.o: q_sort.c rele.h

g++ -c q_sort.c

del.o: del.c rele.h

g++ -c del.c

search.o: search.c rele.h

g++ -c search.c

clean:

rm -rf *.o rele

rele.h

заголовочный файл, в который включены библиотеки ввода-вывода, библиотеки, для работы со строковыми типами данных, а также объявлены функции, глобальные переменные, структура данных, и массив структуры, используемые в программе.

#include <iostream>

#include <fstream>

#include <stdio.h>

#include <ctype.h>

#include <stdlib.h>

#include <string.h>

using namespace std;

/*прототип функций*/

void vvod();

void vivod();

void shell();

void q_sort(int l, int r);

void shell_str();

void save(char *);

void open(char *);

void del();

void search();

/* объявление структуры*/

struct rele{

float U;

char marka[15];

int R,I,massa;

};

menu.c

menu.c содержит функцию main(int argc,char *argv[]), в которой реализуется буквенное меню справочника реле, и вызов всех, необходимых функций, по запросу пользователя.

#include "rele.h"

int i=0;

struct rele s[20];

/* argc-количество аргументов командной строки при запуске программы*/

/*argv[]-массив указателей на строки*/

int main(int argc, char *argv[]){

system("clear");

char x;

char c[100];

if(argc==1){

printf("\nИмя файла не было указано при запуске!\n\n"

"Укажите его сейчас: ");

scanf("%90s",c);

while(getchar()!= '\n');

}else{

strcpy(c,argv[1]);

}

while(1){

printf("Справочник РЕЛЕ \n\n");

printf(" A.Ввод данных с использованием функций С\n");

printf(" B.Вывод данных c использованием функций С++\n");

printf(" C.Удаление записи из справочника\n");

printf(" D.Сортировка методом Шелла по полю строкового типа\n");

printf(" E.Быстрая сортировка по числовому полю (I)\n");

printf(" F.Сортировка методом Шелла по числовому полю (U) \n");

printf(" G.Поиск записи в справочнике по части названия марки\n");

printf(" S.Сохранение справочника в файле с использованием потоковых классов С++\n");

printf(" O.Открытие справочника из файла с использованием потоковых классов С++\n");

printf(" Q.Выxод\n");

printf("\nВведите необходимый пункт меню: ");

x = tolower(getchar());

while (getchar()!= '\n');

switch(x){

case 'a': vvod(); break;

case 'b': vivod(); break;

case 'c': del(); break;

case 'd': shell_str(); break;

case 'e': q_sort(0,i-1);

if(i>1) printf("\n\nСортировка прошал успешно!\n\n");

break;

case 'f': shell();

break;

case 'g': search();

break;

case 's': save(c);break;

case 'o': open(c);break;

case 'q': printf("Выход из программы\n"); return 0;

default:{

printf("\n\nНеправильно выбран пункт меню.\n");

printf("Попробуйте выбрать снова\n");

continue;

}

}

}

}

vvod.c

- В файле vvod.c описана функция vvod (), выполняющая ввод данных в справочник с помощью стандартных функций ввода языка С. При вводе данных в справочник проверяется корректность вводимой информации.

#include"rele.h"

/*указывает компилятору на необходимость поиска определяющих объявлений в другом файле*/

extern int i;

extern struct rele s[20];

void vvod(){

char c;

int n;

system("clear");

while(1){

if(i==20){

system("clear");

printf("\n\nСправочник заполнен!\n\n");

return;

}

printf("Введите марку %d реле: ",i+1);

fgets(s[i].marka,20,stdin);

for (n = 0; s[i].marka[n]!= '\n'; n++);

s[i].marka[n] = '\0';

if(strlen(s[i].marka) == 0){

printf("\nВведите данные\n");

continue;

}

while(1){

printf("Введите номинальное сопротивление (R,Ом) %d реле: ",i+1);

if(!(scanf("%d",&s[i].R)) || s[i].R <= 0){

while(getchar()!='\n');

system("clear");

printf("Введены некорректные данные!\n");

}

else{

while(getchar()!='\n');

break;

}

}

while(1){

printf("Введите рабочее напряжение (U,в) %d реле: ",i+1);

if(!(scanf("%f",&s[i].U)) || s[i].U <= 0){

while(getchar()!='\n');

system("clear");

printf("Введены некорректные данные!\n");

}

else{

while(getchar()!='\n');

break;

}

}

while(1){

printf("Введите рабочую силу тока(I,mA) %d реле: ",i+1);

if(!(scanf("%d",&s[i].I)) || s[i].I <= 0){

while(getchar()!='\n');

system("clear");

printf("Введены некорректные данные!\n");

}

else{

while(getchar()!='\n');

break;

}

}

while(1){

printf("Введите массу (г) %d реле: ",i+1);

if(!(scanf("%d",&s[i].massa)) || s[i].massa <= 0){

while(getchar()!='\n');

system("clear");

printf("Введены некорректные данные!\n");

}

else{

while(getchar()!='\n');

break;

}

}

i++;

printf("\n\nХотите ввести ещё данные?(Y/N): ");

c=getchar();

if(c=='\n'){

system("clear");

break;

}

while(getchar()!='\n');

if(c=='N' || c=='n'){

system("clear");

break;

}else

if(c=='Y' || c=='y'){

system("clear");

continue;

}else{

system("clear");

printf("Введён неизветсный оператор! Переход в главное меню\n");

break;

}

}

return;

}

vivod.cpp

- в файле vivod.cpp находится описание функции вывода созданного справочника на экран с помощью потоков языка С++.

#include "rele.h"

void vivod(){

extern struct rele s[20];

extern int i;

system("clear");

if(i==0){

cout << "\n\nОшибка!!!!\n\nСправочник пуст\n\n";

return;

}

cout << "Справочник РЕЛЕ\n";

cout.setf(ios::right);

cout << \n";

cout << "| N|Марка РЕЛЕ |R номинальное|U рабочее |I рабочее| масса |\n";

cout << \n";

for (int a=0;a<i;a++){

cout << "|";

cout.width(2);

cout << a + 1 << "|";

cout.width(15);

cout << s[a].marka << "|";

cout.width(13);

cout << s[a].R<< "|";

cout.width(10);

cout << s[a].U << "|";

cout.width(9);

cout << s[a].I << "|";

cout.width(7);

cout << s[a].massa << "|\n";

}

cout<<"=\n";

}

save.cpp

- в файле save.cpp описана функция сохранения справочника в дисковом файле с помощью функций языка С++.

#include "rele.h"

void save(char * file){

system("clear");

extern struct rele s[20];

extern int i;

if(i == 0){

cout << "\nСправочник пуст\n";

return;

}

ofstream os(file, ios::binary);

os.write((char *)s, i*sizeof(rele));

if(!os)

cout << "\nНевозможно сохранить файл\n";

os.close();

cout << "\nЗапись выполнена\n";

return;

}

open.cpp

-в файле open.cpp описана функция, предназначенная для открытия справочника из файла с помощью функций языка С++.

#include "rele.h"

void open(char * file){

system("clear");

extern int i;

extern struct rele s[20];

ifstream is(file, ios::in | ios::binary);

if(!is){

cout << "\nНевозможно открыть файл\n";

return;

}

i = 0;

while(1){

is.read((char*)(&s[i]), sizeof(rele));

if(!is)

break;

i++;

}

cout << "\nСправочник загружен" << "\n";

return;

}

shell.c

- в файле shell.c описана функция, предназначенная для сортировки реле по их маркам по полю строкового типа методом Шелла с помощью потоков языка С.

#include "rele.h"

void shell(){

system("clear");

extern struct rele s[20];

struct rele temp;

extern int i;

if(i<2){

printf("Справочник пуст либо присутствует только 1 запись\n");

return;

}

int a=0,j;

int step = i / 2;

while (step > 0){

for (a=0;a<(i-step);a++){

j=a;

while ((j >= 0) && (s[j].U > s[j + step].U)){

temp = s[j];

s[j] = s[j + step];

s[j + step] = temp;

j--;

}

}

step = step / 2;

}

printf("\n\nСортировка прошла успешно\n\n");

return;

}

shell_str.c

- в файле shell_str.c описана функция, предназначенная для сортировки реле по числовому полю (U) методом Шелла.

#include "rele.h"

void shell_str(){

system("clear");

extern struct rele s[20];

struct rele temp;

extern int i;

if(i<2){

printf("Справочник пуст либо присутствует только 1 запись\n");

return;

}

int f=0,j;

int step = i / 2;

while (step > 0){

for (f = 0; f < (i - step); f++){

j = f;

while ((j >= 0) && (strcmp(s[j].marka, s[j + step].marka))>0){

temp = s[j];

s[j] = s[j + step];

s[j + step] = temp;

j--;

}

}

step = step / 2;

}

printf("\n\nСортировка прошла успешно\n\n");

}

q_sort.c

в файле q_sort.c описывается функция, предназначенная для сортировки реле по числовому полю (I) методом быстрой сортировки.

#include "rele.h"

void q_sort (int l, int r) {

system ("clear");

if(r<1){

printf("\nСправочник пуст либо присутствует только 1 запись\n\n");

return;

}

extern struct rele s[20];

struct rele swap;

if (l>=r)

return;

int i = l, j = r;

int x = s[(r+l)/2].I;

do{

while (s[i].I < x) i++;

while (s[j].I > x) j--;

if (i<=j){

swap = s[i];

s[i] = s[j];

s[j] = swap;

i++;

j--;

}

} while(!(i>j));

q_sort(l, j);

q_sort(i, r);

return;

del.c

- в файле del.c описывается функция, предназначенная для удаления записи из справочника.

#include "rele.h"

extern int i;

extern struct rele s[20];

void del(){

int a,j;

char c;

system("clear");

while(1){

if(i==0){

printf("\n\nСправочник пуст\n\n");

return;

}

printf("\nВведите номер удаляемой записи (всего %d записей): ",i);

if(scanf("%d",&a)!=1){

system("clear");

printf("Неккоректный ввод.повторите\n");

while(getchar()!='\n');

continue;

}else

if(a < 1 || a > i){

printf("\n\nЗапись N%d отсутствует\n\n",i);

continue;

}

while(getchar()!='\n');

i--;

for(j=a-1;j<i;j++){

s[j]=s[j+1];

}

system("clear");

printf("\nЗапись успешно удалена\n");

printf("\nХотите ещё удалить данные?(Y/N): ");

c=getchar();

if(c=='\n'){

printf("\nПереход в главное меню\n\n");

return;

}

while(getchar()!='\n');

if(c=='N' || c=='n'){

system("clear");

break;

}else

if(c=='Y' || c=='y'){

system("clear");

continue;

}else{

printf("Введён неизвесный оператор\nПереход в главное меню\n");

while(getchar()!='\n');

system("clear");

break;

}

}

return;

}

search.c

в файле search.c описывается функция, предназначенная для поиска записи в справочнике по части названия марки реле.

#include"rele.h"

extern struct rele s[20];

extern int i;

void search(){

system("clear");

if(i==0){

printf("\n\nСправочник пуст\n");

return;

}

int a,r[i],j=0;

char g[16];

printf("Введите часть марки детали: ");

fgets(g,15,stdin);

for(a = 0; g[a]!= '\n'; a++);

g[a] = '\0';

for(a=0;a<i;a++)

if(strstr(s[a].marka,g)!=NULL){

r[j]=a;

j++;

}

if(j==0){

printf("Нет данных содержащих \"%s\"\n",g);

return;

}

printf("Записи содержащие подстроку \"%s\"\n",g);

for(a=0;a<j;a++)

printf("|%2d|%15s|%13d|%10.1f|%9d|%7d|\n",a+1,s[r[a]].marka,s[r[a]].R,s[r[a]].U,s[r[a]].I,s[r[a]].massa);

return;

}

7. Результаты сортировки

Исходный справочник

Сортировка методом Шелла по полю строкового типа

Сортировка методом быстрой сортировки по числовому полю (I):

Сортировка методом Шелла по числовому полю (U):

Заключение

В ходе выполнения курсовой работы было произведено более глубокое изучение и анализ языка программирования С, после проработки ряда учебных и методических изданий, а также практических задач. Была проделана работа по разработке метода сортировки по алфавитному порядку и по числовому полю, был разработан текстовый интерфейс пользователя. Приобрели навыки составления законченной программы с пользовательским интерфейсом и коррекцией ошибок.

При разработке курсового проекта были закреплены навыки программирования консольных приложений на языка С/С++, а именно:

- файловый ввод-вывод на языке С;

- ввод-вывод на консоль на языке С++:

- работа с массивами и структурами данных;

- изучены различные алгоритмы сортировок.

Си -- стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Денисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. Си ценят за его эффективность. Он является самым популярным языком для создания системного программного обеспечения. В языке C++ соединены воедино три различных принципа программирования: процедурное программирование (представленное языком С), объектно-ориентированное программирование (представленное таким понятием, как класс, что повышает мощность языка C++ по сравнению с языком С) и обобщенное программирование (представленное шаблонами языка C++). Одна из причин применения языка C++ -- это возможность использовать преимущества объектно-ориентированного программирования. Для этого необходимо прочное знание стандартного языка С, так как основные типы данных, операции, управляющие структуры и синтаксические правила были позаимствованы из этого языка.

Список литературы

1. Х.М.Дейтел, П.Дж.Дейтел./ Как программировать на С/С++. Издательство «Бином» 2005г.

2. Стивен Прата./ Язык программирования С- М. Издательство "Диасофт", 2002. - 896 с

3. Брайан Керниган, Деннис Ритчи. Язык программирования C -- Москва: Вильямс, 2006.

4. Глушаков, Коваль, Смирнов «Язык программирования C++. Стандарт NSI/ISO» Издательства « АСТ, Фолио» 2001 г.

5. Шилдт Г. Справочник программиста по С/С++, 3-е изд.: Пер. с англ. -- М.: Издательский дом «Вильямс», 2003.-- 432с.

Размещено на Allbest.ru


Подобные документы

  • Рассмотрение особенностей языка программирования С++. Пример составления программы - информационно-поискового справочника. Описание алгоритмов коррекции данных, введённых пользователем. Тестирование полученной программы, предусмотрение ее защиты.

    курсовая работа [20,0 K], добавлен 05.03.2015

  • Методы языка программирования C#. Алгоритмизация и программирование задач на языке высокого уровня C#. Внутренний цикл, ветвление, внешний цикл, вложенные друг в друга структуры ветвления. Вывод элементов массива на экран. Остальные элементы матрицы.

    курсовая работа [250,2 K], добавлен 27.02.2015

  • Разработка ввода с клавиатуры и вывода на экран монитора данных с помощью стандартных функций printf и scanf. Ввод количества материальных точек. Работа с линейным списком. Хранение содержимого списка в блоке ячеек памяти с последовательными адресами.

    курсовая работа [176,8 K], добавлен 18.01.2016

  • Методы реализации алгоритмов сортировки и алгоритмов поиска на языках программирования высокого уровня. Программирование алгоритмов сортировки и поиска в рамках создаваемого программного средства на языке Delphi. Создание руководства пользователя.

    курсовая работа [1,7 M], добавлен 16.04.2012

  • Структура данных с указанием типов. Общая структурная схема программы. Алгоритмы сортировки вставками. Назначение make-файла. Функции управления программой; перемещения и корректировки введенных данных и их удаления справочника, загрузки данных из файла.

    курсовая работа [1,3 M], добавлен 12.01.2016

  • Изучение понятия и основных видов массивов. Ввод массива с клавиатуры и вывод на экран. Сортировка массивов. Метод простых обменов (пузырьковая сортировка). Сортировка простым выбором и простым включением. Решение задач с использованием массивов Паскаля.

    курсовая работа [82,1 K], добавлен 18.03.2013

  • Представление (построение, создание) списка данных в виде линейного однонаправленного списка. Формирование массива данных. Вывод данных на экран. Алгоритм удаления, перемещения данных. Сортировка методом вставки. Алгоритм загрузки данных из файла.

    курсовая работа [2,1 M], добавлен 16.05.2015

  • Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.

    курсовая работа [879,8 K], добавлен 11.02.2016

  • Создание информационного справочника и предоставление информации о деятельности компании, о её возможностях и спектре предлагаемых услуг. Добавление, редактирование и удаление в информационной системе данных. Описание программной документации для системы.

    курсовая работа [1,2 M], добавлен 23.09.2014

  • Анализ основных алгоритмов внутренней сортировки массивов данных, сравнение сложности их реализации и производительности. Сортировка пузырьком, методами вставок, выбора, методом Шелла, быстрая сортировка. Операция разделения массива внутренней сортировки.

    курсовая работа [161,7 K], добавлен 17.12.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.