Truyen2U.Net quay lại rồi đây! Các bạn truy cập Truyen2U.Com. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

bai tập C++/ 1.3

#include<stdio.h>

#include<conio.H>

#include<iostream.h>

#include<fstream.h>

#include<string.h>

/*never give up*/

class SachMuon;

class Sach;

class Nguoi;

class SinhVien;

/*111111111111111111111111111111111111111111111111111111111111111111*/

class Sach{

private:

char masach[5];

char tensach[30];

char tacgia[30];

public:

Sach(){

strcpy(masach,"");

strcpy(tensach,"");

strcpy(tacgia,"");

}

void setMaSach(char ma_in[]){

strcpy(masach, ma_in);

}

void setTenSach(char tensach_in[]){

strcpy(tensach, tensach_in);

}

void setTachGia(char tacgia_in[]){

strcpy(tacgia, tacgia_in);

}

char * getMaSach(){

return masach;

}

char * getTenSach(){

return tensach;

}

char * getTacGia(){

return tacgia;

}

void nhap(){

cout<<"

ma sach:";

gets(masach);

cout<<"

ten sach:";

gets(tensach);

cout<<"

tac gia :";

gets(tacgia);

}

void xuat(){

printf("

|%5s|%30s|%30s|",masach, tensach, tacgia);

}

};

class DanhSachSach{

private:

int n;

Sach sh[100];

public:

DanhSachSach(){

n = 0;

}

int kiemTra(int n_in, char ma_in[] ){

int i;

for(i=0; i<n_in;i++)

if(strcmp( sh[i].getMaSach(),ma_in)==0 ){

return 0;

}

return 1;

}

void nhap(){

cout<<"

Nhap so sach:";

cin>>n;

int i=0;

cout<<"

Nhap thong tin cho tung sach:";

while(i<n){

cout<<"

Sach thu:"<<i+1;

sh[i].nhap();

if(kiemTra(i,sh[i].getMaSach() )){

i++;

}else{

cout<<"

Sach nay da co";

}

}

}

void xuat(){

int i;

cout<<"

Danh sach sach:

";

for(i = 0; i<n; i++)

sh[i].xuat();

}

void ghiFile(){

fstream f("sach.txt", ios::out | ios::binary);

int i;

f.write(reinterpret_cast<char *>(&n), sizeof(int));

for(i=0; i<n; i++){

f.write(reinterpret_cast<char *>(&sh[i]),sizeof(Sach));

}

f.close();

}

void docFile(){

fstream f("sach.txt", ios::in | ios::binary);

int i;

f.read(reinterpret_cast<char *>(&n), sizeof(int));

for(i=0; i<n; i++){

f.read(reinterpret_cast<char *>(&sh[i]),sizeof(Sach));

}

f.close();

}

};

/*111111111111111111111111111111111111111111111111111111111111111111*/

class Nguoi{

protected:

char hoten[30];

char diachi[30];

public:

Nguoi(){

strcpy(hoten,"");

strcpy(diachi,"");

}

void setHoTen(char hoten_in[]){

strcpy(hoten, hoten_in);

}

void setDiaChi(char diachi_in[]){

strcpy(diachi, diachi_in);

}

char* getHoTen(){

return hoten;

}

char* getDiaChia(){

return diachi;

}

};

class SinhVien : public Nguoi{

private:

char masv[5];

char lop[10];

public:

SinhVien() : Nguoi(){

strcpy(masv, "");

strcpy(lop,"");

}

void setMaSV(char ma_in[]){

strcpy(masv, ma_in);

}

void setLop(char lop_in[]){

strcpy(lop, lop_in);

}

char* getMaSV(){

return masv;

}

char * getLop(){

return lop;

}

void nhap(){

cout<<"

ma sv:";

gets(masv);

cout<<"

hoten:";

gets(hoten);

cout<<"

dia chi:";

gets(diachi);

cout<<"

lop:";

gets(lop);

}

void xuat(){

printf("

|%5s|%-25s|%25s|%10s|",masv, hoten, diachi, lop);

}

};

class DanhSachSinhVien{

private:

int n;

SinhVien sv[100];

public:

DanhSachSinhVien(){

n = 0;

}

int kiemTra(int n_in, char ma_in[] ){

int i;

for(i=0; i<n_in;i++)

if(strcmp( sv[i].getMaSV(),ma_in) == 0){

return 0;

}

return 1;

}

void nhap(){

cout<<"

Nhap so sv:";

cin>>n;

int i = 0;

cout<<"

Nhap thong tin cho tung sinh vien:";

while(i<n){

cout<<"

Sinh vien thu:"<<i+1;

sv[i].nhap();

if(kiemTra(i, sv[i].getMaSV())){

i++;

}

else{

cout<<"

Sv nay da co , ban hay nhap lai";

}

}

}

int getN(){

return n;

}

void xuat(){

int i;

cout<<"

Danh sach Sinh Vien:

";

for(i = 0; i<n; i++)

sv[i].xuat();

}

void ghiFile(){

fstream f("sv.txt", ios::out | ios::binary);

int i;

f.write(reinterpret_cast<char *>(&n), sizeof(int));

for(i=0; i<n; i++){

f.write(reinterpret_cast<char *>(&sv[i]),sizeof(SinhVien));

}

f.close();

}

void docFile(){

fstream f("sv.txt", ios::in | ios::binary);

int i;

f.read(reinterpret_cast<char *>(&n), sizeof(int));

for(i=0; i<n; i++){

f.read(reinterpret_cast<char *>(&sv[i]),sizeof(SinhVien));

}

f.close();

}

};

/*2222222222222222222222222222222222222222222222222222222222222222*/

class SachMuon{

private:

SinhVien sv;

Sach sh;

public:

SachMuon(){

}

void xuat(){

sv.xuat();

cout<<"

Muon sach:";

sh.xuat();

cout<<"

----------------------------------------------------------------------------";

}

SinhVien getSV(){

return sv;

}

Sach getSach(){

return sh;

}

void setSinhVien(SinhVien sv_in){

sv = sv_in;

}

void setSach(Sach sh_in){

sh = sh_in;

}

};

class DanhSachSachMuon{

private:

int n;

SachMuon sm[100];

public:

DanhSachSachMuon(){}

//nhap sach muon cho sv

void nhap(){

//file chua danh sach sinh vien

fstream f("sv.txt",ios::in | ios::binary);

f.read(reinterpret_cast<char *>(&n), sizeof(int));

cout<<"

so sv la:"<<n;

int i;

for(i=0; i<n; i++){

//doc sv tu file

SinhVien sv_nhap;

f.read(reinterpret_cast<char *>(&sv_nhap),sizeof(SinhVien));

sm[i].setSinhVien(sv_nhap);

cout<<"

Nhap sach muon cho sv:"<<sm[i].getSV().getHoTen();

Sach sh_nhap;

sh_nhap.nhap();

sm[i].setSach(sh_nhap);

}

f.close();

}

void xuat(){

int i;

cout<<"

Danh sach muon sach";

for(i=0; i<n; i++)

sm[i].xuat();

}

void ghiFile(){

fstream f("sachmuon.txt",ios::out| ios::binary);

f.write(reinterpret_cast<char *>(&n), sizeof(int));

int i;

for(i=0; i<n; i++){

f.write(reinterpret_cast<char *>(&sm[i]), sizeof(SachMuon));

}

f.close();

}

void docFile(){

fstream f("sachmuon.txt",ios::in| ios::binary);

f.read(reinterpret_cast<char *>(&n), sizeof(int));

int i;

for(i=0; i<n; i++){

f.read(reinterpret_cast<char *>(&sm[i]), sizeof(SachMuon));

}

f.close();

}

void sapXepTheoSinhVien(){

char ten1[30];

char ten2[30];

int i, j;

for(i=0; i<n-1; i++){

for(j=i+1; j<n; j++){

strcpy(ten1,sm[i].getSV().getHoTen());

strcpy(ten2,sm[j].getSV().getHoTen());

if(strcmp(ten1,ten2) > 0){

SachMuon tmp;

tmp = sm[i];

sm[i] = sm[j];

sm[j] = tmp;

}

}

}

}

//theo ten sach tttttttttttttttttttttt

//tim kiem danh sach sach muon theo lop sv

void timKiemTheoLopSinhVien(){

char lopnhap[10];

cout<<"

Nhap lop sv:";

gets(lopnhap);

int i;

for(i=0; i<n; i++){

char lop_[10];

strcpy(lop_ ,sm[i].getSV().getLop());

if( strcmp(lopnhap, lop_) == 0){

sm[i].xuat();

}

}

}

};

/* menu */

void meNu(){

int chon = 1;

DanhSachSinhVien dssv;

DanhSachSach dss;

DanhSachSachMuon dssm;

do{

cout<<"

1:Nhap danh sach sinh vien";

cout<<"

2:Nhap danh sach sach";

cout<<"

3:Nhap sach muon cho sinh vien";

cout<<"

4:Sap xep danh sach sach muon theo ho ten sinh vien";

cout<<"

5:Sap xep danh sach sach muon theo ten sach";

cout<<"

6:Tim kiem va hien thi danh sach muon theo lop sinh vien";

cout<<"

7:Tim kiem va hien thi danh sach muon theo ten tach gia";

cout<<"

0:Thoat";

cout<<"

: Ban Chon:";

cin>>chon;

switch(chon){

case 1:

dssv.nhap();

dssv.ghiFile();

dssv.xuat();

break;

case 2:

dss.nhap();

dss.ghiFile();

dss.xuat();

break;

case 3:

dssm.nhap();

dssm.ghiFile();

dssm.xuat();

break;

case 4:

dssm.docFile();

dssm.sapXepTheoSinhVien();

dssm.xuat();

break;

case 5:

break;

case 6:

dssm.docFile();

dssm.timKiemTheoLopSinhVien();

break;

case 7:

break;

}

}while(chon!=0);

}

/* HAM CHINH */

void main()

{

meNu();

getch();

return 0;

}

//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'''''''''''

#include<stdio.h>

#include<conio.h>

#include<fstream.h>

#include<iostream.h>

#include<string.h>

// lop nguoi

class Nguoi{

protected:

char hoten[25];

char diachi[25];

public:

Nguoi(){

strcpy(hoten," ");

strcpy(diachi," ");

}

void setHoTen(char hoten_in[]){

strcpy(hoten, hoten_in);

}

void setDiaChi(char diachi_in[]){

strcpy(diachi, diachi_in);

}

char* getHoTen(){

return hoten;

}

char* getDiaChi(){

return diachi;

}

};

//lop sinh vien ke thu tu lop nguoi

class SinhVien : public Nguoi{

private:

int masv;

char lop[10];

public:

SinhVien(): Nguoi(){

masv = 0;

strcpy(lop, "");

}

void setMaSV(int ma_in){

masv = ma_in;

}

void setLop(char lop_in[]){

strcpy(lop, lop_in);

}

int getMaSV(){

return masv;

}

char* getLop(){

return lop;

}

void nhap(){

cout<<"

hoten:";

gets(hoten);

cout<<"

dia chi:";

gets(diachi);

cout<<"

ma sv:";

cin>>masv;

cout<<"

Lop:";

gets(lop);

}

void xuat(){

printf("

|%4d|%-20s|%20s|%10s|",masv, hoten, diachi, lop);

}

};

//lop DanhSachSinhVien gom nhieu sinh vien

class DanhSachSinhVien{

private:

//so sinh vien

int n;

//mang sinh vien

SinhVien sv[100];

public:

DanhSachSinhVien(){

n = 0;

}

void setN(int n_in){

n = n_in;

}

int getN(){

return n;

}

//kiem tra xem co sv do chua

int kiemTra(int i_in, int makiem){

int i;

for(i=0; i<i_in; i++){

if(sv[i].getMaSV() == makiem){

return 0;

}

}

return 1;

}

//ham nhap n sinh vien

void nhap(){

cout<<"

so sv la:";

cin>>n;

int i=0;

while(i<n){

cout<<"

sv thu:"<<i+1;

sv[i].nhap();

if(kiemTra(i, sv[i].getMaSV() ) ){

i++;

}

else

cout<<"

sv nay da co yeu cau nhap lai!";

}

}

//ham ghi n sv vao file

void ghiFile(){

fstream f("sinhvien.txt",ios::out | ios::binary);

//ghi so sv vao file

f.write(reinterpret_cast<char *>(&n), sizeof(int));

int i;

for(i=0; i<n; i++)

f.write(reinterpret_cast<char *>(&sv[i]), sizeof(SinhVien));

f.close();

}

//ham xuat n sv ra man hinh

void xuat(){

cout<<"

Danh sach sv:";

cout<<"

===========================================================";

int i;

for(i=0; i<n; i++)

sv[i].xuat();

cout<<"

===========================================================";

}

void docFile(){

fstream f("sinhvien.txt",ios::in | ios::binary);

//doc so sv vao file

f.read(reinterpret_cast<char *>(&n), sizeof(int));

int i;

for(i=0; i<n; i++)

f.read(reinterpret_cast<char *>(&sv[i]), sizeof(SinhVien));

f.close();

}

};

///lop mon hoc

class MonHoc{

private:

int mamon;

char tenmon[20];

int sodonvihoctrinh;

public:

MonHoc(){

mamon = 0;

strcpy(tenmon," ");

sodonvihoctrinh = 0;

}

void setMaMon(int mamon_in){

mamon = mamon_in;

}

void setTenMon(char tenmon_in[]){

strcpy(tenmon, tenmon_in);

}

void setSoDonViHocTrinh(int k){

sodonvihoctrinh = k;

}

int getMaMon(){

return mamon;

}

char* getTenMon(){

return tenmon;

}

int getSoDonViHocTrinh(){

return sodonvihoctrinh;

}

void nhap(){

cout<<"

ma mon:";

cin>>mamon;

cout<<"

ten mon:";

gets(tenmon);

cout<<"

so don vi hoc trinh:";

cin>>sodonvihoctrinh;

}

void xuat(){

printf("

|%4d|%20s|%4d|",mamon, tenmon, sodonvihoctrinh);

}

};

//lop danh sach mon hoc

class DanhSachMonHoc{

private:

//so mon

int m;

//mang mon hoc

MonHoc mh[10];

public:

DanhSachMonHoc(){

m = 0;

}

void setM(int m_in){

m = m_in;

}

int getM(){

return m;

}

//ham kiem tra xem co mon hoc trong danh sach ko

int coTrongDanhSachMonHoc(char monhoc_in[]){

int i;

for(i=0; i<m; i++){

if(strcmp(monhoc_in,mh[i].getTenMon() ) == 0){

return 1;

}

}

return 0;

}

//kiem tra sach da co chua

int kiemTra(int i_in, int makiem){

int i;

for(i=0; i<i_in; i++)

if(makiem == mh[i].getMaMon())

return 0;

return 1;

}

//ham nhap n mon hoc

void nhap(){

cout<<"

so mon la:";

cin>>m;

int i = 0;

while(i<m){

cout<<"

Nhap mon thu :"<<i+1;

mh[i].nhap();

if(kiemTra(i, mh[i].getMaMon()) )

i++;

else

cout<<"

Mon nay da co, yeu cau nhap lai";

}

}

//ham ghi n mon vao file

void ghiFile(){

fstream f("monhoc.txt",ios::out | ios::binary);

//ghi so sv vao file

f.write(reinterpret_cast<char *>(&m), sizeof(int));

int i;

for(i=0; i<m; i++)

f.write(reinterpret_cast<char *>(&mh[i]), sizeof(MonHoc));

f.close();

}

//ham xuat n sv ra man hinh

void xuat(){

cout<<"

Danh sach Mon Hoc:";

cout<<"

===========================================================";

int i;

for(i=0; i<m; i++)

mh[i].xuat();

cout<<"

===========================================================";

}

void docFile(){

fstream f("monhoc.txt",ios::in | ios::binary);

//doc so sv vao file

f.read(reinterpret_cast<char *>(&m), sizeof(int));

int i;

for(i=0; i<m; i++)

f.read(reinterpret_cast<char *>(&mh[i]), sizeof(MonHoc));

f.close();

}

};

//lop Danh ky

class DanhKy{

private:

SinhVien sv;

char mon1[10];

char mon2[10];

char mon3[10];

public:

DanhKy(){

}

SinhVien getSv(){

return sv;

}

char* getMon1(){

return mon1;

}

char* getMon2(){

return mon2;

}

char* getMon3(){

return mon3;

}

void setSV(SinhVien sv_in){

sv = sv_in;

}

void nhapMonHoc(DanhSachMonHoc dsmh){

//mon 1

do{

cout<<"

Mon 1:";

gets(mon1);

if(dsmh.coTrongDanhSachMonHoc(mon1) == 0){

cout<<"

Mon nay khong co trong danh sach mon hoc:";

cout<<"

Moi ban nhap lai!";

}

}while( !dsmh.coTrongDanhSachMonHoc(mon1));

//mon 2

do{

cout<<"

Mon 2:";

gets(mon2);

if(dsmh.coTrongDanhSachMonHoc(mon2) == 0){

cout<<"

Mon nay khong co trong danh sach mon hoc:";

cout<<"

Moi ban nhap lai!";

}

}while( !dsmh.coTrongDanhSachMonHoc(mon2));

//mon 3

do{

cout<<"

Mon 3:";

gets(mon3);

if(dsmh.coTrongDanhSachMonHoc(mon3) == 0){

cout<<"

Mon nay khong co trong danh sach mon hoc:";

cout<<"

Moi ban nhap lai!";

}

}while( !dsmh.coTrongDanhSachMonHoc(mon3));

}

void xuat(){

printf("

|%25s|%10s|%10s|%10s|",sv.getHoTen(), mon1, mon2, mon3);

}

};

//lop danhsachdang ky mon hoc

class DanhSachDangKy{

private:

//so sinh vien dang ky

int n;

//mang dang ky

DanhKy dk[100];

public:

DanhSachDangKy(){

n = 0;

}

//nhap sv tu file

void nhapDanhSachSinhVien(){

fstream f("sinhvien.txt",ios::in | ios::binary);

//doc so sv tu file

f.read(reinterpret_cast<char *>(&n), sizeof(int));

int i;

for(i=0; i<n; i++){

SinhVien sv;

f.read(reinterpret_cast<char *>(&sv), sizeof(SinhVien));

dk[i].setSV(sv);

}

f.close();

}

//danh ki mon hoc cho tung sinh vien

void danhKyMonHoc(){

DanhSachMonHoc dsmh;

dsmh.docFile();

int i;

for(i=0; i<n; i++){

cout<<"

Danh ky sach cho sv:"<<dk[i].getSv().getHoTen();

dk[i].nhapMonHoc(dsmh);

}

}

void xuat(){

int i;

cout<<"

Danh sach danh ky mon hoc:";

cout<<"

============================================================";

for(i=0; i<n; i++){

dk[i].xuat();

}

cout<<"

============================================================";

}

void ghiFile(){

fstream f("DanhKy.txt",ios::out | ios::binary);

//ghi so sv vao file

f.write(reinterpret_cast<char *>(&n), sizeof(int));

int i;

for(i=0; i<n; i++)

f.write(reinterpret_cast<char *>(&dk[i]), sizeof(DanhKy));

f.close();

}

void docFile(){

fstream f("DanhKy.txt",ios::in | ios::binary);

//ghi so sv vao file

f.read(reinterpret_cast<char *>(&n), sizeof(int));

int i;

for(i=0; i<n; i++)

f.read(reinterpret_cast<char *>(&dk[i]), sizeof(DanhKy));

f.close();

}

void sapXepTheoHoTen(){

int i, j;

char ten1[10];

char ten2[10];

for(i=0; i<n-1; i++)

for(j = i+1; j<n; j++){

strcpy(ten1, dk[i].getSv().getHoTen());

strcpy(ten2, dk[j].getSv().getHoTen());

if(strcpy(ten1, ten2)> 0){

DanhKy tmp = dk[i];

dk[i] = dk[j];

dk[j] = tmp;

}

}

}

//sap xep theo ten mon hoc

//co nhieu mon hoc thi sap the nao?

void sapXepTheoTenMonHoc(){

}

//tim kiem theo ten sinh vien

void timKiemTheoTenSinhVien(){

int i;

char hotencantim[25];

cout<<"

Nhap ho ten can tim:";

gets(hotencantim);

for(i=0; i<n; i++)

if(strcmp(hotencantim, dk[i].getSv().getHoTen()) == 0){

cout<<"

Tim thay sv:";

dk[i].xuat();

return;

}

cout<<"

Khong co sinh vien nao ca!";

}

//tim kiem theo ten sach

void timKiemTheoTenMonHoc(){

char monhoccantim[10];

cout<<"

Nhap ten mon hoc can tim:";

gets(monhoccantim);

int i;

for(i=0; i<n; i++){

if(strcmp(monhoccantim, dk[i].getMon1()) == 0

| strcmp(monhoccantim, dk[i].getMon2()) == 0

| strcmp(monhoccantim, dk[i].getMon3()) == 0 ){

dk[i].xuat();

}

}

}

};

///////////////////////////////////////////////////////////////////

void meNu(){

int chon = 1;

DanhSachSinhVien dssv;

DanhSachMonHoc dsmh;

DanhSachDangKy dsdk;

do{

cout<<"

1:Nhap n sinh vien";

cout<<"

2:Nhap m mon hon";

cout<<"

3:Dang ki mon hoc cho sinh vien";

cout<<"

4:Sap xep danh sach dang ky theo ho ten sinh vien";

cout<<"

5:Sap xep theo ten sach";

cout<<"

6:Tim kiem theo ten sinh vien";

cout<<"

7:Tim kiem theo ten sach";

cout<<"

0:Thoat";

cout<<"

->ban chon:";

cin>>chon;

switch(chon){

case 1:

dssv.nhap();

dssv.xuat();

dssv.ghiFile();

break;

case 2:

dsmh.nhap();

dsmh.xuat();

dsmh.ghiFile();

break;

case 3:

dsdk.nhapDanhSachSinhVien();

dsdk.danhKyMonHoc();

dsdk.ghiFile();

dsdk.xuat();

break;

case 4:

dsdk.docFile();

dsdk.sapXepTheoHoTen();

dsdk.xuat();

break;

case 6:

dsdk.docFile();

dsdk.timKiemTheoTenSinhVien();

break;

case 7:

dsdk.docFile();

dsdk.timKiemTheoTenMonHoc();

break;

}

}while(chon != 0);

}

///////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////

void main()

{

meNu();

getch();

return 0;

}

Bạn đang đọc truyện trên: Truyen2U.Com

Tags: #chikaki