Chào mừng đến với 8888này.forumvi.com Nơi Vui chơi - Giao lưu - 8 Dóc



:: WELCOME to 8888Nay::
  • Music





Nhập Xuất DS Liên kết Đơn

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down
Thu Nov 08, 2012 9:58 am
MrBCH

Thành Viên- MrBCH
Danh Hiệu Cá NhânAdmin

Admin
Hiện đang:
Số bài gửi : 252
Điểm : 678
Thích : 7
Ngày Sinh : 26/06/2012
Thọ : 31
Đến từ : Phước An-Tuy phước-Bình Định
Ứng dụng
Số bài gửi : 252
Điểm : 678
Thích : 7
Ngày Sinh : 26/06/2012
Thọ : 31
Đến từ : Phước An-Tuy phước-Bình Định
Nhập Xuất DS Liên kết Đơn Vide10
Bài gửiTiêu đề: Nhập Xuất DS Liên kết Đơn
https://8888nay.forumvi.com

»Tiêu đề: Nhập Xuất DS Liên kết Đơn

Code:
#include "khaibao.h"

void Nhap1SV(SINHVIEN &sv)
{
   cout<<"Ma so sinh vien: ";
   cin.getline(sv.mssv,9);
   cout<<"Ho va ten: ";
   cin.getline(sv.hovaten,31);
   do{
      cout<<"Gioi tinh (1_Nam ; 0_Nu): ";
      cin>>sv.gioitinh;
      if(sv.gioitinh!=0 && sv.gioitinh!=1)
         cout<<"Nhap khong hop le! 1_Nam, 0_Nu\n";
   }while(sv.gioitinh!=0 && sv.gioitinh!=1);
   cin.ignore();
   cout<<"Dia chi: ";
   cin.getline(sv.diachi,81);
   cout<<"Diem trung binh: ";
   cin>>sv.diemtrungbinh;
   cin.ignore();
}
void Xuat1SV(SINHVIEN sv)
{
   cout<<"\nMa so sinh vien: "<<sv.mssv;
   cout<<"\nHo va ten: "<<sv.hovaten;
   cout<<"\nGioi tinh: ";
   if(sv.gioitinh==0)
      cout<<" Nu";
   else
      cout<<" Nam";
   cout<<"\nDia chi: "<<sv.diachi;
   cout<<"\nDiem trung binh: "<<sv.diemtrungbinh<<endl;
}

void CreateEmptyList(LIST &l)
{
   l.phead=l.ptail=NULL;
}
bool IsEmptyList(LIST l)
{
   return((l.phead==NULL) && (l.ptail==NULL));
}
NODE *CreateNode(SINHVIEN sv)
{
   NODE  *pnew;
   pnew=new NODE;
   
   if(pnew==NULL)
   {
      cout<<"Loi trong cap phat bo nho\n";
      exit(0);
   }

   pnew->data=sv;
   pnew->pnext=NULL;
   return pnew;
}

void AddHead(LIST &l, NODE *pnew)
{
   if(l.phead==NULL)
      l.phead=l.ptail=pnew;
   else
   {
      pnew->pnext=l.phead;
      l.phead=pnew;
   }
}
void AddTail(LIST &l, NODE *pnew)
{
   if(l.ptail==NULL)
   {
      l.ptail=l.phead=pnew;
   }
   else
   {
      l.ptail->pnext=pnew;
      l.ptail=pnew;
   }
}
void NhapDS(LIST &l,int n)
{
   for(int i=0;i<n;i++)
   {
      SINHVIEN a;
      cout<<"Nhap sv thu "<<i<<"\n";
      Nhap1SV(a);
      AddTail(l,CreateNode(a));
   }
}
void XuatDS(LIST l)
{
   NODE *p=l.phead;

   while(p!=NULL)
   {
      Xuat1SV(p->data);
      p=p->pnext;
   }
}

NODE *TimMaSV(LIST l, char masv[])
{
   NODE *p=l.phead;
   while(p!=NULL)
   {
      if(strcmp(p->data.mssv,masv)==0)
         return p;
      p=p->pnext;
   }
   return NULL;
}

