현재 위치 - 인적 자원 플랫폼망 - APP 자료 - VC++ 커리큘럼 디자인: 기숙사 관리 시스템
VC++ 커리큘럼 디자인: 기숙사 관리 시스템
# include & ltiostream & gt

# 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

}

s reserved