블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
반응형

Category

Recent Post

Recent Comment

Archive

'.Net Project/.Net C#'에 해당되는 글 69

  1. 2009.08.30 104장 Form Windows Control
  2. 2009.08.28 2장 정보보안의 세계
  3. 2009.08.28 1장 정보보호개론
  4. 2009.08.27 C# 기초문법 정리(Test)
2009. 8. 30. 16:30 .Net Project/.Net C#
반응형
 폼 ?
그래픽 환경에서 화면을 구성하고 아용자가 통신하는 가장 기본적은 부품이 바로 윈도우

 WinMainForm 다음과 같이 컴트롤 각각 연습하기



공용컨트롤.CS 

            //모달리스 폼 : 독립적인 하나의 폼
           //각각의 폼으로 연결할수 있도록 이벤트 핸들러 작성
            MyWinFormsStudy.Controls.FrmButton fb =
                   new MyWinFormsStudy.Controls.FrmButton();

            //MDI 컨테이너를 현재 폼(메인)으로 설정
            fb.MdiParent = this;  // 속성 지정 안해주면 MDI폼 안이 아닌 밖에 나타난다.
            //fb에게 mdi부모에게 주겠다  = 메인인 내가

            fb.Show();   




 버튼레이블 렉스트박스
  StringBuilder sb = new StringBuilder();

            sb.Append("싱글라인 : " + txtSingle.Text + "\r\n");
            sb.AppendFormat("멀티라인 : " + txtMulth + "\r\n");          //같은형태1
            sb.AppendLine(string.Format("패스워드 : {0}", txtPwd.Text)); //같은형태1
            sb.AppendLine("마스크 : " + txtMask.Text);
            sb.AppendFormat("리치 : {0}", txtRich.Text); //AppendLined는 애러 왜!?

            MessageBox.Show(sb.ToString());

            //초기값...
            txtSingle.Text = "";
            txtMulth.Text = "";
            txtPwd.Text = "";
            txtMask.Text = "";
            txtRich.Text = "";




namespace MyWinFormsStudy.Controls
{
    public partial class FrmCheckBoxRadioButton : Form
    {
        public FrmCheckBoxRadioButton()
        {
            InitializeComponent();
        }
        private void FrmCheckBoxRadioButton_Load(object sender, EventArgs e)
        {
            //optWomen.Checked = true; //동적으로 체크
        }

