티스토리 뷰

 

 

학교 과제로 수행한 한솥 매장 계산대 프로젝트이다.

실제로 매장에서 사용할 수 있을법한 디자인과 기능의 프로그램을 만드는 것이 목표였다.

 

C#에 대해서 일체 모르는 상태부터 시작하였다.

때문에 배우면서 진행하는 한 학기 과제 프로젝트였다.

코드가 어수선하더라도 이해해주길 바란다.

 

 

 

로딩 화면이다.

progress bar는 실제로 데이터와 연동되어 작동하는 것이 아닌, 설정해놓은 값에 맞추어 작동하는 것이다.

 

 

메인화면이다. 좌측과 중앙부엔 테이블 정보, 우측 상단엔 현재 날짜와 시간, 그리고 우측 하단엔 통계와 종료 버튼을 넣었다.

 

테이블 정보에는 주문을 할 시, 주문한 메뉴 목록과 수량이 들어간다.

 

 

테이블을 선택하게 되면 주문창으로 들어오게 된다.

메뉴를 클릭하면 좌측 상단의 ListView에 각 메뉴의 정보가 들어간다.

각 카테고리별로 메뉴를 확인할 수 있으며, 우측 상단에서 총금액 확인이 가능하다.

 

 

주문창에서 주문하기를 선택하게 되면, 해당 주문창은 꺼지고 메인창으로 넘어온다.

메인창에서는 테이블별 정보를 확인할 수 있다.

 

 

다시 주문창으로 돌아와서, 우측 상단에 있는 결제하기를 선택하면 결제창이 뜬다.

주문한 메뉴 이름과 수량이 나오며, 현금과 카드를 선택할 수 있다.

 

 

결제가 완료되면 메인의 통계 창에서 통계로 확인이 가능하다.

Payment method, 즉 현금결제인지 카드결제인지 조회하는 부분은 구현을 하지 못하였다.

 

 

Main.cs에서 테이블을 채워주는 함수이다.

사용자 정의 컨트롤을 사용해서 TableUserControl을 사용해서 TablePanel을 채워주었다.

TableUserCtrl tb;

...

public void AddTablePanel()
        {
            int column, row, count = 0;

            for (column = 0; column < this.tablePanel.ColumnCount; column++)
            {
                for (row = 0; row < this.tablePanel.RowCount; row++)
                {
                    tb = new TableUserCtrl();
                    tb.Size = new System.Drawing.Size(469, 239);

                    this.tableNumber = "table" + (count + 1);
                    tb.tableNumber = this.tableNumber;

                    tb.SetTableNum(this.tableNumber);

                    tb.SetTableNumberLabel(this.tableNumber);
                    tablePanel.Controls.Add(tb, row, column);

                    count++;
                }
            }   
        }

 

 

프로그램 딴에 선언해놓은 MenuList에서 정보를 읽어와 주문 창의 메뉴에 넣는 코드이다.

menuListCtrl에 onMenuClick 이벤트를 넣어, 각 메뉴가 클릭되었을 경우에 사용할 수 있도록 하였다. 

public void AddTablePanel(foodType category)
        {
            int column = 0, row = 0;
            int menuListCnt = Program.menuList.Count;

            for (int index = 0; index < menuListCnt; index++)
            {
                if (Program.menuList[index].category == category)
                {
                    menuListCtrl = new MenuListCtrl(Program.menuList[index]); ;
                    MenuListTablePanel.Controls.Add(menuListCtrl, column++, row);
                    menuListCtrl.OnMenuClick += MenuListCtrl_OnMenuClick;
                    if (column % 2 == 0)
                    {
                        row++;
                        column = 0;
                    }
                }
            }
        }

 

 

객체지향에 대한 이해가 부족한 상황에서 프로젝트를 진행하였다.

프로젝트가 진행될수록 코드는 더욱 복잡해졌고, 마무리할 때에는 정말 힘들게 완성했었다.

또, delegate를 넣는것을 피할 수가 없었는데, 때문에 더 어렵게 느꼈던 것 같다.

 

어려운 부분때문에 막힐 때마다 항상 많이 고민하고, 다르게 접근해보며, 도저히 안될 때 친구들과 선생님의 도움을 받아가며 진행한 프로젝트이다. 그만큼 많은 것을 배웠었다. 

직접 윈도우 프로그램을 만드는 것이 새로운 도전이었고, 결과가 나왔을 때 뿌듯함을 많이 느꼈다.

 

개발기간 : 2018.08.21.~2018.11.26.

https://github.com/gurdlwl/CS_HansotPosProject

 

gurdlwl/CS_HansotPosProject

C#을 사용한 한솥 매장계산대 프로젝트. Contribute to gurdlwl/CS_HansotPosProject development by creating an account on GitHub.

github.com

 

'프로젝트 > 개인' 카테고리의 다른 글

[Android] Shopping App  (1) 2019.10.23
[Python] Face Finder  (0) 2019.06.26
[Android] 내 손안에 장생포 재개발  (2) 2019.06.21
[Web] Apple Homepage Benchmarking Project  (0) 2019.04.23
댓글
공지사항