for(초기값; 조건식 또는 종료값; 증감)
{

}


문) 2~8까지의 합을 구하시오

int p=2, q=8;
int n;
int hap=0;


if(p>q)
{
   int temp;
   temp=p;
   p=q;
   q=temp;
}//swap


for(n=p; n<=q; n++)
{
    hap=hap+n;
}

printf("%d에서%d까지 누적합%d\n",p,q,hap);


문) 서기1년 ~ 서기2012년 사이의 윤년의 갯수?
int leap=0;
int y;

for(y=1; y<=2012; y++)
{
  if(y%4==0 && y%100!=0 || y%400==0)  leap++;
}

printf("서기1년~서기2012년 사이의 윤년의 갯수 : %d\n",leap);

============================

* 이중 for문


int p,q;

for(p=2; p<=9; p++)
{
    printf("** %d단 **\n",p);
    for(q=1; q<=9; q++)
    {
       print("%d * %d = %d\n",p,q,(p*q));
    }

}


문)
1+...+10=55
1+...+20=
1+...+30=
1+...+40=
1+...+50=
1+...+60=
1+...+70=
1+...+80=
1+...+90=
1+...+100=5050


int p,q;
int hap=0;
for(p=10; p<=100; p+=10)
{
    for(q=1; q<=p; q++)
    {
       hap=hap+q;
    }
   
    printf("1+...+%d=%d\n",p,hap);
    hap=0;
}

 

문)
1+...+10=50
11+...+20=
21+...+30=
31+...+40=
41+...+50=
51+...+60=
61+...+70=
71+...+80=
81+...+90=
91+...+100=

int p,q;
int hap=0;
for(p=10; p<=100; p+=10)
{
    for(q=p-9; q<=p; q++)
    {
       hap=hap+q;
    }
   
    printf("%d+...+%d=%d\n",(p-9),p,hap);
    hap=0;
}


=========================
* 등수 구할때 사용하는 알고리즘
★★★★★
★★★★★
★★★★★
★★★★★

int p,q;
for(p=1; p<=4; p++)
{
   for(q=1;q<=5; q++)
   {
      printf("★");
   }

   printf("\n");

}

1★★★★
★2★★★
★★3★★
★★★4★
★★★★5


int p,q;

for(p=1; p<=5; p++)
{
   for(q=1; q<=5; q++)
   { 
      if(p==q)
         printf("%d",p);
      else
         printf("★");

   }//열

   printf("\n");

}//행

 

A B C D E
F G H I  J
K L M N O
P Q R S T
U V W X Y
Z


char ch;
int cnt=0;
for(ch='A'; ch<='Z'; ch++)
{
   if(cnt%5==0) printf("\n");
   printf("%c",ch);
   cnt++;
}

 

* 정렬할때 사용하는 알고리즘

★★
★★★
★★★★
★★★★★

int p,q;
for(p=1; p<=5; p++)
{
   for(q=1; q<=p; q++)
   {
      printf("★");
   }

    printf("\n");
}


★★★★★
★★★★
★★★
★★


int p, q;
for(p=5; p>=1; p--)
{
   for(q=1; q<=p; q++)
   {
       printf("★");
   }

    printf("\n");
}

===========================

과제1)

A
AB
ABC
ABCD
ABCDE
ABCDEF

 

ABCDEFGHIJKLMNOPQRSTUWXYZ


과제2)
구구단 출력하기

     2*1=2     3*1=3     4*1=4
     2*2=4     3*2=6     4*2=8
     2*3=6     3*3=9     4*3=12

 

 

 

--------------------------------------------------------

 

 

#include<stdio.h>

void main()
{

 /*
int p=8, q=2;
int n;
int hap=0;


if(p>q)
{
   int temp;
   temp=p;
   p=q;
   q=temp;
}//swap


for(n=p; n<=q; n++)
{
    hap=hap+n;
}

printf("%d에서%d까지 누적합%d\n",p,q,hap);

*/

/*
int leap=0;
int y;

for(y=1; y<=2012; y++)
{
  if(y%4==0 && y%100!=0 || y%400==0)  leap++;
}

printf("서기1년~서기2012년 사이의 윤년의 갯수 : %d\n",leap);
*/

/*
int p,q;

for(p=2; p<=9; p++)
{
    printf("** %d단 **\n",p);
    for(q=1; q<=9; q++)
    {
       printf("%d * %d = %d\n",p,q,(p*q));
    }

}

*/
/*
int p,q;
int hap=0;
for(p=10; p<=100; p+=10)
{
    for(q=1; q<=p; q++)
    {
       hap=hap+q;
    }
   
    printf("1+...+%d=%d\n",p,hap);
    hap=0;
}
*/
/*
int p,q;
int hap=0;
for(p=10; p<=100; p+=10)
{
    for(q=p-9; q<=p; q++)
    {
       hap=hap+q;
    }
   
    printf("%d+...+%d=%d\n",(p-9),p,hap);
    hap=0;
}
*/

/*
int p,q;
for(p=1; p<=4; p++)
{
   for(q=1;q<=5; q++)
   {
      printf("★");
   }

   printf("\n");

}
*/

 /*
int p,q;

for(p=1; p<=5; p++)
{
   for(q=1; q<=5; q++)
   { 
      if(p==q)
         printf("%d",p);
      else
         printf("★");

   }//열

   printf("\n");

}//행
*/

/*
char ch;
int cnt=0;
for(ch='A'; ch<='Z'; ch++)
{
   if(cnt%5==0) printf("\n");
   printf("%c",ch);
   cnt++;
}
*/

/*
int p,q;
for(p=1; p<=5; p++)
{
   for(q=1; q<=p; q++)
   {
      printf("★");
   }

    printf("\n");
}

*/


int p, q;
for(p=5; p>=1; p--)
{
   for(q=1; q<=p; q++)
   {
       printf("★");
   }

    printf("\n");
}

 


}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'..열심히 공부하세.. > C 입문' 카테고리의 다른 글

[09] 배열 Array  (0) 2012.05.25
[08] while문, do~while문  (0) 2012.05.25
[06] 반복문 (for문)  (0) 2012.05.22
[05] switch~case문  (0) 2012.05.22
[04] 제어문 (if 조건문)  (0) 2012.05.21

* 제어문 (반복문)

- for문
- while문
- do~while문


* for문
for(초기값; 종료값 또는 조건식; 증감)
{
      처리내용;
}

- 초기값은 단 1회 만 실행된다
- 초기값->조건식->처리내용->증감
               조건식->처리내용->증감
               조건식->처리내용->증감
               조건식->처리내용->증감
- 조건식이 거짓이 되면 반복문을 빠져나옴(반복문 종료)  
- 무한루프일 경우 강제종료하면 된다


int su;
for(su=1; su<10; su=su+3) //su+=3
{
   printf("happy");
}

