У вас вопросы?
У нас ответы:) SamZan.net

Создайте класс Комплексное Число. В классе должны присутствовать функции ...

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 29.12.2024

1. Создайте класс Комплексное Число. В классе должны присутствовать функции, которые перегружают следующие операции: «+», «- », «*», «=».

Основной файл с ф-ией main

// p3_1.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "stdio.h"

#include "Complex.h"

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

{

Complex a(4, 4);

Complex b(1, 1);

Complex s;// = NULL;

s = a + b;

printf("Complex +: %d + %di \n", s.getA(), s.getB());

s = a - b;

printf("Complex -: %d + %di \n", s.getA(), s.getB());

s = a * b;

printf("Complex *: %d + %di \n", s.getA(), s.getB());

return 0;

}

Заголовочный файл класса

#ifndef COMPLEX_H

#define COMPLEX_H

class Complex {

friend Complex &operator + ( Complex &x, Complex &y);

friend Complex &operator - ( Complex &x, Complex &y);

friend Complex &operator * ( Complex &x, Complex &y);

private :

int a;

int b;

public :

Complex &operator = ( Complex &x );

Complex() {

 a = 0;

 b = 0;

}

Complex( int ta, int tb ) {

 a = ta;

 b = ta;

}

void setA ( int ta ) { a = ta; }

void setB ( int tb ) { b = tb; }

int getA ( void ) { return a; }

int getB ( void ) { return b; }

};

#endif

Файл реализации класса

#include "Complex.h"

//#include "iostream.h"

Complex& Complex::operator = ( Complex &x ) {

a = x.getA();

b = x.getB();

return *this;

}

Complex& operator + (Complex &x, Complex &y) {

Complex *tmp = new Complex(x.getA() + y.getA(), x.getB() + y.getB());

return *tmp;

}

Complex& operator - (Complex &x, Complex &y) {

Complex *tmp = new Complex(x.getA() - y.getA(), x.getB() - y.getB());

return *tmp;

}

Complex& operator * (Complex &x, Complex &y) {

Complex *tmp = new Complex();

tmp->setA( x.getA() * y.getA() - x.getB() * y.getB() );

tmp->setB( x.getA() * y.getB() + x.getB() * y.getA() );

 return *tmp;

}

2. Создайте класс Point (точка), содержащий координаты точки. Создайте класс Circle (окружность) производный от класса Point, содержащий элемент данных радиус. Программа должна выводить объект класса Circle в виде - Центр = [x; y]; Радиус = r .

Основной файл с ф-ией main

// p3_2.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "stdio.h"

#include "Circle.h"

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

{

Circle *c = new Circle( 5, 6, 7);

printf("X: %d\tY: %d\tR: %d\n" , c->getX(), c->getY(), c->getR() );

delete c;

 return 0;

}

Заголовочный файл класса

#ifndef POINT_H

#define POINT_H

class Point {

private :

int x;

int y;

public:

Point () {

 x = 0;

 y = 0;

}

Point ( int tx, int ty ) {

 x = tx;

 y = ty;

}

void setX ( int tx );

void setY ( int ty );

int  getX ( void );

int  getY ( void );

};

#endif

Файл реализации класса

#include "Point.h"

void Point::setX ( int tx ) {

 x = tx;

}

void Point::setY ( int ty ) {

 y = ty;

}

int Point::getX ( void ) {

return x;

}

int Point::getY ( void ) {

return y;

}

Заголовочный файл класса

#ifndef CIRCLE_H

#define CIRCLE_H

#include "Point.h"

class Circle : public Point {

private :

int r;

public:

Circle () : Point() {

 r = 0;

}

Circle ( int tx, int ty, int tr ) : Point( tx, ty ) {

 r = tr;

}

void setR ( int tr );

int  getR ();

};

#endif

Файл реализации класса

#include "Circle.h"

void Circle::setR ( int tr ) {

 r = tr;

}

int Circle::getR ( ) {

return r;

}

3. Создайте класс PhoneNumber (телефонный номер), закрытые элементы которого есть код города и номер. Также создайте дружественные функции, которые перегружают операции передачи и извлечения из потока и позволяющие обрабатывать данные класса телефонного номера.

