디시인사이드 갤러리

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

갤러리 본문 영역

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

ㄴㄴ(220.69) 2010.11.02 23:49:24
조회 121 추천 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/05/27 - -
224249 매트랩 입문하는 여대생이 하나만 질문!! 도와주세여 오빠들 [23] 웅얼웅얼(125.135) 10.12.12 279 0
224248 디씨가 병신된거냐? 내 컴이 병신된거냐? ㅁㅁㅇㅇㅇㅁ(220.162) 10.12.12 57 0
224247 이런 프로그램도 있었네 [1] Rei@디씨갤로그로 이동합니다. 10.12.12 89 0
224246 밑에 이어서 질문 하나만 더 할게요 형님들.. [9] 늅늅(180.65) 10.12.12 75 0
224245 파일 시스템 구현 ,, write 함수 실패 [성대아싸]갤로그로 이동합니다. 10.12.12 87 0
224244 횽들 자바 공부중인데 이거 결과값이 왜이런지좀 알려주세요..! [5] 늅늅(180.65) 10.12.12 85 0
224242 억 ida 플러그인 개 쩐다 일광면(119.198) 10.12.12 107 0
224241 너님들 지금 롯데치킨 많이들 즐기라능 [4] 분당살람갤로그로 이동합니다. 10.12.12 102 0
224240 아놔 씨발 개새끼들 [2] elwlwlwk갤로그로 이동합니다. 10.12.12 113 0
224236 근무조건 젤 좋은 전산직 전공자 직업은 정보보안 전문가인가요? [6] 알바즐갤로그로 이동합니다. 10.12.12 188 0
224234 데이터통신 셤공부하는데 어느 CRC 생성기가 단일 비트 오류의검출을보장 마타버터갤로그로 이동합니다. 10.12.12 91 0
224233 김늅늅 횽 있으세요? (수정) [16] 일광면(119.198) 10.12.12 121 0
224232 c언어 학원 다니면 실력 늘까요? 하... [3] 할룽~갤로그로 이동합니다. 10.12.12 101 0
224231 이따가 저녁 시간 되면 통큰치킨 남은 거 먹어야징 ㅋ [4] 분당살람갤로그로 이동합니다. 10.12.12 94 0
224230 이 플그램 에러좀 잡아주세요 [2] 돌멩이(220.70) 10.12.12 59 0
224229 C++ ,2차원배열 .. [3] 개초뉴비(59.18) 10.12.12 128 0
224228 아이패드 살까말까 고민중인데, 프갤에 물어봐야지 [6] 찬양하라.NET갤로그로 이동합니다. 10.12.12 87 0
224227 ㅠㅠ 에러가 떠요 ㅠㅠ c언어 구조체 질문좀 ㅠ [22] 고갱님(110.5) 10.12.12 165 0
224225 자바가 망해도 상관없어... [1] 홍어(58.180) 10.12.12 87 0
224224 아이패드에서 pages로 문서 작성하는데 [1] 분당살람갤로그로 이동합니다. 10.12.12 301 0
224223 와우 대격변하는데.. 아...(121.134) 10.12.12 47 0
224222 코딩이 안중요하다고 하는데 코딩은 중요하다. [3] 사과갤로그로 이동합니다. 10.12.12 113 0
224221 김늅늅 횽 있으세요? [1] 일광면(119.198) 10.12.12 34 0
224220 드디어 virtual박스에서 usb 장치 다 찾아냄 마타버터갤로그로 이동합니다. 10.12.12 41 0
224219 캐늅늅늅 님 이런거 말하는거에여? 일과면(119.198) 10.12.12 49 0
224218 _beginthread [6] 삼초갤로그로 이동합니다. 10.12.12 112 0
224217 형들 나 오늘은 [6] 파워준석갤로그로 이동합니다. 10.12.12 118 0
224216 흑흑 비베 기말과제..미치겟당.. [2] 캐늅늅늅(121.169) 10.12.12 90 0
224215 요즘 시대에 어셈은 무슨... [2] 재삐갤로그로 이동합니다. 10.12.12 138 0
224214 형들 컴공 들어가기전에 어떤 공부 해야함?? [11] 재삐갤로그로 이동합니다. 10.12.12 244 0
224211 버쳘박스 장치필터 USB 뜨는데 인식이 암됨 [3] 마타버터갤로그로 이동합니다. 10.12.12 66 0
224210 어제 질문한거 정리좀 ㅠ.ㅠ 제발; [2] 팔로윌갤로그로 이동합니다. 10.12.12 54 0
224209 엥? 동적바인딩이랑 다형성이 전혀 관련이 없다고? [5] 팔로윌갤로그로 이동합니다. 10.12.12 107 0
224205 케이온 1기 다봤다 꿀레갤로그로 이동합니다. 10.12.12 37 0
224204 오라클때문에 자바 엿되면 어떠카냐 ㅅㅂ [2] 인샙션재밋션(183.101) 10.12.12 105 0
224203 난 아마 안될꺼야... 돌아온yoi(124.153) 10.12.12 77 0
224202 컴공과 대학원 마치면 31살인데 [1] 덜쿠(58.77) 10.12.12 349 0
224201 횽들아 ㅁㄴㅇㄹ(99.225) 10.12.12 54 0
224200 우분투 버추얼 박스 쓰는데 USB인식 어떻게 시켜 [10] 마타버터갤로그로 이동합니다. 10.12.12 324 0
224198 중국산 믿고 쓸수있으려나; [1] .3(61.4) 10.12.12 69 0
224197 데니스 리치가 c 랑 unix를 발명했는데 ㅁㄷㄷ(123.49) 10.12.12 126 0
224196 프로그램 실행은 되는데 에러가 떠요 ㅠㅠ c언어 ㅠㅠ [13] 고갱님(110.5) 10.12.12 116 0
224194 통큰치킨의 위엄 ㄷㄷㄷ [2] 분당살람갤로그로 이동합니다. 10.12.12 199 0
224193 개인 위키피디아 구축하려면... [6] ㅁㄴㅇㄹ(58.225) 10.12.12 168 0
224191 25b2c22fabc236a1 => hori.png ? 갤로그로 이동합니다. 10.12.12 58 0
224190 News 권혁진(58.233) 10.12.12 36 0
224189 지금 시각 오전 9시 21분...형아 롯데마트로 출격한다 [2] 분당살람갤로그로 이동합니다. 10.12.12 89 0
224187 36시간째 컴퓨터실에서 고난의 행군중 [4] 디-(141.212) 10.12.12 150 0
224186 오브젝티브씨로 네트워크 프로그래밍 해본 사람 있음? [1] ㅂㅂㅂ(119.196) 10.12.12 88 0
224185 횽들 혹시 간단한 수식프로그램 만들고 싶은데 엑셀로 가능? ♨류자갤로그로 이동합니다. 10.12.12 63 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2