Bảng phân chia công việcNguyễn Tiến Dũng Thực hiện tuần 1 và liên kết đôiNguyễn Thành An Thực hiện tuần 2 và liên kết đơnTrần Trọng Hiếu Thực hiện tuần 3 và liên kết đơnBùi Ánh Dương...
Trang 1VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
-Sinh viên thực hiện: Nguyễn Thành An Lớp 16A02
Nguyễn Tiến Dũng Trần Trọng Hiếu
ĐỀ TÀI 0162016: QUẢN LÝ CỬA HÀNG BÁN VẬT LIỆU XÂY DƯNG
BÁO CÁO BÀI TẬP LỚN MÔN: CẤU TRÚC DƯ LIỆU
Giảng viên hướng dẫn: Th.S Nguyễn Thị Quỳnh Như
Hà Nội – 2017
Trang 2Bảng phân chia công việc
Nguyễn Tiến Dũng Thực hiện tuần 1 và liên kết đôiNguyễn Thành An Thực hiện tuần 2 và liên kết đơnTrần Trọng Hiếu Thực hiện tuần 3 và liên kết đơnBùi Ánh Dương
Trang 3Tuần 3: Mô tả các thuật toán
P=Q.Head P=Q.Tail
Q.Head=
NULL
Gán thông tin p->infor là những thông tin đọc từ file Tạo node o
Trang 4b.XÓA THÔNG TIN 1 MẶT HÀNG Ở ĐẦU DANH SÁCH
Q.Head=NULL
SAI
ĐÚNG
END Q.Head=Q.Head->Next
Begin
Trang 5c.TÌM KIẾM THEO MÃ MH
Begin
p->info=MMH P=NULL
Trang 6d.SẮP XẾP
Begin
đúng g
đúng g
sai
đúng g
Tạo Node P P=Q.Head Q=p->Next
Trang 7Tuần 4: Lập trình và cài đặt
I: Cấu trúc chương trình tổng quát
1 Nhap danh sach san pham va ghi vao file
2 In danh sach san pham (doc tu file)
3 Them mot san pham vao cuoi danh sach
4 Tim va hien thong tin san pham theo ma X
5 Tim va hien thong tin khach hang theo ten duoc nhap tu ban phim
6 Hien khach hang co dia chi o Ha Noi
7 Hien ten khach hang mua nhieu nhat
8 Hien san pham ban duoc it nhat
9 Dem san pham co gia nhap lon hon X
10 Dem san pham co gia tri trong khoang [x,y]
11 Sap xep san pham giam dan theo so luong
12 Sap xep san pham tang dan theo so luong
13 sap xep theo ten khach hang
14 sap xep theo ten san pham
15 sap xep theo ten nha cung cap
16 Xoa san pham o dau danh sach
17 Tinh tong san pham nhap vao
18 Tinh tong san pham ban ra
19 Tinh tong tien ban duoc
II Một số code xử lí chính
1.khai báo chương trình
Struct date
{
Trang 82 khởi tạo danh sách rỗng
Void init(List &Q)
{
Q.Head=NULL;
Q.Tail=NULL
}
Trang 95.Nhập thông tin cho hóa đơn
void NhapHD(HD &x)
Trang 10printf("\n Thanh tien:");
Trang 16if(p==NULL) printf("\nMat hang %s khong co trong danh sach",MMH);
printf("\n thanh tien:%.2f",p->Infor.thanhtien); break;
Trang 17printf("mat hang co gia tien lon nhat la: ");
for (p=Q.Head; p; p=p->Next)
Trang 18printf("\n Ma mat hang: %s",p->Infor.MaMH);
printf("\n ten mat hang: %s",p->Infor.TenMH);
printf("\n Ngay mua hang:%s",p->Infor.ngaymua);
printf("\n so luong hang:%d",p->Infor.soluong);
printf("\n don gia:%d",p->Infor.dongia);
printf("\n thanh tien:%.2f",p->Infor.thanhtien);
printf("\n 1.Nhap thong tin 1 Mat hang");
printf("\n 2.Tao danh sach hoa don ban dau");
printf("\n 3.Chen thong tin 1 mat hang vao dau danh sach"); printf("\n 4.Chen thong tin 1 mat hang vao cuoi danh sach");
Trang 19printf("\n 5.Chen thong tin 1 mat hang vao vi tri bat ky"); printf("\n 6.Xoa thong tin 1 mat hang dau danh sach"); printf("\n 7.Xoa thong tin 1 mat hang cuoi danh sach"); printf("\n 8.Xoa thong tin 1 mat hang theo ma");
printf("\n 9.Tim thong tin 1 mat hang co trong danh sach"); printf("\n 10.Tim thong tin 1 mat hang va in danh sach "); printf("\n 11.Mat hang co gia tri lon nhat");
printf("\n 12.Dem mat hang co gia tri hon 50000");
printf("\n 13.Sap xep tang dan theo Ma MH");
Trang 24void Chencuoi(List &Q)
HD(x);
NhapHD(x);
p=GetNode(x);
f=fopen("INSERT.TXT","w"); Xuatrafile(f,p);
Trang 25else printf("\n\nVi tri khong hop le"); fclose(f);
Trang 27printf("\n\nMa mat hang: %s",p->Infor.MaMH);
printf("\nten mat hang: %s",p->Infor.TenMH);
printf("\n Ngay mua hang:%s",p->Infor.ngaymua); printf("\n so luong hang:%d",p->Infor.soluong); printf("\n don gia:%d",p->Infor.dongia);
printf("\n thanh tien:%.2f",p->Infor.thanhtien); break;
Trang 28printf("mat hang co gia tien lon nhat la: ");
for (p=Q.Head; p; p=p->Next)
Trang 29printf("\n Ma mat hang: %s",p->Infor.MaMH);
printf("\n ten mat hang: %s",p->Infor.TenMH);
printf("\n Ngay mua hang:%s",p->Infor.ngaymua);
printf("\n so luong hang:%d",p->Infor.soluong);
printf("\n don gia:%d",p->Infor.dongia);
printf("\n thanh tien:%.2f",p->Infor.thanhtien);
}
int main()
{
Trang 30printf("\n 1.Nhap thong tin 1 Mat hang");
printf("\n 2.Tao danh sach hoa don ban dau");
printf("\n 3.Chen thong tin 1 mat hang vao dau danh sach"); printf("\n 4.Chen thong tin 1 mat hang vao cuoi danh sach"); printf("\n 5.Chen thong tin 1 mat hang vao vi tri bat ky"); printf("\n 6.Xoa thong tin 1 mat hang dau danh sach");
printf("\n 7.Xoa thong tin 1 mat hang cuoi danh sach");
printf("\n 8.Xoa thong tin 1 mat hang theo ma");
printf("\n 9.Tim thong tin 1 mat hang co trong danh sach"); printf("\n 10.Tim thong tin 1 mat hang va in danh sach "); printf("\n 11.Mat hang co gia tri lon nhat");
printf("\n 12.Dem mat hang co gia tri hon 50000");
printf("\n 13.Sap xep tang dan theo Ma MH");
Trang 33IV: Hàng đợi Queue:
// Them phan tu vao cuoi Queue
void Put(Queue &Q, QuanLi &x){
Node *p;
Trang 34// Nhap thong tin khach hang
void nhap(QuanLi &x){
int tam;
printf("\nMa san pham: "); scanf("%d", &x.ma);
printf("\nTen san pham: "); fflush(stdin); gets(x.tensp);
printf("\nSo luong san pham: "); scanf("%d", &x.sl);
printf("\nGia nhap: "); scanf("%d",&x.gianhap);
printf("\n nha cung cap: "); fflush(stdin); gets(x.tenNCC);
printf("\n so dien thoai nha cung cap: "); scanf("%d",&x.sdtNCC);printf("\n ten khach hang: "); fflush(stdin); gets(x.tenKH);
printf("\n dia chi khac hang: "); fflush(stdin); gets(x.diachiKH);printf("\n so dien thoai khach hang: "); scanf("%d",&x.sdtKH);printf("\n so luong hang mua: "); scanf("%d",&x.mua);
printf("\n don gia: "); scanf("%d",&tam);
Trang 35// ghi thong tin can quan li vao file
void GhiFile(FILE*f, QuanLi dssp[],int slsp){
// thuc hien ghi du lieu vao file
//ghi tung san pham vao file
fwrite(&slsp,sizeof(int),1,f);
// ghi tung sinh vien vao file
for(q = Q.Head; q != NULL; q = q->Next) fwrite(&dssp[i],sizeof(dssp[i]),1,f);
//dong file sau khi da ghi xong du lieu fclose(f);
Trang 36//doc tung sinh vien trong file
for(q = Q.Head; q != NULL; q = q->Next)
fread(&kq[i],sizeof(kq[i]),1,f);
// dong file sau khi da doc xong
fclose(f);
}
// 1 Nhap danh sach doi tuong can quan li
void nhapds(Queue &Q,QuanLi x){
int n;
Node *q;
printf("\nNhap so san pham: "); scanf("%d", &n);
for (int i = 0; i<n; i++)
printf("\n\n Danh sach cac doi tuong da nhap la:\n\n");
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(q = Q.Head; q != NULL; q = q->Next )
printf("\n\nThong tin san pham da nhap la\n\n");
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(q = Q.Head; q != NULL; q = q->Next )
Trang 37void Tim_Ma(){
int x, d=0;
printf("\nNhap ma san pham can tim: "); scanf("%d",&x);
for(Node *q = Q.Head; q != NULL; q = q->Next)
printf("\n\n Thong tin san pham tim thay la:\n\n");
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMuaGia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next)
else
{
printf("\n\n Thong tin khach hang tim thay la:\n\n");
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMuaGia TTien");
for( Node *q = Q.Head; q != NULL; q = q -> Next)
if(stricmp(q -> infor.diachiKH,"Ha Noi") == 0)
d++;
Trang 38if( d != 0){
printf("\n Khach hang co dia chi o Ha Noi trong danh sach la: ");
printf("\n\n Thong tin san pham tim thay la:\n\n");
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMuaGia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next)
int Max = Q.Head->infor.mua;
for (Node *q = Q.Head; q != NULL; q = q->Next)
if (q->infor.mua > Max)
Max = q->infor.mua;
printf("\n khach hang mua nhieu nhat la: ");
for (Node *q = Q.Head; q != NULL; q = q->Next)
float Min = Q.Head->infor.mua;
for (Node *q = Q.Head; q != NULL; q = q->Next)
if (q->infor.mua < Min)
Min = q->infor.mua;
printf("\n san pham ban it nhat la: ");
for (Node *q = Q.Head; q != NULL; q = q->Next)
Trang 39printf("\n\n Co %d san pham co gia nhap lon hon %12.0f trong danh sach",d,x);}
//10 dem so san pham va hien thong tin san pham co gia nhap trong khoang [x,y]
printf("\n co %d san pham co gia ban trong khoang [x;y]\n",d);
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next )
for(Node *a = Q.Head; a != NULL; a = a->Next)
for(Node *b = a->Next; b != NULL; b = b->Next)
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next )
in(q->infor);
}
//12.sap xep san pham theo so luong tang dan
void Tang(Queue Q){
Trang 40QuanLi x;
for(Node *a = Q.Head; a != NULL; a = a->Next)
for(Node *b = a->Next; b != NULL; b = b->Next)
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next )
for(Node *a = Q.Head; a!=NULL; a=a->Next)
for(Node*b=a->Next; b!=NULL; b=b->Next)
printf("\n Danh sach san pham sau khi sap xep theo ten khach hang la\n");
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next)
for(Node *a = Q.Head; a!=NULL; a=a->Next)
for(Node*b=a->Next; b!=NULL; b=b->Next)
Trang 41printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next)
for(Node *a = Q.Head; a!=NULL; a=a->Next)
for(Node*b=a->Next; b!=NULL; b=b->Next)
printf("\n Danh sach san pham sau khi sap xep theo ten nha cung cap la\n");
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next)
printf("\n\n Danh sach san pham sau khi xoa la:\n\n");
printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien");
for(Node *q = Q.Head; q != NULL; q = q->Next)
Trang 42printf("Danh sach chuong trinh\n");
printf("\n1 Nhap danh sach san pham va ghi vao file\n");
printf("2 In danh sach san pham (doc tu file)\n");
printf("3 Them mot san pham vao cuoi danh sach\n");
printf("4 Tim va hien thong tin san pham theo ma X\n");
printf("5 Tim va hien thong tin khach hang theo ten duoc nhap tu ban phim\n");printf("6 Hien khach hang co dia chi o Ha Noi\n");
printf("7 Hien ten khach hang mua nhieu nhat\n");
printf("8 Hien san pham ban duoc it nhat\n");
printf("9 Dem san pham co gia nhap lon hon X\n");
printf("10 Dem san pham co gia tri trong khoang [x,y]\n");
printf("11 Sap xep san pham giam dan theo so luong\n");
printf("12 Sap xep san pham tang dan theo so luong\n");
printf("13 sap xep theo ten khach hang\n");
printf("14 sap xep theo ten san pham\n");
printf("15 sap xep theo ten nha cung cap\n");
printf("16 Xoa san pham o dau danh sach\n");
printf("17 Tinh tong san pham nhap vao\n");
printf("18 Tinh tong san pham ban ra\n");
printf("19 Tinh tong tien ban duoc\n");
//printf("16 doc danh sach tu file\n");
Trang 47b, Kết quả phần queue: