수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

계산기 x^2,sin,cos,tan 결과값이 틀리게나와요.

가을c

2023.04.01

샘플코딩에서 이것저것 제가 수정하면서.....만든거구요.위에 문제중 못하고 있는게... 아래부분입니다. 아래분 리플보고..
매소드함수써써계산기 완료했습니다. (리플 감사합니다.)

================================================
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.Math;
class Calculator extends JFrame implements ActionListener{ // ActionListener 포함

public JTextField resultText;
public JButton buttonArray[];
public JPanel buttonGroup;
public JButton clearButton;
public JButton exitButton;

public double result=0; // 결과 값
public boolean clearText=true;
public int previousEventName=0; // 이전 연산자 이벤트 정보

public Calculator(String title){

clearButton = new JButton(Clear);
exitButton = new JButton(종료하기);

// 결과 표시
resultText = new JTextField(50);
setLayout(new BorderLayout());
resultText.setEditable(false);

// 버튼 구성
buttonGroup = new JPanel();
buttonArray = new JButton[20];
// 버튼 생성
for (int i = 0; i = 9; i++)
{

buttonArray [i]= new JButton(Integer.toString(i));
}
buttonArray[10] = new JButton(/);
buttonArray[11] = new JButton(*);
buttonArray[12] = new JButton(-);
buttonArray[13] = new JButton(+);
buttonArray[14] = new JButton(.);
buttonArray[15] = new JButton(x^2);
buttonArray[16] = new JButton(sin);
buttonArray[17] = new JButton(cos);
buttonArray[18] = new JButton(tan);
buttonArray[19] = new JButton(=);

buttonGroup.setLayout(new GridLayout(4,5));

for( int i = 7; i = 10; i++)
{
buttonGroup.add(buttonArray[i]);
}
buttonGroup.add(buttonArray[16]);

for( int i = 4; i = 6; i++)
{
buttonGroup.add(buttonArray[i]);
}

buttonGroup.add(buttonArray[11]);
buttonGroup.add(buttonArray[17]);

for( int i = 1; i = 3; i++)
{
buttonGroup.add(buttonArray[i]);
}
buttonGroup.add(buttonArray[12]);
buttonGroup.add(buttonArray[18]);

buttonGroup.add(buttonArray[0]);
for( int i = 15; i = 13; i--)
{
buttonGroup.add(buttonArray[i]);
}
buttonGroup.add(buttonArray[19]);
;

add(resultText, BorderLayout.NORTH);
add(buttonGroup, BorderLayout.CENTER);
add(clearButton, BorderLayout.EAST);
add(exitButton, BorderLayout.SOUTH);

// 메뉴 구성
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu fileMenu = new JMenu(File);
JMenu editMenu = new JMenu(Edit);
menuBar.add(fileMenu);
menuBar.add(editMenu);

// 풀다운 메뉴 추가
JMenuItem newMenuItem = fileMenu.add(New);
fileMenu.addSeparator();
JMenuItem openMenuItem = fileMenu.add(Open);
fileMenu.addSeparator();
JMenuItem exitMenuItem = fileMenu.add(Exit);JMenuItem cutMenuItem = editMenu.add(Cut);
editMenu.addSeparator();
JMenuItem clearMenuItem = editMenu.add(ClearM);

// 이벤트 등록
for ( int i = 0; i buttonArray.length; i++)
{
buttonArray[i].addActionListener(this);
}

clearButton.addActionListener(this);
exitButton.addActionListener(this);
clearMenuItem.addActionListener(this); // 메뉴 이벤트 등록
exitMenuItem.addActionListener(this);

setTitle(title);
setSize(700,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}public void actionPerformed(ActionEvent e)
{
String eventName=;
String command=e.getActionCommand();
int numberButton=0;

eventName=e.getActionCommand(); // getSource()

if(command.equals(종료하기) | command.equals(Exit)){
System.exit(0);
}

else if(eventName == Clear | eventName == ClearM){ // Clear 버튼 및 메뉴의 ClearM
resultText.setText();
}

else if(eventName == .){ // . 버튼 이벤트인 경우
resultText.setText(resultText.getText() + eventName);
}
else if(eventName == /){// / 버튼 이벤트인 경우
result = Double.valueOf(resultText.getText());
previousEventName=10; // 나누기
clearText=true;
}
else if(eventName == *){// * 버튼 이벤트인 경우
result = Double.valueOf(resultText.getText());
previousEventName=20; // 곱하기
clearText=true;
}
else if(eventName == +){
result = Double.valueOf(resultText.getText());
previousEventName=30;
clearText=true;
}
else if(eventName == -){
result = Double.valueOf(resultText.getText());
previousEventName=40;
&;clearText=true;
}else if(eventName == x^2){
double x = Double.parseDouble(resultText.getText());
result = x*x;
clearText=true;
resultText.setText(Double.toString(result));
}
else if(eventName == sin){
double x = Double.parseDouble(resultText.getText());
result = Math.sin(x);
clearText=true;
resultText.setText(Double.toString(result));
}
else if(eventName == cos){
double x = Double.parseDouble(resultText.getText());
result = Math.cos(x);
clearText=true;
resultText.setText(Double.toString(result));
}
else if(eventName == tan){
double x = Double.parseDouble(resultText.getText());
result = Math.tan(x);
clearText=true;
resultText.setText(Double.toString(result));
}else if(eventName == =){ // = 버튼 이벤트인 경우
switch(previousEventName){
case 10: // 나누기
result /= Double.valueOf(resultText.getText());
clearText=true;
break;
case 20:// 곱하기
result *= Double.valueOf(resultText.getText());
clearText=true;
break;
case 30:
result += Double.valueOf(resultText.getText());
clearText=true;
break;
case 40:
result -= Double.valueOf(resultText.getText());
clearText=true;
break;
}

resultText.setText(Double.toString(result));}
else{ // 숫자 버튼 이벤트
numberButton=Integer.parseInt(eventName);
switch(numberButton){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
if(clearText){ // 연산자 버튼 입력 했을 경우 화면 삭제
resultText.setText();
clearText=false;
}

resultText.setText(resultText.getText() + numberButton);
break;

}

}

}}
public class JavaCalcu {
public static void main(String[] args){
new Calculator(계산기);

}
}
===========================================================================

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2695730 갑자기 기억이 안나는데 accesskey 속성.. 빛나라 2025-05-23
2695702 [질문] Java 버전 차이에 의한 오류?!! (2) 검사 2025-05-23
2695672 자바 임베디드 쪽으로 배우고 싶은데요..질문이요.. (1) 뽀그리 2025-05-22
2695647 헉! 이클립스(v3.1)에서 발생되는 널포인트 익셉션? ;;; (3) 아빠몬 2025-05-22
2695586 IFRAME 캐싱 질문 봄나비 2025-05-22
2695498 [질문]실행가능한 jar파일.. 정말 이해가 안가네요... ㅡㅜ;; 터1프한렩 2025-05-21
2695468 자바랑 이클립스에서요.. 스킬 2025-05-21
2695375 Mysql 연동하는 자바 질문있습니다. 아리솔 2025-05-20
2695319 파워포인트 파일을 저장할 수 있을까요? 시윤 2025-05-19
2695289 [질문]Tween 값의 정도를 알고 싶습니다. 타마 2025-05-19
2695238 c 와 c++의 시작 (10) ChocoHoilc 2025-05-18
2695215 탑메뉴의 repeat-x .배경이 두가지에요ㅠ ㅠ 널위해 2025-05-18
2695187 자바스크립트와 자바의 import에 관해서 질문드려요 (1) 무슬 2025-05-18
2695116 테마 문의 (해당 사이트와 같은 테마 혹은 플러그인) Sweet 2025-05-17
2695084 [질문] starDrag()와 같은 함수 만들기 민구 2025-05-17
2695055 폰트 질문드립니다. 할인사이트에 많이 쓰는 굵은 숫자폰트.. (2) 일본녀 2025-05-17
2695025 [개발툴]Jcreator 에 관해서... (5) 에녹 2025-05-16
2695006 BitmapData ..무비클립에 적용 할수 있을까요? (1) 날위해 2025-05-16
2694977 C언어 소스문제점좀요 ... (2) 들꿈 2025-05-16
2694950 자바스크립트로 화면에 내용을 뿌려줄때 접근성 (3) 꺆잉 2025-05-16
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com