1. Trang chủ
  2. » Công Nghệ Thông Tin

cấu trúc dữ liệu_QUẢN LÝ CỬA HÀNG BÁN VẬT LIỆU XÂY DỰNG

48 173 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 246,58 KB

Nội dung

VIỆ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 Bảng phân chia công việc SINH VIÊN THỰC HIỆN CÔNG VIỆC Nguyễn Tiến Dũng Thực tuần liên kết đôi Nguyễn Thành An Thực tuần liên kết đơn Trần Trọng Hiếu Thực tuần liên kết đơn Bùi Ánh Dương Tuần 3: Mơ tả thuật tốn a) CHÈN ĐẦU DANH SÁCH begin Tạo node o Gán thông tin p->infor thông tin đọc từ file Q.Head=NULL P=Q.Head P=Q.Tail Sai Q.Head->Prev=p P->Next=Q.Head Q.Head=p END b.XĨA THƠNG TIN MẶT HÀNG Ở ĐẦU DANH SÁCH Begin Q.Head=NULL SAI Q.Head=Q.Head->Next END ĐÚNG c.TÌM KIẾM THEO MÃ MH Begin Tạo NODE p=Q.Head In khơng tìm thấy P=NULL p->info=MMH In hình p->info.tenMH END P=p->Next d.SẮP XẾP Begin Tạo Node P P=Q.Head Q=p->Next Q.Head!=NULL P!=Q.Tail đúng P=p->Next Q=NULL Q=p->Next sai p->info.MaMH>Q->info.MaMH sai sai Hoán đổi info P Q End Q=Q->Next Tuần 4: Lập trình cài đặt I: Cấu trúc chương trình tổng quát Nhap danh sach san pham va ghi vao file In danh sach san pham (doc tu file) Them mot san pham vao cuoi danh sach Tim va hien thong tin san pham theo ma X Tim va hien thong tin khach hang theo ten duoc nhap tu ban phim Hien khach hang co dia chi o Ha Noi Hien ten khach hang mua nhieu nhat Hien san pham ban duoc it nhat Dem san pham co gia nhap lon hon X 10 Dem san pham co gia tri 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 19 Tinh tong tien ban duoc II Một số code xử lí 1.khai báo chương trình Struct date { int ngay,thang,nam; }; Struct hoadon { Char MaMH[10],TenMH[20]; Int ngaymua,soluong,gia; Float thanhtien; }; Struct Node { Hoadon Info; Node *Next; Node *Back }; Struct List { Node *Head; Node*Tail; }; khởi tạo danh sách rỗng Void init(List &Q) { Q.Head=NULL; Q.Tail=NULL } 3.Tạo Node Node *GetNode(hoadon x) { Node *p=(Node *) malloc(sizeof (Node)); If (p==NULL) {return NULL;} Else { p -> Info = x; p -> Next = NULL; p->Back = NULL; return p; } } 4.Tính độ dài danh sách int Length(List &Q) { int i=0; for (Node *p=L.Head;p;p=p->Next) { i++; } return i; } 5.Nhập thông tin cho hóa đơn void NhapHD(HD &x) { printf("\nMa mat hang:"); fflush(stdin); gets(x.MaMH); printf("\nTen mat hang:"); fflush(stdin); gets(x.TenMH); printf("\nNgay mua hang:"); fflush(stdin); gets(x.ngaymua); printf("\n So luong:"); scanf("%d",&x.soluong); printf("\n Don gia:"); scanf("%d",&x.dongia); printf("\n Thanh tien:"); scanf("%f",&x.thanhtien); } III cài đặt #include #include #include #include #include #include #include using namespace std; struct HD { char MaMH[10],TenMH[50],ngaymua[20]; int soluong; int dongia; float thanhtien; }; struct Node { HD Infor; Node *Next; Node *Back; }; struct List { Node *Head; Node*Tail; }; void init(List &Q) { Q.Head=NULL; Q.Tail=NULL; } Node *GetNode(HD x) { Node *p=(Node *) malloc(sizeof (Node)); if (p==NULL) { return NULL; } else { p -> Infor = x; p = new Node; p->infor = x; p->Next = NULL; if(Q.Head == NULL){ Q.Head = p; Q.Tail = p; } else{ Q.Tail -> Next =p; Q.Tail = p; } } // Loai bo phan tu dau hang doi void Pop(){ Node *p; if(isempty() == 1) printf("\n Queue rong!"); else{ p = new Node; p= Q.Head; Q.Head = Q.Head->Next; free(p); } } // 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); x.giaban=tam; x.tt=x.mua*x.giaban; } // In thong tin san pham void in(QuanLi x) { printf("\n%2d", x.ma); printf("%4s", x.tensp); printf("%5d", x.sl); printf("%10d", x.gianhap); printf("%8s", x.tenNCC); printf("%7d", x.sdtNCC); printf("%8s", x.tenKH); printf("%7s", x.diachiKH); printf("%7d", x.sdtKH); printf("%5d", x.mua); printf("%7d", x.giaban); printf("%7d", x.tt); } // ghi thong tin can quan li vao file void GhiFile(FILE*f, QuanLi dssp[],int slsp) { Node*q; int i; //1 mo file de ghi file f=fopen("QuanLiSP.DAT","wb"); // kiem tra xem viec mo file cong kg if(f=NULL) { // 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 da ghi xong du lieu fclose(f); } } void DocFile(FILE*f,QuanLi kq[],int &slg) { Node*q; int i; //mo file de doc du lieu f=fopen("QuanLiSP.DAT","rb"); if(f!=NULL) { // thuc hien doc du lieu tu file va luu du lieu fread(&slg,sizeof(int),1,f); } //doc tung sinh vien file for(q = Q.Head; q != NULL; q = q->Next) fread(&kq[i],sizeof(kq[i]),1,f); // dong file sau da doc xong fclose(f); } // 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; iNext ) in(q->infor); printf("\n"); } //3 them san pham vao cuoi danh sach void them(){ Node *q; printf("\nNhap thong tin san pham can them vao danh sach\n\n"); nhap(x); 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 ) in(q->infor); printf("\n\n\nDanh sach san pham sau them vao la\n"); Put(Q,x); inds(); } // 4.Tim va hien thong tin san pham theo ma X void 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) if(q->infor.ma== x) d++; if(d==0) printf("\n\n Khong co ma san pham %d danh sach",x); else{ printf("\n\n Thong tin san pham tim thay 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) if(q->infor.ma == x) in(q->infor); } } //5.tim kiem theo ten khach hang void Tim_ten(){ Node*q; char x[20]; q=Q.Head; printf("\nNhap ten khach hang can tim: "); fflush(stdin); gets(x); while(q!=NULL) { if(strcmp(q->infor.tenKH,x)== 0) break; q=q->Next; } if(q==NULL) printf("\n\n Khong co khach hang %s danh sach",x); else { printf("\n\n Thong tin khach hang tim thay la:\n\n"); printf("Ma Ten SLuong GiaNhap NhaCC SDT K.Hang DChi SDT DaMua Gia TTien"); in(q->infor); } } // 6.hien thong tin khach hang co dia chi noi void DiaChi(){ int d=0; for( Node *q = Q.Head; q != NULL; q = q -> Next) if(stricmp(q -> infor.diachiKH,"Ha Noi") == 0) d++; if( d != 0){ printf("\n Khach hang co dia chi o Ha Noi 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 DaMua Gia TTien"); for(Node *q = Q.Head; q != NULL; q = q->Next) in(q->infor);} else printf("\nKhong co khach hang co dia chi o Ha Noi danh sach"); } //7 khach hang mua nhieu nhat void tim_max(){ 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) if(q->infor.mua == Max) printf(" %s", q->infor.tenKH); } //8 hien san pham ban it nhat void tim_min(){ 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) if(q->infor.mua == Min) printf(" %s", q->infor.tensp); } // Dem san pham co gia nhap lỈ¡n hỈ¡n x ds void Dem(){ int d=0; float x; printf("\n nhap gia tien min: "); scanf("%f",&x); for(Node *q = Q.Head; q != NULL; q = q->Next) if(q->infor.gianhap>x) d++; if(d==0) printf("\n\n Khong co san pham co gia nhap lon hon %12.0f danh sach",x); else printf("\n\n Co %d san pham co gia nhap lon hon %12.0f danh sach",d,x); } //10 dem so san pham va hien thong tin san pham co gia nhap khoang [x,y] void Dem_gia() { int d=0; float x,y; printf("\n nhap gia tri x= "); scanf("%f",&x); printf("\n nhap gia tri max y= "); scanf("%f",&y); for(Node *q = Q.Head; q != NULL; q = q->Next) if(q->infor.giabaninfor.giaban>x) d++; if(d==0) printf("\n Khong co san pham nao co gia ban khoang [x;y] danh sach\n"); else { printf("\n co %d san pham co gia ban 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 ) if(q->infor.giabaninfor.giaban>x) in(q->infor); } } // 11 Sap xep san pham theo sl giam dan void Giam(Queue Q){ QuanLi x; for(Node *a = Q.Head; a != NULL; a = a->Next) for(Node *b = a->Next; b != NULL; b = b->Next) if(a->infor.sl < b->infor.sl){ x = a->infor; a->infor = b->infor; b->infor = x; } printf("\n\n Danh sach san pham sau sap xep 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 ) in(q->infor); } //12.sap xep san pham theo so luong tang dan void Tang(Queue Q){ QuanLi x; for(Node *a = Q.Head; a != NULL; a = a->Next) for(Node *b = a->Next; b != NULL; b = b->Next) if(a->infor.sl > b->infor.sl){ x = a->infor; a->infor = b->infor; b->infor = x; } printf("\n\n Danh sach san pham sau sap xep 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 ) in(q->infor); } //13 sap xep san pham theo ten san pham void SX_tenKH(Queue Q) { QuanLi x; for(Node *a = Q.Head; a!=NULL; a=a->Next) for(Node*b=a->Next; b!=NULL; b=b->Next) if(strcmp(a->infor.tenKH,b->infor.tenKH)>0) { x=a->infor; a->infor=b->infor; b->infor=x; } printf("\n Danh sach san pham sau 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) in(q->infor); } //14 sap xep san pham the ten san pham void SX_tenSP(Queue Q) { QuanLi x; for(Node *a = Q.Head; a!=NULL; a=a->Next) for(Node*b=a->Next; b!=NULL; b=b->Next) if(strcmp(a->infor.tensp,b->infor.tensp)>0) { x=a->infor; a->infor=b->infor; b->infor=x; } printf("\n Danh sach san pham sau sap xep theo ten san pham 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) in(q->infor); } //15 sap xep san pham theo ten nha cung cap void SX_tenNCC(Queue Q) { QuanLi x; for(Node *a = Q.Head; a!=NULL; a=a->Next) for(Node*b=a->Next; b!=NULL; b=b->Next) if(strcmp(a->infor.tenNCC,b->infor.tenNCC)>0) { x=a->infor; a->infor=b->infor; b->infor=x; } printf("\n Danh sach san pham sau 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) in(q->infor); } // 16.Xoa khach hang dau void Xoa(){ Pop(); printf("\n\n Danh sach san pham sau 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) in(q->infor); } //17 so san pham da nhap vao void NhapVao(Queue Q) { int s=0; Node*q; for(q=Q.Head; q!=NULL;q=q->Next) s=s+q->infor.sl; printf("Cua hang da nhap vao %d san pham",s); } // 18 tinh tong san pham ban void BanRa(Queue Q) { int s=0; Node*q; for(q=Q.Head; q!=NULL;q=q->Next) s=s+q->infor.mua; printf("Cua hang da ban duoc %d san pham",s); } // 19 tong so tien ban duoc void TongTien(Queue Q) { int s=0; Node*q; for(q=Q.Head; q!=NULL;q=q->Next) s=s+q->infor.tt; printf("Tong so tien ban duoc la :%d",s); } // Menu void Menu(){ printf("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 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"); } int main(){ int chon, slsp; Init(); FILE*f; QuanLi dssp[MAX]; do{ system("cls"); Menu(); printf("\n\n Ban chon so: "); scanf("%d",&chon); switch(chon){ case 1:{ system("cls"); nhapds(Q,x); system("cls"); printf("\n thuc hien ghi san pham vao file\n"); GhiFile(f,dssp,slsp); printf("==>Ban da nhap xong danh sach san pham

Ngày đăng: 16/01/2019, 13:21

TỪ KHÓA LIÊN QUAN

w