Bạn thêmtrước mỗi dòng lệnh nhập chuỗi thử xem.C Code:
Hi cả nhà ! Hôm nay ngồi rảnh. không biết làm chi cả. nên tập tọe học đối tượng C++ như thế nào. Lâu giờ code C quen tay rồi. cái này lạ quá ^^
Em có đoạn code thế này
Đề bài :
Xây dựng lớp cơ sở HOCSINH có các thông tin: Họ tên, Lớp, Điểm toán, lý, hoá và các phương thức nhập, xuất dữ liệu, tính điểm trung bình.
Viết chương trình chính thực hiện nhập vào một danh sách n học sinh, sau đó hiển thị danh sách những học sinh có điểm trung bình >=5 .
Code :
C++ Code:
#include<iostream.h> #include<conio.h> #include<stdio.h> class hocsinh { char hoten[25]; int lop; float dtoan,dly,dhoa,tb; public: void nhap() { tb=(dtoan+dly+dhoa)/3; } void xuat() { } void sapxep() { if(tb>=5) { } } }; hocsinh sinhvien[100]; main() { int i,n; for(i=0;i<n;i++) { sinhvien[i].nhap(); } for(i=0;i<n;i++) { sinhvien[i].xuat(); } for(i=0;i<n;i++) { sinhvien[i].sapxep(); } getch(); }
Khi mình chạy. Nhập số học sinh xong. Nó hiện luôn là
luôn. nên mình không hiểu. Ai giải thích hộ cái hè :PC++ Code:
Ho ten: lop :
P/s : Devc++ 4 chấm
Hỏi một câu thì chỉ dốt trong chốc lát.
Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.
ƯỚC MƠ VẪN CHỈ LÀ ƯỚC MƠ NẾU CHỈ BIẾT ƯỚC MƠ MÀ KHÔNG CÓ SỰ NỖ LỰC
Bạn thêmtrước mỗi dòng lệnh nhập chuỗi thử xem.C Code:
@linhcodervn : với hướng đối tượng khi viết thì với những hàm có chứa ít câu lệnh ( chứa 1 , 2 câu lệnh thôi) thì nên viết trong hàm public vì nó sử dụng phương thức inline và chương trình sẽ chạy nhanh hơn còn với những đoạn nhập và xuất , sắp xếp như thế kia thì nên định nghĩa ở ngoài lớp thì nhìn nó dễ và syte cũng đẹp hơn !
thêm nữa cái đoạn này có thể viết lại như sau :
C++ Code:
Nhìn nó sẽ gọn hơn hoặc dùng setw(int n) trong thư viện < iomanip.h> để định dạng khi in ra
C++ Code:
void sapxep() { if ( tb >= 5 ) { cout <<"\n" << hoten << "\t\t " << lop << "\t\t" << dtoan << "\t\t" << dly << "\t\t" << dhoa << "\t\t" <<tb ; } }
Đã được chỉnh sửa lần cuối bởi xuyenit55 : 23-07-2011 lúc 08:45 AM.
Hỏi một câu thì chỉ dốt trong chốc lát.
Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.
ƯỚC MƠ VẪN CHỈ LÀ ƯỚC MƠ NẾU CHỈ BIẾT ƯỚC MƠ MÀ KHÔNG CÓ SỰ NỖ LỰC
Hỏi một câu thì chỉ dốt trong chốc lát.
Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.
ƯỚC MƠ VẪN CHỈ LÀ ƯỚC MƠ NẾU CHỈ BIẾT ƯỚC MƠ MÀ KHÔNG CÓ SỰ NỖ LỰC
Trong c++ thì dùng cin.ignore(1); để bỏ qua ký tự chuyển dòng.Bạn thử thêm vào xem sao
muốn định dạng khi in ra đẹp và chuẩn nên dùng sewt(n) nhé , dùng tab vẫn chưa đc chuẩn và đẹp!
C++ Code:
#include<iostream.h> #include<conio.h> #include<stdio.h> class hocsinh { char hoten[25]; int lop; float dtoan,dly,dhoa,tb; public: void nhap(); void xuat(); void sapxep() { if ( tb >= 5 ) { cout <<"\n" << hoten << "\t" << lop << "\t" << dtoan << "\t" << dly << "\t\t" << dhoa << "\t" <<tb << endl; } } }; // phuong thuc nhap sinh vien void hocsinh::nhap() { fflush(stdin); gets(hoten); tb=(dtoan+dly+dhoa)/3; } // phuong thuc suat sinh vien void hocsinh::xuat() { } hocsinh sinhvien[100]; main() { int i,n; for(i=0;i<n;i++) { sinhvien[i].nhap(); } for(i=0;i<n;i++) { sinhvien[i].xuat(); } for(i=0;i<n;i++) { sinhvien[i].sapxep(); } getch(); }
Thêm vào câu lệnh cin.ignore(); ở trước lệnh nhập họ tên.
Và nhập họ tên dùng phường thức getline(hoten, 25); là okie.
Cái này khi code với char* là hay dính lắm. Nếu dùng string thì khỏe hơn
Góp ý:Ở chỗ sapxep(), if(...) sau đó xuất ra hócinh đó, thì gọi hàm xuất lun, đỡ phải viết lại code.
i dont care who are u, where yr from, what u did , as long as u love me
Dùng fflush(stdin) đúng mà bạn.
cout<<"Ho ten: ";
fflush(stdin);
gets(hoten);
mình không rành dùng cout cin, nhưng mình xài hàm printf(); cũng tương tự.
printf("Ho ten: ");
fflush(stdin);
gets(hoten);
Có những đêm anh lang thang trên " net " .
Anh vô tình nhấn " Shift " gọi tên em .
Cửa nhà em mẹ em cài " password " .
Anh rách quần vì cố vượt Firewall .
Thật cay đắng anh quyết tâm hoc " Hack "
Để có ngày anh cra-ck cửa nhà em
Trong C++ thì mình nghĩ lên dùng như thế này:
C++ Code:
skype: hvphu2010
Yahoo: hvphu2010
Sdt: 0129 609 4567