디시인사이드 갤러리

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

갤러리 본문 영역

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

ㄴㄴ(220.69) 2010.11.02 23:49:24
조회 127 추천 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 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
346226 백수의 왕 c(175.208) 13.02.17 57 0
346223 왜 여기가 실북갤 13위야 [3] 안티푸라면갤로그로 이동합니다. 13.02.17 79 0
346222 영어가 프로그래밍 기본소양이라고 개죶같은 소리 하지말아라 (122.128) 13.02.17 97 0
346221 정보보안전문가가 될려는데 c언어 다음에 무슨 공부해야됨? [1] ㅇㅇ(119.192) 13.02.17 199 1
346220 자바쓰는이유가뭐임? [8] 5134(175.215) 13.02.17 164 0
346219 쾌변 ~~ [2] ㅠㅠ개초보(218.153) 13.02.17 57 0
346218 프로그래밍에 가장 중요한 기본 소양은 [3] 오횻(1.246) 13.02.17 125 1
346217 또 글 지울줄 알았다 ㅋㅋ [3] 돌대갈(116.33) 13.02.17 75 0
346216 분서갱유(?) [4] [4] 진시황(218.153) 13.02.17 110 0
346215 리눅스에 xml 에디터 좋은거 뭐 있음? [2] ㅁㄴㅇ(59.11) 13.02.17 46 0
346214 다이렉트 x로 테트리스 STL사용해서 만드는 중인데 에러 가 나네요 야망인(58.238) 13.02.17 57 0
346213 Dart형이 나 때문에 저러나본데 [1] 생물학(123.215) 13.02.17 64 0
346211 솔직히 말야 언어 배우는거 쉽지않냐 [1] DART(116.41) 13.02.17 135 0
346210 듣보 프로그래밍갤러리가 왜 실북갤? [2] ㄴㅇㄹ(211.228) 13.02.17 87 0
346209 백왕횽 자바 강좌 잘 되있는 곳 소개 좀. [2] 생물학(123.215) 13.02.17 271 0
346208 저거 내가 알던 백왕이냐? 아니면 주어 없는 그분이냐? [2] 생물학(123.215) 13.02.17 65 0
346207 페도라,우분투,데비안,cent 어떤게 좋음 d(183.97) 13.02.17 113 0
346204 우리집 평가좀 txt. [12] 아이럽몬스터갤로그로 이동합니다. 13.02.17 256 0
346203 민트데비안 써본사람있냐? [1] 마법과물리갤로그로 이동합니다. 13.02.17 57 0
346202 우리 영어놀이 합시다 (자바 키워드로 문장만들기) [2] Kyle(138.25) 13.02.17 88 0
346200 아무도 대답을 안해주네.. 웹vs 보안 [11] ㄴㅇㄹㄴ(125.178) 13.02.17 238 0
346199 재작년 나의 최대의 실수 구매 DART(116.41) 13.02.17 91 0
346196 레노미나 [6] ☎2.52™갤로그로 이동합니다. 13.02.17 110 0
346192 서버에서 에디터 환경을 사용하고싶은데 어케함? [4] DART(116.41) 13.02.17 122 0
346184 님들아 헐미친 이거뭐임 ㅡㅡ?? ㅈㄷㄹㅇ(175.215) 13.02.17 48 0
346183 머리 나쁜 프로그래머 [4] ㅜㅜ(182.221) 13.02.17 255 0
346181 자바랑 오브젝트씨중에 머가 더 좋아여? [1] ㅇㅇ(211.244) 13.02.17 57 0
346180 팀프로젝트할때 바보 탑1.txt [6] Kyle(138.25) 13.02.17 323 0
346179 님들아 자바에서 메소드랑 c에서 함수랑 뭐가다른거임? [1] ㅈㄷㄹㅇ(175.215) 13.02.17 106 0
346178 [자바취업정보] 자바교육 전액무료 우수기업 신입개발자 양성교육 중앙일보HTA갤로그로 이동합니다. 13.02.17 61 0
346177 자바에서는 왜 ㅡㅡ [3] ㅈㄷㄹㅇ(175.215) 13.02.17 91 0
346176 자바 생성자가멈니까? ㅈㄷㄹㅇ(175.215) 13.02.17 35 0
346175 닌텐도 ps3 이런프로그래밍은 어캐해요 [4] sdㅁㄴㅇ(220.120) 13.02.17 90 0
346174 안드로이드 어플 만드는횽들 질문 하나만 받아주세요 ㅠ [3] 12345(211.206) 13.02.17 80 0
346171 노트북 세로 768에서 코딩 못함?? [1] 블럭갤로그로 이동합니다. 13.02.17 109 0
346168 언어고 뭐고 다필요없다. ㅁㄴㄹㄴㅁㄹ(210.94) 13.02.17 50 0
346166 북미와 김치 차이 [2] 마이리틀포니짱짱갤로그로 이동합니다. 13.02.17 131 1
346165 형들 c언어나 자바 학원에서 배우면 머 질이좀 다름? [2] 촙대딩(210.205) 13.02.17 145 0
346164 안드로이드 동일 기능 액티비티 여러개 생성 하는 법좀요 [3] 앤드뤄이드(222.116) 13.02.17 77 0
346163 실제로 데브잡 가면 경력 10년넘어도 2400 많던데요. [2] ㅇㅁ(211.236) 13.02.17 513 0
346152 Fuck Kyle(220.244) 13.02.17 40 0
346151 c언어에서 배열은 아스키코드로 저장되나여? [2] asdf(76.94) 13.02.17 122 0
346150 새학기 맞이 뉴비 컴공생들을 위한 교양 칼럼 추천 [5] E.T.Complex갤로그로 이동합니다. 13.02.17 247 0
346149 자라 [2] 루비•‿•갤로그로 이동합니다. 13.02.17 77 0
346148 udp통신 ㅅㅂ 고고고(110.47) 13.02.17 95 0
346147 채용홈페이지에서 12년차가 희망연봉이 2600이라고 써놨던데. [6] ㅇㅁ(211.236) 13.02.17 301 0
346145 mysql 에서 필드명이랑 컬럼명이랑 같은 의미임? [1] ㄱㅁ(175.215) 13.02.17 68 0
346144 c언어 간단한 문제 질문좀요 ㅠㅠ [4] ㅂㅂㅂ(211.189) 13.02.17 112 0
346143 게임 제작할떄!!! [6] -_-(211.196) 13.02.17 190 0
346142 위에서 보면 심각한 사진, 화목한 가족 연출에 ‘애 잡는다’ 반전 [1] 에어로홍갤로그로 이동합니다. 13.02.17 310 0
뉴스 ‘피디씨’ 헨리, “바이올린 배우기 싫어 부순 적도”…음악 천재로 거듭난 터닝 포인트는? 디시트렌드 07.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2