su=1        1<10   happy
su=1+3     4<10   happy
su=4+3     7<10   happy
su=7+3    10<10


int su;
for(su=10; su>1; su=su-3)
{
   printf("hi");
}

su=10       10>1   hi
su=10-3    7>1    hi
su=7-3     4>1    hi
su=4-3     1>1


----------------------
* 구구단

** 4단 **
4*1=4
4*2=8
4*3=12
4*4=16
4*5=20
4*6=24
4*7=28
4*8=32
4*9=36

int gugu=4, n;

printf("** %d단 **\n",gugu);
for(n=1; n<=9; n++)
{
  printf("%d*%d=%d\n",gugu,n,(gugu*n));
}

-------------------------------

* 알고리즘

- 성적프로그램
  . 과목을 합계를 낸다
  . 평균 : 합계를 과목수로 나눈다
  . 평균을 기준으로 등수를 구한다

- 카운트

- 누적


//문) 1~10까지 3의 배수 갯수 확인
        3의 배수 ? 3의 나누어서 나머지가 0


int cnt=0;
int n;
for(n=1; n<=10; n++)

   if(n%3==0)
   {
        cnt=cnt+1;
    }
}

printf("3의 배수 갯수 : %d\n",cnt);


n=1  1<=10   if(1%3==0)
n=2  2<=10   if(2%3==0)
n=3  3<=10   if(3%3==0) cnt=0+1
n=4  4<=10   if(4%3==0)
n=5  5<=10   if(5%3==0)
n=6  6<=10   if(6%3==0) cnt=1+1

 

//문) 1~10까지 3의 배수만 누적의 합

int hap=0;
int n;
for(n=1; n<=10; n++)
{
   if(n%3==0)  hap=hap+n;
}

printf("3의 배수만 누적 합 : %d\n",hap);


//문) 5팩토리얼 구하여라
       5에서 부터 1까지 곱하기 5*4*3*2*1

int gop=1;
int n;
for(n=5; n>=1; n--)
{
   gop=gop*n;
}

printf("5팩토리얼값:%d",gop);

-------------------------
//문)두 수사이의 누적의 합을 구하시오
int p=2, q=8;
int hap=0;
int n;

for(n=p; n<=q; n++)
{
   hap=hap+n;
}

printf("%d~%d 누적의 합 : %d",p,q,hap);

 

 

--------------------------------------

 

 

 

#include<stdio.h>

void main()
{

int idx=10;

/*
switch(idx)
{
   case 5:
      printf("사과");
      break;

   case 10:
      printf("수박");
      break;

   case 15:
      printf("바나나");
      break;

   default:
      printf("과일");
      break;
}

*/

/*
switch(idx)
{
   case 5:
      printf("사과");
      break;

   case 10:
      printf("수박");

   case 15:
      printf("바나나");
      break;

}
*/


/*
int p=5, q=3;
int res;
float res2;
char op='+';

switch(op)
{
   case '+' : res=p+q; break;
   case '-' : res=p-q; break;
   case '*' : res=p*q; break;
   case '/' : res2=(float)p/q; break;
   case '%' : res=p%q; break;
}

if(op=='/')
  printf("%d %c %d = %.2f\n",p,op,q,res2);
else
  printf("%d %c %d = %d\n",p,op,q,res);


*/

/*
int su;
for(su=1; su<10; su=su+3) //su+=3
{
   printf("happy");
}
*/


/*
int su;
for(su=10; su>1; su=su-3)
{
   printf("hi");
}

*/
/*
int gugu=4, n;

printf("** %d단 **\n",gugu);
for(n=1; n<=9; n++)
{
  printf("%d*%d=%d\n",gugu,n,(gugu*n));
}

*/


//평균을 기준으로 수,우,미,양,가
/*
char name[10]="홍길동";
int kor=40,eng=30,mat=90;
float aver=(kor+eng+mat)/3.0;

switch((int)(aver/10))
{
  case 10:
  case  9: printf("수"); break;
  case  8: printf("우"); break;
  case  7: printf("미"); break;
  case  6: printf("양"); break;
  default : printf("가"); break;
}

//문) 평균 10점당 ★ 하나씩 출력하기

int n;
for(n=1; n<=(int)(aver/10); n++)
{
  printf("★");
}

*/

/*
int cnt=0;
int n;
for(n=1; n<=10; n++)

   if(n%3==0)
   {
        cnt=cnt+1;
    }
}

printf("3의 배수 갯수 : %d\n",cnt);

  */
/*
int hap=0;
int n;
for(n=1; n<=10; n++)
{
   if(n%3==0)  hap=hap+n;
}

printf("3의 배수만 누적 합 : %d\n",hap);

*/

/*
int gop=1;
int n;
for(n=5; n>=1; n--)
{
   gop=gop*n;
}

printf("5팩토리얼값:%d",gop);

*/


int p=2, q=8;
int hap=0;
int n;

for(n=p; n<=q; n++)
{
   hap=hap+n;
}

printf("%d~%d 누적의 합 : %d",p,q,hap);

 


}

 

 


 

'..열심히 공부하세.. > C 입문' 카테고리의 다른 글

[08] while문, do~while문  (0) 2012.05.25
[07] 이중 for문   (0) 2012.05.24
[05] switch~case문  (0) 2012.05.22
[04] 제어문 (if 조건문)  (0) 2012.05.21
[03] 자료형  (0) 2012.05.17

* 조건문 (분기문)

- 값:양의 정수값만 해당
- break : switch문을 빠져나간다
- default : 리스트에 없을경우 실행했으면 하는 내용을 작성한다.
               반드시 코딩해야 하는 명령어 아니다

switch(값)
{
  case 값1 :
     처리내용A;
     break;

  case 값2 :
     처리내용B;
     break;

  case 값3 :
     처리내용C;
     break;
}

//switch~case 문법
int idx=10;

switch(idx)
{
   case 5:
      printf("사과");
      break;

   case 10:
      printf("수박");
      break;

   case 15:
      printf("바나나");
      break;

   default:
      printf("과일");
      break;
}

//break가 없을경우


switch(idx)
{
   case 5:
      printf("사과");
      break;

   case 10:
      printf("수박");

   case 15:
      printf("바나나");
      break;

}

//----------------------
//계산기 프로그램
int p=5, q=3;
int res;
float res2;
char op='+';

switch(op)
{
   case '+' : res=p+q; break;
   case '-' : res=p-q; break;
   case '*' : res=p*q; break;
   case '/' : res2=(float)p/q; break;
   case '%' : res=p%q; break;
}

if(op=='/')
  printf("%d %c %d = %.2f\n",p,op,q,res2);
else
  printf("%d %c %d = %d\n",p,op,q,res);


//------------------------------

//평균을 기준으로 수,우,미,양,가

char name[10]="홍길동";
int kor=40,eng=30,mat=90;
float aver=(kor+eng+mat)/3.0;

switch((int)(aver/10))
{
  case 10:
  case  9: printf("수"); break;
  case  8: printf("우"); break;
  case  7: printf("미"); break;
  case  6: printf("양"); break;
  default : printf("가"); break;
}

 

//문) 평균 10점당 ★ 하나씩 출력하기

int n;
for(n=1; n<=(int)(aver/10); n++)
{
  printf("★");
}

 

'..열심히 공부하세.. > C 입문' 카테고리의 다른 글

[07] 이중 for문   (0) 2012.05.24
[06] 반복문 (for문)  (0) 2012.05.22
[04] 제어문 (if 조건문)  (0) 2012.05.21
[03] 자료형  (0) 2012.05.17
[02] 출력서식문자  (0) 2012.05.15

* 제어문
  - 제어문이란 프로그램의 흐름을 제어하는 역할을 한다
  - 조건문과 반복문이 있다

1.조건문
  - 조건을 true, false로 판단해서 실행하고자 할때 사용한다
  - 분기문
  - if문, switch~case문
 
2.반복문

-------------------------

* if문

1) 1형식 (특정문장을 수행할 것이냐?)
   if (조건)
   {
        처리내용;
        처리내용;
        처리내용;
   }


2) 2형식(조건이 참이었을때, 거짓이었을때 각각의 수행문을 처리)
   if (조건)
   {
        처리내용;
        처리내용;
        처리내용;
   }
   else
   {
        처리내용;
        처리내용;
        처리내용;
   }

3) 3형식(비교판단해야할 조건이 2개 이상일경우 사용)
    이중if, 중첩if

if(조건A)
{
   처리내용;
   처리내용;
}
else if(조건B)
{
   처리내용;
   처리내용;
}
else if(조건C)
{
   처리내용;
   처리내용;
}
else
{
   처리내용;
   처리내용;
}

 

 

----------------------------
char name[10]="홍길동";
int kor=40,eng=30,mat=90;
float aver=(kor+eng+mat)/3.0;

printf("이름:%s\n",name);
printf("국어:%d\n",kor);
printf("영어:%d\n",eng);
printf("수학:%d\n",mat);
printf("평균:%.2f\n",aver);


//평균이 90점이상이면 장학생 출력
if(aver>=90)
{
   printf("장학생\n");
}


//평균이 70점이상이면 합격, 아니면 불합격
if(aver>=70)
{
   printf("합격\n");
}
else
{
   printf("불합격\n");
}

/*
  평균이 90점이상이면 수
            80점이상이면 우
            70점이상이면 미
            60점이상이면 양
            나머지 가
*/

if(aver>=90)
  printf("수\n");
else if(aver>=80)
  printf("우\n");
else if(aver>=70)
  printf("미\n");
else if(aver>=60)
  printf("양\n");
else
  printf("가\n");


//문) 절대값 구하기 (무조건 양수로만 출력)
int su=-5;
if(su<0)
  printf("%d 절대값 : %d\n",su,(su*-1));
else
  printf("%d 절대값 : %d\n",su,su);


//문) 계산기 프로그램
int p=5, q=3;
char op='+'; // + - * / %

/*
if(op=='+')
  printf("%d %c %d = %d\n",p,op,q,(p+q));
else if(op=='-')
  printf("%d %c %d = %d\n",p,op,q,(p-q));
else if(op=='*')
  printf("%d %c %d = %d\n",p,op,q,(p*q));
else if(op=='/')
  printf("%d %c %d = %d\n",p,op,q,(p/q));
else if(op=='%')
  printf("%d %c %d = %d\n",p,op,q,(p%q));
*/

int res;
float res2;

if(op=='+') res=p+q;
else if(op=='-') res=p-q;
else if(op=='*') res=p*q;
else if(op=='/') res2=(float)p/q;
else if(op=='%') res=p%q;


if(op=='/')
  printf("%d %c %d = %.2f\n",p,op,q,res2);
else
  printf("%d %c %d = %d\n",p,op,q,res);


//문) 년도가 윤년인지 알아보는 공식

int y=2012;

if(y%4==0 && y%100!=0 || y%400==0)
  printf("윤년");
else
  printf("평년");

 

---------------------------------------------

 

#include<stdio.h>
void main(){

/*
int a=10,b=20,c,d;

c=++a;
d=b--;

printf("%d %d %d %d\n",a,b,c,d);

int z;
z=++a * b--;
printf("%d\n",z);
*/

//문) 각각의 지폐의 갯수를 확인
/*
int money=52430;

int m,c,b,s;

m=money/10000;         //m=52430/10000
money=money%10000; //money=2430
c=money/1000;           //c=2430/1000
money=money%1000;  //money=430
b=money/100;
money=money%100;
s=money/10;

printf("만원 %d장\n",m);
printf("천원 %d장\n",c);
printf("백원 %d장\n",b);
printf("십원 %d장\n",s);
*/

/*
int days=365.2422;
days=365.2422*86400; //1년이 ?초

int d,h,m,s;
d=days/84600; //365

days=days%86400;
h=days/3600;

days=days%3600;
m=days/60;
s=days%60;

printf("%d일 %d시간 %d분 %d초\n",d,h,m,s);

*/

 /*
printf("%d\n",(int)(3.6+3.6));     //7
printf("%d\n",(int)3.4+(int)3.4); //6

  */

 /*
char name[10]="홍길동";
int kor=40,eng=30,mat=90;
float aver=(kor+eng+mat)/3.0;

printf("이름:%s\n",name);
printf("국어:%d\n",kor);
printf("영어:%d\n",eng);
printf("수학:%d\n",mat);
printf("평균:%.2f\n",aver);


//평균이 90점이상이면 장학생 출력
if(aver>=90)
{
   printf("장학생\n");
}

//평균이 70점이상이면 합격, 아니면 불합격
if(aver>=70)
{
   printf("합격\n");
}
else
{
   printf("불합격\n");
}


if(aver>=90)
  printf("수\n");
else if(aver>=80)
  printf("우\n");
else if(aver>=70)
  printf("미\n");
else if(aver>=60)
  printf("양\n");
else
  printf("가\n");

 

int su=-5;
if(su<0)
  printf("%d 절대값 : %d\n",su,(su*-1));
else
  printf("%d 절대값 : %d\n",su,su);

*/

//문) 계산기 프로그램
int p=5, q=3;
char op='+'; // + - * / %

/*
if(op=='+')
  printf("%d %c %d = %d\n",p,op,q,(p+q));
else if(op=='-')
  printf("%d %c %d = %d\n",p,op,q,(p-q));
else if(op=='*')
  printf("%d %c %d = %d\n",p,op,q,(p*q));
else if(op=='/')
  printf("%d %c %d = %d\n",p,op,q,(p/q));
else if(op=='%')
  printf("%d %c %d = %d\n",p,op,q,(p%q));

*/
/*
int res;
float res2;

if(op=='+') res=p+q;
else if(op=='-') res=p-q;
else if(op=='*') res=p*q;
else if(op=='/') res2=(float)p/q;
else if(op=='%') res=p%q;


if(op=='/')
  printf("%d %c %d = %.2f\n",p,op,q,res2);
else
  printf("%d %c %d = %d\n",p,op,q,res);
*/


//문) 년도가 윤년인지 알아보는 공식

int y=2012;

if(y%4==0 && y%100!=0 || y%400==0)
  printf("윤년");
else
  printf("평년");

 

 

 

'..열심히 공부하세.. > C 입문' 카테고리의 다른 글

[06] 반복문 (for문)  (0) 2012.05.22
[05] switch~case문  (0) 2012.05.22
[03] 자료형  (0) 2012.05.17
[02] 출력서식문자  (0) 2012.05.15
[01] C언어 개론  (0) 2012.05.15

* 서버에 파일 전송하는 방법

 

1. 태그문법
<a href="파일명"></a>

 

2. jsp문법
response.sendRedirect("파일명")

 

3. 자바스크립트문법
location="파일명"

 

4. form 양식
action="파일명"

 

- 웹페이지에서 파일 이동을 할때 특정값을 가지고 갈수 있다.
   값을 가지고 갈 경우에는 ? 뒤에 변수명=값 형태로 작성한다
- 전달되는 값이 2개 이상일 경우에는 &로 연결한다
- 주의: ? 뒤에 오는 구문을 코딩할 경우에는 공백문자(spacebar)를
          주면 안된다
          sungjukView.jsp? idx=5 & kor=60 <--주의사항
- ?뒤에 오는 값은 get방식으로 서버에 전송된다  


* 수정페이지
- 쓰기+상세보기 페이지가 합쳐져 있는 것.

* include 디렉티브
  - DB연결등과 같은 반복적인 작업을 할 경우
    공통부분에 해당하는 내용만 발췌해서 저장하고
    문서 포함을 시킨다.
  - 공통적으로 포함될 내용을 가진 파일을 해당 JSP페이지내에 삽입하는 기능을 제공한다.

  - <%@ include file="파일명" %>

  - New -> JSP File -> ssi.jsp

  - ssi.jsp파일의 첫줄과 작업페이지의 첫줄은 반드시 동일해야 한다

  - ssi.jsp파일 내용을 현재 작업페이지에 복사해 준 것 임.


* <input type="hidden">
 - 폼요소이지만 브라우저에 출력되지는 않는다.
 - primary key, 페이지등 프로그램 작성에 필요한 값을 담아서
    서버로 가지고 갈때 주로 사용된다.

 

sungjukView.jsp--------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement"%>
<%@ page import="java.sql.ResultSet" %>

<%
String driver="org.gjt.mm.mysql.Driver";
String url="jdbc:mysql://localhost:3306/erpjavadb?useUnicode=true&characterEncoding=euckr";
String user = "root";
String password = "1234";

Connection con=null;
ResultSet rs=null;

Class.forName(driver);
con=DriverManager.getConnection(url,user,password);

int idx=Integer.parseInt(request.getParameter("idx"));
String sql="SELECT * FROM tb_sungjuk";
sql+=" WHERE sno=?";

PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1,idx);
rs=pstmt.executeQuery();//ResultSet에 담기
  
%>
   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>성적페이지 상세보기</title>
</head>
<body>
<center>
* 성적페이지 상세보기 * <br/>
<%
if (rs.next())
{ //레코드포인터가 가르킬 요소가 있는지? 있으면 출력       
%>
   <table border="1">
   <tr>
     <td>이름</td>
     <td><%=rs.getString("uname")%></td>
   </tr>
   <tr>
     <td>국어</td>
     <td><%=rs.getInt("kor")%></td>
   </tr>
   <tr>
     <td>영어</td>
     <td><%=rs.getInt("eng")%></td>
   </tr>
   <tr>
     <td>수학</td>
     <td><%=rs.getInt("mat")%></td>
   </tr>
   <tr>
     <td>평균</td>
     <td><%=rs.getInt("aver")%></td>
   </tr>
   <tr>
     <td>주소</td>
     <td><%=rs.getString("address")%></td>
   </tr>
   <tr>
     <td>작성일</td>
     <td><%=rs.getString("regdt").substring(0,10)%></td>
   </tr>
   </table>
<%
}
else
{  //레코드포인터가 가르킬 요소가 없을 경우
    out.print("해당하는 레코드 없음!!");
}
%>

<a href="sungjukList.jsp">목록</a>
    <!-- 공백문자 -->
<a href="sungjukEdit.jsp?idx=<%=rs.getInt("sno")%>">수정</a>
   
<a href="sungjukDel.jsp?idx=<%=idx%>">삭제</a>

</center>
</body>
</html>

<%
try{
    if ( rs != null){ rs.close(); }
}catch(Exception e){}           
try{
    if ( pstmt != null){ pstmt.close(); }
}catch(Exception e){}           
try{
    if ( con != null){ con.close(); }
}catch(Exception e){}
%>


sungjukDel.jsp---------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement"%>

<%
String driver="org.gjt.mm.mysql.Driver";
String url="jdbc:mysql://localhost:3306/erpjavadb?useUnicode=true&characterEncoding=euckr";
String user = "root";
String password = "1234";

Connection con=null;
Class.forName(driver);
con=DriverManager.getConnection(url,user,password);

int idx=Integer.parseInt(request.getParameter("idx"));
String sql="DELETE FROM tb_sungjuk";
sql+=" WHERE sno=?";

PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1,idx);

int res=pstmt.executeUpdate();//쿼리문 성공 1

if(res==1)
    //request객체 사용자->서버
    //response객체 서버->사용자
    response.sendRedirect("sungjukList.jsp");
else
    out.print("레코드삭제 실패!!");
%>

<%       
try{
    if ( pstmt != null){ pstmt.close(); }
}catch(Exception e){}           
try{
    if ( con != null){ con.close(); }
}catch(Exception e){}
%>

ssi.jsp--------------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>

<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement"%>
<%@ page import="java.sql.ResultSet" %>

<%
String driver="org.gjt.mm.mysql.Driver";
String url="jdbc:mysql://localhost:3306/erpjavadb?useUnicode=true&characterEncoding=euckr";
String user = "root";
String password = "1234";

Connection con=null;
ResultSet rs=null;
PreparedStatement pstmt=null;

Class.forName(driver);
con=DriverManager.getConnection(url,user,password);

//request객체가 가지고 있는 한글값을 euc-kr로 인코딩해 줌
request.setCharacterEncoding("euc-kr");
%>


<%!
//jsp에서 메소드 작성할때
public void close(Connection con, PreparedStatement pstmt)
{
    try{
        if ( pstmt != null){
            pstmt.close();
        }
    }catch(Exception e){}           
    try{
        if ( con != null){
            con.close();
        }
    }catch(Exception e){}
}//end

public void close(Connection con,
                  PreparedStatement pstmt,
                  ResultSet rs)
{
    try{
        if ( rs != null){ rs.close(); }
    }catch(Exception e){}           
    try{
        if ( pstmt != null){ pstmt.close(); }
    }catch(Exception e){}           
    try{
        if ( con != null){ con.close(); }
    }catch(Exception e){}  
}//end
%>

 

 


sungjukEdit.jsp------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
   
<%@ include file="ssi.jsp" %>

<%
int idx=Integer.parseInt(request.getParameter("idx"));
String sql="SELECT * FROM tb_sungjuk";
sql+=" WHERE sno=?";

pstmt=con.prepareStatement(sql);
pstmt.setInt(1,idx);
rs=pstmt.executeQuery();
%>
   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>성적 수정 하기</title>
</head>
<body>
<center>
* 성적수정 *<br/>
<%
if (rs.next()){
%>
    <form name="myform" method="post" action="sungjukEditok.jsp">
    <input type="hidden" name="idx" value="<%=idx%>">
    <table border="1">
    <tr>
      <td>이름</td>
      <td>
        <input type="text" name="uname" value="<%=rs.getString("uname")%>">
      </td>
    </tr> 
    <tr>
      <td>국어</td>
      <td>
        <input type="text" name="kor" value="<%=rs.getInt("kor")%>">
      </td>
    </tr> 
    <tr>
      <td>영어</td>
      <td>
        <input type="text" name="eng" value="<%=rs.getInt("eng")%>">
      </td>
    </tr> 
    <tr>
      <td>수학</td>
      <td>
        <input type="text" name="mat" value="<%=rs.getInt("mat")%>">
      </td>
    </tr> 
    <tr>
      <td>평균</td>
      <td>
        <input type="text" name="aver" value="<%=rs.getInt("aver")%>" readonly>
      </td>
    </tr> 
    <tr>
      <td>주소</td>
      <td>
        <input type="text" name="address" value="<%=rs.getString("address")%>">
      </td>
    </tr> 
    </table>
   
    <input type="submit" value="수정">
    <input type="reset" value="취소">
    </form>   
<%
}

else{
  out.print("관련 레코드 없음!!");  
}
%>
</center>
</body>
</html>
<%
//close 오버로딩 함수 호출
close(con,pstmt,rs);
%>
sungjukEditok.jsp----------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>

<%@ include file="ssi.jsp" %>

<%
int idx=Integer.parseInt(request.getParameter("idx"));
String uname=request.getParameter("uname");
int kor=Integer.parseInt(request.getParameter("kor"));
int eng=Integer.parseInt(request.getParameter("eng"));
int mat=Integer.parseInt(request.getParameter("mat"));
int aver=(kor+eng+mat)/3;
String address=request.getParameter("address");

String sql="UPDATE tb_sungjuk";
sql+=" SET uname=?";
sql+=" ,kor=?";
sql+=" ,eng=?";
sql+=" ,mat=?";
sql+=" ,aver=?";
sql+=" ,address=?";
sql+=" WHERE sno=?";

pstmt=con.prepareStatement(sql);
pstmt.setString(1,uname);
pstmt.setInt(2,kor);
pstmt.setInt(3,eng);
pstmt.setInt(4,mat);
pstmt.setInt(5,aver);
pstmt.setString(6,address);
pstmt.setInt(7,idx);

int res=pstmt.executeUpdate();//쿼리문 성공 1

if(res==1)
    response.sendRedirect("sungjukList.jsp");
else
    out.print("레코드수정 실패!!");
%>

<%
close(con,pstmt,rs);
%>

-------------------------

* 함수 오버로딩 복습(숙제)
* 수정페이지 sungjukEdit.jsp 유효성 검사
   추가페이지 sungjukInt.jsp참조

 

 

 

 

sungjukIns.jsp

<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.PreparedStatement"%>

<%

//사용자가 넘긴 문자를 euc-kr형태로 인코딩함.
request.setCharacterEncoding("euc-kr");

//사용자 넘긴 값 가져오기
String uname=request.getParameter("uname");
int kor=Integer.parseInt(request.getParameter("kor"));
int eng=Integer.parseInt(request.getParameter("eng"));
int mat=Integer.parseInt(request.getParameter("mat"));
int aver=(kor+eng+mat)/3;
String address=request.getParameter("address");

String sql="INSERT INTO tb_sungjuk";
sql+=" (uname,kor,eng,mat,aver,address,regdt)";
sql+=" VALUES(?,?,?,?,?,?,now())";

//My-SQL연동에 필요한 자료들 복사해 오기
String url="jdbc:mysql://localhost:3306/erpjavadb?useUnicode=true&characterEncoding=euckr";
String driver="org.gjt.mm.mysql.Driver";
String user="root";
String password="1234";

Connection con=null;
//Statement stmt=null;
       
try{
   Class.forName(driver);
   con=DriverManager.getConnection(url,user,password);
   //stmt=con.createStatement();
   //pstmt객체에 쿼리문 읽어들임
   PreparedStatement pstmt=con.prepareStatement(sql);
   pstmt.setString(1,uname);
   pstmt.setInt(2,kor);
   pstmt.setInt(3,eng);
   pstmt.setInt(4,mat);
   pstmt.setInt(5,aver);
   pstmt.setString(6,address);
   //쿼리문실행. 성공하면 1 리턴
   int res=pstmt.executeUpdate();
   //out.print("res="+res);
  
   if(res==1)
       response.sendRedirect("sungjukList.jsp");//파일이동
   else
       out.print("insert 실패!!");       
  

}catch(Exception e){}

 

%>

--------------------------------------------

 

sungjukList.jsp

 

<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement"%>
<%@ page import="java.sql.ResultSet" %>
<%

String driver="org.gjt.mm.mysql.Driver";
String url="jdbc:mysql://localhost:3306/erpjavadb?useUnicode=true&characterEncoding=euckr";
String user = "root";
String password = "1234";

Connection con=null;
ResultSet rs=null;

Class.forName(driver);
con=DriverManager.getConnection(url,user,password);

String sql="SELECT * FROM tb_sungjuk";
sql+=" ORDER BY sno DESC"; //sno내림차순 정렬

PreparedStatement pstmt=con.prepareStatement(sql);//쿼리문 생성
rs=pstmt.executeQuery();// SELECT
  
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>성적리스트 출력하기</title>
</head>
<body>

<center>
* 성 / 적 / 리 / 스 / 트 * <br/>
<table border=1>
<tr>
  <td>번호</td>
  <td>이름</td>
  <td>국어</td>
  <td>영어</td>
  <td>수학</td>
  <td>평균</td>
