# include & ltiostream.h & gt
# include & ltstdio.h & gt
# include & ltstring.h & gt
# include & ltfstream.h & gt
# include & ltstdlib.h & gt
int cs //define global variable cs
class student
{
Private: //define private member
int num
character name[10];
char addr[10];
char age[10];
Public:
void Insert();
void Show();
void Find();
void Del();
void Sort(); p>
void Save();
void Read();
void save as();
fstream iof
};
Student add[100];
Void student::Insert() // 입력할 객체 추가하기 객체를 삽입합니다.
{
char ready = ' y
cout & lt& lt "이전에 입력한 정보를 읽으시겠습니까? [예/아니요]" & lt; & ltendl
CIN & gt; & gt ready;
if(ready=='Y' | ready=='y ')
{ Read(); }
cout & lt& lt학생 정보(학생번호, 이름, 출신지 및 생년월일)를 입력하세요." < & & ltendl
for(int I = 0; I& lt100;i++)
{
cout & lt& lt "학생번호 입력:";
CIN & gt; & gt add [i]. num
cout & lt& lt "이름 입력:";
CIN & gt; & gt 추가 [i]. 이름;
cout & lt& lt "출신지 입력:";
CIN & gt; & gt 추가 [i]. addr
cout & lt& lt "생년월일 입력:";
CIN & gt; & gt 추가 [i]. 나이;
cs+= 1;
cout & lt& lt "현재,"
cout & lt& lt "계속하시겠습니까? [예/아니오]" & lt; & ltendl
CIN & gt; & gt ready;
if(ready=='N' || ready=='n ')
{
cout & lt& lt "입력하신 정보는:"
show();
브레이킹입니다;
}
}
}
Void student::Show() // 표시할 객체를 표시합니다.
{
for(int j = 0; j & ltcs; j++)
{
cout & lt& lt "학생 번호"< & lt add[j]. num & lt& lt "이름"
}
}
< /p>
Void student::Find() // 쿼리 객체를 찾습니다.
{
cout & lt& lt찾고자 하는 학생 아이디를 입력하세요:"< & lt; endl
int y;
CIN & gt; & gty;
for(int a = 0; a & ltcs; a++)
{ p>
bool bo = true
if (add [a]. Number == y)
{
cout & lt& lt "학생 번호" < & lt add [a]. num & lt& lt "이름"
}
}
}
Void student::Del( ) //Del 객체를 삭제합니다.
{
cout & lt& lt "삭제할 학생 번호를 입력하세요:"
int y2
CIN & gt; & gty2;
for(int c = 0; c & ltcs; c++)
{
If (plus[c]. Number == y2)
{
add[c]. num = add[c+1]. num
strcpy(add[c]. Name, add[c+1]. Name);
strcpy(add [c].addr, add [c+1]. addr);
strcpy(add [c]. Age, add [c+1]. Age);
}
}
cout & lt& lt "학생 정보가 삭제되었습니다"
for(int w = 0; w & ltcs-1; w++)
{
cout & lt& lt "학생 번호가 삭제되었습니다. "< & lt add[w]. num & lt& lt "name"
}
}
//const int I2 = 3;
//Student zkk
Void student::Sort() //sort 객체를 정렬합니다.
{
cout & lt& lt 정렬 후, 우리는
int t; //교환을 위한 중간 변수 t
char ch 1[10]; //교환을 위한 중간 변수 ch1
char CH2[10]; //교환을 위한 중간 변수 ch2
char CH3[10]; //교환에 사용되는 중간 변수 ch3
for(int d = 0; d & ltcs; d++)
{
for(int e = d+1; e & ltcs; e++)
{
If (add [d]. num & gt add [e]. Number)
{
t = add[d]. num
add[d]. num = add[e]. num
add[e]. num
add[e]. num = t;
strcpy(ch1, add[d]. Name);
strcpy(add [d]. Name, add[e]. Name);
strcpy(add [e]. Name, ch 1);
strcpy(ch2, add[d]). addr);
strcpy(add[d]. addr, add[e]. addr);
strcpy(add[e]. addr, ch2);
strcpy(ch3, add[d]. ). Age);
strcpy(add [d]. Age, add[e]. Age);
strcpy(add [e]. Age, CH3);
}
}
for(int I 1 = 0; I 1 & lt; cs; i1++)
{
cout & lt& lt "학교번호"< & lt add[i1]. num & lt& lt "이름"
}
}
학생::저장() //Save 객체를 무효화하여 저장합니다.
{
char re = ' y
cout & lt& lt이 작업을 선택하면 abc.txt 파일에 입력한 정보가 동일한 디렉터리에 저장됩니다 & lt& ltendl
cout & lt& lt "정말 저장하시겠습니까? [yes/no]" & lt; & ltendl
CIN & gt; & gtre;
if(re=='Y' || re=='y ')
{
iof.open("abc.txt", IOs::out | IOs::app);
if(! iof)
{
cerr & lt& lt "파일 열기 오류"
exit(0);
}
iof.write((char *)add, sizeof(student));
iof . close();
cout & lt& lt "메시지 저장됨"
char re2 = ' y
cout & lt& lt "다른 이름으로 저장? [yes/no]" & lt; & ltendl
CIN & gt; & gtre2
if(re2=='y' || re2=='Y ')
{
save as();
}
}
p>
다른
{
cout & lt& lt "메시지가 저장되지 않았습니다"
}
}
void Student::Read()
{
/* FILE * FP;
if((fp=fopen("abc.txt", " Rb ") == NULL)
{< /p>
Printf("파일을 열 수 없습니다! \ n ");
Exit(0);
}
for(int RR = 0; rr & ltcs; rr++)
{
Fred(& ampadd[rr], sizeof(class student), 1, FP);
Printf("학교번호:%-. 10s 이름:%4d 출생지:%4d 생년월일:%-15s \ n", [RR] 추가. 숫자, [RR] 추가. 이름, [RR] 추가. 주소, [RR] 추가. age).
}
fclose(FP);*/
ifstream inf
//char infname[20];
cout & lt& lt "Reading data from abc.txt:"
//cin.getline( infname, sizeof(infname));
inf.open("abc.txt", IOs::in | IOs::binary | IOs::no create | IOs::app);
If(!inf)
{
cerr & lt & lt "파일이 존재하지 않습니다"
exit(0);
}
for(int r = 0; r & ltcs; r++)
{
INF . read((char *)& amp; add, sizeof(class student));
cout & lt& lt "학생번호"< & lt add[r]. num & lt& lt "이름"
}
}
void student::Saveas()
{
fstream iof
char oname[20];
char ch
iof.open("abc.txt", IOs::in);
cout & lt& lt "부탁합니다. 저장 경로와 파일명을 입력하세요:"
cin.getline(oname, sizeof(oname));
iof.open(oname, IOs::out | IOs::no replace);
If(!iof)
{
cerr & lt& lt "파일이 이미 존재합니다"
exit(0);
}
while(iof . GET(CH))IOF . PUT(CH);
IOF . close();
}
p>
//프로그램 메인 진입점
void main()
{
for(;;)
{
cout & lt& lt"-"& lt;& ltendl
cout & lt& lt"-"& lt; & ltendl
cout & lt& lt "학생 관리"
cout & lt& lt& lt "-"& lt; & ltendl
cout & lt& lt"☆ [1]입력 [2]찾기 [3]삭제 [4]정렬 [5]저장 [6]종료 ☆;" & lt; & ltendl
cout & lt& lt "-"& lt; & ltendl
학생 h;
int choose
cout & lt& lt "선택해 주세요:"
CIN & gt; & gt choose;
토글(선택)
{< /p>
케이스 1:
h.insert();
break;
케이스 2:
h.find();
break;
케이스 3:
h.del();
break;
케이스 4:
h. .sort();
break;
사례 5:
h.save();
break;
사례 6:
cout & lt& lt "와주셔서 감사합니다!" & lt& ltendl
exit(0);
break;
Default:cout & lt& lt "작업 오류!" & lt& ltendl
}
}
/*클래스메이트 */
# 포함 & ltstdio.h & gt
# 포함 & ltiostream.h & gt
# 포함 & ltfstream.h & gt
# include & ltstdlib.h & gt
# include & ltconio.h & gt
# 크기 10의 정의
// -
/ 함수형/* void dakai(int n, int j, char ch);void save(int n, char ch);
void display(int n, char ch);//정보 표시
void modify();
void dakai(int n, int j, char ch);// FIND FILE
void shuru(int n, char ch); // 입력 정보
void paixu(int n, char ch);
void genzhe(int n, char ch); // 프로그램 실행 선택 */
// -
구조체 학생 _ 유형// 구조를 정의합니다.
{
character name[10];
int num
int age
char addr[15];
}stud [size];
// -
Void save(int n, char ch) //Save the 입력을 저장합니다.
{
FILE * fp
int I;
if((fp=fopen("f:\\stu_list.txt", " w b+ ") == NULL)
{
printf("파일을 열 수 없습니다 \ n");
exit( 0);
}
for(I = 0; I& ltn; i++)
if(fwrite(& amp; student[i], sizeof(student_type), 1, fp)! = 1)
printf("파일 쓰기 오류 \ n");
fclose(FP);
}
p>
/ -
Void display(int n, char ch)//Display the message.
{
FILE * fp
int I;
if((fp=fopen("f:\\\stu_list.txt", " rb")) == NULL)
{
printf("파일을 열 수 없습니다 \ n");
exit( 0);
}
for(I = 0; I& ltn; i++)
{
Fred(& ampstud[i], sizeof(struct student_type), 1, FP);
Printf("Name:%-10s School number:%4d 나이:%4d 주소:%-15s \ n ", Stud [i]. 이름, 종마 [i]. 숫자, 스터드 [i]. 나이, 스터드 [i]. Address.
}
fclose(FP);
}
// -
Void xiugai(int n, char ch)//Modify student information.
{
int z;
FILE * pf
pf=fopen("f:\\stu_list.txt", " r b+ ");
if(pf==NULL)
{
printf("\n pf 열기 오류, \n 프로그램을 종료합니다.") ;
반환;
}
기타
{
//학생 정보 입력
cout & lt& lt "변경하려는 학생 번호를 입력하세요:"
CIN & gt; & gtz;
fseek(pf, z*sizeof( struct student_type), 2);
scanf("%s%d%d%d%s", stud[z]. 이름 & 앰프 스터드[z]. Number & amp stud[z]. Age, stud[z]. addr);
fseek(pf, sizeof(struct student_type), 0);
fwrite(& amp; stud, sizeof(struct student_type), 1, pf);
}
fclose(pf);
//save(n, ch);
//display(n, ch);
}
// -
/*struct stud
{
int num
struct student;
}* head;
void printnode(stud
{
while(p->; next! = null)
{
// p가 가리키는 데이터를 출력합니다.
cout & lt& ltp->; num & lt& lt" ";
p = p-& gt; next; //다음으로 가리킴
}
cout & lt& ltp->; num & lt& ltendl
}
// -
void dakai2()
{
node * p = new node;
head = p;//set head pointer
p->; num = 90
for(int k = 1; k & lt10;k++)
{
///generate the next node 1.
>
p->; next = p+k;
p = p-& gt; next;
p->; num = k * 100;
}
p->; next = NULL
print node(head);
}*/
-/ - p>무효 다카이(int n, int j, char ch)//파일을 찾습니다.
{
//int I = 2;
//char ch1, filename[20];
FILE * fp
//int I = 0;
///display(n, ch);
///cout & lt; & lt 찾으려는 파일의 이름을 찾을 파일 이름, "#"로 끝나는
//scanf("%s", filename);
cout & lt& lt"-"& lt; & ltendl
if (( fp=fopen("f:\\stu_list.txt", " rb"))==NULL)
{
printf("이 파일을 열 수 없습니다 \ n");
quit(0);
}
for(int I = 0; I& lt4;i+=1)
{
fseek(fp, i*sizeof(struct student_type), 2);
Fred(& ampstud[i], sizeof(struct student_type), 1, FP);
if(stud[i].num=. = j)
//{
Printf("Name:%-10s School Number:%4d Age:%4d Address:%-15s \ n ", Stud [i]. 이름, 종마 [i]. 숫자, 스터드 [i]. 나이, 스터드 [i]. Address.
}
//i++;
//}
// }
/* fread(& amp; stud[i-1], sizeof(struct student_type), I, FP);
cout & lt& lt "name"
< p>printf("%-10s", stud[i-1]. Name);cout & lt& lt "학교번호";
printf("%4d", stud[i-1]. num);
cout & lt& lt "나이";< /p>
printf("%4d", stud[i-1]. age);
cout & lt& lt "address";
printf("%-15s\n", stud[i-1]. address);
p>
}/*
while((ch=. getchar())! = '#')
{
fputc(ch, FP);
putchar(ch);
}*/
fclose(FP);
}
// -
Void shuru(int n, char ch)// 메시지를 입력합니다.
{
int I;
cout & lt& lt "지금 학생 수를 입력하세요:";
CIN & gt; & gtn;
cout & lt& lt "입력하세요"
for(I = 0 ; I & ltn; i++)
{
cout & lt& lt "첫 번째 입력하세요"
scanf("%s%d%d%d%s", stu[i]. Name & ampstud[i]. 번호 & ampstud[i]. Age, stud[i]. addr);
}
save(n, ch);
show(n, ch);
}
// -
void paixu(int n, char ch)
{
fstream outfile, infile.
infile.open("f:\\stu_list.txt", IOs::in);
If (!infile)
{
cerr & lt& lt "파일 열기 실패!" & lt& ltendl
exit(0);
}
student _ type textline[80];
//int I = 0;
// while(!infile.eof())
// {
//i++ ;
// infile.getline(textline, sizeof(textline));
// if
// cout & lt; & lt me & lt& lt& lt":" & lt& lttextline & lt& ltendl
}
< p>infile . close();}
// -
/* void paixu2()
{
student _ type ww
for(int I = 0; I & ltn; i++)
{
for(int j = I+. 1; j & ltn; j++)
{
if(stu[i].num & gtstu[j]. Number)
{
ww.num = stud[i]. num
stud[i]. num = stud[j]. num
stud[j]. num = ww . num;
ww.
*/
// -
Void xuanzhe(int n, char ch)//프로그램을 실행하도록 선택합니다.
{
int i, j;
If(ch=='s')//input
{
Shu as (n, ch);
cout & lt& lt"-"& lt; & ltendl
cout & lt& lt "명령을 입력하세요"
cout & lt다른 키 S(메시지 입력), F(메시지 검색), D(삭제), P(정렬), A(메시지 저장)를 눌러 종료
CIN & gt; & gtch;
Xuanzhe(n, ch);
}
Else
기타 if(ch=='f')// Find
{
cout & lt& lt "찾고 있는 번호를 입력하세요:"
CIN & gt; & gtj;
dakai(n, j, ch);
cout & lt& lt"-. " & lt; & ltendl
cout & lt& lt "명령을 입력하세요"
cout & lt& 다른 키 S(메시지 입력), F(메시지 검색), D(삭제), P(정렬), A(메시지 저장)를 누르면 종료
CIN & gt; & gtch;
Genzhe(n, ch);
}
Else if(ch=='a')//save
{
save(n, ch);
cout & lt& lt"-"& lt; & ltendl
cout & lt& lt "명령을 입력하세요"
cout & lt& lt다른 키 S(메시지 입력), F(메시지 검색), D(삭제), P(정렬), A(메시지 저장)를 눌러 종료
CIN & gt; & gtch;
genzhe(n, ch);
}
else if(ch=='p ')
{
Pai Su(n, ch);
cout & lt& lt"-"& lt; & ltendl
cout & lt& lt "명령을 입력해주세요"
cout & lt& lt다른 키 S(정보 입력), F(정보 검색), D(삭제), P(정렬), A(정보 저장)를 눌러 종료
CIN & gt; & gtch;
후엔 치에(n, ch);
}
Else if(ch=='x')//modify
{
Modify cover(n, ch);
cout & lt& lt"-"& lt; & ltendl
cout & lt& lt다른 키 S(정보 입력), F(정보 검색), D(삭제), P(정렬), A(정보 저장)를 눌러 종료
합니다. CIN & gt; & gtch;
genzhe(n, ch);
}
else if(ch=='d ')
{
display(n, ch);//정보 표시
cout & lt& lt"- " & lt; & ltendl
cout & lt& lt다른 키 S(메시지 입력), F(메시지 검색), D(삭제), P(정렬), A(메시지 저장)를 눌러 종료
CIN & gt; & gtch;
Genzhe (n, ch);
}
기타
{
cout & lt& lt "명령 오류!" & lt& ltendl
}
}
p>>
// -
Void main()//main function
{
int n;
char ch
cout & lt& lt"- " & lt; & ltendl
cout & lt& lt "명령을 입력하세요"
cout & lt& lt다른 키를 눌러 종료 S(메시지 입력), F(메시지 검색), D(삭제), P(정렬), A(메시지 저장)
CIN & gt; & gtch;
Gencher (n, ch);
}