0% encontró este documento útil (0 votos)
275 vistas8 páginas

Examen Final Programacion Orientada A Objetos

Este documento presenta cuatro problemas de un examen final de programación orientada a objetos. El primer problema crea una clase Recta y una clase Polígono que hereda de Recta. El segundo problema dibuja una cicloide y ejes en un gráfico. El tercer problema no se incluye. El cuarto problema crea una interfaz gráfica de usuario con botones que abren ventanas para ver la configuración electrónica, número cuántico principal u otros detalles al hacer clic.

Cargado por

Diego Laura
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
275 vistas8 páginas

Examen Final Programacion Orientada A Objetos

Este documento presenta cuatro problemas de un examen final de programación orientada a objetos. El primer problema crea una clase Recta y una clase Polígono que hereda de Recta. El segundo problema dibuja una cicloide y ejes en un gráfico. El tercer problema no se incluye. El cuarto problema crea una interfaz gráfica de usuario con botones que abren ventanas para ver la configuración electrónica, número cuántico principal u otros detalles al hacer clic.

Cargado por

Diego Laura
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

EXAMEN FINAL PROGRAMACION ORIENTADA A OBJETOS

PROBLEMA 1
// problema 1 final.cpp : Defines the entry point for the console application.
//
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<time.h>
using namespace std;
class recta {
protected:
int x1, y1, x2, y2;
public:
recta();
recta(float, float, float, float);
void mostrar();
void pendiente();
float distancia();
};
recta::recta() {
x1 = rand()%10+1; y1 = rand() % 10 + 1;
x2 = rand() % 10 + 1; y2= rand() % 10 + 1;
}
recta::recta(float a, float b, float c, float d) {
x1 = a; y1 = b;
x2 = c; y2 = d;
}
void recta::pendiente() {
if ((x2 - x1)! = 0) {
float m;
m = float(y2 - y1) / (x2 - x1);
cout << "La pendiente de la recta es: " << m << endl;
cout << "La eucacion de la recta es: " << "mX+b=Y" << endl;
cout << "m= " << m << endl;
cout << "b= " << y1 - x1 * m << endl;
}
else
cout << "Es una recta vertical " << endl;

}
float recta::distancia() {
float d;
d= sqrtf(powf((x1 - x2), 2) + powf((y1 - y2), 2));
return(d);
}
void recta::mostrar() {
cout << "La primera coordenada es: " << "( " << x1 << " ; " << y1 << " )" << endl;
cout << "La segunda coordenada es: " << "( " << x2 << " ; " << y2 << " )" << endl;
}

class poligono :public recta {


protected:
int n;
public:
poligono();
poligono(int);
void genera();
};
poligono::poligono() {
n = 9;
}
poligono::poligono(int t) {
n = t;
}
void poligono::genera() {
float sp,area;
recta r1, r2, r3, r4, r5, r6, r7, r8, r9;
cout << "Los lados generados del heptagono son: " << endl;
cout << r1.distancia() << " " << r2.distancia() << " " << r3.distancia() << " " << r4.distancia()
<< " " << r5.distancia() << " " << r6.distancia() << " " << r7.distancia() " " << r8.distancia() << " " <<
r9.distancia() << endl;
sp = (r1.distancia() + r2.distancia() + r3.distancia() + r4.distancia() + r5.distancia() +
r6.distancia() + r7.distancia+ r8.distancia + r9.distancia ()) / 2.0;
cout << "El semiperimetro es: " << sp << endl;
}
void main() {
srand((unsigned)time(NULL));
recta r;
r.mostrar();
r.pendiente();
cout << "La distancia entre los puntos es: " << r.distancia() << endl;
poligono p;
p.genera();
system("pause");
}
PROBLEMA 2

static DWORD dwColor[9]={RGB(0,0,0),

RGB(255,0,0), RGB(0,255,0),

RGB(0,0,255), RGB(255,255,0),

RGB(255,0,255), RGB(0,255,255),

RGB(127,127,127), RGB(255,255,255)};

CPen n_pincel;

CPen *v_pincel;

CRect rect;

GetClientRect(rect);

int cx=(rect.right -rect.left);

int cy=(rect.bottom-rect.top);

