Cho một danh sách sinh viên được mô tả chi tiết như sau:
- Danh sách sinh viên gồm n sinh viên. với n được nhập bất kỳ.
- Thông tin một sinh viên bao gồm: Số thứ tự, Mã số sinh viên, Họ tên sinh viên, Điểm Nhập môn lập trình, Môn toán A1, Môn toán A2, Môn Vật lý kỹ thuật, Môn anh văn, Điểm trung bình tích lũy, Xếp loại (xuất sắc, giỏi, khá, trung bình, yếu).
- Thông tin môn học bao gồm: Mã môn, Tên môn, Số tín chỉ, Điểm.
Thực hiện các yêu cầu sau:
a) Hãy thiết kế và xây dựng các cấu trúc (struct) phù hợp cho bài toán
b) Xây dựng một chương trình hoàn chỉnh cho một lớp học đảm bảo các thao tác sau: - Hàm nhập xuất danh sách sinh viên (2 điểm).
- Tìm một sinh viên thông qua mã số sinh viên hoặc qua tên sinh viên (1 điểm)
- Tìm sinh viên có điểm trung bình cao nhất (1 điểm)
- Liệt kê danh sách các sinh viên thuộc một loại bất kỳ (1 điểm)
- Thêm, xóa một sinh viên ra khỏi danh sách (2 điểm)
- Sắp xếp danh sách sinh viên tăng dần (1 điểm).
- Theo điểm trung bình tích lũy
- Hoặc Theo tên theo thứ tự ABC …
Lưu ý:
- ĐTBTC là trung bình cộng của tất cả các môn dựa trên điểm số và số tín chỉ.
- Lưu ý: Xếp loại được tính như sau:
- Xuất sắc: ĐTBTL>=9
- Giỏi với: 8.0<=ĐTBTL<9
- Khá với: 6.5<=ĐTBTL<8.0
- Trung bình: 5.0<=ĐTBTL<6.5
- Yếu: ĐTBTL<5
Em code thế này đước điểm tối đa không mọi người (chỉ câu a thôi nha ^^)
P/s Phần này em chưa học nên chưa có kinh nghiệm
#include<stdio.h>
#include<conio.h>
struct SinhVien
{
char Hovaten[30],MSSV[10],Ngaysinh[10];
float diemtoan,diemanhvan;
};
struct Thongtinmonhoc
{
//Mã môn, Tên môn, Số tín chỉ, Điểm.
char Mamon[10],Tenmon[10];
int Sotinchi;
float diem;
};
void nhapthongtinmonhoc(Thongtinmonhoc &x)
{
fflush(stdin);
printf("\nNhap Ten Mon Hoc: ");
gets(x.Tenmon);
fflush(stdin);
printf("\nNhap Ma Mon Hoc: ");
gets(x.Mamon);
printf("\nNhap so tinh chi: ");
scanf("%d",&x.Sotinchi);
printf("\nNhap diem: ");
scanf("%f",&x.diem);
}
void xuatthongtinmonhoc(Thongtinmonhoc x)
{
printf("\nTen Mon Hoc: %s",x.Tenmon);
printf("\nMa Mon Hoc: %s",x.Mamon);
printf("\nSo Tinh Chi: %d",x.Sotinchi);
printf("\nDiem: %.2f",x.diem);
}
void nhapdulieuHS(SinhVien a[],int &n)
{
for(int i=0;i<n;i++)
{
printf("\n------------------------------------\n");
fflush(stdin);
printf("\nNhap Ho Va Ten SV: ");
gets(a[i].Hovaten);
fflush(stdin);
printf("\nNhap MSSV: ");
gets(a[i].MSSV);
fflush(stdin);
printf("\nNhap ngay sinh: ");
gets(a[i].Ngaysinh);
printf("\nNhap diem toan: ");
scanf("%f",&a[i].diemtoan);
printf("\nNhap diem anh van: ");
scanf("%f",&a[i].diemanhvan);
}
}
void xuatdulieuHS(SinhVien a[],int n)
{
for(int i=0;i<n;i++)
{
printf("\n------------------------------------\n");
printf("\nHo va ten: %s",a[i].Hovaten);
printf("\nMSSV: %s",a[i].MSSV);
printf("\nNgay sinh: %s",a[i].Ngaysinh);
printf("\nDiem toan: %0.1f",a[i].diemtoan);
printf("\nDiem anh van: %0.1f",a[i].diemanhvan);
printf("\n------------------------------------\n");
}
}
void main()
{
int n;
Thongtinmonhoc x;
SinhVien a[100];
printf("\nNhap so luong SV: ");
scanf("%d",&n);
nhapdulieuHS(a,n);
xuatdulieuHS(a,n);
nhapthongtinmonhoc(x);
xuatthongtinmonhoc(x);
getch();
}