API 4장 예제


소스


c와 c++의 차이



태초에 C언어가 있었구요..C언어의 특징으로는 (절차적)구조적 프로그램(structured programming)방법
으로 이루어져 있습니다 그래서 기존의 코딩에 비해서 훨씬 효율적이고 구조적인 코딩을
할 수 있었습니다.
함수라는 것을 기능별로 만들어서 서로서로 호출만으로 재사용을 할수 있었으니까요..

그러다가 객체지향이라는 개념이 생겨났습니다..
현제의 기능,구조별(function)재사용에서 기능,구조들을 통합한 하나의 객체를 재사용
하고 싶어진것입니다...(class)
그래서 탄생된것이 c++입니다.
이렇게 해서 멤버함수와 멤버 변수들을 가지는 데이터 타입이 생겨났고(이것이 class)
이것을 이용하여 객체단위로 코딩을 하려는 것입니다.

이해가 되시나요...??
객체지향의 특징은 상속성,은닉성,다형성등등여러가지가 있습니다.
객체지향에 대한 이야기까지 하려면 너무 기니까요...나중에 찾아보시구요 자료가 많거든요
암튼 객체를 어떻게 하면 편리하게 재사용하고 쉽게 사용할까....해서 생겨난 이것이 가장큰특징입니다.
(아무래두 머리좋은 넘들이 졸라 어려워도 코딩을 적게 하고 재밌게 하려구 만든거
같습니다...)

저두 이것저것 많이 이야기 하구 싶은데 공부한지 오래되서 다까먹었네여..^^

그렇게 C++이 나오구요...이것을 윈도우즈 API와 접목시켜서
win32프로그래밍이 나오구 이것을 MS에서 좀더 체계적인 클래스 베이스를 만들어 제공하는것이
MFC라고 생각 하면 쉬울듯 하네요...
이제 C언어에서 MFC까지 왔네여..

그렇게 자바라는것이 나옵니다..
가비지컬렉션이라는것을 두고서 플랫폼에 독립적인 그런 특징을 가진 언어입니다.
이런 특징을 이용해서 웹이나 모바일등도 많이 이용되고 일반 어플에도 많이 사용됩니다.

MS사에서 이것에 대적해서 새롭게 내놓은것이 .net프로젝트의
c#이라 할수 있겠네요..이것은 기존 c++의 장점 포인터를 이용한 메모리관리등과
자바의 가비지 컬랙션과 플랫폼으로부터의 독립등을 가미한 그런 언어입니다..^^
간략하게 설명 드렸구여 자세한건 찾아보세요^^

자바 성적관리 프로그램 수정중

import java.awt.*;
import java.io.*;
import java.awt.event.*;
import java.awt.Container;
import javax.swing.*;
import javax.swing.table.*;

