C++ 4일차

Posted by seunggwon
2009. 5. 19. 18:43 IT Note/C++

/* v1.0 성적표

학생이 몇명인지 물어본다.

국어,영어,수학 점수 입력한다.

평균 계산해서 입출력한다.

 

#include <iostream.h>

class Student

{

private:

             int *kor;

             int *eng;

             int *math;

             int *ave;

public:

             void stu_input(int num)     //학생 성적 입력

             {

                           kor=new int[num];

                           eng=new int[num];

                           math=new int[num];

                           for(int i=0;i<num;i++)

                           {

                                        cout<<i+1<<"번의 국어 점수를 입력하세요.";

                                        cin>>kor[i];

                                        cout<<i+1<<"번의 영어 점수를 입력하세요.";

                                        cin>>eng[i];

                                        cout<<i+1<<"번의 수학 점수를 입력하세요.";

                                        cin>>math[i];

                                        cout<<"-----------------------------\n";

                           }

             }

             void stu_ave(int num)       //학생 평균

             {

                           ave=new int[num];

                           for(int i=0;i<num;i++)

                           {

                                        ave[i]=(kor[i]+eng[i]+math[i])/3;

                                        cout<<i+1<<"번의 학생의 평균은 "<<ave[i]<<"점입니다.\n";

                                        cout<<"----------------------------------\n";

                           }

             }

};

void main()

{

             Student stu;

             int num;

             cout<<"학생이 몇명입니까?";

             cin>>num;

             stu.stu_input(num);

             stu.stu_ave(num);

}*/

/* 성적표 v1.5

추가사항

메뉴 : 1.성적추가 2.성적출력 3.종료

성적출력하면 반평균 추가한다.*/

/*

#include <iostream.h>

class Student

{

private:

             int *kor;

             int *eng;

             int *math;

             int *student_ave;

             int class_ave;

public:

             void stu_input(int num)     //학생 성적 입력

             {

                           kor=new int[num];

                           eng=new int[num];

                           math=new int[num];

                           for(int i=0;i<num;i++)

                           {

                                        cout<<i+1<<"번의 국어 점수를 입력하세요.";

                                        cin>>kor[i];

                                        cout<<i+1<<"번의 영어 점수를 입력하세요.";

                                        cin>>eng[i];

                                        cout<<i+1<<"번의 수학 점수를 입력하세요.";

                                        cin>>math[i];

                                        cout<<"-----------------------------\n";

                           }

             }

             void stu_output(int num)   //학생 개인 성적과 평균 출력

             {

                           student_ave=new int[num];

                           for(int i=0;i<num;i++)

                           {

                                        student_ave[i]=(kor[i]+eng[i]+math[i])/3;

                                        cout<<i+1<<"번 학생\n";

                                        cout<<"국어 영어 수학 평균\n";

                                        cout<<" "<<kor[i]<<"   "<<eng[i]<<"   "<<math[i]<<"   "<<student_ave[i]<<endl;

                                        cout<<"----------------------------------\n";

                           }

             }

             void Class_ave(int num)   //반 평균 출력

             {

                           class_ave=0;

                           for(int i=0;i<num;i++)

                           {

                                        class_ave+=student_ave[i];

                           }

                           class_ave=class_ave/num;

                           cout<<"반평균은 "<<class_ave<<"점입니다.\n";

                           cout<<"종료합니다.\n";

             }

};

void main()

{

             Student stu;

             int num=0;

             int menu;

             for(;;)

             {

                           cout<<"메뉴를 선택하세요.\n";

                           cout<<"1.성적 입력 2. 성적출력 3.종료 \n";

                           cin>>menu;

                           if(menu==1)

                           {

                                        cout<<"학생이 몇명입니까?";

                                        cin>>num;

                                        stu.stu_input(num);

                           }

                           else if(menu==2)

                           {

                                        if(num==0)

                                        {

                                                     cout<<"입력된 값이 없습니다.\n";

                                        }

                                        else

                                        {

                                                     stu.stu_output(num);

                                        }

                           }

                           else if(menu==3)

                           {

                                        if(num==0)

                                        {

                                                     cout<<"입력된 값이 없습니다.\n";

                                        }

                                        else

                                        {

                                                     stu.Class_ave(num);

                                        }

                                        break;

                           }

                           else

                           {

                                        cout<<"다시 입력하세요.\n";

                           }

             }

}*/

