≡ Student.Gomel.by
Контакты Порядок заказа Оплата Официально Репетитор Реклама на сайте Частые вопросы
Заказать курсовую работу в Гомеле
Без посредников
Умеренные цены
Качество и гарантии

Заказать лабораторную работу на Си, C++ (Си++)

Лабораторная работа №1

Согласно варианта задания реализовать программу, вычисляющую целочисленное выражение Примеры, как осуществлять ввод и вывод смотрите в "http://student.gomel.by" Программа должна запрашивать у пользователя значения переменных a,b и c. Вычислять указанное выражение и снова выводить на экран значения переменных a,b и c.

Лабораторная работа №2

Использование циклов. Согласно варианта задания реализовать программу. Алгоритм из таблицы реализовать в программе двумя способами. С помощью цикла for и с помощью цикла while(или do while). Выбор цикла while или do while зависит от алгоритма, должен быть применён тот цикл, который позволяет получить оптимальный код.

Лабораторная работа №3

Реализовать программу согласно варианта задания. Где возможно, использовать условный оператор switch.

Лабораторная работа №4

Реализовать программу, работающую с одномерным массивом целых чисел (int). Обращение к элементам массива в программе для ввода, обработки и вывода должно быть реализовано с использованием указателей. Все алгоритмы не должны использовать индексы элементов! В программе не должно быть конструкций вида a[i]= или a[0] и. т.п. Пример правильного ввода и вывода массива:
 int *p,a[10],i;

 p=a;

 for(i=0;i<10;i++)
  scanf("%d",p++);

 p=a;
 for(i=0;i<10;i++)
  printf("%4d",*p++);

Лабораторная работа №5

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

Лабораторная работа №6

Выполнить задание лабораторной работы №5 для случаев, когда память для двумерного массива выделяется динамически в зависимости от введённых M,N,K и корректно освобождается в конце работы программы. Реализовать два варианта выделения памяти для двумерного массива (можно в одной программе, можно в двух отдельных, если в задании два двумерных массива, можно память под один выделить одним способом, а под второй – другим, тогда достаточно одной программы):
  1. Память выделяется одним блоком на размер всех данных массива. Номер строки и столбца переводятся в номер элемента в выделенном блоке памяти (см. Hint); http://student.gomel.by
  2. Память выделяется отдельно под одномерный массив указателей на строки массива данных. Затем динамически выделяется память под каждую строку массива данных.
В каждом варианте выделенная память в конце работы алгоритма должна быть корректно освобождена. Hint: при первом способе выделения памяти обращение к i,j элементу массива MxN будет выполняться так: A[i * N + j] = … или *(A + i*N + j) = … . Во втором случае – A[i][j] = … или *(*(A + i) + j) = … .

Лабораторная работа №7

C использованием комбинированного типа данных (Struct) реализовать программу для работы с данными согласно варианта задания. Ввод строковых значений реализовать так, чтобы была возможность вводить текст, содержащий пробелы.

Лабораторная работа №8(1)

Реализовать согласно варианта задания (последняя цифра номера студента в журнале) программу обработки введённого текста (предложения). Обработка русских букв не обязательна, достаточно, чтобы программа корректно обрабатывала текст, состоящий из букв английского алфавита, знаков препинания, цифр (символы с кодами до 0x80). Вывод результата в лабораторной работе должен быть осуществлён одной командой (например, puts(result);). То есть нужно сначала сформировать строку с ответом, а потом уже её выводить. Не допускается вывод результата по частям. Наш сайт Пример правильного алгоритм решения (меняет в тексте попарно символы местами):
int main()
{
  char src[1000], res[1000]; //строки для исходного текста и результата
  puts("Enter text:");
  gets(src); //ввод исходного текста

  char *s = src, *d = res;

  while (*s) {
    if (s[1]) { //если есть парный символ, то менять местами в результате
      *(d + 1) = *s++; //копируем текущий символ на след. место
      *d = *s++;//копируем след. символ на текущее место
      d += 2; //перемещаемся вперёд на два символа в строке-результате
    }
    else *d++ = *s++; //последний копируется «как есть»

  }
  *d = 0; //заносим в результат символ \0 – признак конца строки

  puts("Result:");
  puts(res); //вывод результата

  return 0;
}

