Tải bản đầy đủ (.doc) (5 trang)

thuật toán quản lý điểm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (41.15 KB, 5 trang )

/*
/>*/
#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 liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×