class Test extends JFrame
    {
 Label lb = new Label("(이름)님의 (학기)성적입니다");
 Label lb2 = new Label("성적결과");
 Container cp;  //전체 화면구성
    JScrollPane jsp; //스크롤
    JTable table;  // 데이터 입력받을 테이블
    DefaultTableModel model;
    int count=0;//검색된 학기 들은 과목 수
    String field[]={"이름","과목명","학년","학기","학점","성적"}; //배열
    String data[][]={  //배열 데이터

            {"전광하","전자계산개론","1","1","2","C+"}, 
                 {"전광하","유비쿼터스광고"  ,"3","2","2","C"},
};

    JPanel down;  //레이블과 텍스트 입력칸
    JLabel     lbl[]=new JLabel    [6];  //라벨 갯수
    JTextField txt[]=new JTextField[6];  // 텍스트필드 갯수
    JButton btnExe;  //버튼
    JButton btnDelete; //버튼
    JButton btnSearch; //버튼
    JButton btnUpdate; //버튼

   

    //생성자
    Test()      //전체 화면 구성
    {
        cp=getContentPane();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //닫힘
        setDesign();
        setBounds(0,0,1024,768);  //크기
        setVisible(true);  //보여짐
    }

    //디자인
    void setDesign()
    { 
     FlowLayout flow = new FlowLayout();
     this.setLayout(flow);
     this.add(lb);
     lb.setBounds(500,0,200,100);
     this.add(lb2);
     lb2.setBounds(500,100,300,300);
     
     
     
        cp.setLayout(null);
        //테이블
        model=new DefaultTableModel(field,0);//테이블 모델 생성
        table=new JTable(model);
        JOptionPane.showMessageDialog(Test.this,"안녕하세요\n학점관리프로그램입니다\n");
        int sel=JOptionPane.showConfirmDialog(Test.this,"기본데이터를 로드하시겠습니까?","기본정보",JOptionPane.YES_NO_OPTION);
        if(sel==JOptionPane.YES_OPTION)
        {
            for(int i=0;i<data.length;i++)//테이블모델에 데이터 삽입
                model.addRow(data[i]);
        }
        jsp=new JScrollPane(table);   // 스크롤을 테이블에 적용
        jsp.setBounds(0,70,500,480); //테이블 화면 크기
       
   

        //레이블과 텍스트 필드
        down=new JPanel();      // 레이블 나누기
        down.setLayout(new GridLayout(2,6));  // 2행 6행로
        down.setBounds(0,0,500,70);  //크기
         //배경 색
        for(int i=0;i<field.length;i++)//레이블삽입
        {
            lbl[i]=new JLabel(field[i],(int)JLabel.CENTER_ALIGNMENT); 
            lbl[i].setBackground(Color.white);
            down.add(lbl[i]);
        }
        for(int i=0;i<field.length;i++)//텍스트필드삽입
        {
            txt[i]=new JTextField("");
            txt[i].setBackground(Color.white);
            down.add(txt[i]); 
        }
       

        MyAction ma=new MyAction();//액션이벤트 클래스 생성

        //최하단 버튼      
        JPanel btnPanel=new JPanel();
        btnExe=new JButton("삽입");
        btnDelete=new JButton("삭제");
        btnSearch=new JButton("학점출력");
        btnUpdate=new JButton("종료");
        btnPanel.setBounds(0,550,1000,50);
        btnPanel.setLayout(new GridLayout(1,3));
        btnPanel.add(btnExe);btnPanel.add(btnDelete);btnPanel.add(btnSearch);btnPanel.add(btnUpdate);//패널에 버튼등록
        btnExe.addActionListener(ma);
        btnDelete.addActionListener(ma);//버튼액션등록
        btnSearch.addActionListener(ma);
        btnUpdate.addActionListener(ma);

        //등록
        cp.add(jsp);//테이블
        cp.add(down);//레이블과텍스트필드
        cp.add(btnPanel);//하단버튼
    }


/*************************************************************************
                  파 일 입 출 력 함 수
1.파일 불러오기
2.파일 저장하기
**************************************************************************/

   

/*************************************************************************
                  액 션 내 부 클 래 스
1.메뉴액션
2.버튼액션
**************************************************************************/
//메뉴액션


//버튼 액션
public class MyAction implements ActionListener
{
    //액션 퍼폼
    public void actionPerformed(ActionEvent e)
    {
        //데이터 삽입
        if(e.getActionCommand()=="삽입" )
        {
            String temp[]=new String[6];
            for(int i=0;i<field.length;i++)
                temp[i]=txt[i].getText();
            if(-1==f(temp))//키 중복확인
            {
                System.out.println("데이터삽입");
                model.addRow(temp);
                for(int i=0;i<txt.length;i++)
                txt[i].setText("");
            }
            else
            {
                JOptionPane.showMessageDialog(Test.this,"중복데이터가 있습니다");
            }
        }
        //데이터삭제
        else if(e.getActionCommand()=="삭제")
        {
            int sel=JOptionPane.showConfirmDialog(Test.this,"데이터를 정말삭제하시겠습니까?",
            "경고",JOptionPane.YES_NO_OPTION);  
            if(sel==JOptionPane.YES_OPTION)
            {
                String temp[]=new String[2];
                temp[0]=JOptionPane.showInputDialog(Test.this,"삭제 이름 입력:");
                temp[1]=JOptionPane.showInputDialog(Test.this,"삭제 과목 입력:");
                model.removeRow(f(temp));//키의위치반환
            }
        }

        //데이터검색
        else if(e.getActionCommand()=="학점출력")
        {
            String temp[]=new String[3];
            temp[0]=JOptionPane.showInputDialog(Test.this,"검색 이름 입력:");
            temp[1]=JOptionPane.showInputDialog(Test.this,"해당 학년 입력:");
            temp[2]=JOptionPane.showInputDialog(Test.this,"해당 학기 입력:");
            f2(temp);   
        }
        else if(e.getActionCommand()=="종료")
        {
            System.exit(0);   
        }
    }
}
/*************************************************************************
                  액 션 클 래 스 보 조
1.키 중복 테스트 함수
2.데이터 검색 함수
3.학기 학점 평균 함수
4.문자에 대한 학점변환 함수
**************************************************************************/
    //키 중복 테스트 함수(키의 위치반환)
    public int f(String temp[])
    {
        int row;
        for(row=0;row<model.getRowCount();row++)
        {
            if(temp[0].equals(model.getValueAt(row,0)) && temp[1].equals(model.getValueAt(row,1)))
                return row;//키를 찾을 때 키의 위치 반환
        }
        return -1;//삽입가능
    }

    //데이터 검색 함수(학기 평균 계산)
    public void f2(String temp[])
    {  
        int row;
        String ar[][]=new String[15][2];//학기 평균을 구하기 위한 과목저장 스트링
        String show=new String("이름:\t"+temp[0] +"님의\n"+temp[1]+"학년"+temp[2]+"학기 성적"+"\n\n");
        for(row=0;row<model.getRowCount();row++)
        {   
            //이름,학년,학기 검색
            if(temp[0].equals(model.getValueAt(row,0)) && temp[1].equals(model.getValueAt(row,2)) &&
               temp[2].equals(model.getValueAt(row,3)) )
            {
                show+=model.getValueAt(row,1)+" "+model.getValueAt(row,5)+"\n";//과목이름,과목 성적
                ar[count  ][0]=(String)model.getValueAt(row,4);//몇 학점 과목(2 or 3)
                ar[count++][1]=(String)model.getValueAt(row,5);//과목 성적(A+ or C+...)
            }
        }  
            show+="<html><font color=red>학기 평균 학점 = " +avg(ar)+"</font></html>\n";
            JOptionPane.showMessageDialog(Test.this,show);//결과 출력
    }

    //학기 학점 평균 계산
    public double avg(String ar[][])
    {
        int totalHak=0;//학기 수강한 총 학점수
        double sum=0;//수강점수
        for(int i=0;i<count;i++)//들은 과목수만큼 계산
        {
            System.out.println(ar[i][0]+ "   "+ar[i][1]);
            totalHak+=Integer.parseInt(ar[i][0]); 
            sum+=getValue(ar[i][1])*Integer.parseInt(ar[i][0]);// ex) 4.0 * 3
        }
        count=0;
        return sum/totalHak;
    }
   
    //학점에 대한 값을 반환
    public double getValue(String str2)
    {
        double temp;
        String str=str2.toUpperCase();//대문자변경
        if(str.equals("A+"))     temp=4.5;
        else if(str.equals("A")) temp=4.0;
        else if(str.equals("B+"))temp=3.5;
        else if(str.equals("B")) temp=3.0;
        else if(str.equals("C+"))temp=2.5;
        else if(str.equals("C")) temp=2.0;
        else if(str.equals("D+"))temp=1.5;
        else if(str.equals("D")) temp=1.0;
        else temp=0.0;
        return temp;  
    }
/*************************************************************************
                  메 인 함 수
**************************************************************************/


    public static void main(String[] args)
    {
        new Test();
    }
}



 

  • 공부하는학생 2011.11.15 13:58 신고 ADDR 수정/삭제 답글

    안녕하세요 프로그램 공부하고 있는 학생입니다 혹시 이 프로그래밍 파일 입출력 부분 소스도 올려주실수 있으신가요?