/*성적표 v2.0

메뉴추가 1.성적입력 2.성적출력 3.로드 4.저장 5.종료*/

//          파일의 저장과 로드

//          File *fopen(*filename,*mode);       파일을 연다.

//          mode에서 wt는 쓰기, rt는 읽기

//          fprintf 파일을 출력하는 함수

//          fclose 해체

 

#include <iostream.h>

#include <string.h>

class Student

{

private:

             int *kor;

             int *eng;

             int *math;

             int *student_ave;

             int class_ave;

public:

             void stu_input(int num)     //학생 성적 입력

             {

                           kor=new int[num];

                           eng=new int[num];

                           math=new int[num];

                           for(int i=0;i<num;i++)

                           {

                                        cout<<i+1<<"번의 국어 점수를 입력하세요.";

                                        cin>>kor[i];

                                        cout<<i+1<<"번의 영어 점수를 입력하세요.";

                                        cin>>eng[i];

                                        cout<<i+1<<"번의 수학 점수를 입력하세요.";

                                        cin>>math[i];

                                        cout<<"-----------------------------\n";

                           }

             }

             void stu_output(int num)   //학생 개인 성적과 평균 출력

             {

                           student_ave=new int[num];

                           for(int i=0;i<num;i++)

                           {

                                        student_ave[i]=(kor[i]+eng[i]+math[i])/3;

                                        cout<<i+1<<"번 학생\n";

                                        cout<<"국어 영어 수학 평균\n";

                                        cout<<" "<<kor[i]<<"   "<<eng[i]<<"   "<<math[i]<<"   "<<student_ave[i]<<endl;

                                        cout<<"----------------------------------\n";

                           }

             }

             void stu_load()

             {

                           FILE *f=fopen("text.txt","rt");

                           fgets(,f);

                           fclose(f);

             }

             void stu_save()

             {

                           FILE *f=fopen("text.txt","wt");

                           fputs(,f);

                           fclose(f);

             }

             void Class_ave(int num)   //반 평균 출력

             {

                           class_ave=0;

                           for(int i=0;i<num;i++)

                           {

                                        class_ave+=student_ave[i];

                           }

                           class_ave=class_ave/num;

                           cout<<"반평균은 "<<class_ave<<"점입니다.\n";

                           cout<<"종료합니다.\n";

             }

};

void main()

{

             Student stu;

             int num=0;

             int menu;

             for(;;)

             {

                           cout<<"메뉴를 선택하세요.\n";

                           cout<<"1.성적 입력 2. 성적출력 3.로드 4.저장 5.종료\n";

                           cin>>menu;

                           if(menu==1)         //성적입력

                           {

                                        cout<<"학생이 몇명입니까?";

                                        cin>>num;

                                        stu.stu_input(num);

                           }

                           else if(menu==2) //성적출력

                           {

                                        if(num==0)

                                        {

                                                     cout<<"입력된 값이 없습니다.\n";

                                        }

                                        else

                                        {

                                                     stu.stu_output(num);

                                        }

                           }

                           else if(menu==3) //로드

                           {

                                        if(num==0)

                                        {

                                                     cout<<"입력된 값이 없습니다.\n";

                                        }

                                        else

                                        {

                                                     stu.stu_load(num);

                                        }

                           }

                           else if(menu==4) //저장

                           {

                                        if(num==0)

                                        {

                                                     cout<<"입력된 값이 없습니다.\n";

                                        }

                                        else

                                        {

                                                     stu.stu_save(num);

                                        }

                           }

                           else if(menu==5) //종료

                           {

                                        if(num==0)

                                        {

                                                     cout<<"입력된 값이 없습니다.\n";

                                        }

                                        else

                                        {

                                                     stu.Class_ave(num);

                                        }

                                        break;

                           }

                           else       //잘못 입력했을때

                           {

                                        cout<<"다시 입력하세요.\n";

                           }

             }

}

 

ee.h

 

//class로 계산기를 만들기

#include <iostream.h>

class Cal

{

private:

             int add_sum;       //더하기

             int sub_sum;       //빼기

             int mul_sum;       //곱하기

             int divi_sum;        //나누기

             int result;                          //연산결과

public:

             void init()

             {

                           add_sum=0;

                           sub_sum=0;

                           mul_sum=0;

                           divi_sum=0;

             }

             void add(int a,int b)

             {

                           result=a+b;

                           cout<<a<<"+"<<b<<"="<<result<<endl;

                           add_sum++;

             }

