Diễn đàn hỏi đáp học thuật - Download Tài Liệu Miễn Phí
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.

Diễn đàn hỏi đáp học thuật - Download Tài Liệu Miễn PhíĐăng Nhập

VỮNG TIN - TIẾP BƯỚC - THÀNH CÔNG


descriptionBai 2. Quản lý điểm sinh viên EmptyBai 2. Quản lý điểm sinh viên

more_horiz

Code:

#include<conio.h>
#include<stdio.h>
#include<alloc.h>
#include<string.h>
typedef struct DMon1{
   char MaMon1[10];
   char TenMon1[20];
   int SoTiet1;
};
typedef struct DMon2{
   char MaMon2[10];
   char TenMon2[20];
   int SoTiet2;
};
typedef struct DMon3{
   char MaMon3[10];
   char TenMon3[20];
   int SoTiet3;
};
typedef struct SinhVien{
   char MSSV[20];
   char HoTen[50];
   DMon1 *dm1;
   DMon2 *dm2;
   DMon3 *dm3;
};
typedef struct Node{
   SinhVien info;
   Node*Next;
};
typedef Node*Nodeptr;

void MakeNull(Nodeptr &First){
   First=NULL;
}
int Empty(Nodeptr First){
   return First==NULL;
}
Nodeptr Getnode(){
   Nodeptr p;
   p=(Node*)malloc(sizeof(Node));
   return p;
}
void Del_Node(Nodeptr p){
   free(p);
}
Nodeptr First_Node(Nodeptr First){
   return First;
}
void Insert(Nodeptr &First,Nodeptr q){
   Nodeptr p=First_Node(First);
   while(p!=NULL){
      p=p->Next;
   }
   p->Next=q;
   q->Next=NULL;
}
SinhVien Init_SinhVien(){
   SinhVien *SV=(SinhVien*)malloc(sizeof(SinhVien));
   printf("\n");
   printf("MSSV: ");
   flushall();
   gets(SV->MSSV);
   printf("Ho Ten: ");
   gets(SV->HoTen);
   printf("\n\nDanh muc mon 1: ");
   printf("\n\tMa Mon 1:");flushall();
   gets(SV->dm1->MaMon1);
   printf("\tTen Mon 1:");
   gets(SV->dm1->TenMon1);
   printf("\tSo Tiet 1:");
   scanf("%d",SV->dm1->SoTiet1);
   printf("\n\nDanh muc mon 2: ");
   printf("\n\tMa Mon 2:");flushall();
   gets(SV->dm2->MaMon2);
   printf("\tTen Mon 2:");
   gets(SV->dm2->TenMon2);
   printf("\tSo Tiet 2:");
   scanf("%d",SV->dm2->SoTiet2);
   printf("\n\nDanh muc mon 3: ");
   printf("\n\tMa Mon 3:");flushall();
   gets(SV->dm3->MaMon3);
   printf("\tTen Mon 3:");
   gets(SV->dm3->TenMon3);
   printf("\tSo Tiet 3:");
   scanf("%d",SV->dm3->SoTiet3);
   return (*SV);
}
Nodeptr Init_Node(SinhVien sv){
   Nodeptr p;
   p=Getnode();
   p->info=sv;
   p->Next=p;
   return p;
}
void Push(Nodeptr *First){
   Nodeptr p=First_Node(*First);
   p=Init_Node(Init_SinhVien());
   Insert(*First,p);
}
void Print_SinhVien(SinhVien *SV){
   printf("-----------------");
   printf("MSSV: %s\n",SV->MSSV);
   printf("Ho ten sinh vien: %s\n",SV->HoTen);
   printf("Mon 1");
   printf("\n\tMa mon 1: %s",SV->dm1->MaMon1);
   printf("\n\tTen mon 1: %s",SV->dm1->TenMon1);
   printf("\n\tSo tiet 1: %d",SV->dm1->SoTiet1);
   printf("Mon 2");
   printf("\n\tMa mon 2: %s",SV->dm2->MaMon2);
   printf("\n\tTen mon 2: %s",SV->dm2->TenMon2);
   printf("\n\tSo tiet 2: %d",SV->dm2->SoTiet2);
   printf("Mon 3");
   printf("\n\tMa mon 3: %s",SV->dm3->MaMon3);
   printf("\n\tTen mon 3: %s",SV->dm3->TenMon3);
   printf("\n\tSo tiet 3: %d",SV->dm3->SoTiet3);
}
void Print_Node(Nodeptr First){
   Nodeptr p;
   p=First_Node(First);
   while(p!=NULL){
      Print_SinhVien(&(p->info));
      p=p->Next;
   }
};
void  Search(Nodeptr First){
   Nodeptr p;
   char *mssv;
   p=First;
   printf("Nhap MSSV:"); flushall();
   gets(mssv);
   while(p!=NULL){
      if(strcmp(p->info.MSSV,"mssv")==0)
         Print_SinhVien(&(p->info));
      else
         p=p->Next;
   }
}
void SapXep(Nodeptr First){
   Nodeptr i,j,temp;
   i=First_Node(First);
   j=i->Next;
   while(i!=NULL){
      while(j!=NULL){
         if(i->info.MSSV>j->info.MSSV){
            temp=i;
            i=j;
            j=temp;
         }
         j=j->Next;
      }
      i-i->Next;
   }
}
void main(){
   clrscr();
   Nodeptr First;
   int n;
   MakeNull(First);
    :shock:  :shock:  :shock:  :shock: printf("Nhap vao so sinh vien: ");
   scanf("%d",&n);
   for(int i=0;i<n;i++){
      printf("Nhap sinh vien thu %d",i+1);
      Push(&First);
   }
   Search(First);
   printf("Sap xep theo thu tu tang dan");
   SapXep(First);
   Print_Node(First);
   getch();
}

descriptionBai 2. Quản lý điểm sinh viên EmptyTối ưu cấu trúc dữ liệu

more_horiz
CẤU TRÚC DỮ LIỆU CỦA BẠN

Code:

typedef struct DMon1{
  char MaMon1[10];
  char TenMon1[20];
  int SoTiet1;
};
typedef struct DMon2{
  char MaMon2[10];
  char TenMon2[20];
  int SoTiet2;
};
typedef struct DMon3{
  char MaMon3[10];
  char TenMon3[20];
  int SoTiet3;
};
typedef struct SinhVien{
  char MSSV[20];
  char HoTen[50];
  DMon1 *dm1;
  DMon2 *dm2;
  DMon3 *dm3;
};
typedef struct Node{
  SinhVien info;
  Node*Next;
};
typedef Node*Nodeptr;


TÔI ĐỀ NGHỊ NHƯ SAU

Code:

typedef struct DMon{
  char MaMon[10];
  char TenMon[20];
  int SoTiet;
};
typedef struct SinhVien{
  char MSSV[20];
  char HoTen[50];
  DMon dm1;
  DMon dm2;
  DMon dm3;
};
typedef struct Node{
  SinhVien info;
  Node* Next;
};
typedef Node* Nodeptr;
privacy_tip Permissions in this forum:
Bạn không có quyền trả lời bài viết
power_settings_newLogin to reply