ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.04.2024
Просмотров: 65
Скачиваний: 1
Создание проекта на С++
Запускаем Visual Studio 2005
->File->New->Project
Visual C++->Win 32 (тип проекта)
Win 32 Console Application (шаблон Templates)
Name (название проекта)
OK
В помощнике (Wizard) жмем Finish
Открывается среда разработки программы
-
В функции main пишется основная программа
-
При создании класса руководствуемся следующей инструкцией
А) В окне проводника проекта (слева) жмем правой кнопкой мыши на папку 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 );