벡터 283p 5번문제

c++ 2018.04.17 15:31

student.h

 

#pragma once
#ifndef __STUDENT_H__
#define __STUDENT_H__
#include<string>
#include<iostream>
using namespace std;

 
class Student {
 
public:
 string name;
 double marks;  //private 에 있을때의 실행방법 어떻게해야하나??  get함수를 쓰라는데 잘 모르겟음.

 Student(string n, double m) :name{ n }, marks{ m } {};

/* string getname() {
  return name;
 }
 double getmarks() {
  return marks;
 }
 */
 void print() {
  cout << "이름 : " << name << endl;
  cout << "점수 : " << marks << endl;
 }
};

#endif // !__STUDENT_H__

 

 

 

 

 

 

main.cpp    (아마 get함수를 구현하면 cpp파일이 하나 더 생기지않을까?)

 

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include"student.h"
using namespace std;

bool compare(Student &p, Student &q) {
 return p.marks > q.marks;
}

 

int main() {
 vector<Student> list;

 for (int i = 0; i < 3; i++) {
  string name;
  double mark;
  cout << "학생 :" << i + 1 << endl;
  cout << "이름 :";
  cin >> name;
  cout << "점수 :";
  cin >> mark;

  Student s{ name,mark };
  list.push_back(s);
 }

 cout << "=======================================" << endl;

 sort(list.begin(), list.end(), compare);

 for (Student &v : list) {
  v.print();
 }
 cout << "=======================================" << endl;
 return 0;
}

'c++' 카테고리의 다른 글

벡터 283p 5번문제  (0) 2018.04.17
객체배열과 벡터  (0) 2018.04.16
5번유인물 queue  (0) 2018.04.10
basearray 유인물 5번 스택  (0) 2018.04.10
person 클래스와 객체  (0) 2018.04.02
Rectangle  (0) 2018.03.27
Posted by 대엽

객체배열과 벡터

c++ 2018.04.16 15:22

Contact.h

 

#pragma once

#ifndef __CONTACT_H__
#define __CONTACT_H__
#include<string>
#include<iostream>
using namespace std;

class Contact {
public:
 string name, tel;
 
 Contact(string n, string t) : name( n ), tel( t ) {} // 초기화 리스트

 void print();
};

 


#endif // !__CONTACT_H__

 

 

 

 

Contact.cpp

 

#include<string>
#include<iostream>
#include"Contact.h"
using namespace std;

void Contact::print() {
 cout << "이름 :" << name << endl;
 cout << "전화번호: " << tel << endl;
}

 

 

 

main.cpp

 

#include<string>
#include<iostream>
#include<algorithm>
#include<vector>
#include"Contact.h"
using namespace std;

int main() {
 vector<int> av;
 for (int i = 0; i < 5; i++) {
  av.push_back(i * 5);
  
 }
 for (auto& temp : av) {
  cout << temp << endl;
 }
 

///위 는 push 설명하기위한 예제

//아래는 벡터를 이용한 283쪽 6번문제 풀이

 


 vector<Contact> list;   // vecter  <클래스명>  자료형;
 for (int i = 0; i < 3; i++) {
  string name;
  string tel;
  cout << "이름을 입력하시오: ";
  cin >> name;
  cout << "전화번호를 입력하시오: ";
  cin >> tel;
  Contact c{ name, tel };   // 객체생성
  list.push_back(c);  //  list 로 알아서 들어가라
 }
 string name;
 cout << "탐색하고 싶은 이름을 입력하시오 :";
 cin >> name;
 for (Contact& v : list) { // 동적배열(?)
  if (v.name == name)
  cout << "전화번호 : " << v.tel << endl;
 }
 return 0;

}

'c++' 카테고리의 다른 글

벡터 283p 5번문제  (0) 2018.04.17
객체배열과 벡터  (0) 2018.04.16
5번유인물 queue  (0) 2018.04.10
basearray 유인물 5번 스택  (0) 2018.04.10
person 클래스와 객체  (0) 2018.04.02
Rectangle  (0) 2018.03.27
Posted by 대엽

태양계

OpenGL 2018.04.13 10:54

#include <glut.h>
#include <GLU.H>
#include <GL.H>
#include<stdio.h>
#include<stdlib.h>

//  기본소스 ?

static int Day = 0 , Time = 0;

void line() {
  glBegin(GL_LINES);
   glVertex2f(0, -1); glVertex2f(0, 1);
 glEnd();

}
void MyDisplay() {


 glClear(GL_COLOR_BUFFER_BIT);
 glColor3f(1.0, 0.3, 0.3);
 line();
 glutWireSphere(0.2, 20, 16);   // 태양
 glPushMatrix();
  glRotatef((GLfloat)Day, 0.0, 1.0, 0.0); // 현재 중심점 태양
  glTranslatef(0.7, 0.0, 0.0);
  glRotatef((GLfloat)Time, 0.0, 1.0, 0.0);
  glColor3f(0.3, 0.8, 0.9);
  line();
  glutWireSphere(0.1, 10, 8);    // 지구
  glPushMatrix();
   glRotatef((GLfloat)Time, 0.0, 1.0, 0.0);
   glTranslatef(0.2, 0.0, 0.0);
   glColor3f(0.9, 0.5, 0.9);
   glutWireSphere(0.04, 10, 8);  //달
   line();
  glPopMatrix();
 glPopMatrix();
 glutSwapBuffers();
}//디스플레이 처리 콜백함수

void MyReshape(int NewWidth, int NewHeight) {
 glViewport(0, 0, (GLsizei)NewWidth, (GLsizei)NewHeight);
 glMatrixMode(GL_PROJECTION); //정규좌표 변경하겠다고 선언
 glLoadIdentity(); // 선언후 초기화
 glOrtho(-1,1,-1,1,-1,1); // 정규좌표 변경

 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();


}//모니터의 크기가 변경되었을때 호출되는 콜백함수
void MyKeyboard(unsigned char key, int x, int y) {
 switch (key) {
 case 'd':
  Day = (Day + 10) % 360;
  break;
 case 't':
  Time = (Time + 5) % 360;
  break;
 default:
  break;

 }
 glutPostRedisplay();
}
int main(int argc, char** argv) {
 glutInit(&argc, argv);  //OS와 Session 연결 / GLUT library 초기화
 glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
 glutInitWindowSize(500, 500);  //윈도우크기 조절
 glutInitWindowPosition(0, 0);  //윈도우를 어디서 실행시킬건지 (좌상단이 0,0)
 glutCreateWindow("제목");
 glClearColor(1.0, 1.0, 1.0, 0.0);  // (바탕화면(?) R,G,B,투명도)

 


 glutDisplayFunc(MyDisplay);
 glutReshapeFunc(MyReshape); 
 glutKeyboardFunc(MyKeyboard);


 glutMainLoop();
 return 0;


}

Posted by 대엽