#include< stdio.h>
#include< stdlib.h>
#include< string.h>
#include<ctype.h>
typedef
struct
USERSTR
{
char
name[30];
double
score;
int
year;
int
term;
}USER;
typedef
struct
LISTSTR
{
char
name[30];
int
year;
int
term;
int
inpil;
int
major;
int
sisoo;
}LIST;
typedef
struct
TOEICSTR
{
int
score;
}TOEIC;
#define MAX 100
int
list_limit=0;
int
user_limit=0;
int
toeic_limit=0;
void
save(USER *user, LIST *list, TOEIC *toeic);
void
load(USER *user, LIST *list, TOEIC *toeic);
void
clrscr();
void
main_menu();
void
help_menu();
void
about_menu();
void
grade_menu(USER *user, LIST *list, TOEIC *toeic);
void
list_menu(USER *user, LIST *list, TOEIC *toeic);
void
toeic_menu(USER *user, LIST *list, TOEIC *toeic);
void
mystats(USER *user, LIST *list, TOEIC *toeic);
void
list_view(LIST *list);
void
user_view(USER *user);
void
toeic_view(TOEIC *toeic);
void
user_manager_quick (USER *user, LIST *list, TOEIC *toeic);
void
user_manager (USER *user, LIST *list, TOEIC *toeic);
void
list_manager (USER *user, LIST *list, TOEIC *toeic);
void
toeic_manager (USER *user, LIST *list, TOEIC *toeic);
void
change_manager(USER *user, LIST *list, TOEIC *toeic,
char
*name,
int
i,
int
mode);
void
delete_manager(USER *user,LIST *list, TOEIC *toeic,
int
mode);
void
sort_manager (USER *user, LIST *list, TOEIC *toeic);
void
grade_cal();
char
*grade(
double
score);
char
*ispil(
int
no);
char
*part(
int
no);
void
main()
{
char
temp[10]={0};
char
*sel;
sel=temp;
USER *user={0};
LIST *list={0};
TOEIC *toeic={0};
user = (USER*)
malloc
(
sizeof
(USER) * MAX);
list = (LIST*)
malloc
(
sizeof
(LIST) * MAX);
toeic = (TOEIC*)
malloc
(
sizeof
(TOEIC) * MAX);
load(user, list, toeic);
while
(1)
{
main_menu();
gets_s(sel,5);
sel=strupr(sel);
if
(*sel==
'1'
)
grade_menu(user, list, toeic);
if
(*sel==
'2'
)
list_menu(user, list, toeic);
if
(*sel==
'3'
)
toeic_menu(user, list, toeic);
if
(*sel==
'4'
)
mystats(user, list, toeic);
if
(*sel==
'5'
)
grade_cal();
if
(!
strcmp
(sel,
"H"
))
help_menu();
if
(!
strcmp
(sel,
"A"
))
about_menu();
if
(!
strcmp
(sel,
"X"
))
{
save(user, list, toeic);
break
;
}
}
}
void
save(USER *user, LIST *list, TOEIC *toeic)
{
FILE
*user_man, *list_man, *toeic_man;
user_man =
fopen
(
"user.dat"
,
"w"
);
fwrite
(&user_limit,
sizeof
(user_limit),1,user_man);
fwrite
(user,
sizeof
(USER)*MAX,1,user_man);
fclose
(user_man);
list_man =
fopen
(
"list.dat"
,
"w"
);
fwrite
(&list_limit,
sizeof
(list_limit),1,list_man);
fwrite
(list,
sizeof
(USER)*MAX,1,list_man);
fclose
(list_man);
toeic_man =
fopen
(
"toeic.dat"
,
"w"
);
fwrite
(&toeic_limit,
sizeof
(toeic_limit),1,toeic_man);
fwrite
(toeic,
sizeof
(USER)*MAX,1,toeic_man);
fclose
(toeic_man);
}
void
load(USER *user, LIST *list, TOEIC *toeic)
{
FILE
*user_man, *list_man, *toeic_man;
user_man =
fopen
(
"user.dat"
,
"r"
);
if
(!user_man)
{
user_man =
fopen
(
"user.dat"
,
"w+"
);
fclose
(user_man);
}
else
{
fread
(&user_limit,
sizeof
(user_limit),1,user_man);
fread
(user,
sizeof
(USER)*MAX,1,user_man);
fclose
(user_man);
}
list_man =
fopen
(
"list.dat"
,
"r"
);
if
(!list_man)
{
list_man =
fopen
(
"list.dat"
,
"w+"
);
fclose
(list_man);
}
else
{
fread
(&list_limit,
sizeof
(list_limit),1,list_man);
fread
(list,
sizeof
(LIST)*MAX,1,list_man);
fclose
(list_man);
}
toeic_man =
fopen
(
"toeic.dat"
,
"r"
);
if
(!toeic_man)
{
toeic_man =
fopen
(
"toeic.dat"
,
"w+"
);
fclose
(toeic_man);
}
else
{
fread
(&toeic_limit,
sizeof
(toeic_limit),1,toeic_man);
fread
(toeic,
sizeof
(TOEIC)*MAX,1,toeic_man);
fclose
(toeic_man);
}
}
void
clrscr()
{
system
(
"cls"
);
}
void
help_menu()
{
clrscr();
puts
(
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
" ┃ For My Future - Help ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ 공학인증에 특화된 미래를 위한 성적 관리 프로그램 ( 광운대학교 용 ) ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 주의 - 자세한 사항은 ReadMe.txt를 읽어보세요. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 1. 성적 관리 - 수강 과목 중에서 자신이 수강한 과목의 성적을 입력, ┃"
);
puts
(
" ┃ 관리하며, 평점등의 상황을 볼 수 있습니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 2. 수강 과목 관리 - 학기별 자신이 수강해야할 과목이나, ┃"
);
puts
(
" ┃ 공학인증 과목을 설정 하고 관리 해줍니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 3. 토익 점수 관리 - 자신의 토익 점수를 관리 합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 4. 현재 상황 보기 - 파일, 화면으로 전체 상황을 확인합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 5. 간이 평점 계산기 - 성적과 학점만을 입력하여 빠르게 평점을 확인 ┃"
);
puts
(
" ┃ ( 이경우 파일에 저장되지 않습니다. ) ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
system
(
"pause"
);
}
void
about_menu()
{
clrscr();
puts
(
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
" ┃ For My Future - About ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ 공학인증에 특화된 미래를 위한 성적 관리 프로그램 ( 광운대학교 용 ) ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 성공적인 취업을 위한 학점 관리 프로그램입니다. ┃"
);
puts
(
" ┃ 기본적으로 자신의 학점과 토익 성적등 졸업에 필요한 자료들을 ┃"
);
puts
(
" ┃ 입력한뒤 추후 관리를 할 수 있도록 만들어 주는 프로그램입니다. ┃"
);
puts
(
" ┃ 공학인증제를 하는 학생들을 위해 자신이 이수해야할 과목등을 ┃"
);
puts
(
" ┃ 알려주며 자신이 이수한 과목등에 대해 철저하게 관리를 해줍니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 본 프로그램은 2007년 고급 프로그래밍 및 실습의 프로젝트를 위해 ┃"
);
puts
(
" ┃ 작성되고, 제출되는 프로그램입니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 소스코드는 광운대학교 전자통신공학과 3학년 ┃"
);
puts
(
" ┃ 오형탁 ( 2002711158 ) , 김철기 ( 2005709043 ) 가 작성하였습니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
system
(
"pause"
);
}
void
main_menu()
{
clrscr();
puts
(
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
" ┃ For My Future ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ 공학인증에 특화된 미래를 위한 성적 관리 프로그램 ( 광운대학교 용 ) ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 1. 성적 관리 2. 수강 과목 관리 3. 토익 점수 관리 ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 4. 파일 또는 화면으로 현재 상황 보기 5. 간이 평점 계산기 ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ a. 본 프로그램에 대해서... h. 도움말 보기 ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
printf
(
">> 원하시는 메뉴를 고르세요 ( Quit : X ) --> "
);
}
void
user_manager_quick (USER *user, LIST *list, TOEIC *toeic)
{
int
i=0,same=0;
char
name[30],*temp;
temp=name;
printf
(
"\n빠른 입력 모드입니다. ( Quit : 엔터 )\n"
);
while
(list_limit < MAX)
{
same=0;
printf
(
"\n수강 과목 이름 ( Quit : 엔터 ) : "
);
gets
(temp);
if
(*temp ==
'\0'
)
break
;
for
(i=0;i<list_limit;i++)
if
(
strcmp
(temp,(list+i)-=
""
>name)==0)
{
same=1;
printf
(
"기존에 있던 리스트 과목명과 동일합니다. "
);
break
;
}
for
(i=0;i<user_limit;i++)
if
(
strcmp
(temp,(user+i)-=
""
>name)==0)
{
same=1;
printf
(
"기존에 있던 과목명과 동일합니다. 수정하시겠습니까? ( Y or N ) : "
);
gets
(temp);
if
(*temp ==
'y'
||*temp ==
'Y'
)
change_manager(user, list, toeic, (user+i)->name, i, 1 );
break
;
}
if
(!same)
{
strcpy
(user[user_limit].name,temp);
strcpy
(list[list_limit].name,temp);
printf
(
"받은 등급(점수) : "
);
gets
(temp);
if
(!*temp)
break
;
temp=strupr(temp);
if
(!
strcmp
(temp,
"A+"
)) (user+user_limit)->score=4.5;
else
if
(!
strcmp
(temp,
"A"
)||!
strcmp
(temp,
"A0"
)) (user+user_limit)->score=4.0;
else
if
(!
strcmp
(temp,
"B+"
)) (user+user_limit)->score=3.5;
else
if
(!
strcmp
(temp,
"B"
)||!
strcmp
(temp,
"B0"
)) (user+user_limit)->score=3.0;
else
if
(!
strcmp
(temp,
"C+"
)) (user+user_limit)->score=2.5;
else
if
(!
strcmp
(temp,
"C"
)||!
strcmp
(temp,
"C0"
)) (user+user_limit)->score=2.0;
else
if
(!
strcmp
(temp,
"D+"
)) (user+user_limit)->score=1.5;
else
if
(!
strcmp
(temp,
"D"
)||!
strcmp
(temp,
"D0"
)) (user+user_limit)->score=1.0;
else
if
(!
strcmp
(temp,
"F"
)) (user+user_limit)->score=0;
else
(user+user_limit)->score=
atof
(temp);
while
(1)
{
printf
(
"수강 연도 : "
);
scanf
(
"%d"
, &(user+user_limit)->year);
fflush
(stdin);
if
((user+user_limit)->year<100)(user+user_limit)->year+=2000;
(list+list_limit)->year=(user+user_limit)->year;
if
((user+user_limit)->term>0 && (user+user_limit)->term<10000)
break
;
}
while
(1)
{
printf
(
"수강 학기 ( 1: 봄학기 2: 가을학기 3:여름계절 4: 겨울계절 ) : "
);
scanf
(
"%d"
, &(user+user_limit)->term);
fflush
(stdin);
(list+list_limit)->term=(user+user_limit)->term;
if
((list+list_limit)->term>0 && (list+list_limit)->term<5)
break
;
}
while
(1)
{
printf
(
"인증 (0:아님, 1:인필, 2:인선) : : "
);
scanf
(
"%d"
, &(list+list_limit)->inpil);
fflush
(stdin);
if
(((list+list_limit)->inpil)>=0 && ((list+list_limit)->inpil)<3)
break
;
}
while
(1)
{
printf
(
"이수 구분 (0:교선, 1: 교필,2: 전선 3: 전필) : "
);
scanf
(
"%d"
, &(list+list_limit)->major);
fflush
(stdin);
if
(((list+list_limit)->major)>=0 && ((list+list_limit)->major)<4)
break
;
}
while
(1)
{
printf
(
"학점 (시수) ( 1,2,3 ) : "
);
scanf
(
"%d"
, &(list+list_limit)->sisoo);
fflush
(stdin);
if
(((list+list_limit)->sisoo)>0 && ((list+list_limit)->sisoo)<4)
break
;
}
user_limit++;
list_limit++;
}
sort_manager(user,list,toeic);
}
}
void
user_manager (USER *user, LIST *list, TOEIC *toeic)
{
int
i=0,same=0;
char
name[30],*temp;
temp=name;
while
(user_limit < MAX)
{
printf
(
"\n일반 입력 모드입니다. ( Quit : 엔터 , 수강한 과목 : 'p' , 기존 리스트 : 'l')\n"
);
same=0;
printf
(
"\n수강 과목 이름 ( Quit : 엔터 ) :"
);
gets
(temp);
if
(*temp ==
'\0'
)
break
;
if
(*temp ==
'l'
||*temp ==
'L'
)
{
list_view(list);
same=1;
}
if
(*temp ==
'p'
||*temp ==
'P'
)
{
user_view(user);
same=1;
}
for
(i=0;i<list_limit;i++)
if
(
strcmp
(temp,(list+i)-=
""
>name)==0)
{
same=0;
break
;
}
for
(i=0;i<user_limit;i++)
if
(
strcmp
(temp,(user+i)-=
""
>name)==0)
{
same=1;
printf
(
"기존에 있던 과목명과 동일합니다. 수정하시겠습니까? ( Y or N ) : "
);
gets
(temp);
if
(*temp ==
'y'
||*temp ==
'Y'
)
change_manager(user, list, toeic,(list+i)->name, i, 1 );
break
;
}
if
(!same)
{
strcpy
(user[user_limit].name,temp);
printf
(
"받은점수 : "
);
gets
(temp);
if
(!*temp)
break
;
temp=strupr(temp);
if
(!
strcmp
(temp,
"A+"
)) (user+user_limit)->score=4.5;
else
if
(!
strcmp
(temp,
"A"
)) (user+user_limit)->score=4.0;
else
if
(!
strcmp
(temp,
"B+"
)) (user+user_limit)->score=3.5;
else
if
(!
strcmp
(temp,
"B"
)) (user+user_limit)->score=3.0;
else
if
(!
strcmp
(temp,
"C+"
)) (user+user_limit)->score=2.5;
else
if
(!
strcmp
(temp,
"C"
)) (user+user_limit)->score=2.0;
else
if
(!
strcmp
(temp,
"D+"
)) (user+user_limit)->score=1.5;
else
if
(!
strcmp
(temp,
"D"
)) (user+user_limit)->score=1.0;
else
if
(!
strcmp
(temp,
"F"
)) (user+user_limit)->score=0;
else
(user+user_limit)->score=
atof
(temp);
printf
(
"수강연도 : "
);
scanf
(
"%d"
, &(user+user_limit)->year);
fflush
(stdin);
if
((user+user_limit)->year<100)(user+user_limit)->year+=2000;
(list+list_limit)->year=(user+user_limit)->year;
while
(1)
{
printf
(
"수강 학기 ( 1: 봄학기 2: 가을학기 3:여름계절 4: 겨울계절 ) : "
);
scanf
(
"%d"
, &(user+user_limit)->term);
fflush
(stdin);
(list+list_limit)->term=(user+user_limit)->term;
if
((list+list_limit)->term>0 && (list+list_limit)->term<5)
break
;
}
user_limit++;
}
sort_manager(user,list,toeic);
}
}
void
sort_manager (USER *user, LIST *list, TOEIC *toeic)
{
int
i=0,j=0;
USER user_temp;
LIST list_temp;
TOEIC toeic_temp;
for
(i=0;i<user_limit;i++)
for
(j=
"i;j<user_limit;j++)"
if
(=
""
((user+i)-=
""
>year*10+(user+i)->term) < ((user+j)->year*10+(user+j)->term) )
{
user_temp = *(user+i);
*(user+i) = *(user+j);
*(user+j) = user_temp;
}
for
(i=0;i<list_limit;i++)
for
(j=
"i;j<list_limit;j++)"
if
(=
""
((list+i)-=
""
>year*10+(list+i)->term) < ((list+j)->year*10+(list+j)->term) )
{
list_temp = *(list+i);
*(list+i) = *(list+j);
*(list+j) = list_temp;
}
for
(i=0;i<toeic_limit;i++)
for
(j=
"i;j<toeic_limit;j++)"
if
(=
""
(toeic+i)-=
""
>score < (toeic+j)->score )
{
toeic_temp = *(toeic+i);
*(toeic+i) = *(toeic+j);
*(toeic+j) = toeic_temp;
}
}
void
grade_menu(USER *user, LIST *list, TOEIC *toeic)
{
char
temp[10],temp2[30];
char
*sel, *chan;
int
i=0,same=0;
sel=temp;
chan=temp2;
while
(1)
{
clrscr();
puts
(
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
" ┃ For My Future - 성적 관리기 ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ 성적 관리 메뉴 입니다. 원하는 메뉴를 선택하세요. ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 1. 빠른 입력 - 수강 과목 관리를 거치지 않고 빠르게 입력합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 2. 일반 입력 - 수강 과목 관리에 입력된 데이터를 토대로 자신의 ┃"
);
puts
(
" ┃ 학점을 입력 받습니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 3. 성적 수정 - 수강 과목 관리에 입력된 데이터를 수정합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 4. 목록 보기 - 자신이 입력한 데이터를 살펴 봅니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 5. 평점 보기 - 전체적인 학점을 봅니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 6. 과목 삭제 - 리스트내의 과목중 원하는 과목을 삭제 합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
printf
(
">> 현재 %03d 건의 성적이 입력되어 있습니다.\n>> 메뉴를 선택하세요 ( Quit : X ) --> "
,user_limit);
gets_s(sel,5);
sel=strupr(sel);
if
(*sel==
'1'
)
user_manager_quick(user, list,toeic);
if
(*sel==
'2'
)
user_manager(user, list,toeic);
if
(*sel==
'3'
)
{
while
(1)
{
same=0;
printf
(
"\n수정할 과목 이름 ( Quit : 엔터 , 수강목록 : 'l' ): "
);
gets
(chan);
if
(*chan ==
'\0'
)
break
;
if
(*chan ==
'l'
||*chan ==
'L'
)
{
user_view(user);
same=1;
}
if
(!same)
{
for
(i=0;i<user_limit;i++) {=
""
same++;=
""
if
(
strcmp
(chan,(user+i)-=
""
>name)==0)
{
printf
(
"과목명을 찾았습니다. 수정하시겠습니까? ( Y or N ) : "
);
gets
(chan);
if
(*chan ==
'y'
||*chan ==
'Y'
)
change_manager(user, list, toeic,(user+i)->name, i, 1 );
break
;
}
}
if
(same==user_limit)
puts
(
"그런 과목명은 없습니다."
);
}
}
}
if
(*sel==
'4'
)
user_view(user);
if
(*sel==
'5'
)
mystats(user,list, toeic);
if
(*sel==
'6'
)
delete_manager(user,list,toeic,1);
if
(!
strcmp
(sel,
"X"
))
break
;
}
}
void
list_menu(USER *user, LIST *list, TOEIC *toeic)
{
char
temp[10];
char
*sel;
sel=temp;
while
(1)
{
clrscr();
puts
(
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
" ┃ For My Future - 수강 과목 관리기 ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ 수강 과목 관리 메뉴 입니다. 원하는 메뉴를 선택하세요. ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 1. 과목 입력 - 자신이 수강할 과목이나 수강한 과목의 기본 정보를 ┃"
);
puts
(
" ┃ 입력하거나 수정 관리 합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 2. 과목 보기 - 특정한 학기나, 전체적인 과목을 봅니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 3. 과목 삭제 - 리스트내의 과목중 원하는 과목을 삭제 합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
printf
(
">> 현재 %03d 건의 과목이 입력되어 있습니다.\n>> 메뉴를 선택하세요 ( Quit : X ) --> "
,list_limit);
gets_s(sel,5);
sel=strupr(sel);
if
(*sel==
'1'
)
list_manager(user, list,toeic);
if
(*sel==
'2'
)
list_view(list);
if
(*sel==
'3'
)
delete_manager(user,list,toeic,2);
if
(!
strcmp
(sel,
"X"
))
break
;
}
}
void
toeic_menu(USER *user, LIST *list, TOEIC *toeic)
{
char
temp[10];
char
*sel;
sel=temp;
while
(1)
{
clrscr();
puts
(
" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
" ┃ For My Future - 토익 점수 관리 ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ 토익 점수 관리 메뉴 입니다. 원하는 메뉴를 선택하세요. ┃"
);
puts
(
" ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 1. 점수 입력 - 자신이 받은 토익점수를 입력합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 2. 점수 보기 - 전체적인 토익점수를 봅니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┃ 3. 점수 삭제 - 특정 점수를 삭제 합니다. ┃"
);
puts
(
" ┃ ┃"
);
puts
(
" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
printf
(
">> 현재 %03d 건의 토익점수가 입력되어 있습니다.\n>> 메뉴를 선택하세요 ( Quit : X ) --> "
,toeic_limit);
gets_s(sel,5);
sel=strupr(sel);
if
(*sel==
'1'
)
toeic_manager(user, list, toeic);
if
(*sel==
'2'
)
toeic_view(toeic);
if
(*sel==
'3'
)
delete_manager(user,list,toeic,3);
if
(!
strcmp
(sel,
"X"
))
break
;
}
}
void
mystats(USER *user, LIST *list, TOEIC *toeic)
{
int
i,j,k=0,l=0,m=0,n=0,limit=0,sisoo=0,nodf=0;
int
toeic_top_score=0,total_sisoo=0;
int
total_sisoo_count=0,total_sisoo_count_nodf=0;
double
total_term=0,total_score=0,total_score_nodf=0;;
char
pass[5]=
"불가"
;
FILE
*report_man;
report_man =
fopen
(
"report.txt"
,
"w+"
);
for
(i=0;i<toeic_limit;i++)
if
(toeic_top_score<=
"(toeic+i)-"
>score)
toeic_top_score=(toeic+i)->score;
if
(toeic_top_score>=600)
strcpy
(pass,
"가능"
);
clrscr();
puts
(
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
"┃ For My Future - 현재 상황 ┃"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
"┃ ┃"
);
fprintf
(report_man,
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"
);
fprintf
(report_man,
"┃ For My Future - 현재 상황 ┃\n"
);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
fprintf
(report_man,
"┃ ┃\n"
);
fprintf
(report_man,
"┃ 이 Report.txt 문서는 For My Future 에서 작성된 파일입니다. ┃\n"
);
fprintf
(report_man,
"┃ 이 정보는 자신의 학점과 미수강과목, 그리고 재수강 해야하는 과목을 ┃\n"
);
fprintf
(report_man,
"┃ 상세하게 알려 줍니다. ┃\n"
);
fprintf
(report_man,
"┃ ┃\n"
);
limit=user_limit;
n=0;
nodf=0;
for
(i=0;i<limit;i++) {=
""
for
(j=
"i;j<limit;j++)"
{=
""
if
(=
""
(user+i)-=
""
>year*10+(user+i)->term==(user+j)->year*10+(user+j)->term )
{
k++;
for
(l=0;l<list_limit;l++) {=
""
if
(!=
""
strcmp
(=
""
(user+j)-=
""
>name,(list+l)->name ) )
sisoo=(list+l)->sisoo;
}
total_term+=((user+j)->score*sisoo);
total_sisoo+=sisoo;
if
(!((user+j)->term==4||(user+j)->term==3))
{
n++;
total_score+=((user+j)->score*sisoo);
total_sisoo_count+=sisoo;
}
if
(!((user+j)->term==4||(user+j)->term==3||(user+j)->score<2))
{
nodf++;
total_score_nodf+=((user+j)->score*sisoo);
total_sisoo_count_nodf+=sisoo;
}
}
}
i=k-1;
printf
(
"┃ %4d년 %d학기 - %2d개의 과목 , 평점 : %1.3f ┃\n"
,(user+i)->year,(user+i)->term,k-m,total_term/total_sisoo);
fprintf
(report_man,
"┃ %4d년 %d학기 - %2d개의 과목 , 평점 : %1.3f ┃\n"
,(user+i)->year,(user+i)->term,k-m,total_term/total_sisoo);
total_term=0;
total_sisoo=0;
m=k;
}
puts
(
"┃ ┃"
);
printf
(
"┃ 전체 평점 - 과목 : %2d개의 과목 , 평점 : %1.3f ┃\n"
,n,total_score/total_sisoo_count);
printf
(
"┃ 전체 평점 - 과목 : %2d개의 과목 , 평점 : %1.3f ( D+이하 삭제시 ) ┃\n"
,nodf,total_score_nodf/total_sisoo_count_nodf);
puts
(
"┃ ( 계절학기는 전체 평점에 포함 되지 않습니다. ) ┃"
);
puts
(
"┃ ┃"
);
fprintf
(report_man,
"┃ ┃\n"
);
fprintf
(report_man,
"┃ 전체 평점 - 과목 : %2d개의 과목 , 평점 : %1.3f ┃\n"
,n,total_score/total_sisoo_count);
fprintf
(report_man,
"┃ 전체 평점 - 과목 : %2d개의 과목 , 평점 : %1.3f ( D+이하 삭제시 ) ┃\n"
,nodf,total_score_nodf/total_sisoo_count_nodf);
fprintf
(report_man,
"┃ ( 계절학기는 전체 평점에 포함 되지 않습니다. ) ┃\n"
);
fprintf
(report_man,
"┃ ┃\n"
);
limit=list_limit,k=0,m=0;
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
printf
(
"┃ 미수강 과목명 |연도|학기|인증|구분|시수 ┃\n"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
fprintf
(report_man,
"┃ 미수강 과목명 |연도|학기|인증|구분|시수 ┃\n"
);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
for
(i=0;i<limit;i++) {=
""
=
""
l=
"0;"
for
(j=
"0;j<user_limit;j++)"
if
(=
""
!
strcmp
(=
""
(list+i)-=
""
>name,(user+j)->name ) )
l++;
if
(!l)
{
fprintf
(report_man,
"┃ %-30s |%4d|%4d|%04s|%04s|%4d ┃\n"
,
(list+i)->name,(list+i)->year,(list+i)->term,ispil((list+i)->inpil),part((list+i)->major),(list+i)->sisoo);
printf
(
"┃ %-30s |%4d|%4d|%04s|%04s|%4d ┃\n"
,
(list+i)->name,(list+i)->year,(list+i)->term,ispil((list+i)->inpil),part((list+i)->major),(list+i)->sisoo);
k++;
}
}
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
printf
(
"┃ 현재 총 %2d개 과목이 미수강 중입니다. 확인 바랍니다. ┃\n"
,k);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
fprintf
(report_man,
"┃ 현재 총 %2d개 과목이 미수강 중입니다. 확인 바랍니다. ┃\n"
,k);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
limit=user_limit,k=0,m=0;
puts
(
"┃ ┃"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
"┃ 재수강 과목명 |등급|연도|학기|인증|구분|시수 ┃"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
fprintf
(report_man,
"┃ ┃\n"
);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
fprintf
(report_man,
"┃ 재수강 과목명 |등급|연도|학기|인증|구분|시수 ┃\n"
);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
for
(i=0;i<limit;i++) {=
""
n=
"0;"
if
((user+i)-=
""
>score<2.0)
{
l=0;
for
(j=0;j<list_limit;j++)
if
(=
""
!
strcmp
(=
""
(user+i)-=
""
>name,(list+j)->name ) && ((list+j)->inpil==1 ||(list+j)->major==1||(list+j)->major==3))
n=j,l++;
if
(!l){
printf
(
"┃ %-30s |%4s|%4d|%4d|%04s|%04s|%4d ┃\n"
,
(user+i)->name,grade((user+i)->score),(user+i)->year,(user+i)->term,ispil((list+n)->inpil),part((list+n)->major),(list+n)->sisoo);
fprintf
(report_man,
"┃ %-30s |%4s|%4d|%4d|%04s|%04s|%4d ┃\n"
,
(user+i)->name,grade((user+i)->score),(user+i)->year,(user+i)->term,ispil((list+n)->inpil),part((list+n)->major),(list+n)->sisoo);
k++;
}
}
}
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
printf
(
"┃ 현재 총 %2d개 과목을 재수강 하셔야 합니다. 확인 바랍니다. ┃\n"
,k);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
"┃ ┃"
);
printf
(
"┃ 토익 점수 - 총 %02d 개의 입력중 최고점은 %3d 입니다. 졸업 %4s ┃\n"
,toeic_limit,toeic_top_score,pass);
puts
(
"┃ ┃"
);
puts
(
"┃ 자세한 내용은 Readme.txt 파일을 참고 하세요 ^^; ┃"
);
puts
(
"┃ ┃"
);
puts
(
"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
fprintf
(report_man,
"┃ 현재 총 %2d개 과목을 재수강 하셔야 합니다. 확인 바랍니다. ┃\n"
,k);
fprintf
(report_man,
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
);
fprintf
(report_man,
"┃ ┃\n"
);
fprintf
(report_man,
"┃ 토익 점수 - 총 %02d 개의 입력중 최고점은 %3d 입니다. 졸업 %4s ┃\n"
,toeic_limit,toeic_top_score,pass);
fprintf
(report_man,
"┃ ┃\n"
);
fprintf
(report_man,
"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
);
system
(
"pause"
);
fclose
(report_man);
}
void
list_view(LIST *list)
{
int
i=0;
clrscr();
puts
(
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
"┃ No. | 과목명 |연도|학기|인증|구분|시수 ┃"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
for
(i=0;i<list_limit;i++) {=
""
printf
(
"┃="
" %3d="
" |="
" %-30s |%4d|%4d|%04s|%04s|%4d="
" ┃\n"
,=
""
i+1,(list+i)-=
""
>name,(list+i)->year,(list+i)->term,ispil((list+i)->inpil),part((list+i)->major),(list+i)->sisoo);
if
( (list+i)->term!=(list+i+1)->term )
puts
(
"┃ ┃"
);
if
(i%15==14)
{
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
system
(
"pause"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
"┃ No. | 과목명 |연도|학기|인증|구분|시수 ┃"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
}
}
puts
(
"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
system
(
"pause"
);
}
void
user_view(USER *user)
{
int
i=0;
clrscr();
puts
(
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
puts
(
"┃ No. | 과목명 | 연도 | 학기 | 점수 | 등급 ┃"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
for
(i=0;i<user_limit;i++) {=
""
printf
(
"┃="
" %3d="
" |="
" %-30s ="
" %4d="
" %1.2f="
" %-2s="
" ┃\n"
,=
""
i+1,(user+i)-=
""
>name,(user+i)->year,(user+i)->term,(user+i)->score,grade((user+i)->score));
if
( (user+i)->term!=(user+i+1)->term )
puts
(
"┃ ┃"
);
if
(i%15==14)
{
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
system
(
"pause"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
puts
(
"┃ No. | 과목명 | 연도 | 학기 | 점수 | 등급 ┃"
);
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);
}
}
puts
(
"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
system
(
"pause"
);
}
void
toeic_view(TOEIC *toeic)
{
int
i=0;
clrscr();
puts
(
"┏━━━┳━━━━━━━┓"
);
puts
(
"┃ No. ┃ 받은 점수 ┃"
);
puts
(
"┣━━━╋━━━━━━━┫"
);
for
(i=0;i<toeic_limit;i++) {=
""
printf
(
"┃="
" %3d="
" ┃ %8d ┃\n"
,i+1,(toeic+i)-=
""
>score);
if
(i%15==14)
{
puts
(
"┗━━━┻━━━━━━━┛"
);
system
(
"pause"
);
puts
(
"┏━━━┳━━━━━━━┓"
);
puts
(
"┃ No. ┃ 받은 점수 ┃"
);
puts
(
"┣━━━╋━━━━━━━┫"
);
}
}
puts
(
"┗━━━┻━━━━━━━┛"
);
system
(
"pause"
);
}
char
*grade(
double
score)
{
char
*grade;
grade = (
char
*)
calloc
(2,
sizeof
(
char
));
if
(score >= 4.5)
strcpy
(grade,
"A+"
);
else
if
(score >= 4.0)
strcpy
(grade,
"A"
);
else
if
(score >= 3.5)
strcpy
(grade,
"B+"
);
else
if
(score >= 3.0)
strcpy
(grade,
"B"
);
else
if
(score >= 2.5)
strcpy
(grade,
"C+"
);
else
if
(score >= 2.0)
strcpy
(grade,
"C"
);
else
if
(score >= 1.5)
strcpy
(grade,
"D+"
);
else
if
(score >= 1.0)
strcpy
(grade,
"D"
);
else
strcpy
(grade,
"F"
);
return
grade;
}
char
*ispil(
int
no)
{
char
*grade;
grade = (
char
*)
calloc
(2,
sizeof
(
char
));
if
(!no)
strcpy
(grade,
"없음"
);
else
if
(no==1)
strcpy
(grade,
"인필"
);
else
if
(no==2)
strcpy
(grade,
"인선"
);
return
grade;
}
char
*part(
int
no)
{
char
*grade;
grade = (
char
*)
calloc
(2,
sizeof
(
char
));
if
(!no)
strcpy
(grade,
"교선"
);
else
if
(no==1)
strcpy
(grade,
"교필"
);
else
if
(no==2)
strcpy
(grade,
"전선"
);
else
if
(no==3)
strcpy
(grade,
"전필"
);
return
grade;
}
void
list_manager (USER *user, LIST *list, TOEIC *toeic)
{
int
i=0,same=0;
char
name[30],*temp;
temp=name;
while
(list_limit < MAX)
{
printf
(
"\n리스트입력모드입니다. ( Quit : 엔터 , 기존 리스트 : 'l' )"
);
same=0;
printf
(
"\n수강 과목 이름 : "
);
gets
(temp);
if
(*temp ==
'\0'
)
break
;
if
(*temp ==
'l'
||*temp ==
'L'
)
{
list_view(list);
same=2;
}
for
(i=0;i<list_limit;i++)
if
(
strcmp
(temp,(list+i)-=
""
>name)==0)
{
same=1;
printf
(
"기존에 있던 과목명과 동일합니다. 수정하시겠습니까? ( Y or N ) : "
);
gets
(temp);
if
(*temp ==
'y'
||*temp ==
'Y'
)
change_manager(user, list, toeic,(list+i)->name, i, 2 );
break
;
}
if
(!same)
{
strcpy
((list+list_limit)->name,temp);
printf
(
"수강연도 : "
);
scanf
(
"%d"
, &(list+list_limit)->year);
fflush
(stdin);
if
((list+list_limit)->year<100)(list+list_limit)->year+=2000;
while
(1)
{
printf
(
"수강 학기 ( 1: 봄학기 2: 가을학기 3:여름계절 4: 겨울계절 ) : "
);
scanf
(
"%d"
, &(list+list_limit)->term);
fflush
(stdin);
if
((list+list_limit)->term>0 && (list+list_limit)->term<5)
break
;
}
while
(1)
{
printf
(
"인증 (0:아님, 1:인필, 2:인선) : "
);
scanf
(
"%d"
, &(list+list_limit)->inpil);
fflush
(stdin);
if
(((list+list_limit)->inpil)>=0 && ((list+list_limit)->inpil)<3)
break
;
}
while
(1)
{
printf
(
"이수 구분 (0:교선, 1: 교필,2: 전선 3: 전필) : "
);
scanf
(
"%d"
, &(list+list_limit)->major);
fflush
(stdin);
if
(((list+list_limit)->major)>=0 && ((list+list_limit)->major)<4)
break
;
}
while
(1)
{
printf
(
"학점 (시수) ( 1,2,3 ) : "
);
scanf
(
"%d"
, &(list+list_limit)->sisoo);
fflush
(stdin);
if
(((list+list_limit)->sisoo)>0 && ((list+list_limit)->sisoo)<4)
break
;
}
list_limit++;
}
sort_manager(user,list,toeic);
}
}
void
toeic_manager (USER *user, LIST *list, TOEIC *toeic)
{
int
i=0,same=0;
char
name[30],*temp;
temp=name;
while
(toeic_limit < MAX)
{
same=0;
printf
(
"\n%d번째 토익 성적을 입력해 주시기 바랍니다. ( Quit : 엔터 , 기존 리스트 : 'l' )"
,toeic_limit+1);
printf
(
"\n받은 점수 : "
);
gets
(temp);
if
(*temp ==
'\0'
)
break
;
if
(*temp ==
'l'
||*temp ==
'L'
)
{
toeic_view(toeic);
same=1;
}
if
(!same)
{
(toeic+toeic_limit)->score=
atoi
(temp);
toeic_limit++;
}
sort_manager(user,list,toeic);
}
}
void
change_manager(USER *user, LIST *list, TOEIC *toeic,
char
*name,
int
i,
int
mode)
{
int
choice=0,j=0;
char
*temp;
temp = (
char
*)
malloc
(30*
sizeof
(
char
));
if
(mode==1)
{
while
(choice < 1 || choice > 4)
{
printf
(
"\n# ------ 수정하고자 하는 항목을 선택해 주세요 ------ #"
);
printf
(
"\n1.수강 과목 이름"
);
printf
(
"\n2.수강 연도"
);
printf
(
"\n3.수강 학기"
);
printf
(
"\n4.등급 (받은점수)"
);
printf
(
"\n선택: "
);
scanf
(
"%d"
, &choice);
fflush
(stdin);
}
switch
(choice)
{
case
1:
printf
(
"\n기존 수강 과목 이름 : %s \n수정할 이름을 입력: "
,name);
gets
(temp);
if
(*temp ==
'\0'
)
break
;
for
(j=0;j<user_limit;j++)
if
(
strcmp
(temp,(user+j)-=
""
>name)==0)
{
puts
(
"기존에 있던 과목명과 동일합니다."
);
break
;
}
strcpy
((user+i)->name,temp);
break
;
case
2:
printf
(
"\n기존 수강 연도 : %d \n 수정할 수강 연도 : "
,(user+i)->year);
scanf
(
"%d"
, &(user+i)->year);
fflush
(stdin);
break
;
case
3:
while
(1)
{
printf
(
"\n기존 수강 학기 : %d \n수강 학기 ( 1: 봄학기 2: 가을학기 3:여름계절 4: 겨울계절 ) : "
,(user+i)->term);
scanf
(
"%d"
, &(user+i)->term);
fflush
(stdin);
if
((user+i)->term>0 && (user+i)->term<5)
break
;
}
break
;
case
4:
while
(1)
{
printf
(
"\n기존 받은 등급 : %f\n수정할 등급 입력 : "
,(user+i)->score);
gets
(temp);
if
(!*temp)
break
;
temp=strupr(temp);
if
(!
strcmp
(temp,
"A+"
)) (user+i)->score=4.5;
else
if
(!
strcmp
(temp,
"A"
)||!
strcmp
(temp,
"A0"
)) (user+i)->score=4.0;
else
if
(!
strcmp
(temp,
"B+"
)) (user+i)->score=3.5;
else
if
(!
strcmp
(temp,
"B"
)||!
strcmp
(temp,
"B0"
)) (user+i)->score=3.0;
else
if
(!
strcmp
(temp,
"C+"
)) (user+i)->score=2.5;
else
if
(!
strcmp
(temp,
"C"
)||!
strcmp
(temp,
"C0"
)) (user+i)->score=2.0;
else
if
(!
strcmp
(temp,
"D+"
)) (user+i)->score=1.5;
else
if
(!
strcmp
(temp,
"D"
)||!
strcmp
(temp,
"D0"
)) (user+i)->score=1.0;
else
if
(!
strcmp
(temp,
"F"
)) (user+i)->score=0;
else
(user+i)->score=
atof
(temp);
break
;
}
break
;
}
}
if
(mode==2)
{
while
(choice < 1 || choice > 7)
{
printf
(
"\n# ------ 수정하고자 하는 항목을 선택해 주세요 ------ #"
);
printf
(
"\n1.수강 과목 이름"
);
printf
(
"\n2.수강 연도"
);
printf
(
"\n3.수강 학기"
);
printf
(
"\n4.인증 필수 유무"
);
printf
(
"\n5.전공&교양 필수 유무"
);
printf
(
"\n6.학점 (시수)"
);
printf
(
"\n선택: "
);
scanf
(
"%d"
, &choice);
fflush
(stdin);
}
switch
(choice)
{
case
1:
printf
(
"\n기존 수강 과목 이름 : %s \n수정할 이름을 입력: "
,name);
gets
(temp);
if
(*temp ==
'\0'
)
break
;
for
(j=0;j<list_limit;j++)
if
(
strcmp
(temp,(list+j)-=
""
>name)==0)
{
puts
(
"기존에 있던 과목명과 동일합니다."
);
break
;
}
strcpy
((list+i)->name,temp);
break
;
case
2:
printf
(
"\n기존 수강 연도 : %d \n 수정할 수강 연도 : "
,(list+i)->year);
scanf
(
"%d"
, &(list+i)->year);
fflush
(stdin);
break
;
case
3:
while
(1)
{
printf
(
"\n기존 수강 학기 : %d \n수강 학기 ( 1: 봄학기 2: 가을학기 3:여름계절 4: 겨울계절 ) : "
,(list+i)->term);
scanf
(
"%d"
, &(list+i)->term);
fflush
(stdin);
if
((list+i)->term>0 && (list+i)->term<5)
break
;
}
break
;
case
4:
while
(1)
{
printf
(
"\n기존 인증 필수 유무 : %s\n인증 (0:아님, 1:인필, 2:인선) : : "
,ispil((list+i)->inpil));
scanf
(
"%d"
, &(list+i)->inpil);
fflush
(stdin);
if
(((list+i)->inpil)>=0 && ((list+i)->inpil)<3)
break
;
}
break
;
case
5:
while
(1)
{
printf
(
"\n기존 이수 구분 : %s\n이수구분 (0:교선, 1: 교필,2: 전선 3: 전필) : "
,part((list+i)->major));
scanf
(
"%d"
, &(list+i)->major);
fflush
(stdin);
if
(((list+i)->major)>=0 && ((list+i)->major)<4)
break
;
}
break
;
case
6:
while
(1)
{
printf
(
"\n기존 학점 ( 시수 ) : %d 학점\n학점 (시수) ( 1,2,3 ) : "
,(list+i)->sisoo);
scanf
(
"%d"
, &(list+i)->sisoo);
fflush
(stdin);
if
(((list+i)->sisoo)>0 && ((list+i)->sisoo)<4)
break
;
}
break
;
}
}
sort_manager(user,list,toeic);
}
void
delete_manager(USER *user, LIST *list, TOEIC *toeic,
int
mode)
{
int
i=0,num=0,same=0;
char
*temp;
temp = (
char
*)
malloc
(30*
sizeof
(
char
));
if
(mode==1)
{
while
(1)
{
printf
(
"\n삭제할 과목의 이름을 입력하세요 ( Quit : 엔터 , 기존 리스트 : 'l' ) :"
);
gets
(temp);
same=0;
if
(*temp ==
'\0'
)
break
;
if
(*temp ==
'l'
||*temp ==
'L'
)
{
list_view(list);
same=1;
}
if
(!same)
{
for
(i=0;i<list_limit;i++)
if
(
strcmp
(temp,(list+i)-=
""
>name)==0)
break
;
if
(i==list_limit)
puts
(
"입력하신 이름의 과목이 없습니다.\n"
);
else
{
for
(i;i<list_limit;i++) *(list+i)=
"*(list+i+1);"
list_limit--;=
""
puts
(
"삭제="
" 되었습니다."
);=
""
}=
""
}=
""
}=
""
}=
""
if
(mode=
"=2)"
{=
""
while
(1)=
""
{=
""
printf
(
"\n삭제할="
" 과목의="
" 이름을="
" 입력하세요="
" (="
" quit="
" :="
" 엔터="
" ,="
" 기존="
" 리스트="
" 'l'="
" )="
" :"
);=
""
gets
(temp);=
""
same=
"0;"
if
(*temp=
"="
'\0'
)=
""
break
;=
""
'l'
||*temp=
"="
'l'
)=
""
{=
""
list_view(list);=
""
same=
"1;"
if
(!same)=
""
for
(i=
"0;i<list_limit;i++)"
if
(
strcmp
(temp,(list+i)-=
""
>name)==0)
break
;
if
(i==list_limit)
puts
(
"입력하신 이름의 과목이 없습니다.\n"
);
else
{
for
(i;i<list_limit;i++) *(list+i)=
"*(list+i+1);"
list_limit--;=
""
puts
(
"삭제="
" 되었습니다."
);=
""
}=
""
}=
""
}=
""
}=
""
if
(mode=
"=3)"
{=
""
while
(1)=
""
{=
""
=
""
메뉴부분=
""
same=
"0;"
toeic_view(toeic);=
""
printf
(
"\n삭제할="
" 토익점수의="
" 리스트="
" 번호를="
" 입력하세요="
" (="
" quit="
" :="
" 숫자="
" '0'="
" )="
" "
);=
""
scanf
(
"%d"
,&num);=
""
if
(!num)=
""
break
;=
""
if
(num=
""
>toeic_limit)
{
puts
(
"입력하신 토익점수의 리스트 번호가 없습니다.\n"
);
same=1;
break
;
}
if
(!same)
{
for
(num;num<toeic_limit;num++) *(toeic+num)=
"*(toeic+num+1);"
toeic_limit--;=
""
puts
(
"삭제="
" 되었습니다."
);=
""
}=
""
}=
""
}=
""
system
(
"pause"
);=
""
}=
""
void
=
""
grade_cal()=
""
간이=
""
평점=
""
계산기=
""
{=
""
int
=
""
calnum=
"1,total_sisoo=0,sisoo=0;"
double
=
""
score=
"0;"
char
=
""
temp[10],*grade;=
""
grade=
"temp;"
while
(1)=
""
{=
""
clrscr();=
""
puts
(
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);=
""
puts
(
"┃ for="
" my="
" future="
" -="
" 계산기 ="
" ┃"
);=
""
puts
(
"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"
);=
""
puts
(
"┃ ="
" 성적="
" 입니다.="
" 평점과="
" 과목당="
" 학점을="
" 입력해="
" 주세요. ="
" puts("
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
");="
" if(calnum="
=1)
" printf("
=
""
>> 현재 입력된 데이터가 없습니다.\n");
else
printf
(
">> 현재 전체 평점 %1.3f 에 총 %2d 학점이 입력되어 있습니다.\n"
,score/total_sisoo,total_sisoo);
printf
(
"\n>> %2d 번째 과목의 평점(점수)은? ( Quit : 엔터 ) --> "
,calnum);
gets
(grade);
if
(!*grade)
break
;
grade=strupr(grade);
printf
(
">> %2d 번째 과목의 학점(시수)는? --> "
,calnum);
scanf
(
"%d"
,&sisoo);
fflush
(stdin);
if
(!
strcmp
(grade,
"A+"
)) score+=4.5*sisoo;
else
if
(!
strcmp
(grade,
"A"
)||!
strcmp
(temp,
"A0"
)) score+=4.0*sisoo;
else
if
(!
strcmp
(grade,
"B+"
)) score+=3.5*sisoo;
else
if
(!
strcmp
(grade,
"B"
)||!
strcmp
(temp,
"B0"
)) score+=3.0*sisoo;
else
if
(!
strcmp
(grade,
"C+"
)) score+=2.5*sisoo;
else
if
(!
strcmp
(grade,
"C"
)||!
strcmp
(temp,
"C0"
)) score+=2*sisoo;
else
if
(!
strcmp
(grade,
"D+"
)) score+=1.5*sisoo;
else
if
(!
strcmp
(grade,
"D"
)||!
strcmp
(temp,
"D0"
)) score+=1*sisoo;
else
if
(!
strcmp
(grade,
"F"
)) score+=0*sisoo;
else
score+=
atof
(grade)*sisoo;
total_sisoo+=sisoo;
calnum++;
}
if
(calnum>1)
{
puts
(
"\n\n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
);
printf
(
"┃ 전체 평점 %1.3f 에 총 %02d 학점을 이수하였습니다. ┃\n"
,score/total_sisoo,total_sisoo);
puts
(
"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
);
}
system
(
"pause"
);
}</toeic_limit;num++)></list_limit;i++)></list_limit;i++)></list_limit;i++)></list_limit;j++)></user_limit;j++)></list_limit;i++)></toeic_limit;i++)></user_limit;i++)></list_limit;i++)></list_limit;j++)></limit;i++)></limit;i++)></list_limit;l++)></limit;i++)></toeic_limit;i++)></user_limit;i++)></toeic_limit;i++)></list_limit;i++)></user_limit;i++)></user_limit;i++)></list_limit;i++)></user_limit;i++)></list_limit;i++)></ctype.h>