</tr>
<%
  int su=1;
  String bgcolor="";
  while(rs.next())
  {
      if(su%2==0)
          bgcolor="#ff99ff";
      else
          bgcolor="#3399ff";
     
      int sno=rs.getInt("sno");
%>
    <tr bgcolor="<%=bgcolor%>">
       <td><%=rs.getInt("sno")%></td>
       <td><a href="sungjukView.jsp?idx=<%=sno%>"><%=rs.getString("uname")%></a></td>
       <td><%=rs.getInt("kor")%></td>
       <td><%=rs.getInt("eng")%></td>
       <td><%=rs.getInt("mat")%></td>
       <td><%=rs.getInt("aver")%></td>
 </tr>
<%
     su++;
  }
%>
</table>

<br/>
<a href="sungjukForm.html">성적추가</a>

</center>
</body>
</html>

<%
try{
    if ( rs != null){ rs.close(); }
}catch(Exception e){}           
try{
    if ( pstmt != null){ pstmt.close(); }
}catch(Exception e){}           
try{
    if ( con != null){ con.close(); }
}catch(Exception e){}
%>

 

 


 

* 톰캣 웹서버에 mysql 라이브러리 복사하는 순서


- 톰캣에서 My-SQL를 인식하기 위한 라이브러리가 필요하며,
   드라이버 로딩가능하다.

- 외부 응용프로그램을 사용하려면 library에 관련된 .jar파일을
   웹서버(톰캣)에 복사 해야한다

- 톰캣 홈디렉토리에서 green 폴더안에 WEB-INF 폴더 생성

   D:\ERPJava_04\tomcat-60\webapps\green\WEB-INF 폴더안에
    lib 와 classes 폴더 생성

   D:\ERPJava_04\tomcat-60\webapps\green\WEB-INF\lib 폴더에
   My-SQL 드라이버(.jar)복사해서 붙여 넣기

 

* 라이브러리가 수정이 되면 톰캣서버 재부팅 반드시 할것!!!

-------------------------------------------

 

* 이클립스에서 톰캣 연동

 

- 이클립스에서 톰캣을 연동하면 브라우저에서 결과값 출력할때
   자동으로 톰캣서버를 실행(Run on Server)을 해 주기 때문에 편리하다

- Window -> Preferences -> Server ->
   Runtime Environments -> Add -> Apache v6.0 -> Next
    -> Browse... -> tomcat-60설치 폴더 선택


* Eclipse에서 Web Application 생성


1. 성적 프로젝트 설정

- New -> Dynamic Web Project -> Project name : sungjuk
   메뉴가 보이지 않을 경우에는 Other... 에서 찾는다

- sungjuk프로젝트 생성후

   .Java Resources->src : .java파일 작성

   .WebContent폴더는 웹에 관련된 파일(.html, .jsp)을 저장하는 가상폴더로
                   실제 웹에서 경로를 지정할 때는 생략된다

   .WebContent->WEB-INF->lib 폴더에 mysql 드라이버 복사하기

   .WebContent-> New -> Html File -> sungjukForm.html 생성

   .WebContent-> New -> JSP File -> sungjukIns.jsp 생성

 

- 결과 확인하는 방법
   .sungjukForm.html에서 Run on Server
   .결과 확인할때 이클립스내에서 확인할수 있고
   .브라우저를 실행해서 확인할수 있는 방법도 있다.
   .Window->Web Browser에서 조절한다.

 

 

* 자료형 Data Type

 

- 메모리(RAM)에 저장하기 위해서는 반드시 장소를 지정해야 한다
   (메모리할당을 해야 한다)

- 할당된 메모리에 저장하고자 하는 값이
   어떤 형식의 값인지에 따라 데이터 타입을 지정해야 한다.
   이것을 자료형이라 한다

- 할당된 메모리에 이름 붙여서 접근을 하면 되는데
   이것을 변수명이라 한다.

- 변수명은 반드시 자료형과 함께 선언하고 사용해야 한다

- 변수는 새로운 값이 대입이되면,
   기존에 가지고 있던 값은 없어진다


1. 정수형 (int)
- 소수점이 없는 숫자값
- int
   .메모리 2바이트 할당

- long int (long만 써도 사용가능)
   .메모리 4바이트 할당


int kor; //kor 정수형 변수를 선언
int eng,mat; //정수형 변수 2개 동시 선언

// = 연산자 이용해서 변수에 값을 대입
kor=80;
printf("%d %d\n",5,kor);

kor=57;
printf("국어점수=%d\n",kor);

eng=80;
mat=90;

int aver=(kor+eng+mat)/3; //평균구하기

//       = 57 + 80 + 90/3

//산술연산자우선순위
// * / -> + -
//모든 연산자들 중에서 최우선 연산자 ( )
//모든 연산자들 중에서 마지막 연산자 =

printf("국어:%d\n",kor);
printf("영어:%d\n",eng);
printf("수학:%d\n",mat);
printf("평균:%d\n",aver);


//변수의 주소값을 출력 &변수명
printf("kor변수의 주소=%u\n",&kor); //%u양수값으로만 출력
printf("eng변수의 주소=%u\n",&eng);
printf("mat변수의 주소=%u\n",&mat);


//자료형의 메모리 크기
printf("int형의 메모리 크기 = %d\n",sizeof(int));
printf("long형의 메모리 크기 = %d\n",sizeof(long));
printf("float형의 메모리 크기 = %d\n",sizeof(float));
printf("double형의 메모리 크기 = %d\n",sizeof(double));

 

 

2. 정수형 (long)

long age=5;
printf("age=%ld\n",age); //long형 출력

//상수값 뒤에 L을 붙이면 long형이라는 의미
printf("long형의 메모리 크기 = %d\n",sizeof(5L));

 


3. 실수형 (float)
- 소수점을 가지고 있는 값을 지칭함
- 약 소수점 7자리까지 표현 가능

float height=123.456;
printf("height=%f\n",height);

 


4. 실수형 (double)
- 소수점 15자리정도까지 표현 가능
double d=123.45;
printf("d=%lf\n",d);

 

 

5. 문자형 (char)
- 문자 1글자당 메모리 1바이트 할당

char ch='B';
printf("ch=%c\n",ch);
printf("char형의 메모리크기=%d\n",sizeof(char));

printf("ch=%d\n",ch);

- %d와 %c는 서로 호환가능하다
- 이유? 아스키코드값이 있기 때문이다.

- 아스키코드(ASCII Code)란?
  . 미국에서 정한 코드표로 코드표에 있는 문자에
    10진 정수값을 부여한 코드
  . 코드표에 있는 문자는 대략 키보드에 있는 글자를 가르킨다.
  . 키보드의 방향키의 아스키코드값이 얼마인지 검색?

- spacebar의 아스키코드
printf("spacebar의 ASCII Code=%d",' ');

- 소문자 'a'의 아스키코드
printf("소문자 'a'의 아스키코드=%d",'a');

