lecture9
Month: November 2016
HW3
HW3
단국대학교 멀티미디어공학과 HCI프로그래밍2 (2016년 가을학기) 실습
과목코드 : 300890
강사 : 박경신
——————————————————————
날짜: 2016년 10월 31일
– 실습번호 : HW3 (Due by 11/21)
– 실습제목 : collections, FileIO, GUI
– 실습요약 : 입체 도형의 겉넓이(surface area)와 부피(volume) 구하기 GUI 작성
– 준비자료 : HW1 http://www.mathsisfun.com/area-calculation-tool.html
http://math.about.com/od/formulas/ss/surfaceareavol.htm
11/21까지 online.dankook.ac.kr 이러닝으로 실행파일(bin\*.exe)과 소스코드(*.cs)와 보고서(*.doc/*.hwp)를 전부 “학번_이름_HW3.zip”으로 묶어서 제출한다. 또한, 비주얼 스튜디오에서 만든 프로젝트 전체 파일(*.sln, *.csproj)을 폴더에 같이 넣어준다. 보고서는 출력해서 수업시간에 제출한다.
– 실습문제
1. Geometry 추상클래스를 정의한다.
2. Geometry 추상클래스를 상속받은 Sphere, Cone, Cylinder, … 는 겉넓이(Surface Area), 부피(Volume)를 계산한다.
3. GeometryForm 를 구현하고 입체도형의 겉넓이와 부피 계산을 구현한다.
-ComboBox, Label, TextBox, Button, Panel을 사용하여 GUI를 정의한다.
-Geometry 객체를 생성해서 텍스트필드에서 입력받은 값으로 SurfaceArea와 Volume을 계산하여 화면에 출력한다.
4. MainForm은 List<Geometry>를 관리한다.
-Listview을 사용하여 Geometry 리스트를 출력한다.
-File I/O을 사용하여 Geometry 리스트를 관리한다.
5. 사용자의 잘못된 입력에 따른 처리를 반드시 포함해야 하며, 그 외에 본인이 더 테스트해보고 싶은 method나 routine을 추가하라. 실행 화면과 코드를 첨부하시오.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GeometryForm
{
public abstract class Geometry
{
public abstract GeometryType Type { get; }
public abstract double SurfaceArea { get; }
public abstract double Volume { get; }
public void Print()
{
System.Diagnostics.Trace.WriteLine
(ToString() + ” S.A.=” + SurfaceArea + ” Vol=” + Volume);
}
// needed for ListView
#region ListViewItem
public ListViewItem ToListViewItem()
{
ListViewItem item = new ListViewItem(this.ToString());
item.SubItems.Add(new ListViewItem.ListViewSubItem(item, string.Format(“{0:0.###}”, this.SurfaceArea)));
item.SubItems.Add(new ListViewItem.ListViewSubItem(item, string.Format(“{0:0.###}”, this.Volume)));
return item;
}
#endregion
}
}
lecture8
lecture8
TRACE macro
TRACE macro
-윈도우 응용프로그램 개발시 Visual Studio IDE의 Output Window (출력창)에 Debug하는 내용을 출력하고자 할 때System.Diagnostics.Trace.WriteLine(…..)을 사용
-기존의 C# Console 응용프로그램에서 System.Console.WriteLine(….)와 동일
-기존의 MFC 윈도우 프로그래밍에서 TRACE 매크로와 비슷 (C의 printf와 동일한 형식 지원)
-기존의 WIN32 윈도우 프로그래밍에서 OutputDebugString 함수와 같은 기능 (C의 printf와 동일한 형식 지원)
Windows Forms Application
.NET2015
- Visual C# Windows Forms Application 프로젝트 새로 만들기
- Dialog-based App 프로젝트 새로 만들기
- 메뉴에서 File->New->Project->Visual C# 템플릿->Windows Forms Application를 선택한 후 “프로젝트 이름(예를 들어, WindowFormHello)”을 적고 확인버튼을 누르면 빈폼 프로젝트가 생성된다.
컨트롤 코드 추가
- Toolbox(도구상자) 에서 컨트롤을 선택(예를 들어, Label 또는 Button)하여 Dialog기반의 Form1 안에 추가하여 편집한다.
컨트롤에 이벤트 추가하기
-컨트롤 (예를들어, 버튼을 더블클릭하면 또는 이벤트목록중 Click이벤트에 더블클릭하면)에 클릭 이벤트에 대한 이벤트핸들러에 내용(예를 들어, 레이블의 Text를 “Button Clicked”)을 작성한다.
private void button1_Click(object sender, EventArgs e)
{
// button1을 클릭하면 label1 텍스트 변경
label1.text = “Button Clicked”;
// button1을 클릭하면 Form2 팝업
Form2 f = new Form2();
f.ShowDialog();
}
폼 코드 추가
- Project 에서 폼을 추가(Add New Item)하여 Form2 를 추가한다.
- Toolbox(도구상자) 에서 컨트롤을 선택(예를 들어, Label 또는 Textbox)하여 Dialog기반의 Form2 안에 추가하여 편집한다.
- Form2 안에 코드를 추가한다.
빌드(F7) 후 실행(F5)하기
Getting Started with Windows Forms
http://msdn.microsoft.com/en-us/library/ms229601(VS.80).aspx
- Creating a New Windows Form
- Creating Event Handlers in Windows Forms
- Adjusting the Size and Scale of Windows Forms
- Changing the Appearance of Windows Forms
- Windows Forms Controls
- User Input in Windows Forms
- Dialog Boxes in Windows Forms
- Windows Forms Data Binding
- Windows Forms Security
- ClickOnce Deployment for Windows Forms
- How to: Access Keyed Collections in Windows Forms