/*
VIET CHUONG TRINH QUAN LY DSSV
THONG TIN MOI SV GOM:
- MaSo, Ho, Ten
- Diem CTDL, CSDL, PTTK, DTB
- Ket Qua
Yeu Cau Xau Dung Cac Tac Vu :
- Nhap DS
- In DS
- Them 1 PTu Vao DS
- Xoa 1 PTu Trong DS
- Tiem Kiem Bang Cac PP Da Hoc
- Sap Xep Bang Cac PP Da Hoc
- In DS Sinh Vien Dat
- Hieu Chinh Thong Tin
- ...
*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct ttsinhvien
{
char MaSV[10], HoVaTL[20], Ten[10];
int CTDL, CSDL, PTTK;
float DTB;
char KQ[15];
};
typedef struct ttsinhvien SVIEN;
//Dinh Nghia KDL Co Ten "SVIEN"
//=====================================
//khai bao prototype
SVIEN Nhap1PT();
void NhapDS (SVIEN dssv[], int *n);
void In1PT(SVIEN sv);
void XuatDS (SVIEN dssv[], int n);
void XuatDS_BT (SVIEN dssv[], int n);
void Them1PT (SVIEN dssv[], int vt, int *n, SVIEN sv);
void Xoa1PT (SVIEN dssv[], int vt, int *n);
void HieuChinh(SVIEN dssv[], int n, int vt, SVIEN sv);
void XuatDS_Dat (SVIEN dssv[], int n);
void XuatDS_KDat (SVIEN dssv[], int n);
//Nhung Tac Vu (Prototype) O Tren Se Co Trong tac Cac Cac Bai Tap Khac
//======================================
//Cac Prototype O Phia Duoi Se Khac Nhau Trong Tung Bai Tap
int LinearSearchTen (SVIEN dssv[], int n, char *ten);
int BinarySearchMS (SVIEN dssv[], int n, char *ms );
void HoanVi (SVIEN *sv1, SVIEN *sv2);
void InsertionSortTen (SVIEN dssv[], int n);
void SelectionSort_MS (SVIEN dssv[], int n);
void InterchangeSort_CTDL (SVIEN dssv[], int n);
void BubbleSort_DTB (SVIEN dssv[], int n);
void QuickSort_CSDL (SVIEN dssv[], int l, int r);
//...........
//=====================================
//Chuong trinh Chinh
void main()
{
clrscr();
SVIEN dssv[20], sv;
int n, chon, kt, vt;
char ht[20], ms[10], ch;
printf("\n\tNhap DS SV !");
NhapDS (dssv, &n); //Goi Ham
do
{
clrscr();
printf("\n\n\tBAI TAP CHUKNG HAI !");
printf("\n\t1 : Nhap DS Moi !");
printf("\n\t2 : Xuat Danh Sach !");
printf("\n\t3 : Them 1 Phan Tu vao DS !");
printf("\n\t4 : Xoa 1 Phan Tu Trong DS !");
printf("\n\t5 : Tim Kiem Theo Ten !");
printf("\n\t6 : Tim Kiem Theo ma So !");
printf("\n\t7 : Sap Xep DS bang PPhap InsertionSort Dua Vao Ten !");
printf("\n\t8 : Sap Xep DS bang PPhap SelectionSort Dua Vao Ma So !");
printf("\n\t9 : Sap Xep DS bang PPhap InterchangeSort Dua Vao Diem CTDL !");
printf("\n\t10 : Sap Xep DS bang PPhap BubbleSort Dua Vao Diem TB !");
printf("\n\t11 : Sap Xep DS bang PPhap QuickSort Dua Vao Diem CSDL !");
printf("\n\t12 : Hieu Chinh Noi Dung 1 Phan Tu !");
printf("\n\t13 : Danh Sach Nhung SVien Dat !");
printf("\n\t14 : Danh Sach Nhung SVien Khong Dat !");
printf("\n\t15 : Xuat Danh Sach Dang BTHuong !");
printf("\n\t.....!");
printf("\n\t0 : THOAT KHOI CHUONG TRINH !");
printf("\n\tBan Chon Chuc Nang Nao ? ");
scanf ("%d", &chon);
switch(chon)
{
case 1:
{
clrscr();
printf("\n\tNhap DS Sinh Vien Moi !");
NhapDS (dssv, &n); //Goi Ham
break;
}
case 2:
{
clrscr();
printf("\n\tDanh Sach Sinh Vien Hien tai !\n");
XuatDS (dssv, n); //Goi Ham
getch();
break;
}
case 3:
{
clrscr();
printf("\n\tThem 1 Phan Tu Vao DS !");
printf("\n\tDS Truoc Khi Them !");
XuatDS (dssv, n);
getch();
do
{
printf("\n\tNhap Vi Tri Can Them (0 -> %d) : ", n);
scanf ("%d", &vt);
}while (vt < 0 || vt > n);
printf("\n\tNhap Noi Dung Phan Tu Can Them !");
sv = Nhap1PT();
Them1PT (dssv, vt, &n, sv);
printf("\n\tDS Sau Khi Them !");
XuatDS (dssv, n);
getch();
break;
}
case 4:
{
clrscr();
printf("\n\tXoa 1 Phan Tu Trong DS !");
printf("\n\tDS Truoc Khi Xoa !");
XuatDS (dssv, n);
getch();
do
{
printf("\n\tNhap Vi Tri Can Xoa (0 -> %d) : ", n - 1);
scanf ("%d", &vt);
}while (vt < 0 || vt >= n);
printf("\n\tThong Tin Hoc Sinh Can Xoa La !");
In1PT (dssv[vt]);
printf("\n\tBan Co Chac Chan Xoa Khong (Y/N) ? ");
ch = getch();
if ((ch == 'y') || (ch == 'Y'))
{
Xoa1PT (dssv, vt, &n);
printf("\n\tDS Sau Khi Xoa !");
XuatDS (dssv, n);
}
else
printf("\n\tKhong Xoa Mau Tin Tren !");
getch();
break;
}
case 5:
{
clrscr();
printf("\n\tTim Kiem 1 SVien Trong DS Bang PPhap Tuyen Tinh !");
printf("\n\tNhap ten Can Tim (Chi Nhap Ten) : ");
fflush(stdin);
gets(ht);
kt = LinearSearchTen (dssv, n, ht); //Goi Ham
if (kt != -1)
{
printf("\n\tTim Thay SV Co ten \"%s\" Tai Vi Tri %d !", ht, kt + 1);
printf("\n\tThong Tin SV Vua Tim La !");
In1PT (dssv[kt]); //Goi Ham
}
else
printf("\n\tKhong Tim Thay SV Co Ten \"%s\" Trong DS !", ht);
getch();
break;
}
case 6:
{
clrscr();
printf("\n\tTim Kiem 1 SVien Trong DS Bang PPhap Nhi Phan !");
printf("\n\tNhap Ma SV Can Tim : ");
fflush(stdin);
gets(ms);
SelectionSort_MS( dssv, n);
kt = BinarySearchMS (dssv, n, ms); //Goi Ham
if (kt != -1)
{
printf("\n\tTim Thay SV Co Ma So \"%s\" Tai Vi Tri %d !", ms, kt + 1);
printf("\n\tThong Tin SV Vua Tim La !");
In1PT (dssv[kt]); //Goi Ham
}
else
printf("\n\tKhong Tim Thay SV Co Ma So \"%s\" Trong DS !", ms);
getch();
break;
}
case 7:
{
clrscr();
printf("\n\tSap Xep DS Dua Vao Ten Bang PP InsertionSort !");
printf("\n\tDanh Sach Truoc Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
InsertionSortTen (dssv, n); //Goi Ham
printf("\n\tDanh Sach Sau Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
break;
}
case 8:
{
clrscr();
printf("\n\tSap Xep DS Dua Vao Ma So Bang PP SelectionSort !");
printf("\n\tDanh Sach Truoc Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
SelectionSort_MS (dssv, n); //Goi Ham
printf("\n\tDanh Sach Sau Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
break;
}
case 9:
{
clrscr();
printf("\n\tSap Xep DS Dua Vao Diem CTDL Bang PP InterchangeSort !");
printf("\n\tDanh Sach Truoc Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
InterchangeSort_CTDL (dssv, n); //Goi Ham
printf("\n\tDanh Sach Sau Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
break;
}
case 10:
{
clrscr();
printf("\n\tSap Xep DS Dua Vao Diem TB Bang PP BubbleSort !");
printf("\n\tDanh Sach Truoc Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
BubbleSort_DTB (dssv, n); //Goi Ham
printf("\n\tDanh Sach Sau Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
break;
}
case 11:
{
clrscr();
printf("\n\tSap Xep DS Dua Vao Diem CSDL Bang PP QuickSort !");
printf("\n\tDanh Sach Truoc Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
QuickSort_CSDL (dssv, 0, n - 1); //Goi Ham
printf("\n\tDanh Sach Sau Khi Sap Xep !\n");
XuatDS (dssv, n); //Goi Ham
getch();
break;
}
case 12:
{
clrscr();
printf("\n\tHieu Chinh Noi Dung 1 Phan Tu !");
do
{
printf("\n\tNhap Vi Tri Phan Tu Can HChinh (0 -> %d) : ", n - 1);
scanf("%d", &vt);
}while (vt < 0 || vt >=n);
printf("\n\tThong Tin Phan Tu Can HChinh !");
In1PT(dssv[vt]);
printf("\n\tNhap Noi Dung Moi !");
sv = Nhap1PT();
HieuChinh( dssv, n, vt, sv);
clrscr();
printf("\n\tThong Tin Sau Khi HChinh !");
In1PT(dssv[vt]);
getch();
break;
}
case 13:
{
clrscr();
printf("\n\tDanh Sach Sinh Vien Dat !\n");
XuatDS_Dat (dssv, n); //Goi Ham
getch();
break;
}
case 14:
{
clrscr();
printf("\n\tDanh Sach Sinh Vien Khong Dat !\n");
XuatDS_KDat (dssv, n); //Goi Ham
getch();
break;
}
case 15:
{
clrscr();
printf("\n\tDanh Sach Sinh Vien Hien tai !\n");
XuatDS_BT (dssv, n); //Goi Ham
getch();
break;
}
}//KT Switch
}while (chon > 0);
getch();
}//KT CTChinh
//CD Cac prototype o tren
//=====================================
//Tac Vu Nay Tuong Tu Cho Cac bai Tap Khac Ve Cau Truc
SVIEN Nhap1PT ()
{
SVIEN sv;
char st[30];
float d;
printf("\n\t\tNhap Ma So SV : ");
scanf ("%s", &sv.MaSV);
printf("\t\tNhap Ho & TL : ");
fflush(stdin);
gets (st);
strcpy (sv.HoVaTL, st);
printf("\t\tNhap Ten SV : ");
fflush(stdin);
gets (st);
strcpy (sv.Ten, st);
printf("\t\tNhap Diem !");
do
{
printf("\n\t\tCTDL : ");
scanf ("%d", &sv.CTDL);
}while ((sv.CTDL < 0) || (sv.CTDL > 10));
do
{
printf("\t\tCSDL : ");
scanf ("%d", &sv.CSDL);
}while ((sv.CSDL < 0) || (sv.CSDL > 10));
do
{
printf("\t\tPTTK : ");
scanf ("%d", &sv.PTTK);
}while ((sv.PTTK < 0) || (sv.PTTK > 10));
d = (float) (sv.CTDL + sv.CSDL + sv.PTTK)/3;
sv.DTB = d;
if ((sv.DTB >= 5) && (sv.CTDL >= 4) && (sv.CSDL >=4 ) && (sv.PTTK >= 4))
strcpy (sv.KQ, "DAT");
else
strcpy (sv.KQ, "Khong Dat");
return sv;
}
//=====================================
//Tac Vu Nay Tuong Tu Cho Cac bai Tap Khac Ve Cau Truc
void NhapDS (SVIEN dssv[], int *n)
{
int i;
printf("\n\tNhap So Sinh Vien : ");
scanf ("%d", n);
printf("\n\tNhap DS Sinh Vien !");
for (i = 0; i < *n; i++)
{
printf("\n\tNhap Thong Tinh SV Thu %d !", i+1);
dssv[i] = Nhap1PT();
}
}
//=====================================
//Tac Vu Nay Tuong Tu Cho Cac bai Tap Khac Ve Cau Truc
void In1PT(SVIEN sv)
{
printf("\n\t\tMa So Sinh Vien : %s !", sv.MaSV);
printf("\n\t\tHo va ten Sinh Vien : %s %s !",sv.HoVaTL, sv.Ten);
printf("\n\t\tDiem CTDL : %3d ; CSDL : %3d ; PTTK : %3d ; DTB : %3.1f !",sv.CTDL, sv.CSDL, sv.PTTK, sv.DTB);
printf("\n\t\tKet Qua Cua SV : %s !", sv.KQ);
}
//=====================================
//Tac Vu Nay Tuong Tu Cho Cac bai Tap Khac Ve Cau Truc
//Dang Nay Xuat DS Dang Binh Thuong
void XuatDS_BT (SVIEN dssv[], int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("\n\tThong Tin SV Thu %d !", i+1);
In1PT (dssv[i]);
}
}
//=====================================
//Tac Vu Nay Tuong Tu Cho Cac bai Tap Khac Ve Cau Truc
void XuatDS (SVIEN dssv[], int n)
{
int i;
printf("\nÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
printf("\n³STT³ MaSV ³ Ho va Ten ³CTDL³CSDL³PTTK³ DTB ³ Ket Qua ³");
for (i = 0; i < n; i++)
{
printf("\nÃÄÄÄ+ÄÄÄÄÄÄÄÄÄÄ+ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄÄ+ÄÄÄÄÄÄÄÄÄÄÄ´");
printf("\n³%-3d³ %-9s³ %-18s %-9s³ %-3d³ %-3d³ %-3d³ %-4.1f³%-11s³", i + 1, dssv[i].MaSV, dssv[i].HoVaTL , dssv[i].Ten, dssv[i].CTDL, dssv[i].CSDL, dssv[i].PTTK, dssv[i].DTB, dssv[i].KQ);
}
printf("\nÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
}
//=====================================
//In DS Nhung Sinh Vien Dat
void XuatDS_Dat (SVIEN dssv[], int n)
{
int i;
printf("\nÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
printf("\n³STT³ MaSV ³ Ho va Ten ³CTDL³CSDL³PTTK³ DTB ³ Ket Qua ³");
for (i = 0; i < n; i++)
if (stricmp(dssv[i].KQ, "DAT") == 0)
{
printf("\nÃÄÄÄ+ÄÄÄÄÄÄÄÄÄÄ+ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄÄ+ÄÄÄÄÄÄÄÄÄÄÄ´");
printf("\n³%-3d³ %-9s³ %-18s %-9s³ %-3d³ %-3d³ %-3d³ %-4.1f³%-11s³", i + 1, dssv[i].MaSV, dssv[i].HoVaTL , dssv[i].Ten, dssv[i].CTDL, dssv[i].CSDL, dssv[i].PTTK, dssv[i].DTB, dssv[i].KQ);
}
printf("\nÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
}
//=====================================
//In DS Nhung Sinh Vien Khong Dat
void XuatDS_KDat (SVIEN dssv[], int n)
{
int i;
printf("\nÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
printf("\n³STT³ MaSV ³ Ho va Ten ³CTDL³CSDL³PTTK³ DTB ³ Ket Qua ³");
for (i = 0; i < n; i++)
if (stricmp(dssv[i].KQ, "DAT") != 0)
{
printf("\nÃÄÄÄ+ÄÄÄÄÄÄÄÄÄÄ+ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄ+ÄÄÄÄÄ+ÄÄÄÄÄÄÄÄÄÄÄ´");
printf("\n³%-3d³ %-9s³ %-18s %-9s³ %-3d³ %-3d³ %-3d³ %-4.1f³%-11s³", i + 1, dssv[i].MaSV, dssv[i].HoVaTL , dssv[i].Ten, dssv[i].CTDL, dssv[i].CSDL, dssv[i].PTTK, dssv[i].DTB, dssv[i].KQ);
}
printf("\nÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
}
//=====================================
//Tac Vu Nay Tuong Tu Cho Cac bai Tap Khac Ve Cau Truc
void Them1PT (SVIEN dssv[], int vt, int *n, SVIEN sv)
{
int i;
if ((vt < 0) || (vt > *n))
printf("\n\tvi Tri Them Khong Hop le !");
else
{
//Doi Cac Phan Tu Tu Cuoi Den VTThem Len 1 VTri
for (i = *n; i > vt; i--)
dssv[i] = dssv[i - 1];
//KT Qua Trinh Doi
dssv[vt] = sv;
*n = *n + 1; //Tang SPTu len 1 DV
}
}
//=====================================
//Tac Vu Nay Tuong Tu Cho Cac bai Tap Khac Ve Cau Truc
void Xoa1PT (SVIEN dssv[], int vt, int *n)
{
int i;
if ((vt < 0) || (vt >= *n))
printf("\n\tVi Tri Xoa Khong Hop le !");
else
{
//Doi Cac Phan Tu Tu VTXoa Den Cuoi Xuong 1 VT
for (i = vt + 1; i < *n; i++)
dssv[i - 1] = dssv[i];
//KT Qua Trinh Doi
*n = *n - 1; //Tang SPTu len 1 DV
}
}
//=====================================
int LinearSearchTen (SVIEN dssv[], int n, char *ten)
{
int i = 0;
while ((i < n) && (stricmp (dssv[i].Ten, ten) != 0))
i++;
if (i < n)
return i; //Tim Thay
return -1; //Khong Tim Thay
}
//=======================9=============
int BinarySearchMS (SVIEN dssv[], int n, char *ms )
{
int l, r, mid;
l = 0;
r = n - 1;
do
{
mid = (l + r)/2;
if (stricmp(dssv[mid].MaSV,ms) == 0)
return mid;
if (stricmp(dssv[mid].MaSV,ms) > 0)
r = mid - 1;
else
l = mid + 1;
}while (l <= r);
return -1;
}
//=====================================
void HoanVi (SVIEN *sv1, SVIEN *sv2)
{
SVIEN temp;
temp = *sv1;
*sv1 = *sv2;
*sv2 = temp;
}
//=====================================
//Sap Xep Theo Thu Tu Tang Dan Cua ma So
//Bang PP Chon Truc Tiep
void SelectionSort_MS (SVIEN dssv[], int n)
{
int i, j, vtmin;
for (i = 0; i < n - 1; i++)
{
vtmin = i;
for (j = i+ 1; j < n; j++)
if (stricmp(dssv[vtmin].MaSV, dssv[j].MaSV) > 0)
vtmin = j;
if (vtmin != i)
HoanVi (&dssv[vtmin], &dssv[i]);
}
}
//=====================================
//Sap Xep Theo Thu Tu Tang Dan Cua Ten
//Bang PP Chen Truc Tiep
void InsertionSortTen (SVIEN dssv[], int n)
{
int i, j, vtchen;
SVIEN sv;
for (i = 1; i < n; i++)
{
sv = dssv[i];
vtchen = i - 1;
//Truong Hop DK Can SS La So
//while (vtchen >= 0 && (dssv[vtchen].CTDL > sv.CTDL) )
//Truong Hop DK Can SS La Chuoi
while (vtchen >= 0 && stricmp(dssv[vtchen].Ten, sv.Ten) > 0)
{
dssv[vtchen + 1] = dssv[vtchen];
vtchen--;
}
dssv[vtchen+1] = sv;
}
}
//=====================================
//=====================================
//Sap Xep Bang PP Doi Cho Truc Tiep Dua Vao Diem CTDL
void InterchangeSort_CTDL (SVIEN dssv[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
for (j = i+ 1; j < n; j++)
if (dssv[i].CTDL > dssv[j].CTDL)
HoanVi (&dssv[i], &dssv[j]);
}
//=====================================
//Sap Xep Bang PP Noi Bot Dua Vao Diem DTB
void BubbleSort_DTB (SVIEN dssv[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
for (j = n - 1; j > i; j--)
if (dssv[j - 1].DTB > dssv[j].DTB)
HoanVi (&dssv[j - 1], &dssv[j]);
}
//=====================================
//Sap Xep Bang PP Ohan Hoach Dua Vao Diem CSDL
void QuickSort_CSDL (SVIEN dssv[], int l, int r)
{
int i, j, mid;
SVIEN sv;
i = l;
j = r;
sv = dssv[(l + r)/2];
do
{
while (dssv[i].CSDL < sv.CSDL)
i++;
while (dssv[j].CSDL > sv.CSDL)
j--;
if (i <= j)
{
HoanVi (&dssv[i], &dssv[j]);
i++;
j--;
}
}while (i < j);
if (l < j)
QuickSort_CSDL (dssv, l, j); //Goi De Quy Day Trai
if (i < r)
QuickSort_CSDL (dssv, i, r); //Goi De Quy Day Phai
}
//=====================================
void HieuChinh(SVIEN dssv[], int n,int vt, SVIEN sv)
{
if (vt < 0 || vt >= n)
printf("\n\tVi Tri Hieu Chinh Khong Hop Le !");
else
dssv[vt] = sv;
}
//=====================================