// p3_3.cpp : Defines the entry point for the console application.

//

Основной файл с ф-ией main

#include "stdafx.h"

#include "PhoneNumber.h"

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

{

PhoneNumber a(12, 21);

cout << "dfdf ";

cin >> a ;

cout << endl << a << endl;

 

return 0;

}

Заголовочный файл класса

#ifndef PHONENUMBER_H

#define PHONENUMBER_H

#include <iostream.h>

class PhoneNumber {

friend ostream &operator << ( ostream &output, PhoneNumber & num);

friend istream &operator >> ( istream &input, PhoneNumber & num);

private:

int areacode;

int number;

public:

PhoneNumber() {

 areacode = 0;

 number   = 0;

}

PhoneNumber(int tareacode, int tnumber) {

 areacode = tareacode;

 number   = tnumber;

}

void setAreaCode( int tareacode );

void setNumber( int tnumber );

int getAreaCode( void );

int getNumber( void );

};

#endif

Файл реализации класса

#include "PhoneNumber.h"

#include <stdlib.h>

ostream &operator << ( ostream &output, PhoneNumber & num) {

output << num.getAreaCode() << " " << num.getNumber();

return output;

}

istream &operator >> ( istream &input, PhoneNumber & num) {

char tmp[100];

input.getline(tmp, 100, ' ');

num.setAreaCode( atoi( tmp ) );

input.getline(tmp, 100);

num.setNumber( atoi ( tmp ) );

 

return input;

}

void PhoneNumber::setAreaCode( int tareacode ) {

areacode = tareacode;

}

void PhoneNumber::setNumber( int tnumber ) {

number = tnumber;

}

int PhoneNumber::getAreaCode( void ) {

return areacode;

}

int PhoneNumber::getNumber( void ) {

return number;

}

4. Создайте класс EMPLOYEE (служащий), который содержит в себе объекты класса DATE (дата). Один объект класса DATE символизирует дату рождения служащего, второй объект класса DATE символизирует дату поступления на работу. Объекты класса EMPLOYEE  выводят имя, фамилию, дату рождения и дату поступления на работу служащего.

Основной файл с ф-ией main

// p3_4.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "Employee.h"

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

{

return 0;

}

Заголовочный файл класса

#ifndef DATE_H

#define DATE_H

class Date {

private :

int d;

int m;

int y;

public :

Date () {

 d = 1;

 m = 1;

 y = 1970;

}

Date (int td, int tm, int ty) {

 d = td;

 m = tm;

 y = ty;

}

void setD ( int td ) { d = td; }

void setM ( int tm ) { m = tm; }

void setY ( int ty ) { y = ty; }

int getD ( void ) { return d; }

int getM ( void ) { return m; }

int getY ( void ) { return y; }

};

#endif

Заголовочный файл класса

#ifndef EMPLOYEE_H

#define EMPLOYEE_H

#include "windows.h"

#include "Date.h"

class Employee {

private :

char surname[100];

char name[100];

Date a;

Date b;

public :

Employee () {

 strcpy(surname, "");

 strcpy(name, "");

}

};

#endif

5.Описать класс, реализующий тип данных “вещественная матрица” и работу с ними. Класс должен реализовывать следующие операции над матрицами: « + » , « -  » , « * ».

// p5.cpp : Defines the entry point for the console application.

//

Основной файл с ф-ией main

#include "stdafx.h"

#include "matrix.h"

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

{

Matrix a(2 ,2);

a.setDate();

Matrix b(2 ,2);

b.setDate();

Matrix s;

s = a * b;

s.toString ();

return 0;

}

Заголовочный файл класса

#ifndef MATRIX_H

#define MATRIX_H

#include <iostream.h>

