Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
200,5 KB
Nội dung
Quản lý sinh viên C++ Lớn | Vừa | Nhỏ [ Tự viết | 2009/09/14 02:03 | by Administrators ] Đề bài: Thông tin về Sinh viên gồm: Mã sinh viên, Họ tên, Ngày sinh, Lớp, ĐTB Học tập, Điểm rèn luyện, Điểm Tổng kết, và Học bổng. Viết chương trình thực hiện các chức năng sau: 1.Nhập thêm sinh viên Nhập thông tin về sinh viên (không nhập điểm tổng kết và Học bổng). Trong đó điểm rèn luyện tính theo thang 100. Nếu điểm rèn luyện từ 70 - 80, ĐTK = ĐTB Học tập + 0,2. Nếu điểm rèn luyện từ 80 - 90, ĐTK = ĐTB Học tập + 0,5. Nếu điểm rèn luyện từ 90 - 100, ĐTK = ĐTB Học tập + 0,8. Học bổng: Nếu ĐTK >=7.0, Học bổng = 120000, ĐTK>=80, Học bổng = 180000, nếu ĐTK >=90, Học bổng = 240000. Có kiểm tra mã sinh viên khi nhập (không có hai sinh viên mã trùng nhau) Code tham khảo #include<conio.h> #include<stdio.h> #include<ctype.h> #include<string.h> #include<iostream.h> #include<fstream.h> #include<stdlib.h> #include<iomanip.h> using namespace std; class SinhVien{ private: char hoTen[50]; int maSV; char ngaySinh[20]; char lop[20]; float diemTB; float diemRenLuyen; float diemTK; int hocBong; SinhVien *sv; static const char *dataFile; int sl; public: void nhapSV(); void hienThiSinhVien(); void sapXepTheoDTB(); void sapXepTheoHocBong(); void timTheoTen(); void timTheoDTK(); void ghiFile(); void docFile(); void khoiTaoFile(); SinhVien(){ sl= 0; sv= NULL; } ~SinhVien(){ delete sv; } }; const char *SinhVien::dataFile="QuanLySinhVien.txt"; //Nhap sinh vien void SinhVien::nhapSV(){ int i= sl+1; cout<<endl<<" Nhap ho va ten: "; cin.getline(sv[i].hoTen,sizeof(sv[i].hoTen)); //Nhap ma sinh vien co kiem tra int check; do{ check= 1; cout<<endl<<" Nhap ma sinh vien: "; cin>>sv[i].maSV; for(int j=1;j<i;j++){ if(sv[j].maSV== sv[i].maSV){ cout<<endl<<"Ban da nhap sai! Nhap lai"; check= 0; } } }while(check== 0); //Nhap ngay thang nam sinh cout<<endl<<" Nhap ngay sinh sinh vien (dd-mm-yy): "; cin.ignore(); cin.getline(sv[i].ngaySinh,sizeof(sv[i].ngaySinh)); cout<<endl<<" Nhap lop: "; cin.getline(sv[i].lop,sizeof(sv[i].lop)); cout<<endl<<" Nhap diem trung binh hoc tap (0->10): "; cin>>sv[i].diemTB; cout<<endl<<" Nhap diem ren luyen (0->100): "; cin>>sv[i].diemRenLuyen; //Tinh diem tong ket if((sv[i].diemRenLuyen>=70)&&(sv[i].diemRenLuyen<80)){ sv[i].diemTK= sv[i].diemTB+ 0.2; } else if((sv[i].diemRenLuyen>=80)&&(sv[i].diemRenLuyen<90)){ sv[i].diemTK= sv[i].diemTB+ 0.5; } else if((sv[i].diemRenLuyen>=90)&&(sv[i].diemRenLuyen<=100)){ sv[i].diemTK= sv[i].diemTB+ 0.8; } /*Học bổng: Nếu ĐTK >=7.0,Học bổng = 120000, ĐTK>=80, Học bổng = 180000, nếu ĐTK >=90, Học bổng = 240000*/ if((sv[i].diemTK>=7)&&(sv[i].diemTK<8)){ sv[i].hocBong= 120000; } else if((sv[i].diemTK>=8)&&(sv[i].diemTK<9)){ sv[i].hocBong= 180000; } else if((sv[i].diemTK>=9)&&(sv[i].diemTK<=10)){ sv[i].hocBong= 240000; } } //Ham khoi tao file void SinhVien::khoiTaoFile(){ fstream f(dataFile,ios::out|ios::app); f.close(); } //Ham ghi file void SinhVien::ghiFile(){ fstream os(dataFile,ios::out|ios::app); int i= sl+1; os<<sv[i].hoTen<<endl; os<<sv[i].maSV<<endl; os<<sv[i].ngaySinh<<endl; os<<sv[i].lop<<endl; os<<setw(5)<<sv[i].diemTB <<setw(5)<<sv[i].diemRenLuyen <<setw(5)<<sv[i].diemTK <<setw(10)<<sv[i].hocBong<<endl; os.close(); } //Ham doc file void SinhVien::docFile(){ fstream s(dataFile,ios::in); int dem=1; string buffer; while(1){ getline(s,buffer); if(!s.eof()){ dem++; } else break; } sl= dem/5; s.close(); fstream f(dataFile,ios::in); sv= new SinhVien[100]; for(int i=1;i<=sl;i++){ f.getline(sv[i].hoTen,sizeof(sv[i].hoTen)); f>>sv[i].maSV; f.ignore(1); f.getline(sv[i].ngaySinh,sizeof(sv[i].ngaySinh)); f.getline(sv[i].lop,sizeof(sv[i].lop)); f>>sv[i].diemTB>>sv[i].diemRenLuyen>>sv[i].diemTK>>sv[i].hocBong; f.ignore(); } f.close(); } //Hien thi sinh vien void SinhVien::hienThiSinhVien(){ cout<<endl; cout<<endl<<"Ho va ten sinh vien: "<<hoTen; cout<<endl<<"Ma sinh vien: "<<maSV; cout<<endl<<"Ngay thang nam sinh: "<<ngaySinh; cout<<endl<<"Lop: "<<lop; cout<<endl<<"Diem trung binh: "<<diemTB; cout<<endl<<"Diem ren luyen: "<<diemRenLuyen; cout<<endl<<"Diem tong ket: "<<diemTK; cout<<endl<<"Xep loai hoc bong: "<<hocBong; } //Sap xep SV theo diem trung binh void SinhVien::sapXepTheoDTB(){ SinhVien s; for(int i=1;i<=sl;i++){ for(int j=1;j<i;j++){ if(sv[j].diemTB>sv[i].diemTB){ s= sv[i]; sv[i]= sv[j]; sv[j]= s; } } } for(int i=1;i<=sl;i++){ sv[i].hienThiSinhVien(); } [...]... SV theo hoc bong void SinhVien::sapXepTheoHocBong(){ SinhVien s; for(int i=1;i= " . Quản lý sinh viên C++ Lớn | Vừa | Nhỏ [ Tự viết | 2009/09/14 02:03 | by Administrators ] Đề bài: Thông tin về Sinh viên gồm: Mã sinh viên, Họ tên, Ngày sinh, Lớp, ĐTB Học. SinhVien(){ sl= 0; sv= NULL; } ~SinhVien(){ delete sv; } }; const char *SinhVien::dataFile="QuanLySinhVien.txt"; //Nhap sinh vien void SinhVien::nhapSV(){ int i= sl+1; cout<<endl<<". 0); //Nhap ngay thang nam sinh cout<<endl<<" Nhap ngay sinh sinh vien (dd-mm-yy): "; cin.ignore(); cin.getline(sv[i].ngaySinh,sizeof(sv[i].ngaySinh)); cout<<endl<<"