Лабораторная работа №9(2)

Алгоритм решения лабораторной работы №8(1) оформить в виде статического метода класса. Также объявить в классе статические поля для исходного текста и результата обработки. Пример объявления класса:
class Lab9{
  static char src[100], res[100];
public:
  static void DoTask();
  …
};
При необходимости в классе можно объявить дополнительные статические методы и поля. В основном коде программы (в функции main()), вызвать статический метод решения задачи без создания объекта. Наш сайт

Лабораторная работа №10(3)

Разработать класс, описывающий некоторую предметную область согласно варианта задания. В классе должно быть минимум три поля (строковое char[] или char*, два других зависят от варианта). Можно по желанию в лабораторной работе добавить собственные дополнительные поля. Поля должны быть закрыты от внешнего использования, для доступа к ним в классе описать необходимые методы. Поля char, хранящие тип, должны содержать символы, которые соответствуют типам (например, S – столица, O – областной центр, R – район). При выводе нужно выводить тип в виде текста, а не хранящегося символа). У класса должны быть реализованы следующие конструкторы: В программе нужно продемонстрировать работу всех конструкторов. Bывести получившиеся объекты на консоль.

Лабораторная работа №11(4)

Изучить возможности множественного наследования. Самостоятельно разработать два класса, в качестве одного можно взять свой класс из предыдущей лабораторной работы. Если у двух студентов будут два одинаковых варианта классов и полей в них, работа засчитана будет только первому сдавшему. В каждом классе объявить минимум одно поле, методы для работы с ним, конструкторы. С помощью множественного наследования разработать производный класс, наследованный от первых двух. В программе описать три функции, выполняющие какую-либо обработку каждого из классов (с выводом на консоль). Последовательно передать объект производного класса в функции для демонстрации возможностей использования порождённого класса вместо любого из базовых. Пример (обратите внимание в лабораторной работе на использование, где нужно, оператора разрешения видимости):
class Shape //первый базовый класс
{
	char* name;
public:
	Shape(char* name){this->name = name;}
	char* getName(){return name;}
};

class Style //второй базовый класс
{
	char* color;
public:
	Style(char* color){this->color = color;}
	char* getColor(){return color;}
};

class Subject:public Shape,public Style //производный класс
{
	char* name;
public:
Subject(char* names,char* name,char* color): 	Shape(name),Style(color){this->name = names;}
	char* getName(){return name;}
};

//функции
void printShape(Shape& s)
{
	cout  <<  s.getName()  <<  endl;
}

void printStyle(Style& s)
{
	cout  <<  s.getColor()  <<  endl;
}

void printSubject(Subject& s)
{
	cout  <<  s.getName()  <<  ' '  <<  s.getColor()  <<  ' '  <<  s.Shape::getName()  <<  endl;
}

//основной код
int main()
{
	Subject s("Table","Rectangle","Black");

	cout  <<  "Shape: ";
	printShape(s);
	cout  <<  "Style: ";
	printStyle(s);
	cout  <<  "Subject: ";
	printSubject(s);

	return 0;
}

Лабораторная работа №12(5)

Для класса, разработанного в лабораторной работе 10(3), переопределить операторы сдвига для его ввода/вывода через потоки ввода/вывода cin и cout. Также для своего класса переопределить ещё один произвольный оператор (на свой выбор). В функции main() продемонстрировать работу перегруженных операторов (ввода, вывода и своего). Наш сайт Пример кода перегрузки операторов сдвига для ввода/вывода:
#include "stdafx.h"
#include 
#include 
using namespace std;

