Giter VIP home page Giter VIP logo

basic-calculator's Introduction

소프트웨어공학 Team Project

images image image


프로젝트 내용

  • 간단한 CUI(Console User Interface)기반 계산기
  • 지원하는 기능은 더하기, 빼기, 곱하기이며, 나누기 기능은 지원하지 않음
  • 정수만 입력되며, 한 연산에서는 한 종류의 연산자만 들어옴
  • ‘=’을 입력받으면 결과를 출력함
  • 연산 기능과 무관한 이스터에그가 존재함


개발 기간

  • project1: 2023/11/06 ~ 2023/11/17


개발자

코드 역할 분담

  • 201918757 강성택 : easteregg - EasterEgg.py
  • 202146712 박용수 : calculator - calculator.py
  • 201918777 박종민 : calculator_controller - calculatorcontroller.py
  • 201917604 이관호 : view - view.py
  • 201912393 이미르 : input_check - inputcheck.py
  • 201912430 조민서 : basic_code - main.py
  • 201912431 조승호 : validation - validator.py


Work Flow

WorkflowDiagram

basic-calculator's People

Contributors

tarosin avatar lalala5772 avatar jongmiiin avatar minseojo avatar lee-ghwan-ho avatar kimewie avatar victoriapasta avatar

Stargazers

 avatar  avatar

Watchers

 avatar

basic-calculator's Issues

Factorial 기능 개발

코드 파트 - 2명 [조민서, 강성택]

  • 개교기념일 이스터에그 기능 추가
  • 팩토리얼 기능 추가
  • 팩토리얼 검증 기능 추가
  • 기본 검증 기능 부분 리팩토링
  • 기본 검증(1 + 3 = ), 팩토리얼 검증(3 !)에 대한 예외를 DefaultException, FactorialException 으로 구분

feature branch merge

refactoring은 develop branch에서 진행할 예정.
그 전에 각자의 feature branch merge하기

[Develop] easterEgg merge

기존 Develop Branch에 feature/easterEgg branch를 merge 하였으니 다들 참고바랍니다.

[Feature] easterEgg 기능1완료

easter egg기능 개발 시작 - 2023.11.09

easter egg 기능 List

  1. 입력 값 받을 때 정해진 학번이라면 → 해당 학번에 따른 이름 출력 [complete]
  2. 출력 값이 정해진 학번이라면 → 해당 학번에 따른 이름 출력[in progress]
  3. Reset 기능 → 0을 입력 시, 계산기 초기화[in progress]

기능 3번은 전체적인 코드 정리가 끝난 후 추가 예정

Factorial 기능 개발을 위한 TestCode 및 3개의 method unittesting 완료

코드 파트 - 2명 [조민서, 강성택] ~12/7

  • 코드짜기

    • 코드 수정 (에러 출력 변경, 이스테에그 출력 변경)
    • 코드 추가 (이스터에그 - 개교기념일 추가)
    • TDD로 팩토리얼 메소드 개발 - TestCase 만들기 + unittest lib사용해서 테스트코드개발 + 팩토리얼 코드개발

    [팩토리얼 unittest] - factorialcalculate_test.py
    [선택한 3개의 method unittest]

    1. calculate_test.py -> calculator.py의 calculate 메소드 unittest
    2. factorialexpression_test.py ->calculator.py의 factorial_calculate 메소드 unittest
    3. defaultvalidate_test.py -> validator.py의 default_validate 메소드 unittest

[Feature] easterEgg 기능 완료

easter egg기능 개발 기간 - 2023.11.09 ~ 2023.11.10

easter egg 기능 List

1.입력 값 받을 때 정해진 학번이라면 → 해당 학번에 따른 이름 출력 [completed]
2.출력 값이 정해진 학번이라면 → 해당 학번에 따른 이름 출력[in progress -> removed]
3. Reset 기능 → 0을 입력 시, 계산기 초기화 -> 0을 입력 시 , 일정시간 지난 후 프로그램 종료[completed]

최종적으로 기능 1,3 총 2가지를 완료하였으며, 기존 basic코드의 수정 내역은 딱히 없습니다.
코드에 대한 주석처리를 해놓았으니 나중에 refactoring과정에서 easterEgg를 호출할 때 참고바랍니다.

[Feature] CalculatorInput

Calculatorinput class 기능

입력값 받고
정수일때, 정수입니다 출력
정해진 기호(+,-,*)일때, 기호입니다 출력
그 외일때, 그외입니다 출력

Updated about Calculation Class

저가 팀원들의 역할을 충분히 숙지 못해서 실수로 객체를 선언해버렸습니다. 객체 선언부분 다시 수정하고 업데이트 하였습니다.!

[Feature] Incalculate 기능 완료

Incalculate 기능 개발 기간 - 2023.11.09 ~ 2023.11.11

  1. 받아온 입력에서 =을 제거
  2. 숫자인 경우 current_number에 추가
  3. 연산자인경우 현재 숫자를 number에 넣어주고, current_number를 초기화해줍니다.
  4. stack이 비어있지않고 우선순위가 높거나 같으면 계산합니다 (계속 반복)
  5. get_precedence : 연산자 우선순위 표
  6. calculation class를 이용해서 계산

[Feature] 에러 검출 클래스 생성완료

2023.11.10

Error 검출 클래스 생성 완료

  • 숫자 없이 연산자만 입력될 때
  • 숫자 혹은 연산자가 연속으로 입력 될 때
  • 허용되지 않은 연산자가 입력될 때

[Feature] easterEgg 기능 수정 알림

easter egg기능 개발 시작 - 2023.11.09

easter egg 기능 List

1.입력 값 받을 때 정해진 학번이라면 → 해당 학번에 따른 이름 출력 [complete]
2.출력 값이 정해진 학번이라면 → 해당 학번에 따른 이름 출력[in progress -> removed]
3. Reset 기능 → 0을 입력 시, 계산기 초기화 -> 0을 입력 시 , 일정시간 지난 후 프로그램 종료[in progress]

요구사항 구체화를 한 결과 input이 입력되는 순간 동작하는 이스터에그만 작성하는 게 맞다 판단하여
기능2를 제거하였습니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.