        private void btnok_Click(object sender, EventArgs e)
        {
            string msg = "";
            //관심사항
            if (this.chkCsharp.Checked) //msg에 값을 넣는 첫번째 방법
            {
                msg += this.chkCsharp.Text + "\r\n";               
            }

            if (this.chkAsp.Checked == true) //msg에 값을 넣는 두번째 방법
            {
                msg += this.chkAsp.Text + "\r\n";               
            }

            if (this.chkSil.Checked) { //msg에 값을 넣는 세번째 방법
                //Empty
            }
            else {
                msg += this.chkSil.Text + "\r\n";
            }//첫번재 방법 추천
           
            //성별
            if (this.optMan.Checked)
            {
            //한줄 띄고 라이오 텍스트 붙이고 다시 한줄 띄우기
            msg += string.Format("{0} {1} {0}" , "\r\n", optMan.Text);   
            }
            if (this.optWomen.Checked) 
            //한줄 띄고 라이오 텍스트 붙이고 다시 한줄 띄우기
             {
             msg += string.Format("{0} {1} {0}", "\r\n", optWomen.Text);
             }
             this.txtResult.Text = msg;
        }
    }
}
 



 FrmCombo ListBox.Cs
 private void FrmComboListBox_Load(object sender, EventArgs e)
        {
            //동적으로 아이콘의 종류를 리스트박스에 초기화
            lstIconBox.Items.Add(MessageBoxIcon.Error.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Information.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Stop.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Question.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Warning.ToString());
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            if (cboBox.SelectedIndex != -1 && lstIconBox.SelectedIndex != -1)
            {
                //선택되지 않으면 -1값을 반환한다. 예외처리 해줌
                string btn = cboBox.Items[cboBox.SelectedIndex].ToString();     
                string icon = lstIconBox.Items[lstIconBox.SelectedIndex].ToString();

                //Process
                MessageBox.Show(string.Format("버튼 : {0}, 아이콘 : {1}", btn, icon));
            }
            else
                {
                DialogResult result = MessageBox.Show
                ("콤보박스와 리스트 박스를 선택해주세요.","제목",MessageBoxButtons.OKCancel);
               
                //DialogResult 쓰게 되면 확인과 취소에 따른 결과값을 간단하게 출력 할 수 있다.
                if (result == DialogResult.OK)
                {
                    txtRead.Text = "확인 클릭";
                }
                else if (result == DialogResult.Cancel)
                {
                    txtRead.Text = "취소 클릭";
                }
            }
        }




 Frm 컨테이너 - > 그룹박스. CS



 Frm FontDialog.Cs

        private void btnFont_Click(object sender, EventArgs e)
        {
            //폰트창을 열고
            DialogResult dr = this.fdFont.ShowDialog();
            //확인버튼 누르면, 변경
            if (dr == DialogResult.OK)
            {
                txtFont.Font = fdFont.Font;
            }           
        }
        private void btnColor_Click(object sender, EventArgs e)
        {
            //색상창 열고,
            if (fdColor.ShowDialog() != DialogResult.Cancel)
            {
                txtFont.ForeColor = fdColor.Color; //글꼴색 변경
            }
        }


 Frm FileDialog.CS
         //아래 3개 모두 다 같은 뜻
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                MessageBox.Show("선택한 파일 : " + openFileDialog1.FileName);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() != DialogResult.Cancel)
            {
                MessageBox.Show("저장할 파일 : " + saveFileDialog1.FileName);
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
            DialogResult dr = folderBrowserDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                MessageBox.Show("선택한 경로 : " + folderBrowserDialog1.SelectedPath);
            }
        }













반응형

'.Net Project > .Net C#' 카테고리의 다른 글

106장 Form Windows Explorer  (0) 2009.08.30
105장 Form Windows Class  (0) 2009.08.30
2장 정보보안의 세계  (0) 2009.08.28
1장 정보보호개론  (0) 2009.08.28
C# 기초문법 정리(Test)  (0) 2009.08.27
posted by Magic_kit
2009. 8. 28. 01:50 .Net Project/.Net C#
반응형
반응형

'.Net Project > .Net C#' 카테고리의 다른 글

105장 Form Windows Class  (0) 2009.08.30
104장 Form Windows Control  (0) 2009.08.30
1장 정보보호개론  (0) 2009.08.28
C# 기초문법 정리(Test)  (0) 2009.08.27
학점계산프로그램  (0) 2009.08.24
posted by Magic_kit
2009. 8. 28. 01:49 .Net Project/.Net C#
반응형
반응형

'.Net Project > .Net C#' 카테고리의 다른 글

104장 Form Windows Control  (0) 2009.08.30
2장 정보보안의 세계  (0) 2009.08.28
C# 기초문법 정리(Test)  (0) 2009.08.27
학점계산프로그램  (0) 2009.08.24
파일처리(Console)  (0) 2009.08.24
posted by Magic_kit
2009. 8. 27. 00:57 .Net Project/.Net C#
반응형


C# 문법
절차지향 프로그래밍
1. 기본구조
     using System;
     public Class Name{
  Public Static void Main()
  {
          // input
          // process
          // Output
  }
 }
  이와  같은 기본적인 구조 형태로 이루어져 있다.
2. 입 출력 문
     a. Constole.Read() 사용하여 입력 문 구성
     b. Console.Write() 사용하여 출력 문 구성

3. Data Type / Variable / Constant
       
4. Operators : 기호 연산자

5. Statements

6. Array : 동일한 타입들을 하나의 이름으로 묶어 놓은 것을 의미

7. Function/Sub Procedure/Sub Routine(Method)

