kiem tien, kiem tien online, kiem tien truc tuyen, kiem tien tren mang
Thứ Tư, 5 tháng 3, 2014

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



#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
using namespace std;
 
// 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

int
main(){

Nhap();
TinhDiem();
DemDTB_LonHon8();
DemDTB_NhoHon5();
InSV_max();
XepLoai();
InDS();
SapXep();
getch();
return 0;
}

0 nhận xét:

Đăng nhận xét

domain, domain name, premium domain name for sales

Bài đăng phổ biến