사이드바 열기






Posted by LaLuna







Posted by LaLuna




Posted by LaLuna

학교 실습시간

Posted by LaLuna
머리가 굳어서 인가.. 예제가 이따구 밖에 안나오네..

어떻게 쉽게 하려고 해도 똥망진창이 되어가는 코드..
주석도 붙이려다가.. 결국은 안붙이게 되고..




Posted by LaLuna
목적 : 수업시간에 분수를 클래스화 하는 실습을 진행하고 있고, 멘토링 모임을 진행하고 있어서 분수 클래스를 만들어 보기로 한다.

목표
1. 산술연산 및 대입연산, 관계연산이 모두 가능하도록 만들기로 한다.

2011년 10월 20일 목요일
헤더파일에 생성자와 파괴자, 연산자 오버로딩을 정의

Rational.h
Rational.cpp

Posted by LaLuna
#include 
#include 
#include 
#include 

#define UINT unsigned int

using namespace std;

typedef struct _Word_info {
    string word;
    int freq;
} Word_info;

bool compareTo(const Word_info& x, const Word_info& y);
string lowcaseString(const string &s);

int main(void)
{
    vector word_vector;
    string word;
    Word_info word_info;

    while( cin >> word ) 
    {
        bool flag= false;
        word = lowcaseString(word);
        if( word_vector.size() == 0)
        {
            word_info.word = word;
            word_info.freq = 1;
            word_vector.push_back(word_info);
            continue;
        }
        for(UINT i = 0; i < word_vector.size(); i++)
        {
            if(word_vector[i].word == word)
            {
                word_vector[i].freq++;
                flag = true;
            }
        }
        if( flag==false) {
            word_info.word = word;
            word_info.freq = 1;
            word_vector.push_back(word_info);
        }
    }
    sort(word_vector.begin(), word_vector.end(), compareTo);

    for(UINT i = 0; i < word_vector.size(); i++)
    {
        cout << word_vector[i].word << ' ' << word_vector[i].freq << endl;
    }
    return 0;
}

string lowcaseString(const string &s)
{
    char* buf = new char[s.size()+1];
    s.copy(buf, s.size());
    for(UINT i = 0; i < s.size(); i++) buf[i] = tolower(buf[i]);
    string word(buf, s.size());
    delete buf;
    return word;
}
bool compareTo(const Word_info& x, const Word_info& y)
{
    return x.word < y.word;
}
Posted by LaLuna
이놈의 codepad css 글꼴하고 글자폭 높이 조절이 힘드네


Posted by LaLuna

후배가 학교에서 C++을 이용하여 성적처리 프로그램 작성 과제를 받았다는군요

그런데 교수님이 중요한 class는 안가르쳐 주시고 예제위주로만 수업을 진행하여

후배는 class 의 개념도 모른채.. vector 과 sort 사용법만 대충알고 구조체를 이용해서 프로그램을 짜더군요

책보기도 질리고 오랜만에 키보드질좀 해볼까 하고 손을 대어 봤네요.

백터에서 구조체를 넣을때 정렬의 기준점을 정하는 방법이 여러가지가 있더군요.

class 나 struct나 거기서 거기일테지만 C에 익숙한 저는 저게 편하더군요.

 

전북대학교 분할정복 알고리즘

Posted by LaLuna
#include    <stdio.h>
#include    <stdlib.h>
#include    <string.h>
#include    <unistd.h>
#include    <arpa/inet.h>
#include    <sys/types.h>
#include    <sys/socket.h>
#include    <netdb.h>

void    error_handling( char *message );
void    response( char *recv );
void    pong ( char *ping );

#define MAX 8192

int     sockfd;


