C언어 프로그램 질문..
댓걸
질문 제목 :c언어 프로그램 질문..밑에서 설명할게요.........질문 내용 : #include stdio.h
#include string.h
struct score
{
char name[20];
int kor, eng, math, total;
double avr;
};
struct log
{
char id[20];
char passwd[20];
char name[20];
};
typedef struct score score;
typedef struct log log;
int main()
{
int i, j, n, choice;
char k;
score s[3];
score tmp;
log log1, log2;
score* p = s;
n = sizeof(s) / sizeof(score);
puts( ********** 성적관리 프로그램 설명서 ************* );
puts( 처음 프로그램을 키신 분들은 [ 2. 계정생성 ]을);
puts( 눌러서 계정을 생성하신 후에 사용하세요. );
puts( 이를 지키지 않고 사용하시다가 발생한 문제에 대하여);
puts( 법적 책임은 지지 않습니다 - 작성자 - );
puts( *************************************************** ); // 이부분때문에 고민입니다...............
while(1)
{
puts(\t\t\t ********* m e n u ********* );
puts(\t\t\t *************************** );
puts(\t\t\t *** 1. l o g i n ******* );
puts(\t\t\t *** 2. 계 정 생 성 ***** );
puts(\t\t\t *** 3.국영수 점수 입력 *** );
puts(\t\t\t *** 4.이름별 정렬 출력 *** );
puts(\t\t\t *** 5.평균순 정렬 출력 *** );
puts(\t\t\t *** 6.평균에 따른 등급 *** );
puts(\t\t\t *** 7.프로그램을 종료 *** );
puts(\t\t\t *************************** );
printf(\t\t\t ************ choice : [ ]\b\b\b);
fflush(stdin);
scanf(%d, &choice);
if(choice == 2) // 이부분에서 계정을 만들고 밑의 로그인으로 가야지만 제대로 되요......
{//처음에 실행하자마자 구조체에 값이 입력되기전에는1번 누르면 안되게 하고싶은데...
printf( 당신의 이름은 무엇입니까 : );
fflush(stdin);
gets((&log1)-name);
printf( 사용하실 id를 입력해주세요 : );
fflush(stdin);
gets((&log1)-id);
printf( 비밀번호를 설정해주세요 : );
fflush(stdin);
gets((&log1)-passwd);
while(1)
{
printf( 비밀번호를 다시 한번더 입력해주세요 : );
fflush(stdin);
gets((&log2)-passwd);
if( strcmp( (&log1)-passwd, (&log2)-passwd ) != 0 )
printf(\n\t\a((경고)) ** 비밀번호가 다릅니다. 올바르게 입력해주세요 ** \n\n);
else
{
puts(\n\t\a *** 정상적으로 계정이 생성되었습니다. 로그인해주세요 ***\n\n );
break;
}
}
}
else if(choice == 1)
{
while(1)
{
do
{
printf( i d : );
fflush(stdin);
gets((&log2)-id);
if(strcmp((&log1)-id, (&log2)-id ) != 0 )
printf(\n\t\a((경고)) ** 존재하지 않는 아이디입니다 ** \n\n);
}while(strcmp((&log1)-id, (&log2)-id ) != 0 );
printf( password : );
fflush(stdin);
gets((&log1)-passwd);
if( strcmp( (&log1)-passwd, (&log2)-passwd ) != 0 )
printf(\n\t\a((경고)) ** 비밀번호가 틀렸습니다. 다시 입력해주세요 ** \n\n);
else
{
printf(\n\n\t\t\t\a %s님 반갑습니다. \n\n, (&log1)-name);
break;
}
}
}
else if(choice == 3)
{
printf(\t\t ** %d명의 성적 입력 ** \n, n);
for(i=0; in; i++)
&nbs
{
printf( [%d] 학생 이름 : , i);
fflush(stdin);
gets((p+i)-name);
printf( %s의 국어 점수 : , (p+i)-name);
fflush(stdin);
scanf(%d, &(p+i)-kor);
printf( %s의 영어 점수 : , (p+i)-name);
fflush(stdin);
scanf(%d, &(p+i)-eng);
printf( %s의 수학 점수 : , (p+i)-name);
fflush(stdin);
scanf(%d, &(p+i)-math);
}
}
else if( choice == 4 )
{
for(i=0; in-1; i++)
for(j=i+1; jn; j++)
{
if( strcmp( (p+i)-name, (p+j)-name ) 0 )
{
tmp = *(p+i);
*(p+i) = *(p+j);
*(p+j) =tmp;
}
}
puts(\n\n ***************** 이름순 정렬 데이터출력 ****************** );
puts( ** 이름 ** 국어 ** 영어 ** 수학 ** 총점 ** 평균 * );
puts( -------------------------------------------------------------- );
for(i=0; in; i++)
{
(p+i)-total = ((p+i)-kor + (p+i)-eng + (p+i)-math);
(p+i)-avr = ((p+i)-kor + (p+i)-eng + (p+i)-math) / 3.0;
printf( %8s %8d %9d %9d %9d %9.2f \n, (p+i)-name, (p+i)-kor, (p+i)-eng, (p+i)-math, (p+i)-total, (p+i)-avr);
}
}
else if( choice == 5 )
{
for(i=0; in-1; i++)
for(j=i+1; jn; j++)
{
if( (p+i)-avr (p+j)-avr )
{
tmp = s[i];
s[i] = s[j];
s[j] =tmp;
}
}
puts(\n\n ***************** 이름순 정렬 데이터출력 ****************** );
puts( ** 이름 ** 국어 ** 영어 ** 수학 ** 총점 ** 평균 * );
puts( -------------------------------------------------------------- );
for(i=0; in; i++)
{
(p+i)-total = ((p+i)-kor + (p+i)-eng + (p+i)-math);
(p+i)-avr = ((p+i)-kor + (p+i)-eng + (p+i)-math) / 3.0;
printf( %8s %8d %9d %9d %9d %9.2f \n, (p+i)-name, (p+i)-kor, (p+i)-eng, (p+i)-math, (p+i)-total, (p+i)-avr);
}
}
else if( choice == 6)
{
for(i=0; in; i++)
{
if( (p+i)-avr 90 )
printf( %s a등급 \n, (p+i)-name);
else if( (p+i)-avr 80 )
printf( %s b등급 \n, (p+i)-name);
else if( (p+i)-avr 70 )
printf( %s c등급 \n, (p+i)-name);
else if( (p+i)-avr 60 )
printf( %s d등급 \n, (p+i)-name);
else
{
printf( %s f등급 \n, (p+i)-name);
break;
}
}
}
else if(choice == 7)
{
printf(\n\n %s님, 성적 관리 하시느라 고생하셨습니다. \n, (&log1)-name);
break;
}
else
printf(\n\n\t\t\t\a\a 메뉴 목록에서 골라주세요 !! \n);
}
system(pause);
return 0;
}
-
개랑
flag변수...처음듣는 거군요 ㅠㅠ 정보감사합니다^^ 그거 공부를 해야겟네용 ㅋ
-
뽀대미녀
그렇게 만들고싶으면
flag변수를 만들어서
2번을 누르지 않고는 못넘어가게 하시면 됩니다 ㅋ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692483 | C언어 함수, Header | 떠나간그놈 | 2025-04-23 |
2692451 | 이 문제좀 풀어주세요 ^^ | 게자리 | 2025-04-23 |
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |