Bài tập con trỏ cấu trúc: Viết các hàm thực hiện
- Nhập vào danh sách có n sinh viên (2<n<20), thông tin sinh viên gồm:
+ Họ tên
+ Địa chỉ
+ Năm sinh
+ Giới tính
+ Lớp
+ Điểm: TCC(hs 3), TA(hs 4), TDC(hs 5)
- Tính điểm trung bình
- Đếm số sinh viên có điểm trung bình >= 8
- Đếm số sinh viên có điểm trung bình < 5
- In tên sinh viên có điểm trung bình cao nhất
- Xếp loại cho sinh viên
- In danh sách sinh viên đã xếp loại
- Sắp xếp danh sách sinh viên theo thứ tự tăng dần của điểm tb
[Code Turbo C++]
/**********************************
http://lap-trinh-may-tinh.blogspot.com/
**********************************/
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
// khai bao
struct SV{
char ht[30], dc[50],gioitinh[3],lop[10],xepLoai[10];
int namSinh;
float dTCC, dTA,dTDC,dTB;
};
SV a[20],*p;
int n;// so sinh vien
// Nhap thong tin sinh vien
void Nhap(){
p=a;
// nhap so sinh vien
do{
cout<<"\n Nhap so sinh vien: "; cin>>n;
if(n<2||n>20) cout<<"\n Nhap lai so sinh vien";
}while(n<2||n>20);
// Nhap thong tin sinh vien
cout<<"\n Nhap thong tin sinh vien: ";
for(int i=0;i<n;i++)
{
fflush(stdin);
cout<<"\n + Nhap thong tin co sinh vien thu "<<i+1<<": ";
cout<<"\n - Ho ten: "; gets((p+i)->ht);
cout<<"\n - Dia chi: "; gets((p+i)->dc);
cout<<"\n - Gioi tinh: "; gets((p+i)->gioitinh);
cout<<"\n - Lop: "; gets((p+i)->lop);
cout<<"\n - Nam sinh: "; cin>>(p+i)->namSinh;
cout<<"\n - Diem toan cao cap: "; cin>>(p+i)->dTCC;
cout<<"\n - Diem toan tieng anh: "; cin>>(p+i)->dTA;
cout<<"\n - Diem tin dai cuong: "; cin>>(p+i)->dTDC;
}
}
// Tinh diem tong ket
void TinhDiem(){
p=a;
for(int i=0;i<n;i++)
(p+i)->dTB=(((p+i)->dTCC)*3+((p+i)->dTA)*4+((p+i)->dTDC)*5)/12;
}
// Dem so sinh vien co diem tb>=8
void DemDTB_LonHon8(){
p=a;
int dem=0;
for(int i=0;i<n;i++)
if((p+i)->dTB>=8) dem++;
cout<<"\n * So sinh vien co diem trung binh >= 8: "<<dem;
}
// Dem so sinh vien co diem tb<5
void DemDTB_NhoHon5(){
p=a;
int dem=0;
for(int i=0;i<n;i++)
if((p+i)->dTB<5) dem++;
cout<<"\n * So sinh vien co diem trung binh < 5: "<<dem;
}
// Tim sinh vien co diem cao nhat
void InSV_max(){
p=a;
float max=p->dTB;
for(int i=0;i<n;i++)
if (max<(p+i)->dTB) { max=(p+i)->dTB;}
// in sinh vien max
cout<<"\n * Ten sinh vien co diem cao nhat: ";
for(i=0;i<n;i++)
if(max==(p+i)->dTB) cout<<"\n +"<<(p+i)->ht;
}
// Xep loai cho sinh vien
void XepLoai(){
p=a;
for(int i=0;i<n;i++)
{
if ((p+i)->dTB<5) strcpy((p+i)->xepLoai,"Truot");
else if ((p+i)->dTB<6) strcpy((p+i)->xepLoai,"Trung binh");
else if ((p+i)->dTB<7) strcpy((p+i)->xepLoai,"Trung binh kha");
else if ((p+i)->dTB<8) strcpy((p+i)->xepLoai,"Kha");
else if ((p+i)->dTB<9) strcpy((p+i)->xepLoai,"Gioi");
else if ((p+i)->dTB<=10) strcpy((p+i)->xepLoai,"Xuat sac");
}
}
// In danh sach sinh vien
void InDS(){
p=a;
cout<<"\n * In danh sach sinh vien da xep loai:";
for(int i=0;i<n;i++)
cout<<"\n - "<<(p+i)->ht<<"\t - "<<(p+i)->xepLoai;
}
// doi cho
void DoiCho(SV *a, SV *b){
char tht[30],tdc[50],tgioitinh[5],tlop[10],dxl[10];
int tns;
float tdtcc,tdta,tdtdc,tdtb;
strcpy(tht,a->ht);
strcpy(a->ht,b->ht);
strcpy(b->ht,tht);
strcpy(tdc,a->dc);
strcpy(a->dc,b->dc);
strcpy(b->dc,tdc);
strcpy(tgioitinh,a->gioitinh);
strcpy(a->gioitinh,b->gioitinh);
strcpy(b->gioitinh,tgioitinh);
strcpy(tlop,a->lop);
strcpy(a->lop,b->lop);
strcpy(b->lop,tlop);
strcpy(dxl,a->xepLoai);
strcpy(a->xepLoai,b->xepLoai);
strcpy(b->xepLoai,dxl);
tns=a->namSinh;
a->namSinh=b->namSinh;
b->namSinh=tns;
tdtcc=a->dTCC;
a->dTCC=b->dTCC;
b->dTCC=tdtcc;
tdta=a->dTA;
a->dTA=b->dTA;
b->dTA=tdta;
tdtdc=a->dTDC;
a->dTDC=b->dTDC;
b->dTDC=tdtdc;
tdtb=a->dTB;
a->dTB=b->dTB;
b->dTB=tdtb;
}
// sap xep danh sach sinh vien
void SapXep(){
p=a;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
if ((p+i)->dTB>(p+j)->dTB)
{
DoiCho((p+i),(p+j));
}
}
cout<<"\n * Danh sach sinh vien da xep loai: ";
for(i=0;i<n;i++)
cout<<"\n - "<<(p+i)->ht<<"\t - "<<(p+i)->dTB;
}
// ham chinh
void main(){
clrscr();
Nhap();
TinhDiem();
DemDTB_LonHon8();
DemDTB_NhoHon5();
InSV_max();
XepLoai();
InDS();
SapXep();
getch();
}
/***********************************/
[Tải code chương trình tại đây - Lưu ý: Sau 5s, Click Bỏ qua quảng cáo (Skin Ad)]
[ C\C++ ] Bài tập con trỏ cấu trúc [ Quản lý điểm sinh viên - 29/08/13 ]
in C, C Plus Plus, Lập trình căn bản /
Related Posts:
Giới thiệu về Lập trình hướng đối tượng - OOP Lập trình hướng đối tượng (gọi tắt là OOP, từ chữ Anh ngữ object-oriented programming), hay còn gọi là lập trình định hướng đối tượng, là kĩ thuật… Read More
# Giới thiệu tổng quan về ngôn ngữ lập trình C Ngôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Ken Thompson và Dennis Ritchie để dùng trong hệ điều hành UN… Read More
Chữa bài tập TH Kỹ thuật lập trình C\C++ https://docs.google.com/document/d/1RFLYPvD0JFPmVOwhdjPOsOYwGbBlcNKPMGsr1QXhaRE/edit… Read More
[C\C++] Ví dụ cấu trúc lặp trong C\C++ /* Ví dụ1: In ra man hinh tat ca so nguyen co 3 chu so sao cho tong cua chung bang 10 */ #include<iostream.h> #includ… Read More
Bài tập TH Kỹ thuật lập trình C\C++ (16-11-2012) /* Bài 1: Viết các hàm: 1- Nhap 1 day so nguyen co n so (1<=n<=100, n nhap vao tu bp) 2- In day 3- Tach day thanh 2, 1 day chua so chan, 1… Read More