Đối tượng được quản lý của bài toán gồm:Người đóng thuế, phiếu thu Trong đó:- Người đóng thuế: mã người đóng thuế, mã thuế, tên công ty, địa chỉ, diện tích, quy mô, người đứng đầu- Phiếu
Xác định bài toán
Bài toán Quản lí thuế nhằm hỗ trợ cho nhân viên nắm rõ thông tin khách hàng, mặt hàng, hóa đơn hàng nhằm giúp cho việc quản lý các hoạt động của cửa hàng thuận tiện và nhanh chóng hơn Đồng thời bài toán quản lí bán hàng còn giúp nhân viên của cửa hàng bán sách sắp xếp thống kê khách hàng
Đối tượng được quản lý của bài toán gồm
Người đóng thuế, phiếu thu
- Người đóng thuế: mã người đóng thuế, mã thuế, tên công ty, địa chỉ, diện tích, quy mô, người đứng đầu
- Phiếu thu: mã phiếu thu, ngày lập, tháng, năm, số tiền cần nộp, số tiền giảm trừ, mã người nộp thuế, họ tên người đóng, số tiền cần đóng = tổng tiền – số tiền giảm trừ
Quản lý thu thuế Hà
1.Nhập thông tin: mã người đóng thuế, mã thuế, tên công ty, địa chỉ, diện tích, quy mô, người đứng đầu
2.In danh sách người đóng thuế
3.Lưu DS người đóng thuế vào file
4.Đọc DS người đóng thuế từ file
5.Tìm kiếm người đóng thuế theo mã
6.Sắp xếp theo diện tích
7.Xoá người đóng thuế theo mã
9.Cho danh sách công ty có địa chỉ tại Hà
1.Nhập thông tin: mã phiếu thu, ngày lập, tháng, năm, số tiền cần nộp, số tiền giảm trừ, mã người nộp thuế, tổng tiền=số tiền cần nộp - tiền giảm trừ, người lập 2.In DS phiếu thu
3.Lưu DS phiếu thu vào file 4.Đọc DS phiếu thu từ file 5.Tìm kiếm phiếu theo mã phiếu thu 6.Sắp xếp phiếu theo tiền phải đóng tăng dần
Xác định thuật toán
Danh sách liên kết đơn
Để thực hiện các chức năng trên ta cần:
Khai báo cấu trúc dữ liệu
Khai báo cấu trúc một nút trong 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 mới với thành phần dữ liệu x
* Mô tả thuật toán: o Nhập n danh sách và thông o Cho i chạy từ i=1->n, nếu in thì kết thúc thuật toán.
*Mô tả thuật toán: Duyệt từ đầu đến cuối danh sách Với mỗi lần duyệt, xuất ra màn hình thông tin của khách hàng
1.3 Tìm kiếm hóa đơn có mã x
•Bước 2: Lặp trong khi (p!=NULL) và (p->infor.ma != x) thì p = p -> Next;
•Bước 3: oNếu p != NULL thì p trỏ đến phần tử cần tìm oNgược lại thì không tìm thấy phần tử cần tìm
+ Mô tả thuật toán: Sử dụng 2 con trỏ p, q dể duyệt và so sánh với nhau p = Q.Head;
Lặp trong khi (p != NULL) q = p -> next;
Kết thúc p = Q.Head p = p->next q = q->next q = p -> next
Hoandoi (p->infor.tt.q->infor.tt) p!=Null q!= p->infor.tt > q->infor.tt sai đúng
So sánh giá trị của phần tử p và q nếu không đúng trật tự thì hoán đổi giá trị của p và q cho nhau
Vd: Sắp xếp tăng dần, nếu p -> infor.tt > q -> infor.tt (p-> infor.tt , q -> infor.tt); q = q -> next; op = p -> next;
*Sơ đồ thuật toán: p!=NULL q! =NULL p->infor.tt > q->infor.tt
Hoandoi (p->infor.tt,q->infor.tt) q = q->next p = p->next q = p -> next
Danh sách liên kết đôi
Khởi tạo danh sách rỗng
Tạo nút mới p với thành phần dữ liệu x
Duyệt từ i=1 đến in thì kết thúc.
Lưu thông tin cho nút p = getnode(x) i next
In thông tin nút thứ 1 p!=NULL Đúng
DQ.Tail = DQ.Tail -> prev DQ.Tail -> next = NULL
Ngăn xếp
3.1 Nhập danh sách trên file
-Khởi tạo danh sách rỗng
-Duyệt từng i=1 cho đến khi i Xóa p
-Kiểm tra: nếu danh sách chỉ có 1 phần tử, khi xóa đi phần tử cuối không còn.
3.4 Đếm phần tử trong ngăn xếp
-Bước 1: khởi tạo biến đếm = 0
-Bước 2: Kiểm tra danh sách còn phần tử và duyệt từ phần tử đầu đến phần tử cuối của danh sách
Nếu p -> Info == k thì tăng biến đếm lên 1 In ra màn hình giá trị biến đếm VD: Đếm số sách có giá nhỏ hơn x
Tạo node p p=new mode p=Q.head q.head=q.head->next free(p)
Không thể p!= NULL Đúng xóa