# include & lt 문자열>
# include & ltfstream & gt
# include & ltctime & gt
네임스페이스 STD 사용
학급 학생
{
개인:
Long int stu _ num// 학생증, 기숙사 번호
Char stu _ name [40]; //이름
Char class _ name [40]; //클래스
Char house _ name [20]; //기숙사
공용:
학생 ()
{
스튜 _ 숫자 = 0;
Stu _ name [0] = 0;
Class _ name [0] = 0;
House _ name [0] = 0;
}
Student::student (긴 a, char * b, char *c, char *d)
{
Setdata(a, b, c, d);
}
Char * Getstuname(void )// 이름 조회
{
Stu _ name 을 반환합니다
}
Long Getstunum(void )// 학생 번호 검색
{
Return stu _ num
}
Char * Gethousename(void )// 기숙사 번호 검색
{
House _ name 을 반환합니다
}
Char * get class name(void )// 클래스별 검색.
{
Class _ name 을 반환합니다
}
Void Setdata(long a, char *b, char *c, char *d)
{
스튜 _ 숫자 = a;;
Strcpy(stu _ name, b);
Strcpy(class _ name, c);
Strcpy(house _ name, d);
}
유효하지 않은 표시 (유효하지 않음)
{
Cout & lt& lt "학생 번호:"
Cout & lt& lt "범주:"
}
}
잘못된 탐색기 (잘못된 탐색기)
{
학생 s1;
Intflags = 0;
Long stu _ num// 학생 번호
Char stu _ name [40]; //이름
Char class _ name [40]; //클래스
Char house _ name [20]; //기숙사
Time _ t t t
시간 (ampt);
If stream file1;
Ofstream 파일 3;
Char flag =' y';
Cout & lt< "-학생 성적 관리 시스템. & ltendl
Cout & lt< "t \ t \ t 시간:"
While (flag = =' y' | | flag = =' y')
플래그로 제어되는 기간입니다.
Cout & lt<'-\ n';
Cout & lt< "\ t \ t1:학생 등록! \ n ";
Cout & lt< "\ t \ T2: 학번별로 학생 정보 보기! \ n ";
Cout & lt< "\ t \ T3: 기숙사 번호별 학생 정보 보기! \ n ";
Cout & lt< "\ t \ T4: 이름별 학생 정보 보기! \ n ";
Cout & lt< "\ t \ t5: 클래스별 학생 정보 보기! \ n ";
Cout & lt< "\ t \ T6: 모든 학생 정보 표시 \ n;
///cout & lt;; & lt "\ t \ T7: 학번을 기준으로 학생 정보 수정 \ n;
///cout & lt;; & lt "\ t \ t8: 학번을 기준으로 학생 정보를 삭제합니다! \ n ";
Cout & lt<'-\ n';
Cout & lt& lt 한 가지 옵션을 입력하십시오. ";
Char 선택;
CIN>;; & gt 선택;
스위치 (선택)
{
사례' 1':
File3.open ("c: \ \ stu.dat", IOs:: app | IOs:: binary);
입력: flags = 0;;
Cout & lt& lt "학생 번호 입력:";
CIN>;; & gtstu _ num
While(stu _ num<;; 100000 | | stu _ num > 999999)
{
Cin.clear ();
되감기 (stdin);
Cout & lt& lt "잘못된 학번을 입력했습니다. 6 자리 학번" & ltendl "을 입력하십시오
Cout & lt& lt "학번:";
CIN>;; & gtstu _ num
}
File1.open ("c: \ \ stu.dat", IOs:: in | IOs:: binary | IOs:: beg //읽기 방식으로 파일을 엽니다.
그리고 (! File 1.eof ())
{
Int n;;
File1.read ((char *) & S 1, sizeof (student);
N = 파일1.gcount ();
If(n = = sizeof(student))
{
If(s 1. Getstunum () = = = stu _ num)
Flags =1;
}
}
File1.clear ();
File1.close ();
If(flags = = 1)
{
Cin.clear ();
Cout & lt& lt "학번이 중복됩니다. 다시 입력해주세요!" & lt& ltendl
입력으로 이동
}
Cout & lt& lt "이름 입력:"; CIN>;; & gtstu _ name
Cout & lt& lt "입력 범주:"; CIN>;; & gtclass _ name
Cout & lt& lt "기숙사에 들어가다:"; CIN>;; & gthouse _ name
S 1 입니다. Setdata(stu _ num, stu_name, class_name, house _ name);
File3.write ((char *) & S 1, sizeof (s1);
File3.clear ();
File3.close ();
깨뜨리다
사례' 2'://학생 ID 별 검색
Cout & lt& lt 학생 id 입력: ";
CIN>;; & gtstu _ num
While(stu _ num<;; 100000 | | stu _ num > 999999)
{
Cin.clear ();
되감기 (stdin);
Cout & lt& lt "잘못된 학번을 입력했습니다. 6 자리 학번" & ltendl "을 입력하십시오
Cout & lt& lt "학번:";
CIN>;; & gtstu _ num
}
File1.open ("c: \ \ stu.dat", IOs:: in | IOs:: binary | IOs:: beg //읽기 방식으로 파일을 엽니다.
그리고 (! File 1.eof ())
{
Int n;;
File1.read ((char *) & S 1, sizeof (student);
N = 파일1.gcount ();
If(n = = sizeof(student))
{
If(s 1. Getstunum()= = stu _ num)// 학생 정보 표시.
{
S 1 입니다. 쇼 ();
Flags =1;
}
}
}
File1.clear ();
File1.close ();
If(flags = = 0)
Cout & lt& lt "학생 번호를 찾지 못했습니다."
Flags = 0;;
깨뜨리다
사례' 3'://기숙사 번호로 검색
Cout & lt& lt "기숙사 번호를 입력하십시오:";
CIN>;; & gthouse _ name
File1.open ("c: \ \ stu.dat", IOs:: in | IOs:: binary | IOs:: beg //읽기 방식으로 파일을 엽니다.
그리고 (! File 1.eof ())
{
Int n;;
File1.read ((char *) & S 1, sizeof (student);
N = 파일1.gcount ();
If(n = = sizeof(student))
{
If(strcmp(s 1. Gethousename (), house _ name = = 0)
{
S 1 입니다. 쇼 ();
Flags =1;
}
}
}
File1.clear ();
File1.close ();
If(flags = = 0)
Cout & lt& lt 기숙사를 찾을 수 없습니다: "< 집 이름<& lt" 학생 기록! " & lt& ltendl
Flags = 0;;
깨뜨리다
사례 "4"://이름별 검색
Cout & lt& lt 학생 이름을 입력하십시오: ";
CIN>;; & gtstu _ name
File1.open ("c: \ \ stu.dat", IOs:: in | IOs:: binary | IOs:: beg //읽기 방식으로 파일을 엽니다.
그리고 (! File 1.eof ())
{
Int n;;
File1.read ((char *) & S 1, sizeof (student);
N = 파일1.gcount ();
If(n = = sizeof(student))
{
If(strcmp(s 1. Getstuname (), stu _ name)= = 0)
{
S 1 입니다. 쇼 ();
Flags =1;
}
}
}
File1.clear ();
File1.close ();
If(flags = = 0)
Cout & lt& lt "이름:"
Flags = 0;;
깨뜨리다
사례' 5'://클래스별 검색
Cout & lt& lt 클래스 이름을 입력하십시오: ";
CIN>;; & gtclass _ name
File1.open ("c: \ \ stu.dat", IOs:: in | IOs:: binary | IOs:: beg //읽기 방식으로 파일을 엽니다.
그리고 (! File 1.eof ())
{
Int n;;
File1.read ((char *) & S 1, sizeof (student);
N = 파일1.gcount ();
If(n = = sizeof(student))
{
If(strcmp(s 1. Getclassname (), class _ name)= = 0)
{
S 1 입니다. 쇼 ();
Flags =1;
}
}
}
File1.clear ();
File1.close ();
If(flags = = 0)
Cout & lt& lt "범주를 찾을 수 없음:"
Flags = 0;;
깨뜨리다
사례' 6'://모든 학생 정보 표시.
File1.open ("c: \ \ stu.dat", IOs:: IOs::in | IOs::binary);); //읽기 방식으로 파일을 엽니다.
그리고 (! File 1.eof ())
{
Int n;;
File1.read ((char *) & S 1, sizeof (student);
N = 파일1.gcount ();
If(n = = sizeof(student))
{
S 1 입니다. 쇼 ();
Flags =1;
}
}
File1.clear ();
File1.close ();
If(flags = = 0)
Cout & lt& lt "데이터베이스에 레코드가 없습니다!" & lt& ltendl
Flags = 0;;
깨뜨리다
//사례' 7'://학번을 기준으로 학생 정보를 수정합니다.
///flags = 0;;
///cout & lt;; & lt "수정할 학생 id 입력:";
///CIN & gt;; & gtstu _ num
///while(stu _ num<;; 100000 | | stu _ num > 999999)
//{
//cin.clear ();
///rewind(stdin););
///cout & lt;; & lt "잘못된 학번을 입력했습니다. 6 자리 학번" & ltendl "을 입력하십시오
///cout & lt;; & lt "학번:";
///CIN & gt;; & gtstu _ num
//}
//file1.open ("c: \ \ stu.dat", IOs:: in | IOs:: binary | IOs: //읽기 방식으로 파일을 엽니다.
// while (! File 1.eof ())
//{
///int n;;
//file1.read ((char *) & S 1, sizeof (student);
//n = 파일1.gcount ();
//if(n = = sizeof(student))
//{
//if(s 1. Getstunum () = = = stu _ num)
//{
//file3.open ("c: \ \ stu.dat", IOs:: out | IOs:: binary);
///cout & lt;; & lt "이름 입력:"; CIN>;; & gtstu _ name
///cout & lt;; & lt "입력 범주:"; CIN>;; & gtclass _ name
///cout & lt;; & lt "기숙사에 들어가다:"; CIN>;; & gthouse _ name
// s 1 입니다. Setdata(stu _ num, stu_name, class_name, house _ name);
//file3.write ((char *) & S 1, sizeof (s1);
//file3.close ();
//flags =1;
//}
//}
//}
//file1.clear ();
//file1.close ();
//if(flags = = 0)
//{
///cout & lt;; & lt 학생 레코드가 없으므로 & lt& ltendl 을 수정할 수 없습니다
///break;;
//}
///break;;
//사례' 8'://학번을 기준으로 학생 정보를 삭제합니다.
기본값: flag =' n';
깨뜨리다
}
}
Cout & lt& lt "사용해 주셔서 감사합니다!" & lt& ltendl
}