NODE *TimPre(LIST l, NODE *pcur)
{
   if(pcur==l.phead||pcur==NULL)
      return NULL;
   NODE *p=l.phead;
   while(p->pnext!=NULL)
   {
      if(p->pnext==pcur)
         return p;
      p=p->pnext;
   }
   return NULL;
}
void XoaDau(LIST &l)
{
   NODE *pdel=l.phead;
   l.phead=l.phead->pnext;
   delete pdel;
}
void XoaCuoi(LIST &l)
{
   NODE *pdel=l.ptail;
   l.ptail=TimPre(l,l.ptail);
   l.ptail->pnext=NULL;
   delete pdel;
}
void XoaNode(LIST &l,NODE *pdel)
{
   if(pdel==l.phead)
      XoaDau(l);
   else
   {
      if(pdel==l.ptail)
         XoaCuoi(l);
      else
      {
         NODE *pre=TimPre(l,pdel);
         pre->pnext=pdel->pnext;
         delete pdel;
      }
   }
}

void XoaSV(LIST &l)
{
   char mssv[9];
   cout<<"Nhap ma so sinh vien can xoa: ";
   cin.getline(mssv,9);
   NODE *pdel=TimMaSV(l,mssv);
   if(pdel==NULL)
      cout<<"Khong tim thay mssv can xoa\n";
   else
      XoaNode(l,pdel);
}

void HoanVi(SINHVIEN &a, SINHVIEN &b)
{
   SINHVIEN tam=a;
   a=b;
   b=tam;
}
void SapXepTangTB(LIST &l)
{
   NODE *p=l.phead;

   while(p->pnext!=NULL)
   {
      NODE *k=p->pnext;
      while(k!=NULL)
      {
         if((p->data.diemtrungbinh)>(k->data.diemtrungbinh))
            HoanVi(p->data,k->data);
         k=k->pnext;
      }
      p=p->pnext;
   }
}

void TrungBinhLonHon5(LIST l)
{
   NODE *p=l.phead;

   while(p!=NULL)
   {
      if(p->data.diemtrungbinh>5)
         Xuat1SV(p->data);
      p=p->pnext;
   }
}
int DemNam(LIST l)
{
   int d=0;
   NODE *p=l.phead;

   while(p!=NULL)
   {
      if(p->data.gioitinh==1)
         d++;
      p=p->pnext;
   }
   return d;

}
void CapNhatDiem(LIST &l)
{
   char maso[9];
   cout<<"Nhap ma sinh vien can thay doi diem: ";
   cin.getline(maso,9);
   NODE *masv=TimMaSV(l, maso);
   if(masv==NULL)
   {
      cout<<"Khong tim thay sinh vien can cap nhat\n";
      return;
   }
   int diem;
   cout<<"Nhap diem trung binh can thay doi: ";
   cin>>diem;
   masv->data.diemtrungbinh=diem;
}

Bạn thích bài viết "Nhập Xuất DS Liên kết Đơn" của MrBCH không?
Nếu bạn thích thì bấm . Còn không thích thì bấm







Thu Nov 08, 2012 9:59 am
MrBCH

Thành Viên- MrBCH
Danh Hiệu Cá NhânAdmin

Admin
Hiện đang:
Số bài gửi : 252
Điểm : 678
Thích : 7
Ngày Sinh : 26/06/2012
Thọ : 31
Đến từ : Phước An-Tuy phước-Bình Định
Ứng dụng
Số bài gửi : 252
Điểm : 678
Thích : 7
Ngày Sinh : 26/06/2012
Thọ : 31
Đến từ : Phước An-Tuy phước-Bình Định
Nhập Xuất DS Liên kết Đơn Vide10
Bài gửiTiêu đề: Re: Nhập Xuất DS Liên kết Đơn
https://8888nay.forumvi.com

»Tiêu đề: Nhập Xuất DS Liên kết Đơn