class Matrix {

friend Matrix &operator + ( Matrix &x, Matrix &y);

friend Matrix &operator - ( Matrix &x, Matrix &y);

friend Matrix &operator * ( Matrix &x, Matrix &y);

private :

int i, j;

int m, n;

float *mat;

public :

Matrix &operator = ( Matrix &x );

Matrix ( ) {

 m = 0;

 n = 0;

}

Matrix ( int a, int b ) {

 m = a;

 n = a;

}

~Matrix ( ) {

 delete mat;

}

void setSize ( int a, int b ) {

 m = a;

 n = a;

}

void setDate ( ) {

 mat = new float[m*n];

 for ( i = 0; i < m; i++ ) {

  cout << "Enter stroku " << i + 1 << endl;

  for ( j = 0; j < n; j++ ) {

   cin >> *(mat + ( i*n + j ) );

  }

 }

}

void toString ( ) {

 cout << "Output Matrix" << endl;

 for ( i = 0; i < m; i++ ) {

  for ( j = 0; j < n; j++ ) {

   cout<< "[" << *(mat + ( i*n + j ) ) << "]";

  }

  cout << endl;

 }

}

};

#endif

Файл реализации класса

#include "stdafx.h"

#include "matrix.h"

Matrix& Matrix::operator = ( Matrix &x ) {

setSize ( x.m, x.n );

mat = new float[ x.m * x.n ];

float *m = x.mat;

for ( int i = 0; i < x.m; i++ ) {

 for ( int j = 0; j < x.n; j++ ) {

  *(mat + ( i*n + j ) ) = *(m + ( i*n + j ) );

 }

}

return *this;

}

Matrix& operator + (Matrix &x, Matrix &y) {

Matrix *tmp = new Matrix ( x.m, x.n ) ;

float *m = new float[x.m * x.n];

float *mx = x.mat;

float *my =y.mat;

for ( int i = 0 ; i < tmp->m ; i++ ) {

 for ( int j = 0 ; j < tmp->n ; j++ ) {

  *( m + i*tmp->n + j ) = *( mx + i*tmp->n + j ) + *( my + i*tmp->n + j );

 }

}

tmp->mat = m;

return *tmp;

}

Matrix& operator - (Matrix &x, Matrix &y) {

Matrix *tmp = new Matrix ( x.m, x.n ) ;

float *m = new float[x.m * x.n];

float *mx = x.mat;

float *my =y.mat;

for ( int i = 0 ; i < tmp->m ; i++ ) {

 for ( int j = 0 ; j < tmp->n ; j++ ) {

  *( m + i*tmp->n + j ) = *( mx + i*tmp->n + j ) - *( my + i*tmp->n + j );

 }

}

tmp->mat = m;

return *tmp;

}

Matrix& operator * (Matrix &x, Matrix &y) {

Matrix *tmp = new Matrix ( x.m, y.n ) ;

float *m = new float[x.m * x.n];

float *mx = x.mat;

float *my =y.mat;

for ( int i = 0 ; i < x.m ; i++ ) {

 for ( int j = 0 ; j < y.n ; j++ ) {

  *( m + i*tmp->n + j ) = 0;

  for ( int k = 0; k < x.n; k++ ) {

   *( m + i*tmp->n + j ) += (*( mx + i*tmp->n + k )) * (*( my + k*tmp->n + j ));

  }

 }

}

tmp->mat = m;

return *tmp;

}

6.Создайте класс Shape (форма). Создайте от него производные классы Circle (окружность) и Cylinder(цилиндр). Класс Shape должен содержать чисто виртуальную функцию printShapeName (печатать имя формы). Эта функция должна переопределяться в каждом производном классе. Имена объектов производных классов должны выводиться на печать через указатель на базовый класс, то есть использовать свойства полиморфизма.

Основной файл с ф-ией main

#include "stdafx.h"

#include <iostream.h>

class Shape {

public:

virtual void printShapeName ( ) {

 cout << "Shape" << endl;

};

};

class Circle : public Shape {

public:

void printShapeName ( ) {

 cout << "Circle" << endl;

};

};

class Cylinder : public Shape {

public:

void printShapeName ( ) {

 cout << "Cylinder" << endl;

};

};

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

{

Shape *s = new Shape;

s->printShapeName();

Circle ci;

s = &ci;

s->printShapeName();

Cylinder cy;

s = &cy;

s->printShapeName();

return 0;

}

 8. Описать класс “множество”, позволяющий выполнять основные операции – добавление и удаление элемента, пересечение, объединение и разность множеств.

