1. Trang chủ
  2. » Luận Văn - Báo Cáo

inngay thông tin về tài liệu bạn cần tìm kiếm nhứng thứ bổ ích

87 93 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 87
Dung lượng 913,38 KB

Nội dung

1 VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN Môn: Cấu trúc liệu giải thuật Đề tài: Bài toán quản lý bán sách hàng Giáo viên hướng dẫn: Sinh viên thực hiện: Nguyễn Thùy Linh Đoàn Ngơ Hiếu - 1710A02 Phan Hồi Nam - 1710A02 Trần Hà Vi - 1710A02 Chu Thị Trang - 1710A02 Hà Nội - 2018 I Xác định toán Mơ tả tốn Bài tốn quản lý bán sách cửa hàng sách nhằm hỗ trợ cho nhân viên quản lý bán hàng kiểm tra lượng sách cửa hàng, số lượng sách thêm, bớt trình xuất bán hàng cửa hàng máy tính nhằm giúp cho việc quản lý hoạt động cửa hàng thuận tiện nhanh chóng Đồng thời tốn quản lí bán sách giúp nhân viên cửa hàng sách xếp, tìm kiếm, thống kê đầu sách cửa hàng cách xác nhanh chóng Ngồi cho biết doanh thu cửa hàng qua tháng để cửa hàng đưa chiến lược kinh doanh hợp lí Các đối tượng cần quản lí - Sách : Tên sách, Nhà xuất bản, Giá bán, Giá nhập, Số lượng bán, Số lượng nhập - Hóa đơn : Tên sách bán, Số lượng bán, Nhân viên bán,… - Nhân viên: Họ tên, Ngày sinh, Số làm, Lượng sách bán được,… - Khách hàng:Mã khách hàng, Tên khách hàng, Địa chỉ, Số lượng sách mua, … II Cấu trúc liệu Danh sách liên kết đơn struct Sach { int maSach; char tenSach[30]; char loaiSach[30]; int slnhap; int slxuat; float giaban; }; struct Node { Sach infor; Struct Node*Next }; Struct LIST { Node*Head; Node*Tail; }; LIST Q; Danh sách liên kết đôi struct SACH { int masach; char tensach[10]; int slsach; float gia; char nn[11]; char nx[11]; }; struct dnode { SP infor; struct dnode *next, *prev; }; struct List { dnode *head, *tail; }; struct List DQ; Ngăn xếp struct sach { int ma, sl, dg,tt; char ten[30]; }; #define max 100 sach x; struct Node { sach info; struct Node *Next; }; struct stack { Node * top; }; stack Q; Hàng đợi struct sach{ int masach,slnhap,slxuat,conlai; char tensach[30],loaisach[30]; float giaban,thanhtien; }; struct Node{ sach info; struct Node *next;Node *prev; }; struct Queue{ Node *head; o Node *tail;  }; Queue Q; III Input Output Nhập danh sách sách  Input: mã sách,tên sách,năm xuất bản,số lượng,đơn giá  Input: mã nhân viên,  Input: Nhập mã sách, tên sách, nhà xuất bản, năm xuât bản, đơn giá Xuất danh sách file  Output: Danh sách sách bao gồm: mã sách,tên sách,năm xuất bản,số lượng,đơn giá  Output : Danh sách bao gồm: mã sách, tên sách, nhà xuất bản, năm xuât bản, đơn giá Thêm sách vào đầu danh sách  Input: mã sách,tên sách,năm xuất bản,số lượng,đơn giá  Output: Danh sách sách sau thêm Thêm liệu vào cuối danh sách  Input: mã sách,tên sách,năm xuất bản,số lượng,đơn giá  Output: Danh sách sách sau thêm sách Xoá sách danh sách  Input: Danh sách sách đầy đủ bao gồm: mã sách,tên sách,năm xuất bản,số lượng,đơn giá  Output: Danh sách xóa sách Xố sách cuối danh sách  Input: Danh sách sách đầy đủ bao gồm: mã sách,tên sách,năm xuất bản,số lượng,đơn giá  Output: Danh sách xóa sách cuối Xố sách theo mã sách  Input: mã sách cần xóa  Output: Danh sách sách sau xóa Sắp xếp danh sách theo năm xuất  Input: Sắp xếp theo năm xuất bản, so sánh năm xuất sách  Output: Danh sách xếp Tìm kiếm liệu theo giá sách  Input: mã sách cần tìm  Output: mã sách,tên sách,năm xuất bản,số lượng,đơn giá giá sách vừa tìm 10 11 12 Tính tổng số tiền sách bán  Input: Nhập số tiền bán  Output: Tổng số tiền sách bán Đếm số sách có giá bán nhỏ số x  Input: Đếm theo soluong, so sánh với x  Output: soluong sách nhỏ x Đếm số lượng sách có giá trị lớn số x  Input: : Đếm theo soluong, so sánh với x  Output: soluong sách lớn x IV Xác định thuật toán 1.Danh sách liên kết đơn Để thực chức ta cần: • Khai báo cấu trúc liệu • Khai báo cấu trúc nút danh sách liên kết đơn • Khai báo danh sách liên kết đơn • Khởi tạo danh sách rỗng • Tạo nút với thành phần liệu x Nhập danh sách: * Mơ tả thuật tốn: ο Nhập n danh sách thông tin đầu sách ο Cho i chạy từ i=1->n, in kết thúc thuật tốn * sơ đồ thuật tốn: 2.In danh sách: *Mơ tả thuật toán: Duyệt từ đầu đến cuối danh sách Với lần duyệt, xuất hình thơng tin đầu sách *Sơ đồ thuật toán: Thêm liệu vào đầu danh sách: * Mô tả thuật tốn: • Nếu danh sách rỗng thì: o Phần tử đầu phần tử chèn vào p o Phần tử cuối phần tử đầu • Nếu danh sách khác rỗng : o Phần tử trỏ tới phần tử đầu o Phần tử đầu phần tử chèn vào p * Sơ đồ thuật tốn: Xóa liệu danh sách: a, xóa phần tử đầu danh sách: * Mơ tả thuật tốn: ο Kiểm tra danh sách khơng rỗng ο Lưu phần tử đầu tạm thời vào p ο Chuyển phần tử đầu tới phần tử ο Xóa phần tử đầu lưu tạm- xóa p ο Kiểm tra: danh sách có phần tử, xóa phần tử phần tử cuối khơng * Sơ đồ thuật tốn: b, Xóa đầu sách có mã sách x: *Mơ tả thuật tốn: • Tìm đầu sách p có mã x phần tử q đứng trước • Nếu tìm thấy đầu sách có mã x hủy p khỏi xâu tương tự hủy phần tử sau q; • Ngược lại thơng báo khơng có đầu sách mã x * Sơ đồ thuật tốn: Sắp xếp: *Mơ tả thuật tốn: + Mơ tả thuật tốn: Sử dụng trỏ p, q dể duyệt so sánh với • p = Q.Head; • Lặp (p != NULL) o q = p -> next; o Lặp (q != NULL) 10 So sánh giá trị phần tử p q không trật tự hốn đổi giá trị p q cho Vd: Sắp xếp tăng dần, p -> infor.tt > q -> infor.tt  Hoan doi(p-> infor.tt , q -> infor.tt);  q = q -> next; o p = p -> next; * Sơ đồ thuật toán:  73 { for(p=Q.Head; p!=NULL; p=p->next) dem++; } return dem; } //ham liet ke cac hoa don co sach xuat ban nam 2018 void LietKeKHQ(Queue Q) { int dem=0; NodeKH *p; if(QueueIsEmpty(Q)) { printf("\nChua co danh sach hoa don !"); return; } printf("\n Danh sach cac hoa don co sach xuat ban nam \"2018\": "); printf("\n%-15s%-30s%-20s%10s","Ma","Ten","NamXuatBan","DonGia"); for(p=Q.Head; p!=NULL; p=p->next) { if(strcmp(p->Infor.NamXuatBan,"2018")==0) 74 { printf("\n%-15s%-30s%-10s%-10.2f",p->Infor.Ma,p>Infor.Ten,p->Infor.NamXuatBan,p->Infor.DonGia); dem++; } } if(dem==0) printf("\nKhong co hoa don co sach xuat ban nam \"2018\" danh sach!"); } void MenuKHQ() { printf("\n "); printf("\n0.Thoat"); printf("\n1.Nhap danh sach hoa don (Queue)"); printf("\n2.Doc du lieu hoa don tu file (Queue)"); printf("\n3.In danh sach hoa don (Queue)"); printf("\n4.Tim kiem hoa don theo ma (Queue)"); printf("\n5.Dem so luong tat ca cac hoa don co danh sach (Queue)"); printf("\n6.Liet cac hoa don co sach xuat ban nam \"2018\" (Queue)"); printf("\n7.Xoa hoa don o dau danh sach (Queue)"); 75 printf("\n->Moi ban chon: "); } int main() { Queue Q; InitQueue(Q); while(1) { int chon; char skip; char ma[30]; NodeKH *p; MenuKHQ(); scanf("%d",&chon); switch(chon) { case 0: return 0; case 1: NhapDSKHQ(Q); printf("\nXong!"); scanf("%*c%c",&skip); // dung de dung man hinh 76 break; case 2: if(DocFileKHQ(Q)) printf("\nDoc du lieu cong!"); printf("\nXong!"); scanf("%*c%c",&skip); // dung de dung man hinh break; case 3: InDSKHQ(Q); printf("\nXong!"); scanf("%*c%c",&skip); // dung de dung man hinh break; case 4: printf("\nNhap ma hoa don can tim kiem: "); fflush(stdin); gets(ma); p=timkiemKHQ(Q,ma); if(p==NULL) printf("\nKhong tim thay!"); else { printf("\nKet qua: "); printf("\n%-15s%-30s%-10s%10s","Ma","Ten","NamXuatBan","DonGia"); 77 printf("\n%-15s%-30s%-10s%-10.2f",p->Infor.Ma,p>Infor.Ten,p->Infor.NamXuatBan,p->Infor.DonGia); } printf("\nXong!"); scanf("%*c%c",&skip); // dung de dung man hinh break; case 5: printf("\nCo tat ca %d hoa don danh sach",DemKHQ(Q)); printf("\nXong!"); scanf("%*c%c",&skip); // dung de dung man hinh break; case 6: LietKeKHQ(Q); printf("\nXong!"); scanf("%*c%c",&skip); // dung de dung man hinh break; case 7: p=Get(Q); if(p!=NULL) { printf("\nXoa cong!"); 78 printf("\nDanh sach sau xoa hoa don dau danh sach: "); InDSKHQ(Q); printf("\nXong!"); } scanf("%*c%c",&skip); // dung de dung man hinh break; } } return 0; } Quản lý nhân viên ( Trần Hà Vi) 79 Ngăn xếp #include #include #include #include struct GV { int MaGV,tongluong; char HoTen[10]; char NS[10]; char GT[10]; }; struct node { NV infor; node *next; }; struct stack { node *top; }; void Init(stack &s) { s.top = NULL; } int nhapNV(NV &x) { 80 printf("\nNhap ma nhan vien: "); scanf("%d",&x.MaNV); printf("\nNhap ho ten nhan vien: "); fflush(stdin); gets(x.HoTen); printf("\nNhap sinh nhan vien: "); fflush(stdin); gets(x.NS); printf("\nNhap gioi tinh nhan vien: "); fflush(stdin); gets(x.GT); printf("\nNhap tong scanf("%d",&x.tongluong); } node *get_node(NV x) { node *p; p=(node*) calloc(1,sizeof(node)); p->infor=x; p->next=NULL; } void dsnv(stack &s) { node *p; NV x; luong:"); 81 int n, i; printf("Nhap so nhan vien: "); scanf("%d",&n); for(i=1;iinfor); p=p->next; } } int xoanv(stack &s) { node *p; NV x; int nv; p=s.top; printf("Nhap ma nhan vien can xoa: "); scanf("%d",&nv); for(p=s.top;p!=NULL;p=p->next) { if(p->infor.MaNV==nv) { free(p); p=p->next; } printf("Danh sach nhan vien sau xoa: "); printf("\n%-10s%-10s%-10s%-10s%10s","MaGV","HoTen","NgaySinh","Gioitinh","tongluon g"); 83 hienNV(p->infor); } } int timmanv(stack s) { node *p; NV x; p=s.top; int tim; printf("\n========================== ==\n"); printf("\nTim ma nhan vien: "); scanf("%d",&tim); printf("\n%-10s%-10s%-10s%-10s%-10s%10s","MaGV","HoTen","NgaySinh","Gioitinh","tongluon g"); while(p!=NULL) { if(p->infor.MaNV==tim) { hienNV(p->infor); p=p->next; } } } int timhotennv(stack s) { node *p; NV x; 84 p=s.top; char tim[20]; printf("\n========================== ==\n"); printf("\nTim ho ten nhan vien: "); fflush(stdin); gets(tim); printf("\n%-10s%-10s%-10s%-10s10s","MaGV","HoTen","NgaySinh","Gioitinh","tongluon g"); while(p!=NULL) { if(strcmp(p->infor.HoTen,tim)==0) hienNV(p->infor); p=p->next; } } int luufilenv(stack &s) { FILE *f; f=fopen("nhanvien.txt","w"); NV x; node *p; p=s.top; fprintf(f,"%-10s%-30s%-10s%-10s%-30s","MaGV","Ho Ten","Ngay Sinh","Gioi tinh","tongluong"); while(p!=NULL) { 85 fprintf(f,"%-10d%-30s%-10s%-10s%-30s",p>infor.MaGV,p->infor.HoTen,p->infor.NS,p>infor.GT,p->infor.tongluong); p=p->next; } fclose(f); printf("Luu thong tin nhanvien vao file cong!"); } int docfile(stack s) { FILE *f; f=fopen("nhanvien.txt","r"); fclose(f); printf("****Doc du lieu tu file****\n"); hiendsnv(s); } int main() { int chon; node *p; stack s; Init(s); { system("cls"); printf("=======MENU=====\n"); printf("Nhap lua chon: \n"); 86 printf("\t0:EXIT\n"); printf("\t1:Nhap danh sach nhan vien\n"); printf("\t2:Hien danh sach nhan vien\n"); printf("\t3:Xoa giang vien theo ma nhan vien\n"); printf("\t4:Tim kiem mot giang vien theo ma nhan vien\n"); printf("\t5:Tim kiem mot giang vien theo ten nhan vien\n"); printf("\t6:Luu file nhan vien\n"); printf("\t7:Doc file nhan vien\n"); switch(chon) { case 1: system("cls"); dsnv(s); getch(); break; case 2: system("cls"); hiendsnv(s); getch(); break; case 3: system("cls"); xoanv(s); getch(); break; case 4: system("cls"); 87 timmanv(s); getch(); break; case 5: system("cls"); timhotennv(s); getch(); break; case 6: system("cls"); luufilenv(s); getch(); break; case 7: system("cls"); docfile(s); getch(); break; } } while(chon!=0); return 0; getch(); }

Ngày đăng: 06/12/2018, 00:00

w