Lưu ý: Bài này mình làm với mặt hàng đơn giản chỉ có hai thuộc tính là mã và tên, mọi người cần thêm đầy đủ các thuộc tính của một mặt hàng cần có như giá , số lượng, .....!
-------------------------------------------------------------------------------------------------------------------------
Code quảng cáo của bạn ở đây
mathang.c
//Ho và tên:Trần Văn Linh
//Msv:581597
//Lớp:K58QLTT
#include<stdio.h>
#include<stdlib.h>
//==Khai bao cau truc
typedef struct mathang mathang;
struct mathang
{
int maMH;
char tenMH[256];
};
typedef struct node node;
struct node
{
mathang infor;
node *link;
}*F=NULL,*R=NULL;
//Khai bao ham
void inSert(mathang infor);// hàm chèn một nút
void Search(int maMH);//Hàm tìm kiếm một mặt hàng với mã mặt hàng
void Delete(int maMH); //Hàm xóa một một mặt hàng với mã mặt hàng
void in();//Ham in ra danh sach các mặt hàng
//Chuong trình chính
int main()
{
mathang mh;
int maMH;
char tl;
do
{
printf("Nhap ma mat hang: ");
scanf("%d",&mh.maMH);
fflush(stdin);//Xóa bộ đệm
printf("Nhap ten mat hang: ");
gets(mh.tenMH);
inSert(mh);//Bổ sung
printf("Co nhap nua khong (c/k):");
scanf("%c",&tl);
}while(tl=='c'||tl=='C');
printf("\n\nDanh sach da nhap la: \n");
in();
printf("\n\nNhap ma mat hang ban can xoa: ");
scanf("%d",&maMH);
Delete(maMH);
printf("\n\nDanh sach sau khi xoa: ");
in();
printf("\n\nNhap ma mat hang ban can tim kiem: ");
scanf("%d",&maMH);
Search(maMH);
return 0;
}
//--Dinh nghia ham
void inSert(mathang infor)
{
node *N;
N=(node*)malloc(sizeof(node));
N->infor=infor;
N->link=NULL;
//Bổ sung
N->link=F;
N->link=F;
F=N;
}
//---------------------
void Search(int maMH)
{
node *P;
P=F;
mathang tim;
tim.maMH=0;
strcpy(tim.tenMH,"");
tim.maMH=0;
strcpy(tim.tenMH,"");
while(P)
{
if(P->infor.maMH==maMH)
{
tim=P->infor;
break;
}
P=P->link;
}
if(strcmp(tim.tenMH,"")==0)
{
printf("Mat hang khong ton tai");
return;
}
if(strcmp(tim.tenMH,"")==0)
{
printf("Mat hang khong ton tai");
return;
}
printf("Ma mat hang: %d\n",tim.maMH);
printf("Ten mat hang: %s",tim.tenMH);
}
//--------------------------
void Delete(int maMH)
{
node *P;
node *Q;
P=F;
while(P)
{
if(P->infor.maMH==maMH)
break;
Q=P;
P=P->link;
}
if(P)
{
if(P==F)//Trường hợp mặt hàng cần xóa ở nút đầu tiên
F=F->link;
else
{
Q->link=P->link;
}
free(P);
}
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void in()
{
node *P;
P=F;
while(P)
{
printf("Ma mat hang: %d\n",P->infor.maMH);
printf("Ten mat hang: %s\n\n",P->infor.tenMH);
P=P->link;
}
}
Lưu ý: Bài này mình làm với mặt hàng đơn giản chỉ có hai thuộc tính, mọi người cần thêm đầy đủ các thuộc tính của một mặt hàng cần có như giá , số lượng, .....!
0 comments:
Post a Comment