수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

C언어 방향키로 메뉴 선택

다은

2023.04.01


질문 제목 : c언어 방향키로 메뉴 선택햇을시 문제질문 내용 :
일단 방향키로 메뉴를 선택하는것을 구현햇는데
실행은 되지만 약간 버그?같은게 잇네요..
직접 실행해 보시고 봐주세요 ㅠㅠ
//은행 프로그램입니다.
#include stdio.h
#include string.h
#include stdlib.h
#include conio.h
static int deposit;//전역변수 deposit을 선언
static int balance;
static int defreyal;
#define right 77
#define left 75
#define up 72
int a;
typedef struct info { //구조체 선언
char name[15];
char id[15];
char id2[15]; //로그인할때 id확인에 사용할 변수
char pw[15];
char pw2[15]; //패스워드 확인에 사용할 변수
char adr[50]; //주소
char tel[15]; //전화번호
char account[20];
}in;
in a;
int print_log() {
printf( ┌──────┐\n);
printf(ㅡ│ 로그인* │ㅡ\n);
printf( └──────┘\n);
printf( ┌──────┐\n);
printf(ㅡ│ 회원가입 │ㅡ\n);
printf( └──────┘\n);
printf( ┌──────┐\n);
printf(ㅡ│ 종료 │ㅡ\n);
printf( └──────┘\n);
a=getch();
switch(a) {
case right:
fflush(stdin);
system(cls);
print_regis();
break;
case left:
fflush(stdin);
system(cls);
print_end();
break;
case up:
fflush(stdin);
system(cls);
print_login();
break;
default :
printf(오른,왼,위쪽 방향키만 입력이 가능합니다.\n);
print_log();
fflush(stdin);
break;
}
}
print_regis() {
printf( ┌──────┐\n);
printf(ㅡ│ 로그인 │ㅡ\n);
printf( └──────┘\n);
printf( ┌──────┐\n);
printf(ㅡ│ 회원가입* │ㅡ\n);
printf( └──────┘\n);
printf( ┌──────┐\n);
printf(ㅡ│ 종료 │ㅡ\n);
printf( └──────┘\n);
a=getch();
switch(a) {
case right:
fflush(stdin);
system(cls);
print_end();
break;
case left:
fflush(stdin);
system(cls);
print_log();
break;
case up:
fflush(stdin);
system(cls);
print_register();
break;
default :
fflush(stdin);
printf(오른,왼,위짜,왼,위쪽 방향키만 입력이 가능합니다.\n);
print_log();
break;
}
}
print_end() {
printf( ┌──────┐\n);
printf(ㅡ│ 로그인 │ㅡ\n);
printf( └──────┘\n);
printf( ┌──────┐\n);
printf(ㅡ│ 회원가입 │ㅡ\n);
printf( └──────┘\n);
printf( ┌──────┐\n);
printf(ㅡ│ 종료* │ㅡ\n);
printf( └──────┘\n);
a=getch();
switch(a) {
case right:
fflush(stdin);
system(cls);
print_log();
break;
case left:
fflush(stdin);
system(cls);
print_regis();
break;
case up:
fflush(stdin);
printf(종료합니다.\n);
break;
default :
fflush(stdin);
printf(오른,왼,위쪽 방향키만 입력이 가능합니다.\n);
print_log();
break;
}
}
print_menu() {
printf(오른쪽 방향키를 눌러서 원하는 메뉴를 선택해 위쪽 방향키를 누르십시오.\n);
print_log();
}
print_register() {//회원가입창을 호출해주는print_register함수 선언&정의
printf(\t\t\t ┏━━━━━━┓\n);
printf(\t\t\t ┃※회원가입※┃\n);
printf(\t\t\t ┗━━━━━━┛\n);
printf(당신의 이름을 입력해 주십시오 :);
scanf(%s, a.name);
printf(당신이 사용하실 id를 입력해 주십시오 :);
scanf(%s, a.id);
printf(당신이 사용하실 패스워드를 입력해 주십시오 :);
scanf(%s, a.pw);
system(cls);
printf(입력이 완료되엇습니다. 메뉴로 돌아갑니다.\n);
main();//모든 입력을 받은 후 메인메뉴로 돌아감
}
print_login() {
printf(\t\t\t ┏━━━━━━┓\n);
printf(\t\t\t ┃※로그인※ ┃\n);
printf(\t\t\t ┗━━━━━━┛\n);
printf(id를 입력해 주세요 :);
scanf(%s, &a.id2);
printf(패스워드를 입력해 주세요 :);
scanf(%s, &a.pw2);
if(strcmp(a.id, a.id2)!=0)//회원가입시 id와 로그인시 입력한 id를(문자열을) 검사해서 0이아닌 수가나오면 로그인 실패
{
printf(id를 확인하여 주십시오.\n);
print_menu();
}
if(strcmp(a.pw, a.pw2)!=0) //회원가입시 pw와 로그인시 입력한 pw를(문자열을) 검사해서 0이아닌 수가나오면 로그인 실패
{
printf(패스워드를 확인하여 주십시오.\n);
print_menu();
}
if(strcmp(a.id, a.id)==0 && strcmp(a.pw, a.pw2)==0) { //id와 pw모두 일치하여 0이 나올시 로그인 성공
printf(로그인 성공\n);
}
}
void print_account() {
int num2;
int num;
printf(\t\t\t ┏━━━━━━━━━┓\n);
printf(\t\t\t ┃고객님!환영합니다!┃\n);
printf(\t\t\t ┗━━━━━━━━━┛\n);
printf(\t\t\t =======================\n);
printf(\t\t\t\t -menu- \n);
printf(\t\t\t -----------------------\n);
printf(\t\t\t\t 1.계좌생성 \n);
printf(\t\t\t\t 2.계좌조회 \n);
printf(\t\t\t\t 3.계좌입금 \n);
printf(\t\t\t\t 4.계좌출금 \n);
printf(\t\t\t =======================\n);
printf(\t\t\t\t [ ]\b\b\b);
scanf(%d, &num);
switch(num) {
case 1:
if(strlen(a.account)==5) {
printf(이미 계좌가 있습니다. 기존 계좌를 사용해 주세요\n);
print_account();
}
printf(비밀번호를 입력해 주십시오 :);
scanf(%s, &a.pw);
if(strcmp(a.pw, a.pw2)!=0) {
printf(패스워드를 확인해 주십시오.\n);
print_account();
}
printf(당신의 계좌번호를 5자로 입력하십시오(-없이숫자만) :);
scanf(%s, a.account);
if(strlen(a.account)!=5)
{
printf(5자로 입력해 주십시오\n);
print_account();
}
printf(당신의 계좌번호는 %s입니다.\n,a.account);
printf(메인 메뉴로 가시려면 1번을, 계좌메뉴로 가시려면 2번을눌러주세요(이외의 숫자입력시 무조건계좌메뉴로 이동) :);
scanf(%d, &num2);
switch(num2) {
case 1:
print_menu();
case 2:
print_account();
default :
printf(1,2가 아닌 숫자를 입력하셧습니다. 계좌메뉴로 이동합니다.);
print_account();
}
case 2:
if(strlen(a.account)!=5)//a.account 문자열의 길이를 검사해서 5자가아니면(여기서 용도는 생성을 햇는지 안햇는지 확인)계좌 없음으로 판단
{
system(cls);
printf(계좌가 없습니다. 계좌를 생성해 주십시오.\n);
print_account();
}

printf(당신의 계좌번호는 :%s\n, a.account);
printf(당신의 계좌에 남은 금액은 :%d\n, balance);
printf(메인 메뉴로 가시려면 1번을, 계좌메뉴로 가시려면 2번을눌러주세요(이외의 숫자입력시 무조건계좌메뉴로 이동) :);
scanf(%d, &num2);
switch(num2) {
case 1:
print_menu();
break;
case 2:
print_account();
break;
default :
printf(1,2가 아닌 숫자를 입력하셧습니다. 계좌메뉴로 이동합니다.\n);
print_account();
break;
}
case 3:
if(strlen(a.account)!=5)
{
system(cls);
printf(계좌가 없습니다. 계좌를 생성해 주십시오.\n);
print_account();
}
printf(입금할 금액을 입력하십시오 :);
scanf(%d, &deposit);
balance=balance+deposit;//잔액(balance)은 잔액+입금한 금액(deposit)
printf(입금이 완료되엇습니다. 잔액은 %d원 입니다.\n, balance);
print_account();
break;
case 4:
if(strlen(a.account)!=5)
{
system(cls);
printf(계좌가 없습니다. 계좌를 생성해 주십시오.\n);
print_account();
}
printf(출금할 금액을 입력하여 주십시오 :);
scanf(%d, &defreyal);
if(balance=defreyal) {//잔액이 출금할 금액(degreyal)보다 적으면 실패
printf(잔액이 출금할 금액보다 많습니다.\n);
print_account();
}
balance=balance-defreyal;//잔액(balance)은 잔액-출금한 금액(defreyal)
printf(출금이 완료되엇습니다. 잔액은 %d원입니다.\n, balance);
print_account();
break;
default :
printf(잘못된 입력입니다.\n);
print_account();
break;
}
}