Code:
#pragma once
#include<iostream>
#include<string.h>
using namespace std;

typedef struct ttSINHVIEN
{
   char mssv[9];
   char hovaten[31];
   int gioitinh;
   char diachi[81];
   float diemtrungbinh;
}SINHVIEN;
typedef struct ttNODE
{
   SINHVIEN data;
   ttNODE *pnext;
}NODE;
typedef struct ttLIST
{
   NODE *phead,*ptail;
}LIST;
void Nhap1SV(SINHVIEN &sv);
void Xuat1SV(SINHVIEN sv);

void CreateEmptyList(LIST &l);
bool IsEmptyList(LIST l);
NODE *CreateNode(SINHVIEN sv);

void AddHead(LIST &l, NODE *pnew);
void AddTail(LIST &l, NODE *pnew);

void NhapDS(LIST &l,int n);
void XuatDS(LIST l);


NODE *TimPre(LIST l, NODE *pcur);

void XoaDau(LIST &l);
void XoaCuoi(LIST &l);
void XoaNode(LIST &l,NODE *pdel);

NODE *TimMaSV(LIST l, char masv[]);
void XoaSV(LIST &l);

void HoanVi(SINHVIEN &a, SINHVIEN &b);
void SapXepTangTB(LIST &l);
void TrungBinhLonHon5(LIST l);
int DemNam(LIST l);
void CapNhatDiem(LIST &l);[url][/url]

Bạn thích bài viết "Nhập Xuất DS Liên kết Đơn" của MrBCH không?
Nếu bạn thích thì bấm . Còn không thích thì bấm







Thu Nov 08, 2012 10:00 am
MrBCH

Thành Viên- MrBCH
Danh Hiệu Cá NhânAdmin

Admin
Hiện đang:
Số bài gửi : 252
Điểm : 678
Thích : 7
Ngày Sinh : 26/06/2012
Thọ : 31
Đến từ : Phước An-Tuy phước-Bình Định
Ứng dụng
Số bài gửi : 252
Điểm : 678
Thích : 7
Ngày Sinh : 26/06/2012
Thọ : 31
Đến từ : Phước An-Tuy phước-Bình Định
Nhập Xuất DS Liên kết Đơn Vide10
Bài gửiTiêu đề: Re: Nhập Xuất DS Liên kết Đơn
https://8888nay.forumvi.com

»Tiêu đề: Nhập Xuất DS Liên kết Đơn

Code:
#include "khaibao.h"

void main()
{
   LIST l;
   int n;

   CreateEmptyList(l);
   cout<<"Nhap so sv muon them: ";
   cin>>n;
   cin.ignore();
   NhapDS(l,n);
   XuatDS(l);

   //XoaSV(l);

   //cout<<"\nDanh sach sinh vien sau khi xoa: ";
   //XuatDS(l);

   SapXepTangTB(l);
   cout<<"\nDanh sach sinh vien sau sap xep tang theo trung binh: ";
   XuatDS(l);

   TrungBinhLonHon5(l);
   cout<<"\nSo nam: "<<DemNam(l);
   CapNhatDiem(l);
   cout<<"\nSau khi cap nhat diem: ";
   XuatDS(l);

}

Bạn thích bài viết "Nhập Xuất DS Liên kết Đơn" của MrBCH không?
Nếu bạn thích thì bấm . Còn không thích thì bấm








Thành Viên- Sponsored content
Danh Hiệu Cá Nhân

Hiện đang:
Ứng dụng
Nhập Xuất DS Liên kết Đơn Vide10
Bài gửiTiêu đề: Re: Nhập Xuất DS Liên kết Đơn

»Tiêu đề: Nhập Xuất DS Liên kết Đơn

Bạn thích bài viết "Nhập Xuất DS Liên kết Đơn" của Sponsored content không?
Nếu bạn thích thì bấm . Còn không thích thì bấm







Trang 1 trong tổng số 1 trang




Trả Lời Nhanh
Permissions in this forum:Bạn không có quyền trả lời bài viết
-
Đang tải dữ liệu...