Open KimGyeongLock opened 4 years ago
검색기능은 제외하고 구현해야하니 일단 제가 검색기능 말고 메인함수 구현하겠습니다.
구현하는 함수들은 crud있는 파일 말고 따로 만들어서 올리겠습니다. 헤더파일도 분리하시는게 좋을것 같으면 그렇게 할게요. 헤더는 놔둘까요 분리할까요?
분리하는 것도 보기 편할거 같아요!
2020/05/06 book.c 업데이트 CRUD 구현
main 함수 만드시고 테스트 해보실 때 버그 있으시면 말씀해주세요!
제가 파일 실행될 수 있게 임의로 book.c 파일을 조금 고쳤습니다. 메뉴 보여주는 함수 리턴 타입을 조금 고쳤는데 실행은 되지만 책 정보 문자열들이 입력이 안되길래 문자열을 입력받는 부분의 [^\n] 부분도 고쳐서 테스트 해봤는데 안되더라구요. 아마 [^\n] 이부분이 정보 입력할 때 잘 안되는거 같기도 한데 %s 랑 getchar로 입력버퍼 해결해보셔서 되는지 안되는지 한번 확인해주셔도 될거 같아요!
그거 외에는 그 반납여부 변수를 어디에 활용할 수 있는지 얘기해보면 좋을것 같네요. 일단 삭제하는 곳에는 포함 되어있지 않더라구요
일단 말씀하신 부분은 getchar를 이용하여 고쳤구요 반납여부 변수는 char로 바꾸어 OX로 구분해보았습니다. 대출을 하였을 때 X로 바꾸고 반납을 하게되면 O로 다시 바꾸는 식으로 하였고 이렇게 하여 후에 검색을 하는 과정에서 조금 더 업그레이드 하여 대출중인 X인 책을 검색할 경우에는 "이 책은 대출중입니다"라는 문구를 띄우고 아예 없는 책을 입력할 경우에는 "이 책은 없는 책입니다"라는 방식으로 하면 더 좋을 거 같아요
아 그리고 gitignore 파일 만들어 목적파일과 실행파일 넣어줬습니다.
그럼 대출기능(삭제기능)을 구현할때 책이 리스트에서 삭제된 것이 아닌 그저 대출 중인것이기 때문에 모든 책 리스트를 다 저장하면 되는건가요? 지금은 대출하면 리스트에서 없어지게 구현이 되어있는데 어떻게 할까요? 그리고 검색기능을 구현할때 책 이름으로 검색하지만 리스트에서 x로 되어있으면 대출중입니다 문구를 띄우고요. 맞나요?
지금 확인해보니까 조회할때 대출중인 도서 정보는 뜨지 않게 하고 저장은 되게 구현되기만 하면 될 것 같네요. 검색할때만 대출중인 도서는 대출중임을 알리도록하겠습니다.
검색함수 메인에 추가했고 파일은 실행이 잘됩니다. 도서목록을 불러온 후에도 대출중인 도서는 표시가 안되기에 번호가 건너뛰어서 조회가 되는데 여기서 하나 문제가 있는게 건너 뛴 번호를 골라도 도서정보 수정이 가능한 점입니다. 대출중이어서 보이지 않는 도서는 수정할 수 없도록 하는게 맞을까요 아니면 이대로 둘까요
아무래도 대출중인거는 수정할 수 없도록 해주는게 나을 거 같아요!!
확인중에 대출중인거는 delete에서도 선택을 못해야 된다고 생각해서 booknumber에서 선택하면 다른 번호를 누를수 있게 해주었습니다. 그리고 search에서 문장인 책의 이름을 넣어주게 되면 버그가 생기는 것을 발견했습니다. %[^/n]s 식으로 바꾸어보았지만 고쳐지지 않아서 한번 봐주실 수 있나요? 그리고 sort라는 함수를 생각해봤는데 저희가 지금 만든 번호가 대출된 책들을 뛰어넘고 번호가 매겨지다 보니 정렬을 할 필요가 있나 생각이 들더라구요 혹시 어떻게 생각하시나요?
검색하는 버그는 고쳤습니다. 이제 문장도 입력 될거에요. 정렬함수는 굳이 필요는 없지만 만약 기능을 넣고 싶다면 사람들이 책을 조회할 때 정렬된 리스트를 볼 수 있게 할 수도 있고, 아니면 어차피 대출된 책 정보가 사라지는것은 아니니 저장할때 정렬해도 상관없을것 같은데 굳이 해야한다고 생각하지는 않아요
sort함수를 list에 넣어서 1번 조회를 하게 되면 대출 가능한 것과 불가능 한 것 둘다 나오게 만들었고 만약에 대출가능한 책들만 보고 싶을 때를 만들어 대출 가능한 것만 순서를 정렬하여 만들게 하였습니다. 그런데 지금 버그를 발견한게 저장된 파일을 불러와서 읽을 때 author이 띄어쓰기가 있는 사람일경우 문제가 생기긴 하더라구요 한국사람이라면 상관없긴 한데 ㅎㅎ.. 이부분만 한번 생각해보시면 코드 완성된거 같습니다. 혹시 테스트해보시고 문제없으시면 screenshot 찍어주실수 있나요? 저는 wiki 정리 하겠습니다!!
알려주신 버그 고쳤습니다. 그 대출가능한 책들만 보여주는 부분에서 y나 Y가 아닌 다른 것 문자를 실수로 입력하면 다시 묻는 부분이 있어야할 것 같아요. 잘못입력했을때 수정하는 기능으로 들어가는 경우도 있고 반납하는 기능으로 들어가는 경우가 있어서요. 혹시 스크린샷 어떻게 push하는지 아시나요
y이나 Y가 아닌 문자가 입력될 시에는 아마 n처럼 아무 발생없이 넘어가게 만들었습니다. 테스트해본 결과 k이나 q같은 문자가 들어와도 그냥 종료될겁니다
스크린샷 같은 경우에는 저도 잘 모르지만 github 메인에 file upload나 filezilla 이용해도 될거 같아요
스크린샷 올려놓았습니다! 확인하시고 제출하세요!!
수고하셨습니다!!
2020/05/02 book.c 생성 selectMenu() 함수 구현