「C로 간식 가게 영수증 만들기」는 C 기초를 알고 유용한 터미널 프로그램을 만들고 싶은 학습자를 위한 실습 프로젝트입니다. 간식 가게에서 승인된 구매를 모두 보존하고 단가, 각 행의 소계, 총액을 정수 센트로 계산하는 완전한 텍스트 영수증을 만듭니다.
가이드 실습 두 개는 동작하는 단일 상품 예제에서 개별 구매 기록으로 확장한 뒤, 길이가 제한된 입력의 검증과 용량 검사로 이어집니다. 독립 챌린지에서는 같은 이름의 서로 다른 상품, 무료 상품, 반복 구매가 있는 Evening Bites 카탈로그에 같은 방법을 적용합니다. 각 단원에는 자체 파일이 제공되며 이전 실습의 파일이나 실행 중인 프로그램은 필요하지 않습니다.
학습 내용
- 작은 C 구조체와 배열로 상품의 식별 정보와 개별 구매 순서를 유지합니다.
- 가격, 소계, 총액을 정수 센트로 계산하고 소수점 아래 두 자리로 표시합니다.
- strtol로 십진수 텍스트 전체를 검증하고 변환 오버플로, 뒤에 붙은 잘못된 문자, 업무상 허용 범위를 처리합니다.
- 장바구니를 바꾸기 전에 수량과 용량을 확인하고 거부 후에도 승인된 행을 보존합니다.
- 완전한 영수증을 저장하고 읽으며 구매 마무리와 입력 종료에 따른 취소를 구별합니다.
추천 대상
이 과정은 C 입문 지식을 작은 애플리케이션으로 조합할 준비가 된 학습자에게 적합합니다. C Programming for Beginners에서 필요한 기초를 익힐 수 있습니다.
선수 지식: C 변수, 조건문, 반복문, 배열, 함수와 기본 터미널 명령 및 디렉터리 이동을 알아야 합니다. 구조체, 종료 문자가 있는 문자열, 필요한 주소와 출력 매개변수, strtol은 사용하기 전에 설명합니다. 포인터를 미리 능숙하게 다룰 필요는 없습니다.
학습 환경: LabEx는 브라우저에서 C 컴파일러, 준비된 소스 파일, Workspace 터미널을 제공합니다. 로컬 설치는 필요하지 않습니다. 프로그램 프롬프트, 소스 코드, 영수증 출력은 영어로 유지됩니다.
자주 묻는 질문
무엇을 제출하나요?
컴파일 가능한 C 소스, 동작하는 실행 파일, 실제 영수증 파일을 보존합니다. 영수증은 반복 구매를 포함해 승인된 각 구매를 순서대로 기록하고 상품 ID, 이름, 수량, 단가, 소계를 표시한 뒤 전체 총액을 보여 줍니다.
동적 메모리나 파일 파싱 경험이 필요한가요?
아니요. 고정 크기 기록과 제한된 텍스트 입력을 사용합니다. 카탈로그 정의와 입력 드라이버가 제공됩니다. 기록 처리, 검증, 영수증 출력을 구현하며 범용 CSV 파싱과 동적 메모리 할당은 과정 범위에 포함되지 않습니다.
실제 결제 시스템인가요?
아니요. 가상의 간식 가게를 사용하는 연습으로, 구매 행은 최대 여섯 개이고 수량은 1부터 20까지입니다. 실제 결제나 세금을 처리하지 않습니다. done 명령은 구매를 마무리하며 파일 끝은 완성된 영수증을 출력하거나 미완성 거래를 저장하지 않고 거래를 취소합니다.