게시판

2008.06.05 14:35

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.

Gui 그래픽구성

import javax.swing.*;

public class ComplexLayoutDemo

{

 public static void main (String[ ] args)

 {
  JFrame  frame = new JFrame ("복잡한 화면 구성 관리자");
  frame.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE);
 
  frame.getContentPane().add(new layoutPanel());
 
  frame.pack();
  frame.show();
 }
}



----------------------------------------------------------------------------------
import java.awt.*;
import javax.swing.*;

public class layoutPanel extends JPanel
{
 public layoutPanel ()
 {
 
  JPanel panel1 = new JPanel ();
  JPanel panel2 = new JPanel ();
  JPanel panel3 = new JPanel ();
 
  JTextArea textAreal = new JTextArea ();
  JLabel label1 = new JLabel ("Label one");
  JLabel label2 = new JLabel ("Label two");
  JLabel label3 = new JLabel ("Label three");
  JLabel label4 = new JLabel ("Label four");
  JButton button1 = new JButton("Button one");
  JButton button2 = new JButton("Button two");
  JButton button3 = new JButton("Button three");
 
 
  this.setLayout(new GridLayout(2,2));
 
  this.add(textAreal);
 
  this.add(panel1);
 
  panel1.setLayout(new GridLayout(2,1));
  panel1.add(label1);
  panel1.add(label2);
 
  this.add(new JPanel ());
 
  this.add(panel2);
 
  panel2.setLayout(new GridLayout(4,1));
  panel2.add(label3);
  panel2.add(button1);
  panel2.add(label4);
  panel2.add(panel3);
  panel3.setLayout(new GridLayout(1,2));
  panel3.add(button2);
  panel3.add(button3);
 }
}