int     main( int argc, char *argv[] )
{
    const   char    address[64]    =   "irc.hanirc.org";

    char    nickname[64]    =   "Luna_bot";
    char    channel[64]     =   "#프겔";

    int     port            =   6664;

    struct  sockaddr_in sock;
    struct  hostent     *host_st;

    char    rcv_data[MAX]  =   {0x00, };
    char    send[1024]      =   {0x00, };

    char    *ping;

    host_st     =   gethostbyname( address );
    if( host_st == NULL)
    {
        error_handling( "gethostbyname() error" );
    }

    sockfd      =   socket( AF_INET, SOCK_STREAM, 0 );
    if( sockfd == -1 )
    {
        error_handling( "socket() error" );
    }

    memset( &sock, 0x0, sizeof(sock) );
    sock.sin_family     =   AF_INET;
    sock.sin_port       =   htons( port );
    sock.sin_addr       =   *((struct in_addr*)host_st->h_addr);

    if( connect( sockfd, (struct sockaddr *)&sock, sizeof(sock) ) == -1 )
    {
        error_handling( "connect() error" );
    }

    strncpy( send, "NICK Luna_bot \n", sizeof(send) - 1 );
    printf( "Request : %s", send);
    write( sockfd, send, strlen(send) );
    memset( send, 0x0, sizeof(send) );

    strncpy( send, "USER iam5duck \"naver.com\" \"irc.hanric.org\" : Luna\n", sizeof(send) -1 );
    printf( "Request : %s\n", send);
    write( sockfd, send, strlen(send) );
    memset( send, 0x0, sizeof(send) );

    read( sockfd, rcv_data, sizeof(rcv_data) );
    response( rcv_data );
    memset( rcv_data, 0x0, sizeof( rcv_data ) );

    read( sockfd, rcv_data, sizeof(rcv_data) );
    response( rcv_data );
    memset( rcv_data, 0x0, sizeof( rcv_data ) );

    strncpy( send, "NICK Luna_bot \n", sizeof(send) - 1 );
    printf( "Request : %s", send);
    write( sockfd, send, strlen(send) );
    memset( send, 0x0, sizeof(send) );

    /*    read( sockfd, rcv_data, sizeof(rcv_data) );
    response( rcv_data );
    memset( rcv_data, 0x0, sizeof( rcv_data ) );
    */
    read( sockfd, rcv_data, sizeof(rcv_data) );
    response( rcv_data );
    memset( rcv_data, 0x0, sizeof( rcv_data ) );

    strncpy( send, "USERHOST LaLuna\n", sizeof(send) - 1 );
    printf( "Request : %s", send);
    write( sockfd, send, strlen(send) );
    memset( send, 0x0, sizeof(send) );

    read( sockfd, rcv_data, sizeof(rcv_data) );
    response( rcv_data );
    memset( rcv_data, 0x0, sizeof( rcv_data ) );

    read( sockfd, rcv_data, sizeof(rcv_data) );
    response( rcv_data );
    memset( rcv_data, 0x0, sizeof( rcv_data ) );

    strncpy( send, "JOIN #프갤\n", sizeof(send) - 1 );
    printf( "Request : %s", send );
    write( sockfd, send, strlen(send) );

    read( sockfd, rcv_data, sizeof(rcv_data) );
    response( rcv_data );
    memset( rcv_data, 0x0, sizeof( rcv_data ) );

    read( sockfd, rcv_data, sizeof(rcv_data) );
    response( rcv_data );
    memset( rcv_data, 0x0, sizeof( rcv_data ) );

    strncpy( send, "PRIVMSG #프갤 :HI I'am LaLuna Bot\n", sizeof(send) - 1 );
    printf( "Request : %s", send );
    write( sockfd, send, strlen(send) );
    memset( send, 0x0, sizeof( send ) );

    while( 1 )
    {
        read( sockfd, rcv_data, sizeof(rcv_data) );
        response( rcv_data );

        if( strstr( rcv_data, "!out" ) )
        {
            memset(send, 0x0, sizeof(send) );
            strncpy( send, "PRIVMSG #프갤 :Luna_bot 갑니다 ㅂ2ㅂ2\n", sizeof(send) - 1 );
            break;
        }

        if( strstr( rcv_data, "Luna_bot" ) )
        {
            strncpy( send, "PRIVMSG #프갤 :I am so hot, 난 너무 예뻐요\n ", sizeof(send) -1 );
            write( sockfd, send, strlen( send ) );
            memset( send, 0x0, sizeof( send ) );
        }
        memset( rcv_data, 0x0, sizeof( rcv_data ) );
    }

    close( sockfd );
    return 0;
}

void    error_handling( char *message )
{
    fputs( message, stderr );
    fputc( '\n', stderr );
    exit( 1 );
}

void    response( char *recv )
{
    char    temp[MAX];
    char    *parsing;
    char    *ping;

    printf( "-----------------------------------------------\n");
    strncpy( temp, recv, sizeof(temp) - 1);

    parsing     =   strtok( temp, "\n");

    while( parsing != NULL )
    {
        if( parsing )   printf( "Response : %s\n", parsing );
        if( (strstr( parsing, "PING " )) != NULL )
        {
            pong( parsing );
        }
        parsing =   strtok( NULL, "\n" );
    }
    printf( "-----------------------------------------------\n");
}

void    pong( char *ping )
{
    char    temp[MAX]  =   {0x00, };
    char    *parsing;

    strncpy( temp, ping, strlen( ping ) + 1 );
    parsing     =   strtok( temp, "\n" );
    memcpy( parsing, "PONG", 4 );

    printf( "PINGPONG : %s\n", parsing );
    write( sockfd, parsing, strlen( parsing ) + 1 );
}
Posted by LaLuna
이전페이지 1 2 다음페이지
위로

사이드바 열기