Skip to content

연결리스트와 파일 입출력을 활용한 주차 관리 시스템

License

Notifications You must be signed in to change notification settings

bell-person-ii/Parking_Lot_Managemant_System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

_Parking_Lot_Managemant_System (FIN_VER)

전화번호를 기본키(PRIMARY KEY)로 활용하여 주차 차량을 등록,삭제, 조회할 수 있으며, 관리자 권한을 통한 모든 정보 조회가 가능하다

프로그램 기능 설명

    프로그램을 실행하면 UserInfo.txt 에서 값을 가져와 연결 리스트 노드에 추가한다.
    1.주차를 선택하면 노드를 생성하고 전화번호, 차량 번호를 입력 받아 등록 시점의 시간과 함께 노드에 저장한다.

    2.출차를 선택하면 해당 전화번호를 키로 가지는 노드를 삭제한다.

    3.조회를 선택하면 기본키인 전화번호를 기준으로 노드를 탐색한다.

    4.관리자를 선택하면 패스워드 확인을 통해 패스워드가 일치할 경우에만 전체 차량, 고객 정보를 출력한다.

    5.종료를 선택하면 노드에 저장된 정보를 기반으로 파일을 작성하고 프로그램을 종료한다.





소스 코드 설명

  • 연결리스트, 함수 선언

    헤더 파일, 관리자 비밀번호와 연결리스트 구조를 정의 한다.
    메뉴창 프린트 함수, 노드의 생성, 삽입, 탐색, 삭제, 전체 출력, 파일쓰기의 주요 함수를 정의한다.


* print_menu 함수

    직사각형 디자인으로 선택 항목을 프린트 한다.


  • 노드 생성함수

    새로운 노드를 생성하고 전화번호와 차량번호를 사용자로 부터 입력 받아 노드 멤버 변수에 추가한다.
    return_time 함수를 인자로 사용하여 return 받은 현재 시간 정보 문자열을 노드 멤버 변수에 추가한다.
    새로운 노드를 리턴한다.


  • 노드 삽입함수

    만약 기존에 연결리스트가 없다면 새로운 노드를 생성한다.
    연결리스트에 노드있다면 ptr이 이동하여 마지막 주소를 찾고 마지막 연결리스트의 맨 끝에 노드를 연결한다.


  • 노드 탐색 함수

    검색할 전화번호(기본키)를 입력받아 입력받은 전화번호와 노드의 멤보변수의 정보가 같을때 까지 이동한다
    만일 같은 노드들의 멤버 변수중 같은 것이 있다면 그 노드의 주소를 리턴, 없으면 NULL을 리턴한다.


  • 노드 삭제 함수
    만일 노드가 없다면 종료한다.
    제거 대상이 맨앞의 노드라면 다음 노드가 헤드노드가 되고 제거 대상은 메모리를 해제한다.
    제거 대상이 연결리스트 중간이라면 제거 대상의 다음 노드 주소를 이전노드의 다음 노드로 설정하고 연결하고 메모리를 해제한다.


  • 노드 전체 출력함수

    헤드 노드부터 연결리스트의 끝까지 돌면서 노드별 멤버변수 값을 출력한다.


  • 파일쓰기 함수

    UserInfo.txt 파일로을 쓰기 모드로 열고 전체 노드의 멤버 변수 정보를 파일에 모두 쓴다.


  • 관리자 권한 함수

    입력값이 패스워드와 같으면 1을 아니면 0을 리턴한다.


  • 현재시간 리턴 함수

    현재시간을 문자열 buf_t에 저장하여 리턴한다.


  • 메인함수

    실행 후 파일로 부터 값을 가져와 순서대로 phone,car_num,time 변수에 저장하고 하나의 노드를 생성하는 작업을 반복하여 모든 파일 데이터를 연결리스트에 올린다.


    스위치 문을 통해 사용자가 메뉴를 선택하도록한다.
    1번 선택시 인서트 함수가 실행되어 노드를 추가한다.
    2번 선택시 딜레트 함수가 실행되어 값을 찾아 삭제한다.
    3번 선택시 서치 함수가 실행되어 기본키인 전화번호를 기준으로 노드를 찾아 출력한다.
    4번 선택시 관리자가 맞다면 디스플레이 함수가 실형되어 모든 데이터를 보여준다.
    5번 선택시 파일에 모든 노드 데이터를 저장하고 프로그램이 종료된다.

    앞으로의 발전 방향

    • OCR 기술을 접목시켜 번호판을 자동 인식하여 저장하도록 편의를 개선 할 수 있다.

    • 전화번호 입력시 안심콜 출입 서비스와 연동한다면 식당등의 시설 이용시 유저가 안심콜이나 QR인증을 할 필요없이 주차장에 주차를 하는 것 만으로도 시설을 이용 할 수 있다.

    • 입차시 등록된 입차 시간정보를 기준으로 출차시 요금을 자동 정산하는 기능을 추가 할 수 있다.

About

연결리스트와 파일 입출력을 활용한 주차 관리 시스템

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published