#include<conio.h>
#include<stdio.h>
#include<string.h>
struct lop
{
char malop[10];
char tenlop[30];
}l[100];
struct sinhvien
{
char masv[10];
char tensv[30];
char mlop[10];
}sv[100];
struct monhoc
{
char tenmh[30];
int dvht;
}mh[10];
struct diem
{
char tensv[30];
int dvht;
float d_c_c;
float d_g_k;
float d_c_k;
float dtb;
};
int dl,dmh,dsv;
void nhaplop()
{
printf("******NHAP VAO DANH SACH LOP*******\n");
printf("-------------------------\n");
printf("| STT | MALOP | TEN LOP |\n");
printf("-------------------------\n");
int i=1;
while(1)
{
gotoxy(0,i+4);
cprintf("| %d",i);
gotoxy(7,i+4);
cprintf("| ");
fflush(stdin);
gets(l[i].malop);
if(strcmp(l[i].malop,"")==0) break;
gotoxy(15,i+4);
cprintf("| ");
fflush(stdin);
gets(l[i].tenlop);
gotoxy(25,i+4);
cprintf("|");
printf("\n");
i++;
}
dl=i-1;
}
void nhapsv(int x)
{
for(int i=1;i<x;i++)
{printf("nhap sinh vien cho lop %s",l[i]);
int i=1;
printf("*********NHAP VAO DANH SACH SINH VIEN*******\n");
printf("--------------------------------------------\n");
printf("| STT | MASV | TEN SV | TEN LOP|\n");
printf("--------------------------------------------\n");
while(1)
{
gotoxy(0,i+4);
cprintf("| %d",i);
gotoxy(5,i+4);
cprintf("| ");
fflush(stdin);
gets(sv[i].masv);
if(strcmp(sv[i].masv,"")==0) break;
gotoxy(12,i+4);
cprintf("| ");
fflush(stdin);
gets(sv[i].tensv);
gotoxy(34,i+4);
cprintf("| ");
fflush(stdin);
strcpy(sv[i].mlop,l[i].malop);
gotoxy(43,i+4);
cprintf("|");
printf("\n");
i++;
}
dsv=i;
}
}
void nhapmonhoc()
{
printf("******NHAP VAO DANH SACH MON HOC*******\n");
printf("-------------------------\n");
printf("| STT | TEN MON HOC | DVHT |\n");
printf("-------------------------\n");
int i=1;
while(1)
{
gotoxy(0,i+4);
cprintf("| %d",i);
gotoxy(7,i+4);
cprintf("| ");
fflush(stdin);
gets(mh[i].tenmh);
if(strcmp(mh[i].tenmh,"")==0) break;
gotoxy(15,i+4);
cprintf("| ");
fflush(stdin);
scanf("%d",&mh[i].dvht);
gotoxy(25,i+4);
cprintf("|");
printf("\n");
i++;
}
dl=i-1;
}
void nhapdiem()
{
int i=1;
float x;
char lop[10];
printf("Nhap vao lop can nhap diem: ");
scanf("&s",&lop);
clrscr();
printf("*******************NHAP DIEM CHO SINH VIEN**********************\n");
printf("---------------------------------------------------------------------------\n");
printf("|STT| MASV | HO VA TEN | D 10% | D 30% |D 60%(L1)|D60%(L2)| DTB |\n");
printf("---------------------------------------------------------------------------\n");
while(1)
{
cprintf("| %d |",i);
fflush(stdin);
puts(lop.masv);
gotoxy(12,5+i);
cprintf("|");
fflush(stdin);
puts(sv.tensv);
gotoxy(34,5+i);
cprintf("|");
scanf("%f",&x);
sv.diem.d_c_c=x;
gotoxy(42,5+i);
cprintf("|");
scanf("%f",&x);
sv.diem.d_g_k=x;
gotoxy(50,5+i);
cprintf("|");
scanf("%f",&x);
sv.diem.d_c_k=x;
sv.diem.dtb=(sv.diem.d_c_c+sv.diem.d_g_k*3+sv.diem.d_c_k*6)/10;
gotoxy(69,5+i);
cprintf("|");
printf("%0.2f",sv.diem.dtb);
gotoxy(75,5+i);
cprintf("|");
printf("\n");
i++;
}
}
int kiemtraten(int n,char ht[30],struct sinhvien s[50])
{
int kt=0;
printf("\n Nhap vao ten sinh vien can tim ");
fflush(stdin);
gets(ht);
for(int i=0;i<n;i++)
if(strcmp(s[i].masv,ht)!=0)
{ kt=1;
break;
}
return kt;
}
void xoapt(struct sinhvien s[50],int t,int n)
{
for(int i=t;i<n;i++)
s[i]=s[i+1];
n=n-1;
}
//DOAN CHUONG TRINH XU LY TEN
/* HAM NAY TRA VE PHAN TEN CUA CHUOI HO VA TEN*/
char *layten(char s1[])
{
int l,k;
k=0;
l=strlen(s1);
for (int i=l;i>0;i--)
{
if (s1[i]==' ') //xac dinh ten dua vao khoang trong
{
break;
}
}
for (int j=i+1;j<=l;j++)
{
s1[k]=s1[j]; //Lay phan ten
k++;
}
return s1;
}
void sap_xep_ten(int n,struct sinhvien s[50])
{
struct sinhvien tam;
char tam1[50],tam2[50];
for(int i=1;i<n-1;++i)
for(int j=i+1;j<n;++j)
{
strcpy(tam1,s[i].tensv);
strcpy(tam2,s[j].tensv);
if(strcmp(layten(tam1),layten(tam2))>0)
{
tam=s[i];
s[i]=s[j];
s[j]=tam;
}
}
}
int menu()
{
int c;
printf("\n******************** MENU CHUONG TRINH CHINH ******************");
printf("\n\n 1. Nhap them vao danh sach sinh vien");
printf("\n\n 2. In ra noi dung trong file");
printf("\n\n 3. In ra danh sach theo thu tu giam dan DTB");
printf("\n\n 4. In ra danh sach theo sap xep theo ten");
printf("\n\n 5. Tim kiem mot ten bat ky");
printf("\n\n 6. In ra ten cua nguoi co diem cao nhat ");
printf("\n\n 7. Xoa mot ten ra khoi danh sach");
printf("\n\n 8. Danh sach thi lai");
printf("\n\n 9. Ghi danh sach vao file");
printf("\n\n 10.Ghi danh sach thi lai vao file");
printf("\n\n 0. Thoat chuong trinh");
printf("\n\n Ban go so de chon muc");
do
{
c=getch();
}while(c>'10'||c<'0');
return c-'0';
}
/* CHUONG TRINH DIEU KHIEN MENU*/
int dieu_khien(void)
{
clrscr();
int chon;
do
{
chon =menu();
switch(chon)
{
case 1:clrscr();
nhapsv(dl);
break;
case 2:
clrscr();
nhapmonhoc();
break;
case 3:
clrscr();
nhaplop();
break;
// case 4:
// clrscr();
//sap_xep_ten(sv);
// xuat_mang_sv(sv);
// break;
// case 5:clrscr();
// xuat_file_sv1();
// break;
// case 6:
// clrscr();
// timmax(sv);
// break;
// case 7: xoapt(sv,2);
// clrscr();
// n=n+1;
// xuat_mang_sv(sv);
// break;
// case 8:clrscr();
// thilai(sv);
// break;
// case 9: ghi_file();
// clrscr();
// break;
// case 4: ghi_file1();
// clrscr();
// break;
}
}while(chon!=0);
getch();
};
void main()
{
clrscr();
nhaplop();
printf("so lop la %d\n",dl);
nhapsv(dl);
nhapmonhoc();
getch();
}