ASP 데이터 베이스 05/22

2008.05.22 14:34

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.

ASP 0508

-----------------------------------------------------------------------------------
<%
set fs = server.createobject("scripting.filesystemobject")
fs.createtextfile "c:\my test\test.txt",ture
%>
<html>
<body>
<br> <center> <font face ="돋움" size="2">
<h2>fso 테스트화일 만들기 </h2>
<%
if fs.fileexists("c:\my test\test.txt") then
response.write "결과 : 만들었음! "
else
response.write "결과 : 못 만들었음! "
end if
%>
</font> </center>
</body>
</html>

확인------------------------------------------------------------------------------

<%
set fs = server.createobject("scripting.filesystemobject")
set objfile = fs.createtextfile ("c:\my test\test.txt",8)
%>
<html>
<body>
<br> <center> <font face ="돋움" size="2">
<h2>fso 테스트화일 만들기 </h2>
<%
objfile.writeline("첫 번째 테스트라인")
objfile.writeline("this is second test line")
objfile.writeline("this is thard test line")
objfile.close

%>
글쓰기 완료!!
</font> </center>
</body>
</html>
쓰기--------------------------------------------------------------------------
1은 읽기전용 2는 쓰기 전용 8은 읽고쓰기 기능
--------------------------------------------------------------------------------
<%
set fs = server.createobject("scripting.filesystemobject")
set objfile = fs.opentextfile ("c:\my test\test.txt",1)
%>
<html>
<body>
<br> <center> <font face ="돋움" size="2">
<h2>fso 테스트화일 만들기 </h2>
<%
do while objfile.atendofstream <> true
response.write objfile.readline & "<br>"
loop

%>
</font> </center>
</body>
</html>

읽기 ---------------------------------------------------------------------------

  • 럭키 2016.12.10 04:44 신고 ADDR 수정/삭제 답글

    seeymt.cⓞm ☜☜☜

    ♠7년 무사고 정직운영업체100%검증업체 ♠

    ★업계최초 마일이지제도 도입★

    ☆첫충20% 매충20%(기존10%)+(이벤10%)☆

    www.seeymt.cⓞm ☜☜☜

    ◆단폴 크로스 가능 루틴 마틴 제재없음◆

    ♠BGM 바㉸라 블랙잭 포㉪ㅓ 룰렛 슬롯머신♠

    ●상상초월 넉넉한 이/벤/트 진행중●

    www.seeymt.cⓞm ☜☜☜

자바

import java.util.Scanner;
public class ex4 {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int a1,a2,a3,a4,a5,b,count,n;
  float hap,c;
  String a,f;
  count = 0;
  b = 0;
  n = 0;
  Scanner scan = new Scanner (System.in);
 
