티스토리 뷰

C# 계산기 프로그램 프로젝트 (윈도우폼 이용)
코드예정, 실행파일첨부

복학을 하고 이번 학기에

C#프로그래밍언어를 배워보고자

강의를 수강했는데,

교수님이 대뜸 계산기를 만들라고 하셔서
만들게 되었습니다.

C# 계산기

C#언어에 대한 것은 책 한권 내용을
숙지한 상태에서 과연 만들 수 있을 것 인가

무엇보다 이렇게 눈으로 결과물이 보이는

프로젝트를 해보는 것은 처음이라서

약간 걱정도 했었는데

생각보다 그렇게 어렵지 않아서 다행이었네요.

코드일부 작성기록

처음에는 조별프로젝트여서 같이 진행하다가

이런저런 사정 때문에

나중에는 제가 그냥 코드 싹업고서
혼자묵묵히 만들게 되었네요.

무엇보다도.. 재밌어서 혼자 막 만든듯?

C# 계산기 Calculator

계산기의 조건은 아래와 같습니다.

1. UI(버튼) 환경

2. 사칙연산 가능

3. 메모리 기능

4. 계산 히스토리

5. 계산공유 : 네트워크

UI 유저인터페이스

유저인터페이스입니다.

일단 기본적인 연산이 가능하고

계산내역은 옆에 히스토리 창에 표시됩니다.

계산은 윈도우계산기 기준으로해서

한 번에 긴 연산 입력시

순차적으로(입력순) 연산되게 했습니다.

(연산자 우선순위는 나중에
스택써서 한 번 만들어 보면 되겠네요.)

자료구조 링크드리스트사용

자료구조는 원래 안썼다가

큐썼다가 리스트 썼다가

결국 링크드 리스트를 사용했습니다.

이 프로그램의 계산 방식

계산순서방식

1+2*3/4-5 입력시 위와 같이 리스트에
입력됩니다.

그리고 계산을 '='버튼을 누르면
계산을 해주게 되죠.

순서는 이렇습니다.

num링크드의 0번, 1번 인덱스를 빼서

opper링크드리스트의 첫번째에 있는

연산자로 num[0] opper[0] num[1]
알맞게 계산을 해준뒤.

링크드 리스트의 첫번째[0]에 그 결과를
다시 넣어줍니다.

이와 같이 반복 하여 다음에도

[0] 연산자 [1] 해주고

num리스트의 첫번째에 넣어주고

계산하고를 반복해서 계산하게되면

순차적인 계산이 완료됩니다.

계산 히스토리

위와 같이 결과를보면,

순차적으로 문제가해결된 것을
알 수 있습니다.

메모리기능

계산하는 모습

그 다음은 메모리기능입니다.

888을입력하고 MS를 하면

메모리 세이브가 진행되며,

이후 M+를 누르면

메모리에있던 것과
현재입력되있는 수
(저기선 888)

가 더하기가 되어 메모리에 저장됩니다.

마찬가지로 뻴셈도 동일하고요.

MR은 메모리 리드로

저장해두었던 메모리값을 읽어서

계산에 사용할 수 있습니다.

(1개만 저장하게 해놨는데
나중에 알고보니 윈도우계산기는
메모리 여러개 지정이가능해서
멘붕했네여..ㅎ)

고급예외처리

예외처리된 모습

본 프로그램에서 일어날 수 있는

여러가지 예외들을 처리해두었습니다.

예를 들어서 연산자를 연속해서 누르거나

연산자를 포함해 입력해두고 ±를 누르거나

등등 비정상적인 접근으로인해
프로그램이 강제로 종료되는 것을 막았습니다.

계산기 실행파일(.exe) 및 후기

윈도우폼_계산기_공잡시.exe

정상실행확인하고 첨부합니다.

그런데 비주얼스튜디오가 설치안되어있거나,
필요 프로그램이없으면
정상실행이 불가할 수 있어요.

이렇게 간단하게나마 만들어보면서
미흡한 부분들도 많지만

그래도 완성이 되고 구동이되니
뿌듯했습니다.

그리고 확실히 눈에보이고
뭔가 만들어보니 재미있네요.

마지막 단계인 네트워크로
계산을 공유하는 기능까지 만들었다면,
참 좋았을 텐데 아직 공부가 덜 되어

네트워크공유부분은 공부가 되는데로
업데이트를 해봐야겠습니다.

코드는 방학기간에
설명하는 식으로 차근차근 올릴 생각입니다.

아직도 공부할게 너무나도 많네요.

C# 예외처리, 고급예외처리 (try, catch, finally, throw) 적용시키기

[C#] 쓰레드(Thread) 사용방법 + start() 메서드(method)

인터페이스(interface) 그리고 IComparable, IDisposable 무엇

댓글
  • 프로필사진 ㅇㅇ 저도 wpf 계산기를 만들고 있는데 2+3 같은 단순한 계산은 되는데 연속계산은 안되네요ㅠㅠ 2019.05.19 11:30
댓글쓰기 폼
네이버 이웃추가
«   2019/10   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
글 보관함