             void sub(int a,int b)

             {

                           result=a-b;

                           cout<<a<<"-"<<b<<"="<<result<<endl;

                           sub_sum++;

             }

             void mul(int a,int b)

             {

                           result=a*b;

                           cout<<a<<"*"<<b<<"="<<result<<endl;

                           mul_sum++;

             }

             void divi(int a,int b)

             {

                           result=a/b;

                           cout<<a<<"/"<<b<<"="<<result<<endl;

                           divi_sum++;

             }

             void exit()

             {

                           cout<<"총 덧셈 연산은 "<<add_sum<<"번 했습니다.\n";

                           cout<<"총 뺄셈 연산은 "<<sub_sum<<"번 했습니다.\n";

                           cout<<"총 곱셈 연산은 "<<mul_sum<<"번 했습니다.\n";

                           cout<<"총 나눗셈 연산은 "<<divi_sum<<"번 했습니다.\n";

                           cout<<"종료합니다.\n";

             }

};

void main()

{

             int num1, num2;

             Cal cal;

             cal.init();

             for(;;)

             {

                           cout<<"어떤 연산을 할 것인지 선택하세요.\n";

                           cout<<"1:+, 2:-, 3:*, 4:/, 5:exit \n";

                           int cho;

                           cin>>cho;

                           if(cho==1)

                           {

                                        cout<<"두개의 숫자를 입력하세요.\n";

                                        cin>>num1>>num2;

                                        cal.add(num1,num2);

                           }

                           else if(cho==2)

                           {

                                        cout<<"두개의 숫자를 입력하세요.\n";

                                        cin>>num1>>num2;

                                        cal.sub(num1,num2);

                           }

                           else if(cho==3)

                           {

                                        cout<<"두개의 숫자를 입력하세요.\n";

                                        cin>>num1>>num2;

                                        cal.mul(num1,num2);

                           }

                           else if(cho==4)

                           {

                                        cout<<"두개의 숫자를 입력하세요.\n";

                                        cin>>num1>>num2;

                                        cal.divi(num1,num2);

                           }

                           else if(cho==5)

                           {

                                        cal.exit();

                                        break;

                           }

                           else

                           {

                                        cout<<"잘못입력하셨습니다.\n";

                           }

             }

}


'IT Note > C++' 카테고리의 다른 글

C++ 3일차  (0) 2009.05.19
C++ 2일차  (0) 2009.05.19
C++ 1일차  (0) 2009.05.19

C++ 3일차

Posted by seunggwon
2009. 5. 19. 18:42 IT Note/C++

//class로 계산기를 만들기

#include <iostream.h>

class Cal

{

private:

             int add_sum;       //더하기

             int sub_sum;       //빼기

             int mul_sum;       //곱하기

             int divi_sum;        //나누기

             int result;                          //연산결과

public:

             void init()

             {

                           add_sum=0;

                           sub_sum=0;

                           mul_sum=0;

                           divi_sum=0;

             }

             void add(int a,int b)

             {

                           result=a+b;

                           cout<<a<<"+"<<b<<"="<<result<<endl;

                           add_sum++;

             }

             void sub(int a,int b)

             {

                           result=a-b;

                           cout<<a<<"-"<<b<<"="<<result<<endl;

                           sub_sum++;

             }

             void mul(int a,int b)

             {

                           result=a*b;

                           cout<<a<<"*"<<b<<"="<<result<<endl;

                           mul_sum++;

             }

             void divi(int a,int b)

             {

                           result=a/b;

                           cout<<a<<"/"<<b<<"="<<result<<endl;

                           divi_sum++;

             }

             void exit()

             {

                           cout<<"총 덧셈 연산은 "<<add_sum<<"번 했습니다.\n";

                           cout<<"총 뺄셈 연산은 "<<sub_sum<<"번 했습니다.\n";

                           cout<<"총 곱셈 연산은 "<<mul_sum<<"번 했습니다.\n";

                           cout<<"총 나눗셈 연산은 "<<divi_sum<<"번 했습니다.\n";

                           cout<<"종료합니다.\n";

             }

};

void main()