  do {
  System.out.println("교과목의 이름을 입력해주세요: ");
  f = scan.next();
   
   
  System.out.print("출석  ");
  a1 = scan.nextInt();
 
  System.out.print("과제 ");
  a2 = scan.nextInt();
 
  System.out.print("수시");
  a3 = scan.nextInt();
 
  System.out.print("중간 ");
  a4 = scan.nextInt();
 
  System.out.print("기말 ");
  a5 = scan.nextInt();
 
  hap = (float) (a1 + a2 + a3 + a4 + a5) /5;
 
  System.out.println(f + "총점 " + hap);
 
  if (hap >= 90)
  {System.out.println(f + "학점은 : A");
  n = 4;}
  else if (hap >= 80)
   {System.out.println(f +"학점은 : B");
  n = 3;}
  else if (hap >= 70)
   {System.out.println(f +"학점은 : C");
  n = 2;}
  else if (hap >= 60)
   {System.out.println(f + "학점은 : D");
  n = 1;}
  else
   {System.out.println(f +"학점은 : F");
  b = 0;}
 
  b += n;
 
  count++;
 
  System.out.print("계속하기를 원하세요?");
  System.out.print("그렇다면 y를 아니면 n를 입력하세요: ");
  a = scan.next();
  } while (a.equals("y"));
 
  {
   c =(float) b / count;
   System.out.println("평점 : " + c);
  }
 
 

 }

}

asp 4/3

<html>
<head>
<title> ASP </title>
</head>
<body>

<form name=frmlnfo method=post action=regist_ok.asp>
이름 :<input type=text name=txtname size=15><br>
e-mail:<input type=text name=txtemail size=30><br>
전화번호:<input type=text name=txtphone size=20><br>
<input type=submit value='전송'>
</form>
</body>
</html>

----------------------------------------------------------------------------------
<html>
<head>
<title> asp </title>
</head>
<body>
<%
dim strname,stremail,strphone
strname=request.form("txtname")
stremail=request.form("txtemail")
strphone=request.form("txtphone")

response.write"이름은 = "  & strname & "<br>"
response.write"email은 = "  & stremail & "<br>"
response.write"전화번호는 = "  & strphone & "<br>"

%>
</body>
</html>
-----------------------------------------------------------------------------------
<html>
<head>
<title> asp </title>
</head>
<body>
<input type=text name=txt1 size=60 maxlength=7>
<input type text name=text2 size=75 value='입력해 보세요' readonly>

</body>
</html>

시험문제 1번의 경우에는 어디까지 출력이 되나
2번의 경우는?

-----------------------------------------------------------------------------------
<html>
<head>
<title> asp</title>
</head>
<body>
<select name=sltsample size=1>
<option value=1>1번 보기입니다. </option>
<option value=2>2번 보기입니다. </option>
<option value=3>3번 보기입니다. </option>
<option value=4 selected>4번 보기입니다. </option>
</select>

<select name=sltsample size=3 mutiple>
<option value=>1번 보기입니다. </option>
<option value=2>2번 보기입니다. </option>
<option value=3>3번 보기입니다. </option>
<option value=4>4번 보기입니다. </option>
</select>

</body>
</html>
-----------------------------------------------------------------------------------
<html>
<head>
<title> asp</title>
</head>
<body>

<form name="ken" action="ken.htm" method=post target>
 ID  :   <input type="text" name="dept1" size=15> <br>
 PW:<input type="password" name="dept2" size=15> <br>
 <input type ="button" value="폼 속성 정보" onclick=disp()><br>


</form>


남 <input type="radio" name="1" >
여 <input type="radio" name="2" ><br><br>


<br>영화 <input type="checkbox"  >
쇼핑 <input type="checkbox"  >
운동 <input type="checkbox"  >
전공 <input type="checkbox"  >


<select name=sltsample size=1>
<option value=1>주부입니다. </option>
<option value=2>회사원 보기입니다. </option>
<option value=3>대학생입니다. </option>

</select>


</body>
</html>


1.아이디
2.비번
3.성별 레디오
4.체크박스 4개 관심취미
5.셀렉트 멀티로 7개종목
6.textarea



티스토리 툴바