728x90
반응형
ChatGPT를 통해 프로그램을 구현할 수 있다. 사용자 목적에 따른 기능 요구 사항과 비기능 요구 사항들을 잘 정리해서 전달해주면 프로그램의 Framework를 얻을 수 있다. 다양한 언어도 지원하며 Code Review후 Feedback을 통해 수정도 가능하다.
ChatGPT 프로그래밍 - 회의실 예약 시스템
간단한 기능을 제공하는 회의실 예약 시스템 구현을 요청했다. 기본적인 기능으로 사용자는 예약, 예약 취소, 예약 현황보기 등의 기능을 선택할 수 있다.

#include <iostream>
#include <string>
#include <map>
using namespace std;
class MeetingRoomReservationSystem {
private:
map<string, bool> schedule; // 예약된 상태를 저장하는 맵
public:
MeetingRoomReservationSystem() {
// 초기에 모든 시간은 예약되지 않은 상태로 초기화
for (int i = 9; i <= 18; ++i) {
string time = to_string(i) + ":00";
schedule[time] = false;
}
}
void reserveMeetingRoom(string time) {
if (schedule.find(time) != schedule.end() && !schedule[time]) {
schedule[time] = true;
cout << "회의실이 성공적으로 예약되었습니다." << endl;
} else {
cout << "이미 예약된 시간대입니다. 다른 시간을 선택해주세요." << endl;
}
}
void cancelMeetingRoomReservation(string time) {
if (schedule.find(time) != schedule.end() && schedule[time]) {
schedule[time] = false;
cout << "회의실 예약이 취소되었습니다." << endl;
} else {
cout << "해당 시간대에는 예약된 회의실이 없습니다." << endl;
}
}
void printSchedule() {
cout << "===== 회의실 예약 현황 =====" << endl;
for (const auto& entry : schedule) {
cout << entry.first << ": " << (entry.second ? "예약됨" : "예약가능") << endl;
}
cout << "==========================" << endl;
}
};
int main() {
MeetingRoomReservationSystem system;
while (true) {
cout << "1. 회의실 예약하기" << endl;
cout << "2. 회의실 예약 취소하기" << endl;
cout << "3. 예약 현황 보기" << endl;
cout << "4. 종료" << endl;
cout << "메뉴를 선택하세요: ";
int choice;
cin >> choice;
switch (choice) {
case 1: {
cout << "예약할 시간을 입력하세요 (예: 10:00): ";
string time;
cin >> time;
system.reserveMeetingRoom(time);
break;
}
case 2: {
cout << "취소할 예약 시간을 입력하세요 (예: 10:00): ";
string time;
cin >> time;
system.cancelMeetingRoomReservation(time);
break;
}
case 3:
system.printSchedule();
break;
case 4:
cout << "프로그램을 종료합니다." << endl;
return 0;
default:
cout << "잘못된 선택입니다. 다시 시도하세요." << endl;
}
}
return 0;
}
위와 같이 기본 기능을 제공하는 Code를 제공하고, 개발자 Review를 통해 한층 더 발전 시킬 수 있다.
ChatGPT 프로그래밍 - 웹 지도 프로그래밍
HTML과 JavaScript를 통해 웹프로그래밍을 진행할 수 있다.

사용자 위치 정보 지도에 표시하기
function initMap() {
// 초기 위치를 설정할 수 있지만, 이 예제에서는 초기 위치를 사용자의 위치로 설정하지 않습니다.
// 맵을 생성하고 초기화
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 37.5665, lng: 126.9780}, // 서울의 좌표를 기본 중심으로 설정
zoom: 8
});
// 사용자의 현재 위치를 받아와서 지도에 마커로 표시
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var userLatLng = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
var userMarker = new google.maps.Marker({
position: userLatLng,
map: map,
title: '당신의 위치'
});
map.setCenter(userLatLng);
}, function() {
// 위치 정보를 받아오지 못할 경우의 처리
handleLocationError(true, map.getCenter());
});
} else {
// 브라우저가 Geolocation API를 지원하지 않을 경우의 처리
handleLocationError(false, map.getCenter());
}
}
function handleLocationError(browserHasGeolocation, pos) {
var infoWindow = new google.maps.InfoWindow;
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: 사용자의 위치를 찾을 수 없습니다.' :
'Error: 브라우저가 Geolocation 서비스를 지원하지 않습니다.');
infoWindow.open(map);
}
API들을 만들어서 제공해주고, API들을 조합하여 더 큰 기능들을 만들 수 있다.
ChatGPT 프로그래밍 - 웹 스크래핑
필요한 정보를 웹으로부터 수집하는 프로그래밍을 쉽게 만들 수 있다.

#include <iostream>
#include <vector>
using namespace std;
// 힙 자료구조 클래스 정의
class MinHeap {
private:
vector<int> heap; // 힙을 저장할 벡터
// 부모 노드의 인덱스를 반환하는 함수
int parent(int index) {
return (index - 1) / 2;
}
// 왼쪽 자식 노드의 인덱스를 반환하는 함수
int leftChild(int index) {
return 2 * index + 1;
}
// 오른쪽 자식 노드의 인덱스를 반환하는 함수
int rightChild(int index) {
return 2 * index + 2;
}
// 최소 힙 속성을 유지하도록 노드를 위로 올리는 함수 (Heapify Up)
void heapifyUp(int index) {
while (index > 0 && heap[parent(index)] > heap[index]) {
swap(heap[index], heap[parent(index)]);
index = parent(index);
}
}
// 최소 힙 속성을 유지하도록 노드를 아래로 내리는 함수 (Heapify Down)
void heapifyDown(int index) {
int left = leftChild(index);
int right = rightChild(index);
int smallest = index;
if (left < heap.size() && heap[left] < heap[index]) {
smallest = left;
}
if (right < heap.size() && heap[right] < heap[smallest]) {
smallest = right;
}
if (smallest != index) {
swap(heap[index], heap[smallest]);
heapifyDown(smallest);
}
}
public:
// 새로운 노드를 추가하는 함수
void insert(int value) {
heap.push_back(value);
heapifyUp(heap.size() - 1);
}
// 최상위 노드를 반환하고 삭제하는 함수
int extractMin() {
if (heap.empty()) {
throw out_of_range("Heap is empty");
}
int min = heap[0];
heap[0] = heap.back();
heap.pop_back();
heapifyDown(0);
return min;
}
// 힙이 비어있는지 확인하는 함수
bool isEmpty() {
return heap.empty();
}
};
int main() {
MinHeap minHeap;
minHeap.insert(10);
minHeap.insert(20);
minHeap.insert(15);
minHeap.insert(30);
minHeap.insert(25);
cout << "최소 힙에서 최소값 추출: " << minHeap.extractMin() << endl;
return 0;
}반응형
'IT (IT)🤖🧠 > AI' 카테고리의 다른 글
| k-최근접 이웃 회귀(KNN Regression) 알고리즘 완벽 가이드 (1) | 2025.03.22 |
|---|---|
| 지도학습, 비지도학습, 강화학습의 차이점과 훈련세트 vs 테스트세트 완벽 정리 (0) | 2025.03.22 |
| k-Nearest Neighbors (KNN) 알고리즘과 Python 라이브러리 활용법 (0) | 2025.03.22 |
| 인공지능과 머신러닝 그리고 딥러닝 (0) | 2025.03.22 |
| [ChatGPT] 인공지능 기술로 이미지 생성 (0) | 2024.04.21 |