-
C# 5. 배열/ Chart / Two Charts / 수학함수 그리기/ Timer- 디지털 시계)비주얼 프로그래밍 2024. 4. 10. 03:38더보기
# 배열
foreach (var value in a)
//var은 어떤 자료형에도 사용 가능, foreach 문장은 배열의 크기를 알지 않아도 사용 가능하다.
//Random 클래스 // 클래스의 객체 생성 클래스_이름 객체_이름 = new 클래스_이름(); //Random r = new Random(); // Random 클래스의 객체 r을 생성 //Button btn = new Button(); // Button 클래스의 객체 bnt 생성 //객체의 활용 - 클래스의 속성과 메소드를 사용 // r.Next(); // 0~20억 사이의 값 // r.Next(100); // 0~99 사이의 값 // r.Next(1,7); // 1~6 사이의 값 // r.NextDouble(); // 0에서 1.0 미만의 값 static void Main(string[] args) { int[] a = new int[10]; for(int i = 0; i < a.Length; i++) // (a.Length를 10이라고 써도 된다. 왜냐하면 a가 배열이고 a.Length는 배열의 길이니깐 10이라고 써도 무관하다.) { a[i] = int.Parse(Console.ReadLine()); } }
// 배열에 10개의 랜덤값 저장 Random r = new Random(); for (int i = 0; i < 10; i++) a[i] = r.Next(1000);
// 모든 원소 출력 //인덱스 사용 for(int i = 0; i<10; i++) Console.Write(a[i] + " "); Console.WriteLine(); //foreach 사용 foreach(var x in a) Console.Write(x + " "); Console.WriteLine();
// 원소의 합 출력 int sum = 0; for (int i = 0; i < 10; i++) sum += a[i]; Console.WriteLine("합 =" + sum); int sum2 = 0; foreach (var x in a) sum2 += x; Console.WriteLine("합 =" + sum2);
// 가장 큰 값 출력 int max = a[0]; for (int i = 1; i <10; i++) if(max < a[i]) max = a[i]; Console.WriteLine("최대값 =" + max);
더보기#chart
1. 폼 생성
2. 도구 상자 -> 데이터 -> 차트 선택
3. 차트 선택 후 폼 안에 삽입
4. 속성 레이아웃에서 Dock fill을 클릭하여 꽉찬 화면으로 설정
5. 코드 작성
private void Form1_Load(object sender, EventArgs e) { // 차트컨트롤을 사용하여 // 랜덤하게 1~100사이의 값을 그래프로 그려라 Random r = new Random(); for(int i = 0; i < 10; i++) { chart1.Series[0].Points.Add(r.Next(101)); } chart1.Series[0].LegendText = "비주얼\n프로그래밍"; chart1.Titles.Add("성적"); }
더보기#Two chsrts
1. 폼을 생성해줍니다.
2. 도구상자 -> Chart / 도구상자 -> 버튼 (( Text: 버튼1- 합쳐서 그리기 / 버튼2- 나누어 그리기 ))
* 폼의 Text : Using Chart Control로 변경해줍니다.
private void Form1_Load(object sender, EventArgs e) { chart1.Titles.Add("중간고사 성적"); //Series2 추가 chart1.Series.Add("Series2"); chart1.Series[0].LegendText = "수학"; chart1.Series[1].LegendText = "영어"; Random r = new Random(); for(int i =1; i<=10; i++) { chart1.Series[0].Points.AddXY(i, r.Next(101)); chart1.Series[1].Points.AddXY(i, r.Next(101)); } } // 나누어 그리기 클릭후 작성 코드 private void button2_Click(object sender, EventArgs e) { if (chart1.ChartAreas.Count == 1) { chart1.ChartAreas.Add("ChartArea2"); chart1.Series[1].ChartArea = "ChartArea2"; } } //합쳐서 그리기 클릭 후 작성 코드 private void button1_Click(object sender, EventArgs e) { if(chart1.ChartAreas.Count > 1) // 1보다 클때만 지워라 { } chart1.ChartAreas.RemoveAt(1); // :배열의 첫번째를 지운다 chart1.Series[1].ChartArea = "ChartArea1"; }
함수그리기
1. 전과 동일하게 차트 설정
2 우클릭 후 코드보기 설정
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); chart1.ChartAreas[0].BackColor = Color.Black; } //x축 chart1.ChartAreas[0].AxisX.Minimum = -20; chart1.ChartAreas[0].AxisX.Maximum = 20; chart1.ChartAreas[0].AxisX.Interval = 2; chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray; chart1.ChartAreas[0].AxisX.MajorGrid.LineDashStyle =ChartDashStyle.Dash; //y축 chart1.ChartAreas[0].AxisY.Minimum = -2; chart1.ChartAreas[0].AxisY.Maximum = 2; chart1.ChartAreas[0].AxisY.Interval = 0.5; chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray; chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash; //Series 설정 : sin(x)/ x chart1.Series[0].ChartType = SeriesChartType.Line; chart1.Series[0].Color = Color.LightGreen; chart1.Series[0].BorderWidth = 2; chart1.Series[0].LegendText = "sin(x)/x"; // Series 하나 추가 chart1.Series.Add("Cos"); //Series 설정 : cos(x)/x chart1.Series[1].ChartType = SeriesChartType.Line; chart1.Series[1].Color = Color.Orange; chart1.Series[1].BorderWidth = 2; chart1.Series[1].LegendText = "cos(x)/x"; //using System.Windows.Forms.DataVisualization.Charting; 입력하면 추가 입력을 안해도 됨 // Series 추가 if(chart1.Series.Count == 1) { chart1.Series.Add("Cos"); } chart1.Series[0].Points.Clear(); chart1.Series[1].Points.Clear(); for(double x = -20; x<=20; x += 0.1) { double y = Math.Sin(x) / x; chart1.Series[0].Points.AddXY(x, y); y = Math.Cos(x)/ x; chart1.Series["Cos"].Points.AddXY(x, y); // Series["Cos"] = Series[1] }
더보기# 디지털 시계
1. label2개와 timer를 폼 화면에 띄어줍니다.
2. label1의 name을 lblDate로 해주시고 label2의 name은 lblTime로 해줍니다.
private void Form1_Load(object sender, EventArgs e) { this.Text = "나의 디지털 시계"; //여기서 this는 form1 lblDate.Text = " "; lblTime.Text = " "; timer1.Enabled = true; // timer1.Start(); timer1.Interval = 1000; //단위: 밀리초 timer1.Tick += timer1_Tick; lblDate.Font = new Font("맑은 고딕", 16, FontStyle.Bold); lblDate.ForeColor = Color.DarkOrange; lblTime.Font = new Font("맑은 고딕", 32, FontStyle.Bold); lblTime.ForeColor = Color.DarkBlue; } private void timer1_Tick(object sender, EventArgs e) { //현재 시간을 가져와서 화면에 표시 (DateTime.Now) lblDate.Text = DateTime.Now.ToString("yyyy년 MM월 dd일 "); lblTime.Text = DateTime.Now.ToString("tt h:mm:ss"); lblDate.Location = new Point( ClientSize.Width / 2 - lblDate.Width / 2, ClientSize.Height / 2 - lblDate.Height / 2-30); //레이블 위치 조정 lblTime.Location = new Point( ClientSize.Width / 2 - lblTime.Width / 2, ClientSize.Height / 2 - lblTime.Height / 2 +30 );
'비주얼 프로그래밍' 카테고리의 다른 글
#7주차 아날로그 시계 마무리 (1) 2024.04.28 6주차 C# 아날로그 시계(1) (0) 2024.04.17 VP4주차 (0) 2024.04.02 비주얼 프로그래밍 3주차 <성적 계산기 만들기> (0) 2024.03.25 2주차 (0) 2024.03.20