8. Struct(구조체)  /  Enumeration(열거형)
    a.구조체 : 타입이 다른 변수들의 집합
      b. 열거형 : 가능한 값의 집합을 사용자가 직접 정의 하는 타입 의미

9. Class(Built In)
      a. 구조체의 모든 기능 + 함수(메서드) 동작 기능 의미
          하며, 자동자의 설계도를 생각하면 간단하다.

개체지향 프로그래밍
1. Class : 자동차 설계도 의미
     a. Main Method : Entry Point
     b. Field : 자동차 부품
     c. Method : 자동차 동작
     d. Constructor : 조립/시동 걸기
     e. Destructor : 소멸자 를 말하며, 폐차/주차(요원)
     f. Property : 색상/크기/모양/...
     g. Indexer : 카탈로그, 객체를 마치 배열인 것처럼 사용
     h. Delegate :  a. 대리운전 (다중 메서드 호출)
                          b. 메서드를 가르키는 참조형으로 메서드의
                              번지를 저장하거나 다른 메서드의 인수로
                              메서드 자체 전달 시 사용

     i. Event : a. 사고 (메서드 수행결과)
                    b. 어떠한 사건 발생시 호출 되어야 하는 메서드 목록
     
     j. Attribute : 자동차 튜닝 의미

2. Namespace : 자동차 브랜드
                                 
3. Interface : 자동차 설계 표준

알고리즘 (필수 : 무조건 외울 것)
1. SUM, COUNT, AVG (합, 개수, 평균)
2. MAX, MIN (최대값, 최소값)
3. RANK (순위)
4. MODE (나머지)
5. NEAR (가까운 값)
6. SORT (선택정렬)
    (선택 과 버블 정렬 비교)
     a. Selection Sort
          i. 비교하여 작은 것은 왼쪽
     b. Bubble Sort
          i. 인접한 (비슷한) 데이터 비교

     c. Quick Sort

7. SEARCH / Binary Search

8. MERGE

9. GROUP


자료구조
1. STACK : LIFO (Last Input First Out)
     a. STACK Pointer(sp)
     b. Overflow : STACK이 꽉 찼을 때 (초과시)
     c. Underflow : 비어있을 때...
     d. STACK Size : STACK의 크기
     e. 접시 쌓는 모양

2. QUEUE : FIFO (First Input First Out)
     a. 대기행렬, 인쇄대기, 은행 줄서기

3. LINKED LIST : LIFO+FIFO
     a. 배열보다 느리다는 단점
     b. 삽입과 삭제가 용이하다. (추가, 삭제용이)

4. TREE
     a. 이진 탐색 트리 : 작은 게 왼쪽/아래

5. GRAPH
     a. 서울에서 부산까지 최적경로 따질 때

6. HASHTABLE
     a. 키(Key)와 값(Value)의 쌍으로 데이터 저장
     b. 충돌이 발생할 수 있다.
          i. Hash["a"] = 1234;
          ii. Hash["aa"] = 5678; // a 도 5678 덮어씀
          

객체지향 관련 용어
 Inheritance : 상속
     a. super/base/parent클래스의 기능을 sub/derived/child
         클래스에 상속
       b. 상속 : 이미 만들어진 클래스의 멤버들을 물려받아 새로운 클래스
                     정의 하는 기법 의미.

 Encapsulation : 캡슐화
     필드를 꽁꽁 숨겨라… Field는 무조건 private
     외부에 공개 시 public한 Property로 공개

Override : 오버라이드
     부모의 멤버를 자식에서 재 정의

Overload : 오버로드
     a. 메서드 다중 정의, 동일한 이름의 메서드를 여러 개 선언
       b. 오버로딩 : 메서드는 이름으로 구분되며 이름이 같더라도
                              인수목록이 다르면 여러 번 매서드 정의 가능

Abstraction : 추상화
     a. 부모 클래스에는 멤버명만 정의하고 실제 구현은 자식에서 생성
       b. 추상메서드 : 인수목록이 리턴 타입은 가지지만 본체는 가지지 않으며,
                                 세미 콘론으로 끝이 난다.

Instance( 인스턴스) :  클래스로부터 개체를 생성해나는 단계

