Bài toán:
Cho thông tin điểm các môn học sau: NNLT, Tin học, Toán A1. Hãy khai báo một cấu trúc mô tả điểm các môn học của 1 sinh viên. Sau đó viết hàm thực hiện các chức năng sau:
Nhập, xuất thông tin điểm của 1 sinh viên.
Tính điểm trung bình 3 môn.
Xếp loại cho sinh viên đó theo điều kiện:
Xuất sắc: ĐTB>=9
Giỏi với: 8.0<=ĐTB<9
Khá với: 6.5<=ĐTB<8.0
Trung bình: 5.0<=ĐTB<6.5
Yếu: ĐTB<5
Xử lý bài toán:
Khai báo thư viện
#include<stdio.h> #include<conio.h> #include<math.h>
#include<stdio.h> #include<conio.h> #include<math.h> |
Khai báo struct sinh viên gồm:
Họ tên
Mã số sinh viên
Lớp
Năm sinh
Điểm ngôn ngữ lập trình
Điểm tin học
Điểm toán a1
struct SinhVien { char hoten[30],MSSV[20],lop[10]; float DiemNNLT,Tinhoc,ToanA1; int namsinh; }; typedef SinhVien sinhvien;
1 2 3 4 5 6 7 | struct SinhVien { char hoten[30],MSSV[20],lop[10]; float DiemNNLT,Tinhoc,ToanA1; int namsinh; }; typedef SinhVien sinhvien; |
Khai báo các hàm cần sử dụng
void nhap1sv(sinhvien &sv); void xuat1sv(sinhvien sv); float DiemTB(sinhvien sv); char* XepLoai(sinhvien sv);
void nhap1sv(sinhvien &sv); void xuat1sv(sinhvien sv); float DiemTB(sinhvien sv); char* XepLoai(sinhvien sv); |
Viết hàm nhập
void nhap1sv(sinhvien &sv) { printf("\nNhap vao ho va ten sinh vien: "); fflush(stdin); gets(sv.hoten); printf("Nhap vao ma so sinh vien: "); fflush(stdin); gets(sv.MSSV); printf("Nhap vao lop cua sinh vien "); fflush(stdin); gets(sv.lop); printf("\nNam sinh cua sinh vien: "); scanf("%d",&sv.namsinh); do { printf("\nNhap vao diem mon NNLT "); scanf("%f",&sv.DiemNNLT); if(sv.DiemNNLT>10 || sv.DiemNNLT<0) printf("\nDiem tu 0 den 10!\nVui long kiem tra lai"); }while(sv.DiemNNLT < 0 || sv.DiemNNLT > 10); do { printf("\nNhap vao diem mon tin hoc "); scanf("%f",&sv.Tinhoc); if(sv.Tinhoc > 10 || sv.Tinhoc < 0) printf("\nDiem tu 0 den 10!\nVui long kiem tra lai"); }while(sv.Tinhoc > 10 || sv.Tinhoc < 0); do { printf("\nNhap vao diem mon toan A1 "); scanf("%f",&sv.ToanA1); if(sv.ToanA1 > 10 || sv.ToanA1 < 0) printf("\nDiem tu 0 den 10!\nVui long kiem tra lai"); }while(sv.ToanA1 < 0 || sv.ToanA1 > 10); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | void nhap1sv(sinhvien &sv) { printf("\nNhap vao ho va ten sinh vien: "); fflush(stdin); gets(sv.hoten); printf("Nhap vao ma so sinh vien: "); fflush(stdin); gets(sv.MSSV); printf("Nhap vao lop cua sinh vien "); fflush(stdin); gets(sv.lop); printf("\nNam sinh cua sinh vien: "); scanf("%d",&sv.namsinh); do { printf("\nNhap vao diem mon NNLT "); scanf("%f",&sv.DiemNNLT); if(sv.DiemNNLT>10 || sv.DiemNNLT<0) printf("\nDiem tu 0 den 10!\nVui long kiem tra lai"); }while(sv.DiemNNLT < 0 || sv.DiemNNLT > 10); do { printf("\nNhap vao diem mon tin hoc "); scanf("%f",&sv.Tinhoc); if(sv.Tinhoc > 10 || sv.Tinhoc < 0) printf("\nDiem tu 0 den 10!\nVui long kiem tra lai"); }while(sv.Tinhoc > 10 || sv.Tinhoc < 0); do { printf("\nNhap vao diem mon toan A1 "); scanf("%f",&sv.ToanA1); if(sv.ToanA1 > 10 || sv.ToanA1 < 0) printf("\nDiem tu 0 den 10!\nVui long kiem tra lai"); }while(sv.ToanA1 < 0 || sv.ToanA1 > 10); } |
Viết hàm xuất
void xuat1sv(sinhvien sv) { printf("\nHo va ten sinh vien: %s",sv.hoten); printf("\nMa so sinh vien: %s",sv.MSSV); printf("\nLop hoc: %s",sv.lop); printf("\nNam sinh: %d",sv.namsinh); printf("\nDiem mon NNLT: %8.2f",sv.DiemNNLT); printf("\nDiem mon tin hoc: %8.2f",sv.Tinhoc); printf("\nDiem mon toan A1: %8.2f",sv.ToanA1); printf("\nDiem trung binh: %8.2f",DiemTB(sv)); printf("\nXep loai: %s",XepLoai(sv)); }
1 2 3 4 5 6 7 8 9 10 11 12 | void xuat1sv(sinhvien sv) { printf("\nHo va ten sinh vien: %s",sv.hoten); printf("\nMa so sinh vien: %s",sv.MSSV); printf("\nLop hoc: %s",sv.lop); printf("\nNam sinh: %d",sv.namsinh); printf("\nDiem mon NNLT: %8.2f",sv.DiemNNLT); printf("\nDiem mon tin hoc: %8.2f",sv.Tinhoc); printf("\nDiem mon toan A1: %8.2f",sv.ToanA1); printf("\nDiem trung binh: %8.2f",DiemTB(sv)); printf("\nXep loai: %s",XepLoai(sv)); } |
Viết hàm tính trung bình
float DiemTB(sinhvien sv) { float tb; tb=(sv.DiemNNLT +sv.Tinhoc +sv.ToanA1)/3; return tb; }
1 2 3 4 5 6 | float DiemTB(sinhvien sv) { float tb; tb=(sv.DiemNNLT +sv.Tinhoc +sv.ToanA1)/3; return tb; } |
Viết hàm xếp loại
char*XepLoai(sinhvien sv) { float tb=DiemTB(sv); if(tb>=9) return "Xuat sac"; else if(tb>=8 && tb<9) return "Gioi"; else if(tb>=6.5 && tb<8) return "Kha"; else if(tb>=5 && tb<6.5) return "Trung binh"; else return "Yeu"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | char*XepLoai(sinhvien sv) { float tb=DiemTB(sv); if(tb>=9) return "Xuat sac"; else if(tb>=8 && tb<9) return "Gioi"; else if(tb>=6.5 && tb<8) return "Kha"; else if(tb>=5 && tb<6.5) return "Trung binh"; else return "Yeu"; } |
Viết hàm main
void main() { sinhvien sv; nhap1sv(sv); xuat1sv(sv); getch(); }
1 2 3 4 5 6 7 | void main() { sinhvien sv; nhap1sv(sv); xuat1sv(sv); getch(); } |
Mình chia sẽ code này đê các bạn tham khảo các vấn đề tương tự. Tuy nhiên các bạn nên tự làm lại, đừng nên copy. Nếu gặp vấn đề gì khó khăn, hoặc thắc mắc gì, các bạn có thể đặt câu hỏi ở cuối bài. Mình sẽ giải đáp.
Chúc các bạn thành công!
Sưu tầm & Tổng hợp
w: www.hanoiyeu.com
e: [email protected]