Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика(практика).doc
Скачиваний:
22
Добавлен:
09.02.2015
Размер:
122.37 Кб
Скачать

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

Запускаем 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"