{

             int num1, num2;

             Cal cal;

             cal.init();

             for(;;)

             {

                           cout<<"어떤 연산을 할 것인지 선택하세요.\n";

                           cout<<"1:+, 2:-, 3:*, 4:/, 5:exit \n";

                           int cho;

                           cin>>cho;

                           if(cho==1)

                           {

                                        cout<<"두개의 숫자를 입력하세요.\n";

                                        cin>>num1>>num2;

                                        cal.add(num1,num2);

                           }

                           else if(cho==2)

                           {

                                        cout<<"두개의 숫자를 입력하세요.\n";

                                        cin>>num1>>num2;

                                        cal.sub(num1,num2);

                           }

                           else if(cho==3)

                           {

                                        cout<<"두개의 숫자를 입력하세요.\n";

                                        cin>>num1>>num2;

                                        cal.mul(num1,num2);

                           }

                           else if(cho==4)

                           {

                                        cout<<"두개의 숫자를 입력하세요.\n";

                                        cin>>num1>>num2;

                                        cal.divi(num1,num2);

                           }

                           else if(cho==5)

                           {

                                        cal.exit();

                                        break;

                           }

                           else

                           {

                                        cout<<"잘못입력하셨습니다.\n";

                           }

             }

}

*/

//생성자 소멸자

/*

#include <iostream.h>

class A

{

             int a;

public:

             A(int a)

             {

                           a=a;

                           cout<<"생성자 호출"<<a<<endl;

             }

             ~A()

             {

                           cout<<"소멸자 호출"<<a<<endl;

             }

};

void main()

{

             {

                           A a(1);

                           {

                                        A b(2);

                                        {

                                                     A c(3);

                                        }

                           }

             }

}

*/

/*

#include <iostream.h>

class Date

{

private:

             int year;

             int month;

             int day;

             int sum;

public:

             Date()

             {

                          

             }

             int result(int year[2],int month[2],int day[2])

             {

                           year=year[1]-year[0];

                           month=month[1]-month[0];

                           day=day[1]-day[0];

                           sum=year*365+month*30+day;

                           return sum;

             }

};

void main()

{

             Date date;

             int year[2], month[2], day[2];

             cout<<"만난날을 몇년, 몇월, 몇일 순서대로 입력하세요.\n";

             cin>>year[0]>>month[0]>>day[0];

             cout<<"오늘 날짜를 입력하세요.\n";

             cin>>year[1]>>month[1]>>day[1];

             cout<<"총 만난날은 "<<date.result(int year[2],int month[2],int day[2])<<"일입니다.\n";

}

*/

/*

//ID와 비밀번호 클래스로, 동적할당

//사용자는

#include <iostream.h>

class user

{

private:

             char *ID;

             char *p;

public:

             void (char *c)

             {

                           int

             }

};

//몇명인지 물어본다.

void main()

{

             int num;

             cout<<"몇명을 입력합니까?";

             cin>>num;

             user *a=new int[num];

             for(int i=0;i<num;i++)

             {

                           cout<<"ID를 입력하세요.";

                           cin>>;

                           cout<<;

                           cin>>;

             }

 

            

             //동적할당으로 입력해서 클래스에서 동적할당

//입출력

}

*/

#include <iostream.h>

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

class U

{

private:

             char *i;

             char *p;

             void input(char *ID,char *pass)

             {

                           int a=strlen(ID);

                           int b=strlen(pass);

                           i=new char[a+1];

                           p=new char[b+1];

                           strcpy(i,ID);

             }

             void output(char *ID,char *pass)

             {

             }

             ~U()

             {

                           delete[] i;

                           delete[] p;

             }

};

void main()

{

             int num;

             U *p=new U[num];

             char ID[128];

             char pass[128];

             for(int i=0;i<num;i++)

             {

                           cin>>ID;

                           cin>>pass;

                           p[i].input(ID,pass);

             }

             for(int j=0;j<num;j++)

             {

                           p[j].output(ID,pass);

             }

             delete[] p;

}

 

'IT Note > C++' 카테고리의 다른 글

C++ 4일차  (0) 2009.05.19
C++ 2일차  (0) 2009.05.19
C++ 1일차  (0) 2009.05.19

C++ 2일차

Posted by seunggwon
2009. 5. 19. 18:41 IT Note/C++

//문자열을 입력받아 문자를 거꾸로 바꿔서 출력하기.

/*

#include <iostream.h>

#include <stdio.h>

#include <string.h>

char* change(char *src)

{

             int len=strlen(src);

             char *Temp=new char[len+1];

             for(int i=0;i<len;i++)

             {

                           Temp[i]=src[len-1-i];

             }

             Temp[len]=NULL;

             return Temp;

}

void main()

{

             char ori[128];

             gets(ori);

             char *ch=change(ori);

             cout<<"원래 문자열 : "<<ori<<endl;

             cout<<"바뀐 문자열 : "<<ch<<endl;

             delete ch;

}

*/