main() {
print_menu();
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2700313 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) 크나 2025-07-03
2700287 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) 아련나래 2025-07-03
2700264 문자와 숫자 동시에 입력??? 글고운 2025-07-03
2700236 txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) 미국녀 2025-07-03
2700211 전위 연산자 (2) 어른처럼 2025-07-02
2700183 C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; 피스케스 2025-07-02
2700150 꼭좀 도와주세요ㅠㅠㅠ 호습다 2025-07-02
2700095 연산문제...질문... 오빤테앵겨 2025-07-01
2700070 while문 , 3의배수 출력하는 프로그램좀 짜주세욤. 횃불 2025-07-01
2700041 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? 헛장사 2025-07-01
2700012 배열// (1) 전갈자리 2025-07-01
2699895 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) 선아 2025-06-30
2699842 질문을 너무 많이 하네여.....죄송.... (2) 해님꽃 2025-06-29
2699816 오류 질문입니다.. (1) 해비치 2025-06-29
2699763 질문입니다 ! 꼭 좀 도와주세요ㅠㅠ (2) 미라 2025-06-28
2699555 c언어 다항식을 입력을 했는데 왜 출력이 안될까요? 피스케스 2025-06-27
2699528 C언어 포인터연산 질문입니다. (3) 안녕나야 2025-06-26
2699476 끌어올림;;달력 짜봤는데요 이 소스 줄일 수 있나요? - 스샷첨부 (2) 클라우드 2025-06-26
2699444 [좀 급함] system("explorer [주소] ") 문에 변수를 사용할 수 있나요? 알 2025-06-26
2699415 파일//read//와 배열 아란 2025-06-25
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com