PersonListViewXMLSerializer (계층적인 XML 구성예)
XMLElement & XMLAttribute
XML Element
http://dis.dankook.ac.kr/lectures/hci11/entry/XMLElement
XML Attribute
http://dis.dankook.ac.kr/lectures/hci11/entry/XMLAttribute
XML Element & Attribute
http://dis.dankook.ac.kr/lectures/hci11/entry/XMLElement-Attribute
XML Serialization Tutorial
XML Serialization Tutorial
http://www.diranieh.com/NETSerialization/XMLSerialization.htm
Serialization
Person Serialization (Using BinaryFormatter or SoapFormatter)
http://dis.dankook.ac.kr/lectures/hci09/entry/Simple-Serialization
Person XML Serialization (Using XML Serializer or Soap XML Serializer)
http://dis.dankook.ac.kr/lectures/hci09/entry/XML-Serialization
Person Using ISerialable Interface
http://dis.dankook.ac.kr/lectures/hci09/entry/ISerialable
PersonList Serialization (Using BinaryFormatter or SoapFormatter)
http://dis.dankook.ac.kr/lectures/hci09/entry/PersonList-Serialization
lecture12
Draw Shape To Bitmap in Memory
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
// Create a Bitmap image in memory and set its CompositingMode
Bitmap bmp = new Bitmap(this.Size.Width, this.Size.Height,
PixelFormat.Format32bppArgb);
Graphics gBmp = Graphics.FromImage(bmp);
gBmp.CompositingMode = CompositingMode.SourceCopy;
// Pen으로 대각선과 사각형 그리기 (to bitmap in memory)
Pen p = new Pen(Color.Black, 3);
Rectangle r = new Rectangle(10, 10, this.Size.Width/2, this.Size.Height/2);
gBmp.DrawLine(p, 10, 10, this.Size.Width / 2 + 10, this.Size.Height / 2 + 10);
gBmp.DrawLine(p, this.Size.Width / 2 + 10, 10, 10, this.Size.Height / 2 + 10);
gBmp.DrawRectangle(p, r);
// Brush로 파란사각형 그리기 (to bitmap in memory)
Brush b = new SolidBrush(Color.Blue);
Rectangle r2 = new Rectangle(this.Size.Width / 2 + 10, this.Size.Height / 2 + 10,
this.Size.Width / 2 – 10, this.Size.Height / 2 – 10);
gBmp.FillRectangle(b, r2);
// Brush로 빨간삼각형 그리기 (to bitmap in memory)
Brush b2 = new SolidBrush(Color.Red);
Point[] pt = new Point[3];
pt[0].X = 400; pt[0].Y = 10;
pt[1].X = 300; pt[1].Y = 210;
pt[2].X = 500; pt[2].Y = 210;
gBmp.FillPolygon(b2, pt);
// HatchBrush로 타원 그리기 (to bitmap in memory)
HatchBrush hb = new HatchBrush(HatchStyle.DiagonalCross,
Color.Yellow, Color.Brown);
gBmp.FillEllipse(hb, 10, 220, 200, 100);
// DrawArc 메소드 사용하여 호 그리기 (to bitmap in memory)
Pen p2 = new Pen(Color.Green, 3);
Rectangle r3 = new Rectangle(220, 220, 200, 100);
gBmp.DrawArc(p2, r3, 0, 180);
// draw the bitmap on our window
g.DrawImage(bmp, 0, 0, bmp.Width, bmp.Height);
bmp.Dispose();
gBmp.Dispose();
}
GDI+
GDI+ A Higher Level API
http://www.csharphelp.com/archives3/files/archive593/GDI.pdf
Pen
http://dis.dankook.ac.kr/lectures/hci09/entry/Pen
Brush
http://dis.dankook.ac.kr/lectures/hci09/entry/Brush
Image
http://dis.dankook.ac.kr/lectures/hci09/entry/DrawImage
ImageAttribute
http://dis.dankook.ac.kr/lectures/hci09/entry/ImageAttributes
ImageTransform
http://dis.dankook.ac.kr/lectures/hci09/entry/DrawImageTransform
DoubleBuffering
http://dis.dankook.ac.kr/lectures/hci09/entry/DoubleBuffering
Graphic Path
http://dis.dankook.ac.kr/lectures/hci09/entry/PathScribble
Draw Freedraw line & rubber band line
http://dis.dankook.ac.kr/lectures/hci10/entry/Rubber-band-line-drawing
Draw shapes
http://dis.dankook.ac.kr/lectures/hci10/entry/Draw-Shape
DrawImageObjects
http://dis.dankook.ac.kr/lectures/hci10/entry/DrawImageObjects
lecture11
Valid double number in C#
텍스트 박스에 “12.5”, “.3”, “12” 등과 같은 양수의 double 숫자만 입력받을 수 있도록 하려면
(그외에 “abcd”같은 문자나 “12.3.4” 같은 이상한 숫자는 입력받을 수 없도록하기위해)
다음과 같은 Regex 구문을 사용한다.
{
if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), @”^[0-9]*(?:\.[0-9]*)?$”))
e.Handled = true;
}
문자의 입력을 막고, 숫자와 .과 백스페이스키를 입력받을 수 있게 하는 코드
{
if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), @”^[0-9]*(?:\.[0-9]*)?$”))
e.Handled = true;
}
Final Extra 10%
기말고사
담당교수: 단국대학교 멀티미디어공학전공 박경신
* 전체폴더를 HCI12-FinalExtra-<학번>-<이름>으로 바꾸고, zip을 한 후 e-learning에 제출한다. (11월30일까지)
5520485258.doc
1. 건조지수(Aridity Index)를 구하고, 기후의 상태를 알려주는 프로그램을 작성한다. (기말고사 Extra 10%)
(1) 사용자에게 연강수량(Precipitation)과 연평균기온(Temperature)를 입력 받는다. 연강수량의 단위는 mm이고, 연평균기온의 단위는 oC이다.
(2) 건조지수를 다음 공식으로 계산하고 결과를 화면에 출력한다.
건조지수 AI = Precipitation/ (Temperature + 10)
(3) 다음 기준에 따라 기후의 상태를 판단해서 화면에 출력한다.
AI >= 60 => Perhumid
30 <= AI < 60 => Humid
20 <= AI < 30 => SubHumid
15 <= AI < 20 => SemiArid
5 <= AI < 15 => Arid
AI < 5 => ExtremelyArid