//클래스

//구조체는 함수를 못담지만 클래스는 함수를 담을수 있다.

/*

#include <iostream.h>

class Man

{

public:

             char name[128];

             int age;

             int tall;

};

void main()

{

             Man *a;

             int num;

             cout<<"사람 수가 몇 명입니까?";

             cin>>num;

             a=new int[num];

             for(int i=0;i<num;i++)

             {

                           cout<<i+1<<"번째 사람의 이름을 입력하세요. ";

                           cin>>a.name;

                           cout<<"나이를 입력하세요. ";

                           cin>>a.age;

                           cout<<"키를 입력하세요. ";

                           cin>>a.tall;

             }

             for(int j=0;j<num;j++)

             {

                           cout<<"이름 : "<<a.name<<", 나이 : "<<a.age<<"살, 키 : "<<a.tall<<"cm\n";

             }

            

}

*/

#include <iostream.h>

class Man

{

private:

             char name[128];

             int tall;

             int age;

public:

             void Input()

             {

                           cout<<"이름 입력\n";

                           cin>>name;

                           cout<<"키 입력\n";

                           cin>>tall;

                           cout<<"나이 입력\n";

                           cin>>age;

             }

             void Output(char *s,int a,int b)

             {

                           cout<<s<<endl;

                           cout<<a<<endl;

                           cout<<b<<endl;

             }

};

void main()

{

             int num;

             cout<<"학생수 입력\n";

             Man a[num];

             for(int i=0;i<num;i++)

             {

                           a[i].Input();

             }

             for(int )

             a.Output("이름",180,19);

}

//숙제

/*

class student

{

private:

             //성적은 private

             int kor;

             int eng;

             void Input()

             {

 

             }

             void Output()//클래스 내에 해야됨.

             {

                           //번호순대로 총점과 평균을 출력한다.

};

void main

{

             //학생이 몇명?

             //동적할당한다.

             //번호별로 점수 입력

};


'IT Note > C++' 카테고리의 다른 글

C++ 4일차  (0) 2009.05.19
C++ 3일차  (0) 2009.05.19
C++ 1일차  (0) 2009.05.19

C++ 1일차

Posted by seunggwon
2009. 5. 19. 18:39 IT Note/C++

#include <iostream.h>

void main()

{

             int a,b;

             int sum;

             cout<<"숫자 2개를 입력하세요.\n";

             cin>>a>>b;

             if (a<b)

             {

                           for(sum=0,a+=1;a<b;a++)

                           {

                                        sum+=a;

                           }

             }

             else if (a>b)

             {

                           for(sum=0,b+=1;a>b;b++)

                           {

                                        sum+=b;

                           }

             }

             else

             {

                           sum=0;

             }

             cout<<"두 값 사이의 합은 "<<sum<<"입니다.\n";

}

*/

/*

#include <iostream.h>

void main()

{

             int num;

             cout<<"몇단을 출력할까요?\n";

             cin>>num;

             for(int i=1;i<=9;i++)

             {

                           cout<<num<<" * "<<i<<" = "<<num*i<<"\n";

             }

}

*/

//동적할당은 c++로

//int *p=(int *)malloc(4);

//int *p=new int;

//free(p);

//delete p;

//int *p=(int *)malloc(4*sizeof(int));

//int *p=new int[4];

#include <iostream.h>

void change(int *p,int num)

{

             num--;

             int *Temp=new int[num];

             for(int i=0;i<=num;i++)

             {

                           Temp[i]=p[num-i];

             }

             for(int j=0;j<=num;j++)

             {

                           p[j]=Temp[j];

             }

}

void main()

{

             cout<<"생성할 숫자의 갯수는?";

             int num;

             cin>>num;

             int *p=new int[num];

             for(int i=0;i<num;i++)

             {

                           p[i]=i+1;

             }           

             change(p,num);

             for(int j=0;j<num;j++)

             {

                           cout<<p[j]<<"\n";

             }

             delete p;

}

 

'IT Note > C++' 카테고리의 다른 글

C++ 4일차  (0) 2009.05.19
C++ 3일차  (0) 2009.05.19
C++ 2일차  (0) 2009.05.19