Основной файл с ф-ией main

// p8.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "many1.h"

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

{

Many a;

a.add ( 11 );

a.add ( 2 );

a.add ( 3 );

Many b;

b.add ( 11 );

b.add ( 22 );

b.add ( 33 );

Many s;

s = a - b;

s.print();

//s.print();

/*

a.del ( 1 );

a.del ( 2 );

a.add ( 33 );

a.add ( 36 );

cout << endl << endl;

a.print();

*/

return 0;

}

Заголовочный файл класса

#pragma once

class Many {

friend Many &operator | ( Many &x, Many &y) {

Many *tmp = new Many ( ) ;

List *a;

a = x.q;

while ( a != 0 ) {

tmp->add ( a->ch );

a = a->ps;

}

a = y.q;

while ( a != 0 ) {

tmp->add ( a->ch );

a = a->ps;

}

 

return *tmp;

};

friend Many &operator & ( Many &x, Many &y) {

Many *tmp = new Many ( ) ;

List *a;

List *b;

a = x.q;

while ( a != 0 ) {

b = y.q;

while ( b != 0 ) {

if ( a->ch == b->ch ) tmp->add ( a->ch );

b = b->ps;

}

a = a->ps;

}

 

return *tmp;

};

friend Many &operator - ( Many &x, Many &y) {

Many *tmp = new Many ( ) ;

List *a;

List *b;

bool t = false;

a = x.q;

while ( a != NULL ) {

b = y.q;

t = false;

while ( b != NULL ) {

if ( a->ch == b->ch ) t = true;

b = b->ps;

}

if ( !t ) tmp->add ( a->ch );

a = a->ps;

}

return *tmp;

};

private:

typedef struct st {

 int ch;

 struct st *ps;

} List;

List *p;

List *q;

List *m;

public:

Many ( ) {

 p = NULL;

 q = NULL;

 m = NULL;

};

Many &operator = ( Many &x ) {

 List *a;

 a = x.q;

 while ( a != NULL ) {

  add ( a->ch );

  a = a->ps;

 }

 return *this;

};

void add ( int val ) {

 m = q;

 while ( m != NULL ) {

  if ( m->ch == val ) return;

  m = m->ps;

 }

 q = new List;

 q->ps = p;

 p = q;

 q->ch = val;

 return;

};

void del ( int val ) {

 List *n, *s;

m = q;

 while ( m != NULL ) {

if ( m->ch == val ) {

if ( m == q ) {

p = m->ps;

delete m;

q = p;

    m =q;

}

else {

 s = m->ps;

delete m;

n->ps = s;

m = n;

 }

}

n = m;

m = m->ps;

 }

 return;

};

void print ( ) {

 cout << "Print" << endl;

 m = q;

 while ( m != NULL ) {

  cout << m->ch << endl;

 m = m->ps;

 }

 return;

};

};

9. Описать класс, реализующий стек.

// p9.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "stdio.h"

class Stack {

private :

typedef struct st {

 int ch;

 struct st *ps;

} STACK;

STACK *p;

STACK *q;

public :

Stack () {

 p = NULL;

 q = NULL;

}

void push ( int val ) {

 q = new STACK;

 q->ps = p;

 p = q;

 q->ch = val;

 return;

};

void pop ( int *pval ) {

 *pval = q ->ch;

 p = q->ps;

 delete q;

 q = p;

 return;

};

};

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

{

Stack a;

int i;

a.push(1);

a.push(2);

a.push(3);

a.push(4);

a.push(5);

a.pop(&i);

printf("%d\n", i );

a.pop(&i);

printf("%d\n", i );

a.pop(&i);

printf("%d\n", i );

a.pop(&i);

printf("%d\n", i );

a.pop(&i);

printf("%d\n", i );

return 0;

}

