디시인사이드 갤러리

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

갤러리 본문 영역

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

ㄴㄴ(220.69) 2010.11.02 23:49:24
조회 123 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
230299 수학못해도되지 [4] 속결자갤로그로 이동합니다. 11.01.11 150 0
230297 자료구조책 주문했는데 혹시 이책 본 횽들있음? [8] bla-ack갤로그로 이동합니다. 11.01.11 184 0
230295 와 이건 존내 신기하넹 tiddlyWiki [6] 시불라미갤로그로 이동합니다. 11.01.11 189 0
230294 건담좀 보고 이제막 공부하려고했는데 [3] 꿀레갤로그로 이동합니다. 11.01.11 86 0
230293 인간의 신경 네트워크는 비동기일까? 동기일까? [2] nRESET갤로그로 이동합니다. 11.01.11 124 0
230292 형들 어플만드는 어플쟁이들 여기 있어? 삼산고학생갤로그로 이동합니다. 11.01.11 61 0
230291 디스크 덤프가 필요한데... nRESET갤로그로 이동합니다. 11.01.11 70 0
230290 향수가 느껴지는 고전짤 [4] 개쉛기갤로그로 이동합니다. 11.01.11 188 0
230289 열심히 똥 쌌는데 버려야됨 엉엉 [6] 파돌이(118.130) 11.01.11 151 0
230288 구글 번역 품질을 획기적으로 끌어올리는 법 nRESET갤로그로 이동합니다. 11.01.11 78 0
230287 닭 얘기 하지마! [3] 속결자갤로그로 이동합니다. 11.01.11 117 0
230286 선호하는 통닭은? [9] 설문조사닭(112.216) 11.01.11 115 0
230285 나에겐 신의 축복이 있지 [2] 속결자갤로그로 이동합니다. 11.01.11 74 0
230284 해일리형이나 다른형들 까지마 바보들아 [13] Minryu갤로그로 이동합니다. 11.01.11 174 0
230283 테라와 아이온 둘다 해본 횽들은 봐주길 바래 [6] 테라닭(112.216) 11.01.11 97 0
230282 scribe 설치해본 횽들 있나요? [1] monoless갤로그로 이동합니다. 11.01.11 532 0
230281 tcp/ip 소켓 프로그래밍 책 추천점 [3] 할리의본링갤로그로 이동합니다. 11.01.11 230 0
230280 테라 재미써? [4] 테라닭(112.216) 11.01.11 130 0
230279 난 안 귀여워 [18] 해일리갤로그로 이동합니다. 11.01.11 217 0
230277 대학원 갈꺼면 elwlwlwk갤로그로 이동합니다. 11.01.11 90 0
230276 파이썬에서 강제적 indent를 준수하도록 하는이유가 뭐야? [12] 파돌이(118.130) 11.01.11 160 0
230274 꿀레횽은 봅미다 [4] elwlwlwk갤로그로 이동합니다. 11.01.11 62 0
230273 으 춥다 나가기 두렵네 이모군(1.225) 11.01.11 35 0
230272 소켓 프로그래밍? 네트워크 프로그래밍? 왜이렇게 어려워 내가바보야? ㅠㅠ [10] 영광의비석갤로그로 이동합니다. 11.01.11 174 0
230271 언니야들.. 내가 타자 치는 속도가 엄청 빠른가봐. 컴이 내 속도를 [8] iljeomobolt갤로그로 이동합니다. 11.01.11 174 0
230270 프로그래머는 수학을 어느정도 알아야할까? [7] ㅇㅇㅇ(121.144) 11.01.11 222 0
230269 해일리 아구지 [1] 분당살람갤로그로 이동합니다. 11.01.11 94 0
230268 해일리 귀여워 [16] 분당살람갤로그로 이동합니다. 11.01.11 123 0
230267 자바스크립트 하나 만들어줘라. [11] ㅇㅇ(122.32) 11.01.11 166 0
230266 iframe vs object.. [4] VL갤로그로 이동합니다. 11.01.11 94 0
230265 이제 공대 3학년 인데 취업 준비하려면 뭘해둬야돼 형들아?? [2] 뉴비(118.34) 11.01.11 166 0
230264 왜 SNS에 자동번역 서비스를 붙이질 않는걸까? [3] 푸의미래갤로그로 이동합니다. 11.01.11 124 0
230263 대학원은 별로 안좋은선택인가 [2] Soul♥갤로그로 이동합니다. 11.01.11 141 0
230262 프겔에 이런사람있음? [8] 똥구녕향기갤로그로 이동합니다. 11.01.11 170 0
230261 앞으로 할수 있을것들 정리 [5] 똥구녕향기갤로그로 이동합니다. 11.01.11 117 0
230260 도와주세요. 홈페이지 짜는데 [5] 크리터트림(218.155) 11.01.11 116 0
230259 세미나 위주로 던을 벌면 어떨까 생각 중임 [8] 분당살람갤로그로 이동합니다. 11.01.11 98 0
230258 머 좀 다른거 해볼까 싶어서 [1] 똥구녕향기갤로그로 이동합니다. 11.01.11 74 0
230257 근디 게임헥 만들라고 프겔 기웃거리는거 같은 색히들 많아 보이는데 그넘들 목적이 [6] 시불라미갤로그로 이동합니다. 11.01.11 213 0
230256 형들 지금 갤러리 이상해여. [2] 할리의본링갤로그로 이동합니다. 11.01.11 75 0
230255 회사에서 이틀째 놀리고 있다는 2417님 안타깝습니다. [7] nRESET갤로그로 이동합니다. 11.01.11 149 0
230253 근데 인턴쉽 말고는.. 실무 경험하기 힘듬? [4] 부끄곰갤로그로 이동합니다. 11.01.11 158 0
230251 '만들기만 하면..' 철부지 없는 새끼들의 착각 [8] 철부지닭(112.216) 11.01.11 257 1
230250 근데 왜 프로그래밍갤은 새로고침이없어? [2] L0CA1H0ST갤로그로 이동합니다. 11.01.11 122 0
230249 역공학은 아무나 다 하지? [1] L0CA1H0ST갤로그로 이동합니다. 11.01.11 95 0
230248 안드로이드 어플 apk 역컴파일러 없냐능.. [6] 속결자갤로그로 이동합니다. 11.01.11 266 0
230247 리버싱 아는사람은 몇? [4] L0CA1H0ST갤로그로 이동합니다. 11.01.11 174 0
230246 간단한 프로그램 만들어서 파는데 20만원이래 [4] L0CA1H0ST갤로그로 이동합니다. 11.01.11 184 0
230245 끄아 봐도봐도 막힌다 [29] 해일리갤로그로 이동합니다. 11.01.11 192 0
230243 역분석 구조와 원리에 대해 알고싶은데 [7] L0CA1H0ST갤로그로 이동합니다. 11.01.11 135 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2