디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[C]설계 질문좀 드려요..(스압)

ㄴㄴ(220.69) 2010.11.02 23:49:24
조회 126 추천 0 댓글 8


저는 프갤에 자주 질문하러오는 학부1학년이고요 학교 프로그램 경진대회 같은데에다가 네 명이서 팀으로 신청했는데욤


일단 저가 설계가 처음이라 이렇게 하는게 맞게 하는건지 여쭈려고해요..

사진은 손으로 한 설계고요

유저메뉴, 관리자메뉴, 종료 를 각각 한명씩 맡겼어요 

그래서 얘네들이 다 짜면 저는 그걸 수정하면서 합칠 요량입니다.. 

우선 전체적인 계획은 메인 메뉴전에 모든 파일정보( 고객리스트 파일 , 도서리스트 파일 , 관리자암호가 적힌 파일 , 고객 1명당 대여목록을 기록할 파일 n 개  ) 를 읽어와서 메모리에 저장하고요.

유저메뉴, 회원가입, 관리자메뉴를 통해서 데이터를 조작하고 ..( 삭제 연산은 고객의 연락처, 도서 ID를 999999로 변경하는 것 )

마지막 Exit 에서 종료하기전에 변경된 데이터를 파일에 모두 출력하고, 고객 1명당 대여목록을 기록할 파일을 n개 생성할건데요

여기서 파일에 출력할 때 고객의 연락처, 도서의 ID가 999999 인것은 제외하고 출력하려고합니다.

아무튼 요점은 팀프로젝트를 할 때 저렇게 설계하고 모듈을 나눠주는것이 맞나 하는 것이에요,,??? 아래는 헤더파일과 함수 정의 파일입니다 참고용으루,,

/* BRM.h */
#ifndef BRM_H
#define BRM_H

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <io.h>
#include <windows.h>
#pragma warning( disable : 4996 )

/* 글꼴 색상 */
enum 
{
        BLACK,/* 0 : 검정 */
        DARK_BLUE,/* 1 : 어두운 파랑 */
        DARK_GREEN,/* 2 : 어두운 초록 */ 
        DARK_SKY_BLUE, /* 3 : 어두운 하늘 */
        DARK_RED, /* 4 : 어두운 빨강 */
        DARK_VIOLET, /* 5 : 어두운 보라 */
        DARK_YELLOW, /* 6 : 어두운 노랑 */
        GRAY, /* 7 : 회색 */
        DARK_GRAY, /* 8 : 어두운 회색 */ 
        BLUE, /* 9 : 파랑 */
        GREEN, /* 10 : 초록 */ 
        SKY_BLUE, /* 11 : 하늘 */
        RED, /* 12 : 빨강 */ 
        VIOLET, /* 13 : 보라 */
        YELLOW, /* 14 : 노랑 */
        WHITE, /* 15 : 하양 */
};

void Setcolor(int color) // 글자색
{
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (short)color);
}
/* BOOL Type 정의 */
typedef  int  BOOL;

#define  FALSE  0
#define  TRUE   1

/* 구조체 선언 */
typedef struct tagBook // 도서 구조체
{
        char ID[10];       // 도서번호
        char Name[20];     // 도서명
        char Author[10];   // 저자
        char publisher[20];// 출판사
        BOOL IsRetal;      // 대여 여부
} Book;

typedef struct tagCustomer // 고객 구조체
{
        char Name[20];       // 고객명( ID )
        char HPnumber[20];   // 고객 연락처
        char PW[10];         // 비밀번호
        Book RentalList[10]; // 대여 도서 목록
} Customer;

/* 함수 원형 선언 */

/* 건드리지 말 것 */
int ReadBL       ( Book **BookList );
int ReadCL       ( Customer **CustomerList );
int ReadAI       ( char *AdminPW);
int LogIn        ( Book *BookList, Customer *CustomerList, int CLRecordCount, int BLRecordCount );
int ShowMainMenu ( ); // 미구현
int SignIn       ( Customer **CustomerList, int CLRecordCount ); // 미구현


/* 정용만 건드릴 것 */
int ShowUserMenu ( );
int UserMenu     ( Customer *User );
/* 민식만 건드릴 것 */
int ShowAdminMenu( );
int AdminMenu    ( Book *BookList, Customer *CustomerList, int CLRecordCount, int BLRecordCount );
/* 창완만 건드릴 것 */
int Exit         ( );


#endif








/* BRM.c */
#include "BRM.h"