dc.SetMapMode(MM_ANISOTROPIC);

dc.SetWindowExt(840,300);

dc.SetViewportOrg(cx,-cy);

dc.SetViewportExt(cx,-cy);

dc.SetViewportOrg(cx/2,cy/2);

double x,y,u;

for(int u=0;u<361;u++){

x=50*((u*3.141516/180)-sin(u*3.1416/180));

y=50*(1-cos(u*3.1416/180));

dc.SetPixel(x,y,RGB(0,0,255));}

dc.TextOut(120,40,_T("cicloide"));

n_pincel.CreatePen(PS_SOLID, 1,dwColor[0]);

v_pincel=dc.SelectObject(&n_pincel);
dc.MoveTo(0,-140);

dc.LineTo(0,140);

dc.TextOut(0,145,_T("Y"),1);

dc.SelectObject(v_pincel);

n_pincel.DeleteObject();

n_pincel.CreatePen(PS_SOLID, 1,dwColor[0]);

v_pincel=dc.SelectObject(&n_pincel);

dc.MoveTo(-100,0);

dc.LineTo(300,0);

dc.TextOut(305,0,_T("X"),1);

dc.SelectObject(v_pincel);

n_pincel.DeleteObject();

dc.Ellipse(0,10,280,300);

dc.Ellipse(0,20,260,290);

dc.Ellipse(0,30,240,280);

dc.Ellipse(0,40,220,270);

dc.Ellipse(0,50,200,260);

dc.Ellipse(0,60,180,250);

dc.Ellipse(0,70,160,240);

dc.Ellipse(0,80,140,220);

dc.Ellipse(0,90,120,210);

dc.Ellipse(0,100,100,200);
PROBLEMA 4

#include "stdafx.h"
#include "Problema4.h"
#include "Problema4Dlg.h"
#include "afxdialogex.h"
#include "Cconfigu.h"
#include "Cvalencia.h"
#include "Ccuantico.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CAboutDlg dialog used for App About

class CAboutDlg : public CDialogEx


{
public:
CAboutDlg();

// Dialog Data
enum { IDD = IDD_ABOUTBOX };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

// Implementation
protected:
DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)


{
CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()

// CProblema4Dlg dialog

CProblema4Dlg::CProblema4Dlg(CWnd* pParent /=NULL/)


: CDialogEx(CProblema4Dlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CProblema4Dlg::DoDataExchange(CDataExchange* pDX)


{
CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CProblema4Dlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_Salir, &CProblema4Dlg::OnBnClickedSalir)
ON_BN_CLICKED(IDC_RADIO_VerConfigu,
&CProblema4Dlg::OnBnClickedRadioVerconfigu)
ON_BN_CLICKED(IDC_RADIO_VerElectro,
&CProblema4Dlg::OnBnClickedRadioVerelectro)
ON_BN_CLICKED(IDC_RADIO_VerNumeroCuan,
&CProblema4Dlg::OnBnClickedRadioVernumerocuan)
END_MESSAGE_MAP()

// CProblema4Dlg message handlers

BOOL CProblema4Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.


ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);


if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control
}

void CProblema4Dlg::OnSysCommand(UINT nID, LPARAM lParam)


{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.

void CProblema4Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND,
reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectangle


int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon


dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}

// The system calls this function to obtain the cursor to display while the user
drags
// the minimized window.
HCURSOR CProblema4Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}

void CProblema4Dlg::OnBnClickedSalir()
{
// TODO: Add your control notification handler code here
PostQuitMessage(0);
}

void CProblema4Dlg::OnBnClickedRadioVerconfigu()
{
// TODO: Add your control notification handler code here

Cconfigu sistema;
sistema.Configuracion = "1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p5";
UpdateData(false);

sistema.DoModal();

void CProblema4Dlg::OnBnClickedRadioVerelectro()
{
// TODO: Add your control notification handler code here
Cvalencia sistema;
sistema.Electrones= 7;
UpdateData(false);

sistema.DoModal();
}

void CProblema4Dlg::OnBnClickedRadioVernumerocuan()
{
// TODO: Add your control notification handler code here
Ccuantico sistema;
sistema.cuantico=4;
UpdateData(false);

sistema.DoModal();
}
}
}
}

También podría gustarte