IT05
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.

IT05

Lớp CNTT05A - ĐH Đồng Tháp
 
Trang ChínhPortalGalleryLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 Bài Sinh Vien. Danh sách liên kết

Go down 
Tác giảThông điệp
Admin
Admin
Admin


Tổng số bài gửi : 34
Join date : 05/02/2010
Age : 37

Bài Sinh Vien. Danh sách liên kết Empty
Bài gửiTiêu đề: Bài Sinh Vien. Danh sách liên kết   Bài Sinh Vien. Danh sách liên kết I_icon_minitimeWed Feb 24, 2010 10:30 am

Về có bổ sung thêm thì nhớ post lên cho A E tham khảo nhe!
Code:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <alloc.h>

#define TRUE 1
#define FALSE 0


typedef struct Thongtin_SV
{
   int masv;
   char hoten[50];
   char ngaysinh[10];
   char quequan[50];
   char lop[10];
   char nganh[10];
};

struct node
{
   Thongtin_SV info;
   struct node *next;
};
typedef node *nodeptr;
typedef nodeptr Sinhvien;
//typedef nodeptr position;

// Khoi tao DS lien ket
void initialize(Sinhvien *sv)
{
   *sv=NULL;
}

//Khoi tao SinhVien
void make_null(Sinhvien *sv)
{
   (*sv)=(Sinhvien)malloc(sizeof(node));
   (*sv)->next=NULL;
}

// tim vi tri cua SV
int vitri(Sinhvien *sv,Sinhvien svtim)
{
   int vt=-1;
   Sinhvien temp;
   temp=*sv;   
   while(temp!=NULL && temp!=svtim)
   {
      temp=temp->next;
      vt++;
   }
   return vt;
}

//KT DS SV co rong ko?
int empty(Sinhvien *sv)
{
   return (*sv==NULL?TRUE:FALSE);
   
}

//Them SV vao dau
void push(Sinhvien *sv, Thongtin_SV x)
{
   Sinhvien p;
   make_null(&p);
   p->info=x;
   p->next=*sv;
   *sv=p;
}

//Them SV vao sau 1 SV khac
void insert_after(Sinhvien sv,Thongtin_SV x)
{
   Sinhvien p;
   if(sv==NULL)
      printf("Khong them dc SV!");
   else
   {
      make_null(&p);
      p->info=x;
      p->next=sv->next;
      sv->next=p;
   }
      
}

//Lay ra va xoa SV o dau DS
Thongtin_SV pop(Sinhvien *sv)
{
   Sinhvien p;
   Thongtin_SV x;
   if(!empty(sv))
   {
      p=*sv;
      x=p->info;
      *sv=p->next;
      free(p);      
   }   
      return (x);
}

//Xoa 1 SV
Thongtin_SV del(Sinhvien sv)
{
   Sinhvien p;
   Thongtin_SV x;
   if(sv==NULL)
      printf("Ko xoa dc sv");
   else
   {
      p=sv;
      x=p->info;
      sv->next=p->next;
      free(p);        
   }
   return (x);
}

//Tim theo masv
Sinhvien search(Sinhvien *sv, int x)
{
   Sinhvien p;
   p=*sv;
   while(p->info.masv!=x && p!=NULL)
      p=p->next;
   return (p);
}

//Duyet DS
void duyet(Sinhvien *sv)
{
   Sinhvien p;
   int stt=0;
   p=*sv;
   if(p==NULL)
      printf("Ko co SV trong DS");
   else
   {
      while(p!=NULL)
      {
         printf("\n %d   %d   %s",++stt,p->info.masv,p->info.hoten);
         p=p->next;
      }
   }   
}

//Clear DS SV
void clearlist(Sinhvien *sv)
{
   Sinhvien p,q;//q la nut truoc, p la nut sau
   q=NULL;
   p=*sv;
   while(p!=NULL)
   {
      q=p;
      p=p->next;
      free(q);
   }
   *sv=NULL;
}

//Sap Xep tang dan theo masv
void sort(Sinhvien *sv)
{
   Sinhvien p,q,pmin;
   Thongtin_sv min;
   for(p=*sv;p!=NULL;p=p->next)
   {
      min=p->info;
      pmin=p;
      for(q=p->next;q!=NULL;q=q->next)
      {
         if(min.masv > q->info.masv)
         {
            min=q->info;
            pmin=q;
         }
      }
      pmin->info=p->info;
      p->info=min;
      
   }
}

void main()
{
   Sinhvien sv,p;
   Thongtin_SV ttsv;
   int vt, cn;
   char c;
   initialize(&sv);
do{
   printf("\n1: Xem DS SV\n");
   printf("2: Them SV vao DS\n");
   printf("3: Xoa SV trong DS");
   printf("4: Hieu chinh SV\n");
   printf("5: Sap Xep DS SV theo MaSV\n");
   printf("6: Tim kiem SV theo MaSSV\n");
   printf("7: Xoa toan bo DS\n");
   printf("0: Ket thuc ChTr\n");
   printf("Chuc nang da chon\n");
   scanf("%d",&cn);
   switch(cn)
   {
      case 1:
      {
         duyet(&sv);
         break;
      }
      case 2:
      {
         printf("\nMa SV:");
         scanf("%d",ttsv.masv);   
         printf("\nHo ten SV:");
         scanf("%s",ttsv.hoten);
         printf("\nNgay sinh:");
         scanf("%s",ttsv.ngaysinh);
         printf("\nQue quan:");
         scanf("%s",ttsv.quequan);
         printf("\nLop:");
         scanf("%s",ttsv.lop);
         printf("\nNganh:") ;
         scanf("%s",ttsv.nganh);

         push(&sv,ttsv);
         break;
         
      }
      case 6:
      {
         printf("Nhap Ma SV can tim");
         scanf("%d",&ttsv.masv);
         p=search(&sv,ttsv.masv);
         if(p==NULL)
            printf("ko tim dc SV");
         else
            printf("Tim dc");
         break;
      }
   }
}while(cn!=0);
}

Về Đầu Trang Go down
https://it05.forumvi.com
 
Bài Sinh Vien. Danh sách liên kết
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Hình thành viên lớp
» Săn Qủy (hành động - kinh dị - viễn tưởng - ma)
» Liên hoan nữa các bạn ui, vào đây bình chọn he!!!
» Có hình Liên hoan 7/2 rui do
» Hình liên hoan 7-2-2010

Permissions in this forum:Bạn không có quyền trả lời bài viết
IT05 :: SOURCE - CODE CHƯƠNG TRÌNH :: C/C++-
Chuyển đến