Файл: информатика(практика).doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.04.2024

Просмотров: 28

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Создание проекта на С++

Запускаем Visual Studio 2005

->File->New->Project

Visual C++->Win 32 (тип проекта)

Win 32 Console Application (шаблон Templates)

Name (название проекта)

OK

В помощнике (Wizard) жмем Finish

Открывается среда разработки программы

  1. В функции main пишется основная программа

  2. При создании класса руководствуемся следующей инструкцией

А) В окне проводника проекта (слева) жмем правой кнопкой мыши на папку Header Files(заголовочные файлы)

Выбираем Add->Class

Б) В окне выбираем С++(cлева) C++ Class(справа)

и жмем кнопку Add

в) В Class Name указываем имя класса и Finish

В результате создадутся два файла name.h – заголовочный и name.cpp – реализации.

3. В заголовочном файле описываем переменные и функции класса.

4. В файле реализации описываем работу каждой из функций класса.

5. Запуск программы Ctrl+F5

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 );