- 대문자 'A'를 소문자 'a' 출력
printf("%c\n",'A'+32);
printf("%c\n",'d'-32);

 


6. 문자열형
- char형을 조합해서 문자열형을 만들어 쓰면 된다
- 메모리의 크기는 대입하고자 하는 최소한 문자갯수+1 주어야 한다
   글자갯수보다 작거나 동일하게 주면 안된다
- 문자열의 인덱스(순서)는 0부터 카운트가 시작된다

- %s는 null문자 만날때 까지
   null문자? 문자열의 끝을 가르키는 값이다. \0

   char str[4]="SKY\0"

   null문자는 메모리만 할당되면 자동으로 추가된다.
   char str[3]="SKY"
   char str[4]="SKY"

char str[6]="HAPPY";
printf("str=%s\n",str);
printf("str변수의 메모리 크기=%d\n",sizeof(str));
printf("str[0]=%c\n",str[0]);

 

#######################################################

 

#include <stdio.h>

void main()
{

/*
   int kor; //kor 정수형 변수를 선언
   int eng,mat; //정수형 변수 2개 동시 선언

   // = 연산자 이용해서 변수에 값을 대입
   kor=80;
   printf("%d %d\n",5,kor);

   kor=57;
   printf("국어점수=%d\n",kor);

   eng=80;
   mat=90;

   int aver=(kor+eng+mat)/3; //평균구하기
   printf("국어:%d\n",kor);
   printf("영어:%d\n",eng);
   printf("수학:%d\n",mat);
   printf("평균:%d\n",aver);

   //변수의 주소값을 출력 &변수명
   printf("kor변수의 주소=%u\n",&kor); //%u양수값으로만 출력
   printf("eng변수의 주소=%u\n",&eng);
   printf("mat변수의 주소=%u\n",&mat);


   //자료형의 메모리 크기
   printf("int형의 메모리 크기 = %d\n",sizeof(int));
   printf("long형의 메모리 크기 = %d\n",sizeof(long));
   printf("float형의 메모리 크기 = %d\n",sizeof(float));
   printf("double형의 메모리 크기 = %d\n",sizeof(double));

*/

/*
  long age=5;
  printf("age=%ld\n",age); //long형 출력
  printf("long형의 메모리 크기 = %d\n",sizeof(5L));

*/

/*
float height=123.456;
printf("height=%f\n",height);
printf("height=%.2f\n",height);
printf("height=%10.2f\n",height);
printf("height=%.15f\n",height);

double d=123.45;
printf("d=%lf\n",d);
printf("d=%.15lf\n",d);
*/

 /*
char ch='B';
printf("ch=%c\n",ch);
printf("char형의 메모리크기=%d\n",sizeof(char));

printf("ch=%d\n",ch);

printf("spacebar의 ASCII Code=%d",' ');

printf("소문자 'a'의 아스키코드=%d",'a');

printf("%c\n",'A'+32);
printf("%c\n",'d'-32);

*/

char str[6]="HAPPY";
printf("str=%s\n",str);
printf("str변수의 메모리 크기=%d\n",sizeof(str));

}

 

---------------------------------------------------

 

 

 

'..열심히 공부하세.. > C 입문' 카테고리의 다른 글

[05] switch~case문  (0) 2012.05.22
[04] 제어문 (if 조건문)  (0) 2012.05.21
[02] 출력서식문자  (0) 2012.05.15
[01] C언어 개론  (0) 2012.05.15
3) 연산자  (0) 2006.08.16

* 유효성 검사
- 사용자에 의해 입력된 값이 제대로 입력되었는지 확인하는 작업
   주로 JavaScript가 그 역할을 담당한다
   .숫자를 제대로 입력했는가?
   .아이디가 공백인가?
   .이메일 주소에 @ 문자를 입력했는가?
   .주민번호와 이름이 일치하는 실명인가? 에 대한 유효성 검사는 불가능하다.

 

- JavaScript
   -> jQuery로 발전하고 있음

 

- 자바스크립트에서 유효성검사를 해야 하는 시점
   .폼이 전송될 때 할것인가?
   .커서가 다음 요소로 이동될 때 할것인가?

 

- 자바스크립트는 이벤트를 발생시킨후 함수호출에 의해 작동되게끔 프로그램을 구현한다

 

* 자바스크립트의 특징
  - 대소문자를 엄격히 구분한다
  - 자료형이 없다 (int double String이 존재하지 않는다)
  - 함수의 리턴형이 없다
  - 완벽한 객체지향언어는 아니다
  - 웹브라우저에 의해 해석된다
  - 최상위 객체 window

 

* JSP페이지에 HTML 태그를 사용할 명령어가 많을 경우에는
  차라리 HTML 페이지에 JSP코드를 삽입하는게 수월하다

 

#################################################################

 

sungjukForm.html---------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> 성적폼 작성 </title>

 <script type="text/javascript">
 <!--
 function Check()
 {
  var uname=document.myform.uname.value;
  //document->body를 가르키는 객체

  //이름 앞뒤의 공백 제거
     //trim()함수가 없음으로 정규 표현식으로 공백제거
  uname=uname.replace(/^\s*|\s*$/g, '');

  if(uname.length==0)
  {
   //메세지상자
   alert("이름입력바람!!");
   document.myform.uname.value="";
   //uname 텍스트상자에 커서 생성
   document.myform.uname.focus();
   return; //Check()함수호출부분으로 되돌아감
  }

  //숫자로 입력이 되어 있는지 확인
  var kor=document.myform.kor.value;
  if(isNaN(kor)||kor.length==0)
  { 
      //따옴표 안에 문자가 입력되면 true반환
   alert("국어점수 숫자로 제대로 입력바람!!");
   document.myform.kor.value="";
   document.myform.kor.focus();
   return;
  }
     
     kor=parseInt(kor);
  if(!(kor>=0 && kor<=100))
  {
   alert("국어점수 0~100사이 입력바람!!");
   document.myform.kor.value="";
   document.myform.kor.focus();
   return;
  }

  var eng=document.myform.eng.value;
  if(isNaN(eng)||eng.length==0)
  { 
   alert("영어점수 숫자로 제대로 입력바람!!");
   document.myform.eng.value="";
   document.myform.eng.focus();
   return;
  }

     eng=parseInt(eng);
  if(!(eng>=0 && eng<=100))
  {
   alert("영어점수 0~100사이 입력바람!!");
   document.myform.eng.value="";
   document.myform.eng.focus();
   return;
  }

  var mat=document.myform.mat.value;
  if(isNaN(mat)||mat.length==0)
  { 
   alert("수학점수 숫자로 제대로 입력바람!!");
   document.myform.mat.value="";
   document.myform.mat.focus();
   return;
  }

     mat=parseInt(mat);
  if(!(mat>=0 && mat<=100))
  {
   alert("수학점수 0~100사이 입력바람!!");
   document.myform.mat.value="";
   document.myform.mat.focus();
   return;
  }

        //스크립트를 이용해서 폼전송
  //type=submit 기능
  document.myform.submit();
 }
 //-->
 </script>
 </head>

 <body>