class Man
{
private:
  char fio[100]; //фио
  int age; //возраст
  friend ostream& operator  <<  (ostream&, Man&);
  friend istream& operator>>(istream&, Man&);
public:
  Man(char*,int);
};

ostream& operator  <<  (ostream& o,Man& m)
{
  o  <<  m.fio  <<  " "  <<  m.age;
  return o;
}

istream& operator>>(istream& i,Man& m)
{
  i >> m.fio;
  i >> m.age;
  return i;
}

Man::Man(char* s,int a)
{
  strcpy_s(fio,s); //вместо strcpy
  age=a;
}

int _tmain(int argc, _TCHAR* argv[])
{
  Man M("mr. Gray",35);
  cout   <<   M   <<   endl;
  cout   <<   "Enter new FIO and AGE"   <<   endl;
  cin >> M;
  cout   <<   M   <<   endl;
  return 0;
}

Лабораторная работа №13(6)

С использованием класса из лабораторной работы №10(3) разработать программу, позволяющую работать со списком объектов своего класса. Требуемые характеристики программы: В программе для хранения объектов использовать массив указателей. При удалении объектов следует корректно освобождать выделенную память (удалять объекты). Данные в файл должны записываться в текстовом формате. Работу с файлом реализовать с использованием типа FILE и соответствующий функций (fopen(), fclose(), fscanf(), fprintf() и др). Нужные методы для записи/чтения добавить в свой класс и объявить виртуальными. Структура программы должна быть такова, чтобы можно было создать производный класс от используемого, в нём переопределить нужные методы, и, не меняя основной код, программа смогла бы работать и с объектами производного класса (использовать, где нужно, виртуальные методы).

Лабораторная работа №14(7)

Переработать прорамму из лабораторной работы №13(6), отличие заключается в изменении алогритмов сохранения и загрузки данных в/из файла. Данные в файл должны записываться в бинарном формате. Работу с файлом реализовать с использованием классов потоков (ifstream, ofstream и/или fstream). Нужные методы для записи/чтения добавить в свой класс и объявить виртуальными. Наш сайт При вводе данных пользователем (номер редактируемого объекта, атрибуты объектов) проверять корректность введённых значений и использовать механизм обработки исключительных ситуаций для обработки неверных значений. В программе должен присутствовать как минимум один блок try-catch. При сохранении текстовых данных, в файл сохранять только полезную информацию. Пример сохранения текстового поля:
ofstream f("d:\\data.bin");
char s[1000]="Hello"; //поле для сохранения
int l=strlen(s); //получаем длину
f.write((char*)&l,sizeof(int)); //записываем длину
f.write(s,l); //записываем сам текст, а не все 1000 символов
f.close(); //закрыть файл, необязательно, если будет удаление объекта f

ifstream f2("d:\\data.bin");
f2.read((char*)&l,sizeof(int)); //считать длину
f2.read(s,l); // считать сам текст, зная длину
s[l]=0; //занести символ \0 в конец
cout   <<   s   <<   endl; //вывод для проверки, в реальном коде не понадобится
Реклама
Тренировки по джиу-джитсу и самозащите в Гомеле
Реклама
Репетиторы по различным предметам.
Контрольные C++
Контрольные и лабораторные на С++ разнообразны и также усложняются с включением объектно-ориентированного подхода программирования.
WinAPI (ToolHelp32 API)
Общее название функций, которые встроены в Windows. Изначально они были доступна только программистам Microsoft. А теперь их описание можно взять из справки MAPI Programmer's Reference.
Контакты Порядок заказа Оплата Информатика
Официально Репетитор Реклама на сайте Частые вопросы
Новости Университеты Скачать Без посредников
Право Экономика Java Haskell

2007 - 2023 Гомель

ИП Тяжкороб Д.В. УНП 490520112

Заказать лабораторную работу на Си, Си++, C++ в Гомеле