'소통'에 해당되는 글 41건
- 2020.04.16 :: [C#] C# 데이터 타입 배워보기 (종류) 1
- 2020.04.16 :: [C#] C#이란 무엇일까? 기초알아보기 (1)
- 2020.04.15 :: [C++] 로그인 프로그램 소스
- 2020.04.15 :: [VB] 인터넷창 띄우기 (소스)
- 2020.04.15 :: [VB] 다음 로그인 소스
- 2020.04.15 :: [JAVA] 간단한 쓰레드
- 2020.04.14 :: [노래추천] 레전드무대 지드래곤 - Black
- 2020.04.14 :: [SQL] JOIN VIEW,별명알아보자
C# 데이타 타입
C#을 포함한 모든 .NET 프로그래밍 언어는 .NET의 Common Type System에 정의된 .NET 데이타 타입을 사용한다. C#은 int, double, string 과 같은 C# 키워드로 데이타 타입을 표현할 수 있으며, 또한 System.Int32, System.Double, System.String 과 같은 .NET 데이타 클래스로 데이타 타입을 표현할 수도 있다. 내부적으로는 C# 컴파일러는 C# 키워드로 된 데이타 타입을 컴파일 후 .NET 데이타 타입으로 변경하게 된다.
C# 데이타 타입.NET 데이타 타입설명
bool | System.Boolean | True or False |
byte | System.Byte | 8비트 unsigned integer |
sbyte | System.SByte | 8비트 signed integer |
short | System.Int16 | 16비트 signed integer |
int | System.Int32 | 32비트 signed integer |
long | System.Int64 | 64비트 signed integer |
ushort | System.UInt16 | 16비트 unsigned integer |
uint | System.UInt32 | 32비트 unsigned integer |
ulong | System.UInt64 | 64비트 unsigned integer |
float | System.Single | 32비트 single precision 부동소수점 숫자 |
double | System.Double | 64비트 double precision 부동소수점 숫자 |
decimal | System.Decimal | 128비트 Decimal |
char | System.Char | 16비트 유니코드 문자 |
string | System.String | 유니코드 문자열 |
System.DateTime | 날짜와 시간, 별도의 C# 키워드가 없음 | |
object | System.Object | 모든 타입의 기본 클래스로 모든 유형을 포함할 수 있음 |
C# 리터럴 데이타
C# 코드에서 123, true, "ABC"와 같이 값을 직접 써줄 수 있는데, 이를 리터럴(Literal)이라 한다. C#에서 리터럴 데이타를 사용할 때, 별도의 접미어 표시(Suffix)가 없는 경우 C# 컴파일러는 int, double, char, string, bool 데이타 타입에 기본적으로 그 값을 할당한다. 따라서, 특정 데이타 타입을 지정하고 싶으면, 리터럴 데이타 뒤에 1~2자의 타입 지정 접미어(Suffix)를 추가해야 한다. Suffix는 대소문자 구분이 없다. 즉 decimal을 나타내는 접미어 M은 1024M 이나 1024m처럼 사용가능하다. 아래는 디폴트 리터럴 타입과 각 데이타 타입별 Suffix에 대한 예제이다.
디폴트 리터럴 타입
123 // int 리터럴 12.3 // double 리터럴 "A" // string 리터럴 'a' // char 리터럴 true // bool 리터럴
C# 리터럴 데이타 타입 | Suffix (대소문자 모두 가능) | 예제 |
long | L | 1024L |
uint | U | 1024U |
ulong | UL | 1024UL |
float | F | 10.24F |
double | D | 10.24D 또는 10.24 |
decimal | M | 10.24M |
C# 데이타 타입 예제
예제
// Bool bool b = true; // Numeric short sh = -32768; int i = 2147483647; long l = 1234L; // L suffix float f = 123.45F; // F suffix double d1 = 123.45; double d2 = 123.45D; // D suffix decimal d = 123.45M; // M suffix // Char/String char c = 'A'; string s = "Hello"; // DateTime 2011-10-30 12:35 DateTime dt = new DateTime(2011, 10, 30, 12, 35, 0);
- float 데이타 타입은 숫자 뒤에 123.45F와 같이 F를 붙여 double이 아닌 float 타입임을 나타낸다.
- double 데이타 타입은 숫자 뒤에 123.45D과 같이 D를 붙이거나 혹은 아무것도 붙이지 않음으로 해서 double 타입임을 나타낸다.
- decimal 데이타 타입은 숫자 뒤에 123.45M과 같이 M를 붙여 decimal 타입임을 나타낸다.
- char 데이타 타입은 작은따옴표 ' (single quotation)을 사용하여 한 문자를 할당한다.
- string 데이타 타입은 큰따옴표 " (double quotation)을 사용하여 문자열을 할당한다.
최대값, 최소값?
숫자형 데이타 타입의 최대값 혹은 최소값을 알아내기 위해서는 .NET 데이타 타입 클래스들의 MaxValue, MinValue 프로퍼티를 사용한다. C# 데이타 타입 키워드 뒤에서도 이러한 프로퍼티를 직접 호출할 수 있다. 즉, int.MaxValue 혹은 Int32.MaxValue 처럼 사용할 수 있다.
NULL
어떤 변수가 메모리 상에 어떤 데이타도 가지고 있지 않다는 의미로서 NULL을 사용하는데, NULL을 표현하기 위하여 C# 에서는 소문자 null 이라는 키워드를 사용한다.
모든 데이타 타입이 NULL을 가질 수 있는 것은 아니며, 사실 데이타 타입은 NULL을 가질 수 있는 타입 (Reference 타입)과 가질 수 없는 타입 (Value 타입)으로 구분될 수 있다.
아래는 NULL을 가질 수 있는 문자열(string) 타입의 변수 s 에 null 을 할당하는 예이다.
Nullable Type
정수(int)나 날짜(DateTime)와 같은 Value Type은 일반적으로 NULL을 가질 수 없다. C# 2.0에서부터 이러한 타입들에 NULL을 가질 수 있게 하였는데, 이를 Nullable Type 이라 부른다.
C#에서 물음표(?)를 int나 DateTime 타입명 뒤에 붙이면 즉, int? 혹은 DateTime? 같이 하면 Nullable Type이 된다. 이는 컴파일하면 .NET의 Nullable<T> 타입으로 변환된다. Nullable Type (예: int?) 을 일반 Value Type (예: int)으로 변경하기 위해서는 Nullable의 .Value 속성을 사용한다.
예제
// Nullable 타입 int? i = null; i = 101; bool? b = null; //int? 를 int로 할당 Nullable<int> j = null; j = 10; int k = j.Value;
'C샵' 카테고리의 다른 글
[C#] C#의 버전 알아보자 (0) | 2020.04.16 |
---|---|
[C#] C#이란 무엇일까? 기초알아보기 (1) (0) | 2020.04.16 |
[C#] TXT 불러오기 소스 (0) | 2020.04.13 |
[C#] 네이버 카페 인증소스 (0) | 2020.04.13 |
C# 프로그래밍 언어
C#은 마이크로소프트에서 개발된 객체 지향 프로그래밍 언어로서 Java 나 C++와 비슷한 면들을 많이 가지고 있다. C#을 이야기 하면 자연스럽게 .NET Framework을 함께 이야기 해야할 정도로 C#은 .NET Framework을 이용하여 프로그래밍하는 대표적인 언어이다. C#은 윈도우 프로그래밍, 웹 프로그래밍, 게임 및 모바일 프로그래밍 등 모든 영역에서 사용되는 범용 프로그래밍 언어이다
C# 프로그램 소스코드
C# 프로그램은 .cs 라는 확장자를 사용한다.
예) test.cs, test.aspx.cs, test.xaml.cs
C++와 다르게 C#은 *.h과 같은 별도의 헤더 파일이 없다.
C# 프로그램으로부터 실행 파일을 만들기 위해서는 (1) Visual Studio를 사용하는 경우 C# 프로젝트를 빌드하여 실행파일을 생성하며 (2) Visual Studio 없이 .NET Framework에서 제공되는 C# 컴파일러인 csc.exe를 이용하여 실행파일을 생성할 수 있다.
아주 간단한 C# 프로그램
다음은 아주 간단한 C# 프로그램 예제로서 Hello World 라는 텍스트를 콘솔 화면에 출력하는 프로그램이다.
예제
namespace Intro_Ex1 { class Program { static void Main(string[] args) { System.Console.WriteLine("Hello World..."); } } }
- 모든 C# 프로그램은 Main()이라는 시작 함수(메서드)를 가져야 한다. Main() 메소드는 임의의 클래스 안에서 존재하며, 프로그램 상에 단 1개만 있어야 한다.
- Main()는 static으로 선언되며, 메소드 인자는 string[] 문자열이다.
- System.Console은 .NET Framework 클래스이며, WriteLine은 화면에 데이타를 Console클래스의 출력하는 메서드이다.
C# 코멘트
C# 에서 코멘트를 사용하기 위해서는 (1) 한 라인에 대해 코멘트할 경우 // 을 사용하고 (2) 복수 라인에 대해 코멘트를 할 경우는 /* */ 를 사용한다.
예제
namespace Intro_Ex2 { class Program { static void Main(string[] args) { // 코멘트: 한 라인 코멘트는 두개의 슬래시 사용함 int a = 1; int b = 1; // 코멘트: 하나의 문장 뒤에 코멘트를 달 수 있음 /* 복수 라인에 대한 코멘트 int c; int d; */ } } }
'C샵' 카테고리의 다른 글
[C#] C# 데이터 타입 배워보기 (종류) (1) | 2020.04.16 |
---|---|
[C#] C#의 버전 알아보자 (0) | 2020.04.16 |
[C#] TXT 불러오기 소스 (0) | 2020.04.13 |
[C#] 네이버 카페 인증소스 (0) | 2020.04.13 |
<stdio.h>#include <Windows.h>#include <conio.h> //로컬디스크 D 에 ID 라는 파일을 생성해주세요 (대문자)#include <string.h> //프로젝트 - 속성 - c/c++ - 전처리기 ;_CRT_SECURE_NO_WARNINGS 를 추가#include <stdlib.h>#include <ctype.h>
void menu(int*); //로그인프로그램메뉴void login(char*, char*); //로그인void singup(char*, char*); //회원가입
int main(void){ int cho; //선택화면에서 선택값을 저장하는곳 char loginid[15]; //로그인에서 아이디를 저장하는곳 char loginpassword[15]; //로그인에서 비밀번호를 저장하는곳 char singupid[15]; //회원가입에서 아이디를 저장하는곳 char singuppassword[15]; //회원가입에서 비밀번호를 저장하는곳
menu(&cho);
switch (cho) { case 1: login(loginid, loginpassword); break; case 2: singup(singupid, singuppassword); break; default: printf("잘못입력하셨습니다."); main(); break; }}
void menu(int *cho) //메인화면{ printf_s("제작자 : staff2303@gmail.com \n"); printf_s("==============================================. \n"); printf_s("1.login \n"); printf_s("2.sing up \n"); printf_s("주의! 문자입력시오류! (수정중)\n"); scanf_s("%d", cho); system("cls");
}
void login(char *loginid, char *loginpassword) //로그인화면
{ FILE *rfp; char file[50]; char loginpassword2[15]; int amo; printf_s("login. \n"); printf_s("==========================================. \n"); printf_s(" I D : "); scanf_s("%s", loginid, 15); sprintf_s(file, "D:\\ID\\%s.txt", loginid); // 아이디와 똑같은 파일을 오픈 fopen_s(&rfp, file, "r"); // 파일이없어서열수없을경우 rfp에는 NULL이들어온다.
if (rfp == NULL) { system("cls"); printf_s("아이디가없습니다. \n"); printf_s("==========================================. \n"); system("Pause"); system("cls"); main(); }
printf_s("PASSWORD : "); scanf_s("%s", loginpassword, 15); printf("암 호 키 : "); scanf_s("%d", &amo); FILE* fp = fopen(file, "r"); //파일오픈 fgets(loginpassword2, 15, fp); //메모장에서 password를 password2로 저장 fclose(fp); for (int i = 0; loginpassword2[i] != '\0'; i++) //password 복호화 { if (isalpha(loginpassword[i])) { if (loginpassword2[i] - amo < 'a') { int plus = 'a' + amo - 1 - loginpassword2[i]; loginpassword2[i] = 'z'; loginpassword2[i] -= plus; } else loginpassword2[i] -= amo; } else { if (loginpassword2[i] - amo < '0') { int plus = '0' + amo - 1 - loginpassword2[i]; loginpassword2[i] = '9'; loginpassword2[i] -= plus; } else loginpassword2[i] -= amo; } }
if (strcmp(loginpassword, loginpassword2) == 0) // 입력한 password와 복호화된 password를 비교 { printf_s("\n로그인완료\n"); system("Pause"); system("cls"); exit(1); } else { system("cls"); printf_s("비밀번호 혹은 암호키가 틀립니다.\n"); system("Pause"); system("cls"); main(); }}
void singup(char *singupid, char *singuppassword)
{ FILE *fp; char file[50]; int amo; printf_s("sing up. \n"); printf_s("==========================================. \n"); printf_s("아이디를입력하시오(15자이내). \n"); scanf_s("%s", singupid, 15); sprintf(file, "D:\\ID\\%s.txt", singupid); // 폴더의 이름과 경로를 file 에 저장 (아이디 = 폴더의 이름) fp = fopen(file, "w+"); fclose(fp); Sleep(1000); system("cls");
printf_s("sing up. \n"); printf_s("==========================================. \n"); printf_s("비밀번호를입력하세요(영문, 숫자 15자이내).\n"); scanf_s("%s", singuppassword, 15); printf_s("암호키를 입력하세요(1~5) \n"); scanf_s("%d", &amo);
for (int i = 0; singuppassword[i] != '\0'; i++) //password 암호화 { if (isalpha(singuppassword[i])) { if (singuppassword[i] + amo > 'z')
{ int less = singuppassword[i] - 'z';
singuppassword[i] = 'a' + amo - 1; singuppassword[i] += less; } else singuppassword[i] += amo; } else { if (singuppassword[i] + amo > '9')
{ int less = singuppassword[i] - '9';
singuppassword[i] = '0' + amo - 1; singuppassword[i] += less; } else singuppassword[i] += amo; } } fp = fopen(file, "w+"); fprintf(fp, "%s", singuppassword); fclose(fp); Sleep(1000); system("cls"); //완료창 printf_s("회원가입완료. \n"); printf_s("==========================================. \n"); Sleep(1000); system("cls"); main();}
'C++' 카테고리의 다른 글
[C++] 네이버 RSA 로그인 소스 (0) | 2020.04.14 |
---|
먼저 폼에 커맨드버튼 1개, 텍스트 박스 1개를 준비한후,
프로젝트▶구성 요소로 들어간다음 잘 찾아보시면
Microsoft Internet controls 가 있습니다. 그것을 체크하신후,
확인을 누르면 도구 탭에 지구(?)가 등록되는 대요,
그걸 클릭하고 폼에 추가 해 줍니다.
커맨드버튼에 무엇을 입력하냐면
Private sub CommandButton1_click()
WebBrowser1.Navigate (Text1)
End sub 가 되겠죠.
그리고 Text1에 주소를 입력하고 커맨드 버튼을 누르면 웹 브라우저에 인터넷이 표시됩니다.
만약 뒤로, 앞으로, 홈으로, 새로고침 을 추가 하고 싶다면,
뒤로는
Private sub CommandButton1_click()
WebBrowser1.GoBack
End sub 이고
앞으로는
Private sub CommandButton1_click()
WebBrowser1.GoForward
End sub 이고
홈으로는
Private sub CommandButton1_click()
WebBrowser1.GoHome
End sub 이고
새로고침은
Private sub CommandButton1_click()
WebBrowser1.Refresh 가 되겠죠.
만약 웹브라우저에서 새로운 창을 추가하면,
Internet Explorer 로 새 창이 나옵니다.
만약 만든 브라우저로 새 창을 열고 싶을때는,
이 코드를 폼에 추가 하면 됩니다.
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
Dim frm As Form1
Set frm = New Form1
Set ppDisp = frm.WebBrowser1.Object
frm.Show
End Sud
'VB' 카테고리의 다른 글
[VB] 랜덤숫자을 출력해보자 (0) | 2020.04.15 |
---|---|
[VB] 다음 로그인 소스 (0) | 2020.04.15 |
[VB] 스마일파일 로그인 소스 (0) | 2020.04.15 |
[VB] 한글판 패치하기 (0) | 2020.04.15 |
Function DaumLogin(id As String, Pw As String) As Boolean
winhttp.Open "POST", "https://logins.daum.net/accounts/login.do?slogin=2", True
winhttp.SetRequestHeader "Host", "logins.daum.net"
winhttp.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0"
winhttp.SetRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
winhttp.SetRequestHeader "Referer", "https://logins.daum.net/accounts/loginform.do"
winhttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
winhttp.Send "id=" & id & "&pw=" & Pw
winhttp.WaitForResponse
If InStr(winhttp.ResponseText, "Daum 로그인 오류") = 0 Then
Login = True
Else
Login = False
End If
End Function
'VB' 카테고리의 다른 글
[VB] 인터넷창 띄우기 (소스) (0) | 2020.04.15 |
---|---|
[VB] 랜덤숫자을 출력해보자 (0) | 2020.04.15 |
[VB] 스마일파일 로그인 소스 (0) | 2020.04.15 |
[VB] 한글판 패치하기 (0) | 2020.04.15 |
public class MyThread extends Thread {//쓰레드 정의 private int id = -1; public MyThread(int id){ this.id = id;//생성할때 받을 인자 } public void run(){ System.out.println( id + "Thread" ); try { Thread.sleep(1000); //1초쉬고 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println( "Thread OUT" );//쓰레드 끝 } public static void main(String[] args) { for(int i = 0 ; i < 10 ; i++ ){//10번 반복 MyThread t = new MyThread(i);//쓰레드 생성 t.start(); //쓰레드 시작 } System.out.println("End"); } }
'JAVA' 카테고리의 다른 글
[JAVA] 자바 다운받기 (0) | 2020.04.11 |
---|
JOIN 의 개념
서로 다른 테이블을 공통 컬럼을 기준으로 합치는(결합하는) 테이블 단위 연산
조인의 결과 테이블은 이전 테이블의 컬럼 수의 합과 같다.
SELECT * FROM 테이블 1 JOIN 테이블 2 ON 테이블1.컬럼명 = 테이블2.컬럼명 ...
조인 시 서로 다른 테이블에 같은 컬럼명이 존재하면 구분을 위해 테이블명.컬럼명으로 사용해서 표시
예제
- city 테이블과 country 테이블을 조인하시오. (city.CountryCode = country.Code)
- 국가코드와 해당 나라의 GNP 를 표시하시오
결과 확인
- SELECT * FROM city JOIN country ON city.CountryCode = country.Code;
- SELECT city.CountryCode, country.GNP FROM city join country ON
city.CountryCode = country.Code;
JOIN 의 종류
조인 시 NULL 값을 허용하는 내부 조인(불가)과 외부조인(허용)으로 구분
INNER JOIN / LEFT JOIN / RIGHT JOIN / FULL JOIN
INNER JOIN
조인 시 NULL 값을 허용하지 않음
(NULL 값을 가진 레코드는 조인결과에 빠짐)
LEFT JOIN
조인 시 JOIN 의 왼쪽 테이블의 NULL 값을 포함해서 표시
RIGHT JOIN
조인 시 JOIN 의 오른쪽 테이블의 NULL 값을 포함해서 표시
FULL JOIN
MySQL 은 지원하지 않음
예제
- city 테이블에 국가코드가 없는 도시가 있는지 확인
- country 테이블에는 존재하지만 도시가 하나도 없는 나라가 있는지 확인
- 이 때 INNER JOIN / LEFT JOIN / RIGHT JOIN 의 차이점으로 확인
결과 확인
- SELECT COUNT(*) FROM city WHERE CountryCode is NULL;
- SELECT COUNT(*) FROM city LEFT JOIN country ON city.CountryCode = country.Code;
(country 값이 존재하지 않는 city 는 포함)
- SELECT COUNT(*) FROM city RIGHT JOIN country ON city.CountryCode = country.Code;
(country 중 도시 수가 하나도 없는 country 는 포함)
별명(ALIAS)
SQL 쿼리 결과 생성 시 컬럼명에 대한 별명을 사용해 표시하는 기능
SELECT 테이블명1.컬럼명1 AS 별명1, 테이블명2.컬럼명2 AS 별명2 FROM ....
조인할 때 많이 사용된다
예제
- city 테이블과 country 테이블을 조인해서 국가코드 'KOR' 인 나라의 축약표시명(Abbr) 과 정식명(Full Name)을 표시하시오
결과 확인
- SELECT city.CoutryCode AS Abbr, country.Name AS FullName FROM city JOIN country on city.CountryCode = country.Code WHERE city.CountryCode = 'KOR';
뷰 (VIEW)
SQL 쿼리의 결과값을 임시 테이블로 저장해서 사용할 수 있음
사용 용도가 끝나면 명시적으로 삭제해야 함 (DROP VIEW ....)
CREATE VIEW 뷰명 AS SELECT ...
예제
CREATE VIEW sampleView AS SELECT city.CountryCode AS Abbr, country.Name AS FullName FROM city JOIN country ON city.CountryCode = country.Code WHERE city.CountryCode = 'KOR';
SELECT * FROM sampleView;
'SQL' 카테고리의 다른 글
[SQL] 일부결과 및 집합함수 (0) | 2020.04.14 |
---|---|
[SQL] 연산 논리 (기초 배우기 ) (0) | 2020.04.14 |
[SQL] SQL 이란 무엇일까? (기초배우기 정의,종류) (0) | 2020.04.14 |
[SQL] 설치하기 / 다운로드 (0) | 2020.04.11 |