10. Написать программу на языке Visual Basic, позволяющую изменять цвет надписи. На форме размещаются три полосы прокрутки и три надписи Красный, Синий, Зеленый, строка Университет им. И.А. Бунина и кнопка Выход. При помощи полос прокрутки выбирается интенсивность одной из цветовых составляющих функции RGB. При нажатии на кнопку Выход за-вершается работа программы (предусмотреть подтверждение на выход).

Private Sub HScroll1_Change(Index As Integer)

Tex.ForeColor = RGB(HScroll1.Item(0).Value, HScroll3.Item(0).Value, HScroll2.Item(0).Value)

End Sub

Private Sub HScroll2_Change(Index As Integer)

Tex.ForeColor = RGB(HScroll1.Item(0).Value, HScroll3.Item(0).Value, HScroll2.Item(0).Value)

End Sub

Private Sub HScroll3_Change(Index As Integer)

Tex.ForeColor = RGB(HScroll1.Item(0).Value, HScroll3.Item(0).Value, HScroll2.Item(0).Value)

End Sub

11. Написать программу на языке Visual Basic, выводящую при нажатии на командную кнопку случайным образом расположенные на форме точки разного цвета. На форме размещаются две командные кнопки Рисуем точки и Выход. При нажатии на кнопку Выход завершается работа программы (пре-дусмотреть подтверждение на выход).

Dim I, red, green, blue, x, y As Integer

Private Sub Command1_Click()

Randomize

For I = 1 To Int(1000 * Rnd) Step 1

x = 1 + Int(p.Width * Rnd)

y = 1 + Int(p.Height * Rnd)

red = 1 + Int(255 * Rnd)

green = 1 + Int(255 * Rnd)

blue = 1 + Int(255 * Rnd)

p.Line (x, y)-(x + 20, y + 20), RGB(blue, green, red), BF

Next I

End Sub

Private Sub Command2_Click()

Unload Form1

12. Написать программу на языке Visual Basic для создания простейшего текстового редактора. На форме размещаются кнопки Сохранить и Выход и текстовое поле, в которое загружается заранее созданный текстовый файл. При нажатии на кнопку Выход завершается работа программы (предусмот-реть подтверждение на выход).

Dim FileNum As Integer

Dim txt As String

Private Sub Command1_Click()

FileNum = FreeFile

Open "c:\\text.txt" For Output As FileNum

Print #FileNum, Text1.Text

Close #FileNum

End Sub

Private Sub Command2_Click()

Unload Form1

End Sub

Private Sub Form_Load()

FileNum = FreeFile

Open "c:\\text.txt" For Input As FileNum

Do Until EOF(FileNum)

Line Input #FileNum, txt

Text1.Text = Text1.Text + txt + Chr(13) + Chr(10)

Loop

Close #FileNum

End Sub

 Просмотр результата проги в Pascal Debug->Output

13. Дана последовательность чисел . Используя сортировку выбором, написать программу (на языке Visual Basic или Pascal) упорядочивания элементов по убыванию.

const

 SIZE=255;

var

 a : array[1..SIZE] of integer;

 min, i, j, n, t : integer;

begin

 write('vvedite n: ');

 readln(n);

 write('vvedite massiv: ');

 for i := 1 to n do

   read(a[i]);

 for i := 1 to n - 1 do

   begin

     min := i;

     for j := i + 1 to n do

     if a[min] > a[j] then

       min := j;

     t := a[i];

     a[i] := a[min];

     a[min] := t;

   end;

   for i := 1 to n do

     write(a[i], ' ');

   writeln;

end.

14, Дана последовательность чисел . Используя сортировку обменами, написать программу (на языке Visual Basic или Pascal) упорядочивания элементов по возрастанию.

const

 SIZE=255;

var

 a : array[1..SIZE] of integer;

 min, i, j, n, t : integer;

begin

 write('vvedite n: ');

 readln(n);

 write('vvedite massiv: ');

 for i := 1 to n do

   read(a[i]);

 for i := 1 to n do

   begin

     for j := n downto i do

       begin

         if a[i] > a[j] then

           begin

             min := a[j];

             a[j] := a[i];

             a[i] := min;

           end;

       end;

   end;

   for i := 1 to n do

     write(a[i], ' ');

   writeln;

