Cấu trúc kiểu dữ liệu sinh viên

toi1em

Member
Feb 20, 2012
949
0
16
40
320x50.jpg


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]