C3TH4
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

C3TH4


 
Trang ChínhPortalLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 strutc sinh vien hoc thuoc

Go down 
Tác giảThông điệp
Admins
Thái Thượng Hoàng
Thái Thượng Hoàng
Admins


Tổng số bài gửi : 336
Age : 35
Đến từ : cát bụi
Registration date : 03/04/2008

strutc sinh vien hoc thuoc Empty
Bài gửiTiêu đề: strutc sinh vien hoc thuoc   strutc sinh vien hoc thuoc Icon_minitimeSun Jun 29, 2008 10:51 pm

Code:
/*
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];
   float 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);
void InterchangeSort_CTDL (SVIEN dssv[], int n);


//...........

//=====================================
//Chuong trinh Chinh

void main()
{
   clrscr();
   SVIEN dssv[20], sv;
   int n, chon, kt, vt;
   char ht[20], ms[10], ch;
   printf("\n\tNhap So SV :  ");
   scanf("%d", &n);
   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 !");
            printf("\n\tNhap So SV :  ");
            scanf("%d", &n);
             printf("\n\tNhap DS Sinh Vien !");
            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 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 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 ("%f", &d);
      sv.CTDL = d;
   }while ((sv.CTDL < 0) || (sv.CTDL > 10));
   do
   {
      printf("\t\tCSDL :  ");
      scanf ("%f", &d);
      sv.CSDL = d;
   }while ((sv.CSDL < 0) || (sv.CSDL > 10));
   do
   {
      printf("\t\tPTTK :  ");
      scanf ("%f", &d);
      sv.PTTK = d;
   }while ((sv.PTTK < 0) || (sv.PTTK > 10));
   sv.DTB =  (sv.CTDL +  sv.CSDL +  sv.PTTK)/3;
   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;
   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 : %7.1f ; CSDL : %7.1fd ; PTTK : %7.1f ; DTB : %7.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 (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_BT (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³ %-3.1f³ %-3.1f³ %-3.1f³ %-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³ %-3.1f³ %-3.1f³ %-3.1f³ %-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  LinearSearchTen1 (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
}

int  LinearSearchTen (SVIEN dssv[], int n, char *ten)
{
   int i = 0;
   for (i = 0; i < n; i++)
      if(stricmp (dssv[i].Ten, ten) == 0)
      //if (a[i] == x)
         return  i;   //Tim Thay
   return -1;     //Khong Tim Thay
}

//=====================================
void HoanVi (SVIEN *sv1, SVIEN *sv2)
{
   SVIEN temp;
   temp = *sv1;
   *sv1 = *sv2;
   *sv2 = temp;
}


//=====================================
//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]);
}

//=====================================
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;
}
//=====================================
Về Đầu Trang Go down
https://c3th4.forum-viet.com
 
strutc sinh vien hoc thuoc
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» CAC BAI GIAI MAI THI HOC THUOC LONG DE
» Khi nữ sinh làm gái bao
» Chó sơ sinh có khuôn mặt giống người

Permissions in this forum:Bạn không có quyền trả lời bài viết
C3TH4 :: Box Học Tập :: Kỹ Thuật Lập Trình-
Chuyển đến