int ReadBL( Book **BookList )
{
        FILE* BLfp;
        int i, BLRecordCount;
        char buf[200];

        /* BookList.txt 파일 개방 */
                BLfp = fopen("BookList.txt","r");
                if(BLfp == NULL)
                {
                        puts("지정된 경로에서 \'BookList.txt\' 를 찾을 수 없습니다");
                        exit(-1);
                }

        /* 레코드 개수 계산 */
                for( i=0 ;; i++ )
                {
                        if ( NULL == fgets( buf, sizeof(buf), BLfp ) )
                                break;
                }
        BLRecordCount = i; // 루프의 총 반복 횟수를 BLRecordCount 에 저장

        /* 읽은 크기만큼 동적 할당하여 레코드 저장 */
                *BookList = (Book *)malloc( sizeof(BookList) * BLRecordCount );

        /* 레코드를 메모리로 읽어온다 */
                for( i = 0; i < BLRecordCount; i++ )
                {
                        fscanf( BLfp, "%s%s%s%s", &(*BookList)[i].ID, &(*BookList)[i].Name, &(*BookList)[i].Author, &(*BookList)[i].publisher );
                }


        fclose( BLfp );

        return BLRecordCount;
}

int ReadCL( Customer **CustomerList )
{
        FILE *CLfp, *Psnlfp;
        int i, CLRecordCount;
        char buf[200];

        /* CustomerList.txt 파일 개방 */

        CLfp = fopen("CustomerList.txt","r");
        if(CLfp == NULL)
        {
                puts("지정된 경로에서 \'CustomerList.txt\' 를 찾을 수 없습니다");
                exit(-1);
        }
        /* 레코드 개수 계산 */

        for( i=0 ;; i++ )
        {
                if ( NULL == fgets( buf, sizeof(buf), CLfp ) )
                        break;
        }
        CLRecordCount = i;  // 루프의 총 반복 횟수를 CLRecordCount 에 저장
        /* 읽은 크기만큼 동적 할당하여 레코드 저장 */
        
        *CustomerList = (Customer *)malloc( sizeof( Customer ) * CLRecordCount );


        /* 레코드를 메모리로 읽어온다 */

        rewind( CLfp ); // 파일 위치 지시자를 시작점으로
        for( i = 0; i < CLRecordCount; i++ )
        {
                int j;
                char buf2[200]={0};
                char title[] = "PersonalRentalList\\\";
                char txt[] = ".txt";
                fscanf( CLfp, "%s%s%s", (*CustomerList)[i].Name, (*CustomerList)[i].PW, (*CustomerList)[i].HPnumber );
                strcpy( buf2, title );
                strcat( buf2, (*CustomerList)[i].Name);
                strcat(buf2, ".txt");
                /* 고객명으로 된 파일제목을 가진 파일이 존재하는지 확인 */
                
                if ( 0 == access(buf2, 0 ) )
                {
                        Psnlfp = fopen(buf2,"r");
                        for( j = 0; j < 10 ; j++ )
                        {
                                if ( EOF == fscanf( Psnlfp, "%s%s%s%s",(*CustomerList)[i].RentalList[j].ID, (*CustomerList)[i].RentalList[j].Name,(*CustomerList)[i].RentalList[j].Author,(*CustomerList)[i].RentalList[j].publisher ) )
                                        break;
  &n

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
347582 졸린 프겔러들을 위한 여경의 귀요미 송 [1] 멍청닭(182.211) 13.02.28 103 0
347581 노트북 추천해주세요 [3] (211.201) 13.02.28 125 0
347580 VB, JAVASCRIPT 책 좋은거 아는갤러있나여 [1] 마루■■갤로그로 이동합니다. 13.02.28 64 0
347579 it특기병같은경우 갈려면힘든가? 그래(211.237) 13.02.28 51 0
347578 JSP & Mysql 여러분들의 따뜻한 관심이 필요한 때입니다. 으악 카이로스™갤로그로 이동합니다. 13.02.28 62 0
347577 디버그랑 릴리즈 라이브러리 차이점이 뭐냐 [2] ㅁㄴㅇㄹ(203.255) 13.02.28 40 0
347576 Visual Studio Express 2012 for WEB 툴 어떰 [1] 1ㅈ(175.215) 13.02.28 81 0
347575 emacs에 대해서만따로 자세하게설명해놓은 책이있던데 읽으면많이도움될까? 프갤(59.16) 13.02.28 28 0
347574 javascript dom에서 클래스는 조작못함? [2] 1ㅈ(175.215) 13.02.28 58 0
347573 emacs를 php에디터로도 쓸수있지?당연? AcroEdit대체가능? 프갤(59.16) 13.02.28 51 0
347572 C# 고수형님들 도와주세요 ㅠ! 괴개(221.163) 13.02.28 3595 0
347571 음냐 버그테스트 이모군(175.114) 13.02.28 60 0
347570 님들아 [3] 1ㅈ(175.215) 13.02.28 64 0
347568 twitter bootstrap 진심개쩐다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 2er22(175.215) 13.02.28 119 0
347567 대학 임베디드 아이티 과 어떰? [2] Macau갤로그로 이동합니다. 13.02.28 132 0
347566 형들 프로그래밍 접하려면 C언어먼저배워야하나? [6] 송간갤로그로 이동합니다. 13.02.28 308 0
347565 형들 이거 어떻게구현함? [10] 2er22(175.215) 13.02.28 266 0
347563 내가 생각해봤는데 JSP로 인터넷뱅킹 구현가능하지않냐 부스타(175.197) 13.02.28 108 0
347562 시발 좆같은 군대에잇어서 배운거 다까먹엇는 3학년되는 학부생인디요 [3] 내ㅏ가(183.108) 13.02.28 134 0
347561 형들 피시정비사 질문 [2] (203.226) 13.02.28 87 0
347560 자동로그인 다시질문좀... 미안요... [4] 햄버거11(124.49) 13.02.28 118 0
347556 svn에 lock 걸면 어떻게 되냐? [1] ㅁㄴㄻㄹ갤로그로 이동합니다. 13.02.28 73 0
347554 안녕하세요. 이제 고2됩니다 [11] 작성자(175.215) 13.02.28 154 0
347553 php책살까 mysql책살까.. [2] 작성자(175.215) 13.02.28 177 0
347552 [질문] 하나의 쿼리는 Atomic한가 [1] 천회장(118.131) 13.02.28 61 0
347551 JSP로 인터넷뱅킹구현 불가능? 부스타(175.197) 13.02.28 73 0
347550 이집트상형문자해독 vs 존나어려운코드해독 [4] 에놀라 게이(121.169) 13.02.28 118 0
347544 이스트 소프트 필기 시험 뭐냐ㅐ? [1] ㅇㅁㄴㅇㄴㅁ(59.11) 13.02.28 1518 0
347541 자바밖에 모르는놈들 딱 티가난다 [3] 돌대갈(211.36) 13.02.28 288 0
347538 새누리당 마인드로는 CIA에 협력하는 게 애국 아니겠습니까? [2] 에어로홍갤로그로 이동합니다. 13.02.28 95 1
347536 간단하게 파이썬으로 [3] HiKiKoMoRi갤로그로 이동합니다. 13.02.28 182 0
347533 나랑 같은 고민하는 사람있네 모바일 마ㅣ널미널 ㅁㅁ(175.194) 13.02.28 55 0
347529 개빡친다 ㅠㅠ ㄱㄷㄱ(61.41) 13.02.28 25 0
347528 올해 편입을 해서 컴공과에 들어갔는데, 커리질문좀 하고싶습니다 ㅠ [3] 흙흙흙(58.145) 13.02.28 179 0
347527 형들 하나만 질문할게 새벽에 미안 [3] 이름(118.40) 13.02.28 88 0
347523 게임회사 퍼블리싱 팀으로 해도됨?사업자없어도? [1] (211.237) 13.02.28 73 0
347522 모바일 IDE 좋은 앱 있냐? [3] 생물학(175.119) 13.02.28 72 0
347520 그러고보니 자살춤 살았냐? 죽었냐? 생물학(175.119) 13.02.28 46 0
347519 인기랑 매출은 별갭니다. 생물학(175.119) 13.02.28 41 0
347517 모바일 게임에서 홍보비 적게 쓰고 효율 가장 높게 뽑는 법은 생물학(175.119) 13.02.28 49 0
347516 혹기 게임 중에서 마법진 직접 만드는 판타지 게임 있냐.ask 생물학(175.119) 13.02.28 51 0
347515 똥이안나옴 [2] 작성자(175.215) 13.02.28 41 0
347513 맛폰게임을 제작시 커뮤니티에 광고한다면 어디가적절할까? [2] (211.237) 13.02.28 82 0
347512 아 실수 [1] 생물학(175.119) 13.02.28 47 0
347511 자라 [3] 루비•‿•갤로그로 이동합니다. 13.02.28 61 0
347510 웹만드는거넘힘들다.. [3] 작성자(175.215) 13.02.28 117 0
347508 백왕형은 형이 말한 싱글 스레드가 멀티 스레드란거 알고있긔? [1] 생물학(175.119) 13.02.28 121 0
347506 형들 좆고딩 c언어 하나만 해결 앙망... [5] ㅁㄴㅇㄹ(175.126) 13.02.28 94 0
347505 왠 처음 보는 유동이 그림으로 날 능욕했다 생물학(175.119) 13.02.28 72 0
347504 백왕형, 싱글스레드 말고 멀티스레드 기준은 뭐라고 생각해? [1] 생물학(175.119) 13.02.28 45 0
뉴스 추사랑, 첫 모델 오디션 ‘혹평’…“실망이다” 야노 시호도 ‘눈물’ 디시트렌드 06.30
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2