<!-- 사용자가 데이터값을 입력하기 좋게
만들어주는 것을 양식(폼)이라 한다. -->
<!-- type=submit 서버로 해당 폼을 전송-->
<!-- action 전송되어온 자료를 받는 파일 지정 -->

<form name="myform" action="sungjukok.jsp">
이름:<input type="text" name="uname" value="홍길동" size="8"><br/>
국어:<input type="text" name="kor"  value="80" size="5"><br/>
영어:<input type="text" name="eng"  value="90" size="5"><br/>
수학:<input type="text" name="mat"  value="70" size="5"><br/>
<input type="button" value="확인" onClick="Check();">
<input type="reset" value="취소">
</form>


<br/>
<!-- 표작성
출력하고자 하는 값은 cell에 써야 한다-->
<table border="1">
  <tr> <td>서울</td>   <td>안양</td> </tr>
  <tr> <td>사과</td>   <td>수박</td> </tr>
  <tr> <td>개나리</td> <td>무궁화</td> </tr>
</table>

 </body>
</html>

 

#########################################################

sungjukok.jsp------------------

<%
//자바코드를 작성하는 부분

String uname;
int kor;
int eng;
int mat;

//사용자에게서 넘어온 자료를 보관하고 있는 클래스
//request객체

uname=request.getParameter("uname");

//type=text에서 넘어온 값을 보관하고 있는
//request객체는 문자열값으로 저장된다
//처리하고자 하는 값이 정수형이면
//형변환해서 사용해야 한다.
kor  =Integer.parseInt(request.getParameter("kor"));
eng  =Integer.parseInt(request.getParameter("eng"));
mat  =Integer.parseInt(request.getParameter("mat"));

int aver;
aver=(kor+eng+mat)/3;

/*
1)출력방식
*/
//out.print(uname+"<br/>");
//out.print(kor+"<br/>");
//out.print(eng+"<br/>");
//out.print(mat+"<br/>");
//out.print(aver+"<br/>");


/*
2)출력방식
//결과값 table에 출력하기
out.print("<table border='1'>");
out.print("<tr>");
out.print("  <td>이름</td>");
out.print("  <td>" + uname + "</td>");
out.print("</tr>");

out.print("<tr>");
out.print("  <td>국어</td>");
out.print("  <td>" + kor + "</td>");
out.print("</tr>");

out.print("<tr>");
out.print("  <td>영어</td>");
out.print("  <td>" + eng + "</td>");
out.print("</tr>");

out.print("<tr>");
out.print("  <td>수학</td>");
out.print("  <td>" + mat + "</td>");
out.print("</tr>");

out.print("<tr>");
out.print("  <td>평균</td>");
out.print("  <td>" + aver + "</td>");
out.print("</tr>");

//문)평균 10점당 ★하나씩 출력
out.print("<tr>");
out.print("  <td>그래프</td>");
out.print("  <td>");
int su;
for(su=1;su<=aver/10;su++)
{
   out.print("★");
}
out.print("  </td>");
out.print("</tr>");
out.print("</table>");

*/
%>

<html>
  <head>
    <title>성적결과</title>
  </head>
  <body>
     * 성적결과 * <br/>
     <table border=1>
     <tr>
  <td>이름</td>
  <td><%out.print(uname);%></td>
     </tr>
     <tr>
  <td>국어</td>
  <td><%=kor%></td>
     </tr>
     <tr>
  <td>영어</td>
  <td><%=eng%></td>
     </tr>
     <tr>
  <td>수학</td>
  <td><%=mat%></td>
     </tr>
     <tr>
  <td>평균</td>
  <td><%=aver%></td>
     </tr>
     <tr>
  <td>그래프</td>
  <td>
<%
  int su;
  for(su=1;su<=aver/10;su++)
  {
     out.print("★");
  } 
%>
  </td>
     </tr>
     </table>

  </body>
</html>

------------------------

* method 방식

1. get방식
   - 사용자가 입력한 값 그대로 서버로 전송된다.
   - 사용자가 입려한 값이 그대로 URL에 노출된다
   - 서로 전송되는 값의 용량의 제한이 있다.

2. post방식
   - 사용자가 입력한 값이 코드화 즉, 변환되어 서버로 전송된다
   - 주민번호, 은행계좌번호, 비밀번호등은 반드시 post방식으로 한다
   - 많은 양을 서버로 전송할 수 있다.

 

 

* 출력함수 : 메모리가 기억하고 있는 값을 출력해 주는 함수
                 모니터, 프린터

* 주석 : comment, 보충설명
           실행단계의 프로그램 흐름에서 제외된다
           프로그램과 별도로 보충설명을 하고자 할때 사용한다
           한줄주석 //
           범위주석 /*    */

* 표현하고자 하는 값, 가공하고자 하는 값이 어떠한 형태인지를
  정확하게 전달을 해야 한다.
   숫자형(정수형, 실수형), 문자형, 문자열형, 날짜형인지를
   정확하게 구별해야 하며, 이런 형태를 자료형(Data type)이라 한다.

* C언어에서는 " "안에 표현값은 무조건 문자열형이다.
   123->정수형
   "123"->문자열형

* 서식문자
   %d 정수형
   %s 문자열형
   %f 실수형
   %c 문자형

-----------------------------------

 

파일명 : test01.cpp

 

#include<stdio.h>

void main()
{
    //모니터 출력함수 
 
 /*
 printf("오필승코리아\n");
 printf("대한민국\n");
 printf("무궁화꽃이\n\n피었습니다");
 //특수문자
 //\n 한줄바꿈
   */

 printf("123\n");//문자열형

 //숫자형 서식문자
 printf("%d %d %d\n",10,20,30); //정수형
 printf("%5d\n",123); //5칸을 지정한후 정수형 출력
 printf("%f %f\n",123.45, 35.4); //실수형
 printf("%.2f\n",123.4567); //실수형의 소수점 둘째자리까지 지정 (반올림)

 //문자관련 서식문자
    printf("%c %c\n",'K','M'); //1바이트 문자
 printf("%s %s\n","HAPPY","SKY"); //문자열
 printf("%5c %10s\n",'H',"HELLO");
 printf("%-5c %-10s\n",'H',"HELLO");

}

 

 

'..열심히 공부하세.. > C 입문' 카테고리의 다른 글

[04] 제어문 (if 조건문)  (0) 2012.05.21
[03] 자료형  (0) 2012.05.17
[01] C언어 개론  (0) 2012.05.15
3) 연산자  (0) 2006.08.16
2) 자료형 Data Type  (0) 2006.07.19

+ Recent posts