end.

 15.Дана последовательность чисел . Используя сортировку вставками, написать программу (на языке Visual Basic или Pascal) упорядочивания элементов по убыванию.

const

 SIZE=255;

var

 a : array[1..SIZE] of integer;

 min, i, j, n, t : integer;

begin

 write('vvedite n: ');

 readln(n);

 write('vvedite massiv: ');

 for i := 1 to n do

   read(a[i]);

 for i:=1 to n do

   begin

     t := a[i];

     j:=i-1;

     while (j>=0) and (a[j] > t) do

       begin

         a[j+1]:=a[j];

         j:=j-1;

       end;

     a[j+1]:=t;

   end;

 for i := 1 to n do

   write(a[i], ' ');

 writeln;

end.

16. Написать программу на языке Pascal для решения задачи: Вычислить значение суммы членов бесконечного ряда  c заданной точностью ε. На печать вывести значение суммы и число членов ряда, вошедших в сумму.

const

 eps=0.001;

var

 x, s, Sum : Double;

 n, k, fak : Integer;

begin

 Sum:=1;

 s:=1;

 n:=0;

 repeat

   n := n + 1;

   fak := 1;

   for k := n downto 1 do fak := fak * k;

   s := cos(n*x)/fak;

   Sum:= Sum+s;

 until abs(s)<Eps;

 writeln('Sum chlenov radya: ',Sum);

 writeln('Count: ',n);

end.

 17. Написать программу на языке Pascal для решения задачи: Протабулировать функцию при изменении аргумента в указанном диапазоне и c заданным шагом. Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы.

VAR

 x, y,

 xmin, xmax, dx : Real;

BEGIN

 Writeln('Tab function.');

 xmin := 2;

 xmax := 5;

 dx := 0.25;

 x := xmin;

 WHILE x<=xmax DO begin

   if x > 3.5 then

     begin

       y := sin(x)*(ln(x)/ln(10));

     end

   else

     begin

y := cos(x)*cos(x);

     end;

   Writeln(x:6:3, ' ', y:6:3);

   x := x+dx;

 end;

 Readln

END.

18. Написать программу на языке Pascal для решения задачи: Отредактировать заданное предложение, заменяя многоточия точкой.

VAR

 s : String;

 i, j : integer;

BEGIN

 Write('Vvedite string:');

 readln(s);

 for i := 1 to Length(s) do

   begin

     if copy(s,i,3) = '...' then

       begin

         delete(s,i,2);

       end;

   end;

 writeln(s);

END.




1. Сетевой библиотеке украинской литературы
2. Класс 1998. т. 3 с.180207
3. Сущность правосудия
4. Организация и методика проведения налоговых проверок
5. Исследование рынка гостиничных услуг в г. Новосибирске
6. вбирающая приемы характерные для постмодернистской эстетики интертекстуальность гротеск ирония
7. О повышении стипендий нуждающимся студентам первого и второго курсов федеральных государственных образова
8. грамматического строя Воспитатель проводит занятия по развитию речи ознакомлению с окружа
9. КОНТРОЛЬНА РОБОТА з дисципліни Основи отримання порошкових та композиційних матеріалів Варіант 13
10. ЛЕКЦИЯ3 ПО ГИНЕКОЛОГИИ- ДИСФУНКЦИОНАЛЬНЫЕ МАТОЧНЫЕ КРОВОТЕЧЕНИЯ ДМК
11. Социальная защита различных слоев населения
12. КРАСАВИЦА ВЕСНА 2014 Прошу зарегистрировать и допустить меня к участию в ежегодном открытом конкурсе кра
13. Роль цитокінів (інтерлейкіну-6 та інтерлейкіну-12) у прогресуванні хронічного гломерулонефриту
14. Итоги развития фонетико-фонологических изысканий в конце XX в
15. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата педагогічних наук.1
16. Тема 31- Интерференция света
17. NetPromoter новые возможности профессиональной интернет-статистики
18. цз С
19. Проспект 2004 г. Бухгалтерский учет и налогообложение в сельском хозяйстве Введение
20. Тема- Искусство России XIX века