Exemple #1
0
//console
void console()
{
	int number;
	number = Number();
	studentScoreList head;
	head = initNode();
	while(number)
	{
		inputNumber(head);
		number--;
	}
	//
	int flag[3] = 0;
	compare(head, flag);
	//
	output(head);
}
void DataTransformation::checkInput(const DataVector &input) const
{
    Q_ASSERT(input.size() == inputNumber());
}
//회원 검색
void searchMember()
{
	int i = 0;
	int choiceUser = 0;
	int selectMode = 0;
	int index = saveIndexNumber();
	char inputsignNumber[80];
	MemberInfo save[100];

	//회원 정보 불러오기
	FILE *fp;
	//파일 열기,에러 체크
	if ((fp = _fsopen("memberInfo.txt", "r", _SH_DENYNO)) == NULL)
	{
		puts("memberInfo.txt 열기 샐패");
		return;
	}
	//용도에 맞게 쓰기
	fread(&save, sizeof(MemberInfo), index, fp);
	//파일 닫기
	fclose(fp);


	printf("찾으실 회원의 주민등록번호 앞 6자리를 입력 하세요\n");
	inputString(inputsignNumber);

	/*if (strlen(inputsignNumber) != 6)
	{
	printf("주민등록번호 앞자리는 6자리 입니다.");
	Sleep(1000);
	system("cls");
	printUser(index);
	}*/
	system("cls");
	//입력받은 주민 등록 번호와 저장된 주민등록 번호가 일치 하면 화면에 출력
	for (i = 0; i < index; i++)
	{
		if (strcmp(inputsignNumber, save[i].signNumber) == 0)
		{
			printf("회원 번호 : %d\n", save[i].id);
			printf("\t이름 : %s\n", save[i].name);
			printf("\t주소 : %s\n", save[i].address);
			printf("\t주민등록번호 : %s\n", save[i].signNumber);
			printf("\t휴대폰 번호 : %s\n", save[i].phoneNumber);
			printf("\t이메일 : %s\n", save[i].email);
			//printf("\t빌린책 : %d\n", save[i].bookList);

		}
	}

	printf("수정 또는 삭제하실 회원 번호를 입력 하세요\n");
	choiceUser = inputNumber();

	system("cls");
	printf("수정 또는 삭제를 선택 하세요\n");
	printf("1. 수정\n");
	printf("2. 삭제\n");
	printf("0. 이전 메뉴로\n");
	printf("선택 : ");
	
	selectMode = inputNumber();

	system("cls");
	//메뉴 선택에 따라 기능
	if (selectMode == 1)
	{
		fixMember(choiceUser, index);
	}
	if (selectMode == 2)
	{
		deleteMember(choiceUser, index);
	}
	if (selectMode == 0)
	{
		return;
	}
}
//회원정보 수정
void fixMember(int num, int index)
{
	MemberInfo save[100];
	int selectNum;
	while (TRUE)
	{
		printf("바꿀 데이터를 입력 하세요\n");
		printf("1. 주소\n");
		printf("2. email\n");
		printf("3. HP번호\n");
		printf("0. 이전 메뉴로\n");
		printf("선택 : ");
		selectNum = inputNumber();
		system("cls");

		if (selectNum == 1)
		{
			//파일 포인터 선언
			FILE *fp;
			
			//파일 열기,에러 체크
			if ((fp = _fsopen("memberInfo.txt", "r", _SH_DENYNO)) == NULL)
			{
				puts("memberInfo.txt 열기 샐패");
				return;
			}
			//용도에 맞게 쓰기
			fread(&save, sizeof(MemberInfo), index, fp);

			//파일 닫기
			fclose(fp);

			printf("바꿀 주소 를 입력 하세요.\n");
			inputString(save[num - 1].address);
			printf("주소 수정이 완료 되었습니다.");

			Sleep(1000);
			system("cls");

			//파일 열기,에러 체크
			if ((fp = _fsopen("memberInfo.txt", "w", _SH_DENYNO)) == NULL)
			{
				puts("memberInfo.txt 열기 샐패");
				return;
			}
			//용도에 맞게 쓰기
			fwrite(&save, sizeof(MemberInfo), index, fp);
			//파일 닫기
			fclose(fp);

			continue;
		}
		if (selectNum == 2)
		{
			//파일 포인터 선언
			FILE *fp;

			//파일 열기,에러 체크
			if ((fp = _fsopen("memberInfo.txt", "r", _SH_DENYNO)) == NULL)
			{
				puts("memberInfo.txt 열기 샐패");
				return;
			}
			//용도에 맞게 쓰기
			fread(&save, sizeof(MemberInfo), index, fp);
			//파일 닫기
			fclose(fp);

			printf("바꿀 email 주소를 입력 하세요.\n");			
			inputString(save[num - 1].email);			
			printf("email 수정이 완료 되었습니다.\n");
			Sleep(1000);
			system("cls");

			//회원정보 저장
			//파일 열기,에러 체크
			if ((fp = _fsopen("memberInfo.txt", "w", _SH_DENYNO)) == NULL)
			{
				puts("memberInfo.txt 열기 샐패");
				return;
			}
			//용도에 맞게 쓰기
			fwrite(&save, sizeof(MemberInfo), index, fp);
			//파일 닫기
			fclose(fp);

			continue;
		}
		if (selectNum == 3)
		{
			//파일 포인터 선언
			FILE *fp;

			//파일 열기,에러 체크
			if ((fp = _fsopen("memberInfo.txt", "r", _SH_DENYNO)) == NULL)
			{
				puts("memberInfo.txt 열기 샐패");
				return;
			}
			//용도에 맞게 쓰기
			fread(&save, sizeof(MemberInfo), index, fp);
			//파일 닫기
			fclose(fp);

			printf("바꿀 HP번호를 입력 하세요.\n");
			inputString(save[num - 1].phoneNumber);
			printf("HP번호 수정이 완료 되었습니다.\n");

			Sleep(1000);
			system("cls");

			//회원정보 저장
			//파일 열기,에러 체크
			if ((fp = _fsopen("memberInfo.txt", "w", _SH_DENYNO)) == NULL)
			{
				puts("memberInfo.txt 열기 샐패");
				return;
			}
			//용도에 맞게 쓰기
			fwrite(&save, sizeof(MemberInfo), index, fp);
			//파일 닫기
			fclose(fp);

			continue;
		}
		if (selectNum == 0)
		{
			system("cls");
			return;
		}
	}
}
//< 회원 등록
void registrationMember(void)
{
	//< 입력커맨드
	int inputCommand;
	//< 인덱스;
	int maxIndex = 0, curIndex = 0;
	//< 구조체
	MemberInfo member = { 0, };
	//< 반복용
	int i;
	//< 파일포인터(인덱스)
	FILE* indexFp = NULL;
	//< 파일포인터(회원정보)
	FILE* fp = NULL;

	//< 인덱스 읽어오기
	if ((indexFp = fileOpen("index.txt", "r")) == NULL)
	{
		return;
	}
	else
	{
		//< 용도에 맞게(읽기)
		fread(&maxIndex, sizeof(int), 1, indexFp);
		fread(&curIndex, sizeof(int), 1, indexFp);
		//fscanf_s(indexFp, "%d", &index);
		//< 파일 닫기
		fclose(indexFp);
	}

	//< 입력
	while (TRUE)
	{
		//< 화면지우기
		system("cls");
		//< 출력
		puts("1.가입");
		puts("0.뒤로가기");
		printf("입력 : ");
		//< 명령입력
		inputCommand = inputNumber();
		//< 뒤로가기
		switch (inputCommand)
		{
			//< 종료
			case END: { system("pause"); return; }break;
			//< 가입
			case REGESTRATION:
			{
				/*
				ID : 고유ID관리(???)(자동관리하기) - 순차관리
				이름 : 중복가능
				주소 : 문자열관리(40자까지입력가능) 한글기준
				주민번호 : 중복가능(6자 체크가입 - 000405(6자리확인)
				hp번호 : -를 제외한 번호입력(01044446666)
				email : 그냥 알아서 가입(문자열처리) 길이제한(40자)
				빌린책정보 : 총 몇 10 권
				(ID , 도서명 )(ID는 도서등록시 부여된ID)
				*/
				//< 정보입력
				while (TRUE)
				{
					printf("이름 : ");
					limitInput(member.name, MAX_LENGTH);					
					printf("주소 : ");
					limitInput(member.address, MAX_LENGTH); 
					printf("주민번호 : ");
					limitInput(member.signNumber, MAXSIGN);
					printf("핸드폰번호 : ");
					limitInput(member.phoneNumber, MAX_LENGTH);
					printf("E-Mail : ");
					limitInput(member.email, MAX_LENGTH);
				}
				for (i = 0; i < MAXBOOK; i++)
				{
					member.bookList[i] = 0;
				}
				maxIndex++;
				curIndex++;
				member.id = maxIndex;
			}
			break;
		}
		//< 인덱스 저장
		//< 파일 오픈
		if ((indexFp = fileOpen("index.txt", "w")) == NULL)
		{
			return;
		}
		else
		{
			//< 용도에 맞게(읽기)
			fwrite(&maxIndex, sizeof(int), 1, indexFp);
			fwrite(&curIndex, sizeof(int), 1, indexFp);
			//< 파일 닫기
			fclose(indexFp);
		}
		//< 회원정보 저장
		//< 파일 오픈
		if ((fp = fileOpen("memberInfo.txt", "a+")) == NULL)
		{
			return;
		}
		else
		{
			//< 용도에 맞게(쓰기)
			fwrite(&member, sizeof(MemberInfo), 1, fp);
			//< 파일 닫기
			fclose(indexFp);
		}
	}
}