Polymorphism : 다형성
     동일 개체를 호출하는 관점에 따라서 다른 일 수행
     부모 클래스의 인스턴스 호출시와 자식 클래스의 인스턴스시 다름
     오버라이드 == 다형성 의미.

Seald Class : 봉인 클래스 -> 더 이상 상속되지 않는 클래스, 최종 클래스
                            메서드 앞에 사용시 메서드는 봉인되며 더 이상 재정의 불가

Object Class :최상위 클래스 ->C#에서의 최상위 클래스, 시조(?) 클래스
                             거대한 클래스들의 계층으로 구성
 
Access Modifiers : 접근 한정자(=접근 제한자)
     private(전용) : this 내에서만 공개
     protected(제한적인 허용) : 자식에게만 공개
     public(공용) : 모두에게 멤버 공개
     
     internal(어셈블리) : DLL 파일내의 모든 멤버에게 공개
     protected internal(제한적인DLL) : DLL에서의 상속관계에서만…

Static과 Instance
     a. Static : 정적 접근, 클래스로부터 객체를 생성하지 않고,
                     바로 사용 가능
     b. Instance : 메모리에 객체를 올린 후 사용, new 키워드 사용

---------------------------------------------------------------------------
1. 비트연산자
using System;

public class 비트
{
    public static void Main()
    {
        int a = 3;
        int b = 2;

        Console.WriteLine(a&b); //2
        Console.WriteLine(a|b); //3
        Console.WriteLine(a^b); //1
        Console.WriteLine(a!=b); //true
    }
}

2. 정렬(선택정렬)
using System;

public class 선택정렬
{
    public static void Main()
    {
        int[] arr = { 1, 5, 3, 6, 2, 10 };
       
        for (int i = 0; i < arr.Length - 1; i++)
        {
            for (int j = i + 1; j < arr.Length; j++)
            {
                if (arr[i] > arr[j])
                {
                    Swap(ref arr[i], ref arr[j]);
                }
            }
        }
        foreach (var item in arr)
        {
            Console.WriteLine("{0}", item);
        }
    }
    private static void Swap(ref int i, ref int j)
    {
        int temp = i;
            i = j;
            j = temp;
    }
}

3. 시프트 연산자
using System;

public class 시프트
{
    public static void Main()
    {
        int a = 40;
        int r = 0;

        r = a >> 3;
        Console.WriteLine(r);

        r = a << 1;
        Console.WriteLine(r);
    }
}

4. 증감연산자
using System;

public class 증감연산자
{
    public static void Main()
    {
        int a = 3;
        int b = 5;
        int c = 7;
        int temp = ++a - --b * c--;

        Console.WriteLine("{0}",temp);       
    }   
}

5. 이진검색
using System;

public class 이진검색
{
    public static void Main()
    {
        int[] data = { 1, 3, 5, 7, 9};
       
        Console.WriteLine("찾을데이터입력:");
        int Serch = Convert.ToInt32(Console.ReadLine());

        bool flag = true;
        int index = -1;
        int low = 0; int mid = 0; int high = 0;
        low = 0; high = data.Length - 1;
 
        //process
        while (low<high)
        {
            mid = (low + high) / 2;
            if (data[mid] == Serch)
            {
                flag = true;
                index = mid;
                break;
            }
            if (data[mid]<Serch)
            {
                low = mid + 1;
            }
            else
            {
                high = mid - 1;
            }
           
        }
        //output
        if (flag==true)
        {
            Console.WriteLine("{0}를 {1}위치에서 찾았습니다",Serch,index);
        }
        else
        {
            Console.WriteLine("찾지 못했습니다.");
        }
    }
}

반응형

'.Net Project > .Net C#' 카테고리의 다른 글

2장 정보보안의 세계  (0) 2009.08.28
1장 정보보호개론  (0) 2009.08.28
학점계산프로그램  (0) 2009.08.24
파일처리(Console)  (0) 2009.08.24
인터넷쇼핑몰구축(Console)  (0) 2009.08.21
posted by Magic_kit