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

ĐỒ ÁN GIẢI THUẬT LẬP TRÌNH ĐỀ TÀI: QUẢN LÝ HÀNG NHẬP TRONG THÁNG

110 814 9

Đ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 110
Dung lượng 238,32 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong hệ thống bán hàng đơn lẻ hay to lớn đều đặt ra yêu cầu về tính toán lợi nhuận cho mỗi thao tác giao dịch. Để quản lý được điều đó cần phải có một danh sách cũng như một công cụ để lưu lại các dữ liệu giao dịch.

Trang 2

M C L C ỤC LỤC ỤC LỤC

L I M Đ U ỜNG ĐẠI HỌC BÁCH KHOA Ở ĐẦU ẦU 1

I Gi i thi u ới thiệu ệu 2

II Phân tích bài toán 3

1 D li u vàoữ liệu vào ệu vào 3

2 D li u raữ liệu vào ệu vào 3

III Thi t k c u trúc d li u ết kế cấu trúc dữ liệu ết kế cấu trúc dữ liệu ấu trúc dữ liệu ữ liệu ệu 4

IV Các gi i thu t và tính đ ph c t p ải thuật và tính độ phức tạp ật và tính độ phức tạp ộ phức tạp ức tạp ạp 6

1 Đ c d li u t file đ a và structọc dữ liệu từ file đưa và struct ữ liệu vào ệu vào ừ file đưa và struct ưa và struct 6

2 Ghi d li u vào fileữ liệu vào ệu vào 7

3 Hàm nh p sập số ố 8

4 Hi n th danh sáchển thị danh sách ị danh sách 9

5 B sung danh sáchổ sung danh sách 9

6 Th ng kêố 12

7 S p x pắp xếp ếp 13

8 Tìm ki mếp 15

9 Xóa 16

V K t qu ch ết kế cấu trúc dữ liệu ải thuật và tính độ phức tạp ương trinh ng trinh 19

1 Menu chính: 19

2 Hi n th danh sách các hàng nh pển thị danh sách ị danh sách ập số 19

3 Thêm thông tin hàng nh pập số 20

4 Th ng kê thành ti n hàng nh p theo các ngày trong thángố ền hàng nhập theo các ngày trong tháng ập số 21

5 S p s p hàng nh p theo các tiêu chí đắp xếp ếp ập số ưa và structợc chọnc ch nọc dữ liệu từ file đưa và struct 22

6 Tìm ki m và hi n th hàng nh pếp ển thị danh sách ị danh sách ập số 23

7 Xóa hàng nh p:ập số 24

VI K t Lu n ết kế cấu trúc dữ liệu ật và tính độ phức tạp : 25

Ph L c: ụ Lục: ụ Lục: 25

Trang 3

L I M Đ U ỜNG ĐẠI HỌC BÁCH KHOA Ở ĐẦU ẦU

Gi i thu t và l p trình là h c ph n r t quan tr ng cũng nh không thập số ập số ọc dữ liệu từ file đưa và struct ần rất quan trọng cũng như không thể ất quan trọng cũng như không thể ọc dữ liệu từ file đưa và struct ưa và struct ển thị danh sáchthi u đ i v i ngếp ố ới người lập trình Môn học này được xem như nền tản cơ bản của ưa và structời lập trình Môn học này được xem như nền tản cơ bản của ập sối l p trình Môn h c này đọc dữ liệu từ file đưa và struct ưa và structợc chọnc xem nh n n t n c b n c aưa và struct ền hàng nhập theo các ngày trong tháng ơ bản của ủa

l p trình máy tính Nó là cái n n và là c s v ng ch c đ gi i quy t các bài toánập số ền hàng nhập theo các ngày trong tháng ơ bản của ở vững chắc để giải quyết các bài toán ữ liệu vào ắp xếp ển thị danh sách ếptrong l p trình, đ ng th i cung c p cho chúng ta hi u bi t v các gi i thu t tácập số ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ời lập trình Môn học này được xem như nền tản cơ bản của ất quan trọng cũng như không thể ển thị danh sách ếp ền hàng nhập theo các ngày trong tháng ập số

đ ng lên d li u, cũng nh cách t ch c d li u đ gi i quy t các bài toán saoữ liệu vào ệu vào ưa và struct ổ sung danh sách ức dữ liệu để giải quyết các bài toán sao ữ liệu vào ệu vào ển thị danh sách ếpcho hi u qu và t i u nh t.ệu vào ố ưa và struct ất quan trọng cũng như không thể

Sau hai h c ph n lý thuy t và th c hành, chúng em nghiên c u và th cọc dữ liệu từ file đưa và struct ần rất quan trọng cũng như không thể ếp ực hành, chúng em nghiên cứu và thực ức dữ liệu để giải quyết các bài toán sao ực hành, chúng em nghiên cứu và thực

hi n đ án này nh là m t cách đ c ng c và m r ng ki n th c Thông qua quáệu vào ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ưa và struct ển thị danh sách ủa ố ở vững chắc để giải quyết các bài toán ếp ức dữ liệu để giải quyết các bài toán saotrình th c hi n đ án, chúng em đã n m b t đực hành, chúng em nghiên cứu và thực ệu vào ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ắp xếp ắp xếp ưa và structợc chọnc nh ng kỹ thu t quan tr ngữ liệu vào ập số ọc dữ liệu từ file đưa và struct

c a vi c xây d ng c u trúc d li u và cách xây d ng m t thu t toán sao cho t iủa ệu vào ực hành, chúng em nghiên cứu và thực ất quan trọng cũng như không thể ữ liệu vào ệu vào ực hành, chúng em nghiên cứu và thực ập số ố

u nhât

ưa và struct

Bài toán “Qu n lý hàng nh p trong m t tháng” mà chúng em nghiên c uập số ức dữ liệu để giải quyết các bài toán sao

và trình bày trong báo cáo sau đây là m t trong nh ng ví d ữ liệu vào ụ

Chúng em chân thành c m n cô Đ Th Tuy t Hoa đã giúp đ chúng emơ bản của ỗ Thị Tuyết Hoa đã giúp đỡ chúng em ị danh sách ếp ỡ chúng em

th c hi n đ án này Và chúng em cũng r t mong s góp ý, giúp đ t cô đ bàiực hành, chúng em nghiên cứu và thực ệu vào ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ất quan trọng cũng như không thể ực hành, chúng em nghiên cứu và thực ỡ chúng em ừ file đưa và struct ển thị danh sáchlàm chúng em đưa và structợc chọnc hoàn thi n h n ệu vào ơ bản của

Nhóm sinh viên

Lê Trưa và structời lập trình Môn học này được xem như nền tản cơ bản củang Lâm

Tr n Văn Thanhần rất quan trọng cũng như không thể

Trang 4

I Gi i thi u ới thiệu ệu

Trong h th ng bán hàng đ n l hay to l n đ u đ t ra yêu c u v tính toán l iệu vào ố ơ bản của ẻ hay to lớn đều đặt ra yêu cầu về tính toán lợi ới người lập trình Môn học này được xem như nền tản cơ bản của ền hàng nhập theo các ngày trong tháng ặt ra yêu cầu về tính toán lợi ần rất quan trọng cũng như không thể ền hàng nhập theo các ngày trong tháng ợc chọnnhu n cho m i thao tác giao d ch Đ qu n lý đập số ỗ Thị Tuyết Hoa đã giúp đỡ chúng em ị danh sách ển thị danh sách ưa và structợc chọnc đi u đó c n ph i có m tền hàng nhập theo các ngày trong tháng ần rất quan trọng cũng như không thểdanh sách cũng nh m t công c đ l u l i các d li u giao d ch ưa và struct ụ ển thị danh sách ưa và struct ại các dữ liệu giao dịch ữ liệu vào ệu vào ị danh sách

N u s lếp ố ưa và structợc chọnng hàng hóa b n nh p v không nhi u, ch ng lo i cũng không quáại các dữ liệu giao dịch ập số ền hàng nhập theo các ngày trong tháng ền hàng nhập theo các ngày trong tháng ủa ại các dữ liệu giao dịch

đa d ng, quy mô kinh doanh l i nh thì v n đại các dữ liệu giao dịch ại các dữ liệu giao dịch ỏ thì vấn đề ất quan trọng cũng như không thể ền hàng nhập theo các ngày trong tháng qu n lý hàng nh ải thuật và tính độ phức tạp ật và tính độ phức tạpp không quá

ph c t p Nh ng n u ngức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ưa và struct ếp ưa và structợc chọn ại các dữ liệu giao dịch c l i, b n ph i nh p hàng trăm lô hàng v m i tháng,ại các dữ liệu giao dịch ập số ền hàng nhập theo các ngày trong tháng ỗ Thị Tuyết Hoa đã giúp đỡ chúng em

th m chí là t ng tu n, thì nh p kho th nào đ đ m b o hàng hóa đ s lập số ừ file đưa và struct ần rất quan trọng cũng như không thể ập số ếp ển thị danh sách ủa ố ưa và structợc chọnng,

đ t chu n ch t lại các dữ liệu giao dịch " ất quan trọng cũng như không thể ưa và structợc chọnng, và qu n lý toàn b chúng theo cách thông thưa và structời lập trình Môn học này được xem như nền tản cơ bản củang thìkhông ph i là d ễ

Chính vì v y, chập số ưa và structơ bản củang trình qu n lý hàng nh p trong m t tháng đáp ng đập số ức dữ liệu để giải quyết các bài toán sao ưa và structợc chọnc

ph n nào các nhu c u, khó khăn đ ra ần rất quan trọng cũng như không thể ần rất quan trọng cũng như không thể ền hàng nhập theo các ngày trong tháng

Sau đây là các thông tin c a ch ủa chương trình: ương trinh ng trình:

Thông tin phi u nh p kho hàng g m: mã hàng, tên hàng, đ n v tính, ngàyếp ập số ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ơ bản của ị danh sách

nh p, s lập số ố ưa và structợc chọnng, đ n giá, ơ bản của thành ti nền hàng nhập theo các ngày trong tháng

Trong đó tính thành ti n (TT) = s lền hàng nhập theo các ngày trong tháng ố ưa và structợc chọnng*đ n giá và đơ bản của ưa và structợc chọnc gi m theo qui ưa và structới người lập trình Môn học này được xem như nền tản cơ bản củac:

Giảm={10 %nếu 50<số lượng≤100 15 % nếu số lượng>100

0 nếu số lượng≤50

Ch ương trinh ng trình th c hi n các ch c năng sau: ực hiện các chức năng sau: ệu ức tạp

 In danh sách các thông tin c a t t c các đ i tủa ất quan trọng cũng như không thể ố ưa và structợc chọnng

 B sung thêm 1 đ i tổ sung danh sách ố ưa và structợc chọnng vào danh sách

 Tìm ki m m u tin theo các tiêu chí khác nhau và hi n th m u tin đó ếp ẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó ển thị danh sách ị danh sách ẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó

 S p x p theo th t tăng d n/ gi m d n ắp xếp ếp ức dữ liệu để giải quyết các bài toán sao ực hành, chúng em nghiên cứu và thực ần rất quan trọng cũng như không thể ần rất quan trọng cũng như không thể

Trang 5

 Chèn m u tin ẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó

 Xóa 1 m u tin ẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó

 In ra b ng th ng kê theo t ng ngày trong tháng g m các c t: ngày nh p,ố ừ file đưa và struct ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ập số

t ng s ti n ổ sung danh sách ố ền hàng nhập theo các ngày trong tháng

 Xóa các m t ặt ra yêu cầu về tính toán lợi hàng theo thông tin cho trước

1 D li u vào ữ liệu ệu

Thông tin hàng nh p bao g m các trập số ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ưa và structời lập trình Môn học này được xem như nền tản cơ bản củang:

Tên tr ường ng Ki u d li u ểu dữ liệu ữ liệu ệu

Đ n v hàngơ bản của ị danh sách char[40]

S lố ưa và structợc chọnng Int

Thành ti nền hàng nhập theo các ngày trong tháng Int

B ng 1: ải thuật và tính độ phức tạp Thông tin hàng nh p và ki u d li uập số ển thị danh sách ữ liệu vào ệu vào

D li u này đữ liệu vào ệu vào ưa và structợc chọn ất quan trọng cũng như không thể ừ file đưa và structc l y t file HangNhap.txt

2 D li u ra ữ liệu ệu

D li u có th l u l i vào file txt n u mu n ữ liệu vào ệu vào ển thị danh sách ưa và struct ại các dữ liệu giao dịch ếp ố

Các thông tin theo yêu c u bài toán: ần rất quan trọng cũng như không thể

0 In danh sách các thông tin của tất cả các đối tượng

1 Bổ sung thêm 1 đối tượng vào danh sách, chèn mẫu tin sao cho mảng vẫn đượcsắp theo thứ tự

2 In ra bảng thống kê theo từng ngày trong tháng gồm các cột: ngày nhập, tổng sốtiền

3 Sắp xếp theo thứ tự tăng dần/ giảm dần

Trang 6

4 Tìm kiếm mẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó

5 Xóa 1 mẫu tin

6 Thoát chương trình

III Thi t k c u trúc d li u ết kế cấu trúc dữ liệu ết kế cấu trúc dữ liệu ấu trúc dữ liệu ữ liệu ệu

Các trưa và structời lập trình Môn học này được xem như nền tản cơ bản củang m u tin đẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó ưa và structợc chọnc li t kê và phân bi t vào các bi n thành viên c aệu vào ệu vào ếp ủastruct HangNhap, m i bi n tỗ Thị Tuyết Hoa đã giúp đỡ chúng em ếp ưa và structơ bản củang ng v i các d li u riêng phù h v i đ c tr ngức dữ liệu để giải quyết các bài toán sao ới người lập trình Môn học này được xem như nền tản cơ bản của ữ liệu vào ệu vào ợc chọn ới người lập trình Môn học này được xem như nền tản cơ bản của ặt ra yêu cầu về tính toán lợi ưa và struct

t ng bi n ừ file đưa và struct ếp

C u trúc d li u hàng nh p trong m t tháng: ất quan trọng cũng như không thể ữ liệu vào ệu vào ập số

Đ n v hàngơ bản của ị danh sách donVi char[40]

S lố ưa và structợc chọnng soLuong Int

Thành ti nền hàng nhập theo các ngày trong tháng thanhTien Int

Th c hi n khai báo: ực hành, chúng em nghiên cứu và thực ệu vào

typedef char MaHang[7];

typedef char Ten[50];

typedef char DonVi[40];

typedef int Ngay;

typedef int SoLuong;

typedef int DonGia;

typedef int ThanhTien;

Trang 7

typedef struct HangNhap

đưa và structợc chọn ưa và structc l u tr ngay sau ph n t th i-1 gi ng nh m t m ngữ liệu vào ần rất quan trọng cũng như không thể ử được lưu trữ k ức dữ liệu để giải quyết các bài toán sao ố ưa và struct )

Khai báo m ng danh sách v i s danh sách t i đa là MAXLIST = 100:ới người lập trình Môn học này được xem như nền tản cơ bản của ố ố

#define MAXLIST

HN A[MAXLIST];

Các bi n liên quan khác: ếp

int n; // là bi n ch a n i dung là s ph n t th c trong danh sách hàng nh pếp ức dữ liệu để giải quyết các bài toán sao ố ần rất quan trọng cũng như không thể ử được lưu trữ k ực hành, chúng em nghiên cứu và thực ập số

int ct; // Bi n đi u khi n các m c th c hi n chếp ền hàng nhập theo các ngày trong tháng ển thị danh sách ụ ực hành, chúng em nghiên cứu và thực ệu vào ưa và structơ bản củang trình (hi n th , th ng kê,ển thị danh sách ị danh sách ố

tìm ki m,vv )ếp

Trang 8

IV Các gi i thu t và tính đ ph c t p ải thuật và tính độ phức tạp ật và tính độ phức tạp ộ phức tạp ức tạp ạp

1 Đ c d li u t file đ a và struct ọc dữ liệu từ file đưa và struct ữ liệu ệu ừ file đưa và struct ư

File HangNhap.txt là file l u tr d li u trong quá trình th c thi và s d ngưa và struct ữ liệu vào ữ liệu vào ệu vào ực hành, chúng em nghiên cứu và thực ử được lưu trữ k ụ.lâu dài Nó cũng nh là m t c s d li u đ n gi n ưa và struct ơ bản của ở vững chắc để giải quyết các bài toán ữ liệu vào ệu vào ơ bản của

Hàm đ c file: ọc dữ liệu từ file đưa và struct

- Input: D li u trong file “HangNhap.txt” ữ liệu vào ệu vào

- Output: D li u đã đữ liệu vào ệu vào ưa và structợc chọnc gia công trong struct và giá tr n các m u tin hàngị danh sách ẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó

nh p ập số

- Cài đ t: ặt:

void read(HN A[], int &n){

char strHang[150]; // mảng lưu 1 dòng chuỗi khi đọc

fgets(strHang, 100, f); // đọc 1 dòng đưa vào strHang

// tách chuỗi ra từng phần đưa vào các thành viên struct

Trang 9

N u không k các hàm x lý xâu c a th vi n “string.h” thì đ ph c t pếp ển thị danh sách ử được lưu trữ k ủa ưa và struct ệu vào ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch

c a gi i thu t đ c d li u là s hàng: O(n)ủa ập số ọc dữ liệu từ file đưa và struct ữ liệu vào ệu vào ố

2 Ghi d li u vào file ữ liệu ệu

Các d li u trong struct hi n hành đữ liệu vào ệu vào ệu vào ưa và structợc chọn ưa và structc l u vào trong file “HangNhap.txt”

- Input: danh sách hàng nh p sau khi th c hi n các thao tác nh nh p, bập số ực hành, chúng em nghiên cứu và thực ệu vào ưa và struct ập số ổ sung danh sáchsung, xóa

- Output: l u l i các thay đ i v a th hi n vào file “HangNhap.txt”.ưa và struct ại các dữ liệu giao dịch ổ sung danh sách ừ file đưa và struct ực hành, chúng em nghiên cứu và thực ệu vào

- Cài đ t: ặt:

void write(HN A[], int n){

int i;

FILE *f = fopen("HangNhap.txt", "w"); // mo file de ghi

if (f == NULL) thongBaoKhongLoadFile(); // neu file khong ton tai// Ghi du lieu vao file

fprintf(f, "%3s%15s%10s%10s%10s%10s%10s", "ID","TenHang", "DonVi", "NgayNhap", "SoLuong", "DonGia", "ThanhTien");

for (i = 0; i < n; i++) fprintf(f, "\n%3s%15s%10s%10d%10d%10d%10d", A[i].maHang, A[i].ten, A[i].donVi, A[i].ngayNhap, A[i].soLuong, A[i].donGia, A[i].thanhTien);

fclose(f); // Dong file

Trang 10

- Tính đ ph c t p: ộ phức tạp ức tạp ạp

Thu t toán ghi file ch đ n gi n là ghi n dòng t ngăn x p vào file và có đập số ỉ đơn giản là ghi n dòng từ ngăn xếp vào file và có độ ơ bản của ừ file đưa và struct ếp

ph c t p là: O(n)ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch

3 Hàm nh p s ật và tính độ phức tạp ố

Đ ki m tra xem d li u nh p vào có ph i là s , ho c r ng hay không vàển thị danh sách ển thị danh sách ữ liệu vào ệu vào ập số ố ặt ra yêu cầu về tính toán lợi ỗ Thị Tuyết Hoa đã giúp đỡ chúng em

tr v s ền hàng nhập theo các ngày trong tháng ố

- Ph m vi áp d ng trong đ tài: ạp ụ Lục: ề tài: Nh p d li u t bàn phím cho các bi nập số ữ liệu vào ệu vào ừ file đưa và struct ếpthành viên: ngayNhap, soLuong, donGia,

- Input: Chu i ký tỗ Thị Tuyết Hoa đã giúp đỡ chúng em ực hành, chúng em nghiên cứu và thực

Trang 11

Đ ph c t p s l n so sánh, tùy vào đ dài xâu nh p vào V i xâu nh p vàoức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ố ần rất quan trọng cũng như không thể ập số ới người lập trình Môn học này được xem như nền tản cơ bản của ập số

có đ lài len(xâu) = n thì đ ph c t p là O(n)ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch

4 Hi n th danh sách ểu dữ liệu ị danh sách

Hàm hi n th thông tin c a t t c hàng nh p hi n t i trong tháng.ển thị danh sách ị danh sách ủa ất quan trọng cũng như không thể ập số ệu vào ại các dữ liệu giao dịch

- Input: Danh sách hàng nh p hi n t i bao g m: tên hàng, đ n v tính, ngàyập số ệu vào ại các dữ liệu giao dịch ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ơ bản của ị danh sách

nh p, s lập số ố ưa và structợc chọnng, thành ti n Danh sách đền hàng nhập theo các ngày trong tháng ưa và structợc chọnc l u tr trong fileưa và struct ữ liệu vào

Đ ph c t p c a thu t toán trên là s l n in ra d li u, s l n in ra là: n+1 ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủa ập số ố ần rất quan trọng cũng như không thể ữ liệu vào ệu vào ố ần rất quan trọng cũng như không thể

Đ ph c t p: O(n) ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch

Trang 12

5 B sung danh sách ổ sung danh sách

Hàm b sung thêm m t đ i tổ sung danh sách ố ưa và structợc chọnng hàng nh p vào danh sách.ập số

- Input: Danh sách hàng nh p hi n t i trong tháng và thông tin v hàngập số ệu vào ại các dữ liệu giao dịch ền hàng nhập theo các ngày trong tháng

nh p c n thêm vào danh sách.ập số ần rất quan trọng cũng như không thể

- Output: Danh sách hàng nh p trong tháng đã đập số ưa và structợc chọnc b sung thêm đ iổ sung danh sách ố

}

// Nhap don vi hang

while(1) {

Trang 13

if(temp>0 && temp<31){

A[n].ngayNhap = temp; break;

Trang 14

Đ ph c t p c a hàm insertGUI(HN A[],int &n) là t ng đ ph c t p c a cáức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủa ổ sung danh sách ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủa

l n nh p vào bi n thành viên struct và hàm write(A,n) ần rất quan trọng cũng như không thể ập số ếp

N u tính t t c các l n nh p đ u đúng d li u thì đ ph c t p c a m iếp ất quan trọng cũng như không thể ần rất quan trọng cũng như không thể ập số ền hàng nhập theo các ngày trong tháng ữ liệu vào ệu vào ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủa ỗ Thị Tuyết Hoa đã giúp đỡ chúng em

l n nh p là n (tr các l n nh p th ng các xâu maHang, ten, donVi là 1), đần rất quan trọng cũng như không thể ập số ừ file đưa và struct ần rất quan trọng cũng như không thể ập số ẳng các xâu maHang, ten, donVi là 1), độ

ph c t p hàm write(A,n) là n ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch

V y đ ph c t p là: 3 + 5n => O(n) ập số ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch

6 Th ng kê ố

Hàm th ng kê và hi n th ra màn hình thông tin v ngày nh p và t ng chiố ển thị danh sách ị danh sách ền hàng nhập theo các ngày trong tháng ập số ổ sung danh sách

c a ngày đó trong tháng ủa

- Input: Danh sách hàng nh p trong tháng.ập số

- Output: Danh sách g m ngày nh p và t ng chi c ngày đó.ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ập số ổ sung danh sách

Trang 15

A[j + 1] = temp;

}}

}

- Tính đ ph c t p: ộ phức tạp ức tạp ạp

Đ ph c t p c a hàm thongKe(HN A[], int n) là t ng đ ph c t p c aức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủa ổ sung danh sách ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủathu t toán s p x p n i b t và thu t toán th ng kê thành ti n ập số ắp xếp ếp ổ sung danh sách ọc dữ liệu từ file đưa và struct ập số ố ền hàng nhập theo các ngày trong tháng

S p x p n i b t: V i m i i = 1,2,3, ,n-1 ta c n i phép so sánh Do đó s l nắp xếp ếp ổ sung danh sách ọc dữ liệu từ file đưa và struct ới người lập trình Môn học này được xem như nền tản cơ bản của ỗ Thị Tuyết Hoa đã giúp đỡ chúng em ần rất quan trọng cũng như không thể ố ần rất quan trọng cũng như không thể

so sánh và đ i ch trong gi i thu t là: ổ sung danh sách ổ sung danh sách ập số

1+2+3+…+(n−2)+( n−1)= (n−1) n

2

Do đó đ ph c t p c a gi i thu t s p x p n i b t là: O(nức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủa ập số ắp xếp ếp ổ sung danh sách ọc dữ liệu từ file đưa và struct 2)

Thu t toán th ng kê hàng nh p nh vào d li u đã x p s n nên có đập số ố ập số ời lập trình Môn học này được xem như nền tản cơ bản của ữ liệu vào ệu vào ếp ẵn nên có độ

ph c t p là s l n so sánh và tính t ng c a t t c các m t hàng: O(n)ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ố ần rất quan trọng cũng như không thể ổ sung danh sách ủa ất quan trọng cũng như không thể ặt ra yêu cầu về tính toán lợi

T đó ta tính đừ file đưa và struct ưa và structợc chọnc đ ph c t p c a hàm ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủa thongKe(HN A[], int n) là:

O(n2) + O(n) ~ O(n2)

7 S p x p ắp xếp ết kế cấu trúc dữ liệu

Hàm s p x p s d ng danh sách hàng nh p hi n có, th c hi n quá trìnhắp xếp ếp ử được lưu trữ k ụ ập số ệu vào ực hành, chúng em nghiên cứu và thực ệu vào

s p x p và xu t ra m t danh sách m i đ tránh làm thay đ i d li u hi n có.ắp xếp ếp ất quan trọng cũng như không thể ới người lập trình Môn học này được xem như nền tản cơ bản của ển thị danh sách ổ sung danh sách ữ liệu vào ệu vào ệu vàoDanh sách m i đới người lập trình Môn học này được xem như nền tản cơ bản của ưa và structợc chọn ắp xếpc s p x p hi n th ra màn hình Hàm đếp ển thị danh sách ị danh sách ưa và structợc chọnc cài đ t s p x pặt ra yêu cầu về tính toán lợi ắp xếp ếp

Trang 16

d li u theo nhi u tiêu chí có trong c u trúc d li u hàng nh p, bao g m: Mãữ liệu vào ệu vào ền hàng nhập theo các ngày trong tháng ất quan trọng cũng như không thể ữ liệu vào ệu vào ập số ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật táchàng, Tên hàng, Đ n v , Ngày nh p, S lơ bản của ị danh sách ập số ố ưa và structợc chọnng, Đ n giá, Thành ti n.ơ bản của ền hàng nhập theo các ngày trong tháng

- Input: Danh sách hàng nh p hi n t i trong tháng.ập số ệu vào ại các dữ liệu giao dịch

- Output: Danh sách hàng nh p đã đập số ưa và structợc chọn ắp xếpc s p x p theo tiêu chí đ nh trếp ị danh sách ưa và structới người lập trình Môn học này được xem như nền tản cơ bản củac.Sau đây là hàm s p x p tăng d n, gi m d n theo Mã hàng Các hàm khácắp xếp ếp ần rất quan trọng cũng như không thể ần rất quan trọng cũng như không thể

tưa và structơ bản củang t hàm này, ch thay đ i tham s truy n vào và cách th c so sánh choực hành, chúng em nghiên cứu và thực ỉ đơn giản là ghi n dòng từ ngăn xếp vào file và có độ ổ sung danh sách ố ền hàng nhập theo các ngày trong tháng ức dữ liệu để giải quyết các bài toán saocác ki u d li u vào.ển thị danh sách ữ liệu vào ệu vào

- Cài đ t: ặt:

S p x p Mã hàng theo th t tăng d n: ắp xếp ết kế cấu trúc dữ liệu ức tạp ực hiện các chức năng sau: ần:

void sortTang_maHang(HN A[], int &n){

}

S p x p mã hàng theo th t gi m d n: ắp xếp ết kế cấu trúc dữ liệu ức tạp ực hiện các chức năng sau: ải thuật và tính độ phức tạp ần:

void sortGiam_maHang(HN A[], int &n){

int i, j;

HN temp;

for (i = 1; i < n; i++)for (j = 0; j < n - i; j++){

if (layMaHang(A[j].maHang) < layMaHang(A[j + 1].maHang)) {

temp = A[j];

Trang 17

A[j] = A[j + 1];

A[j + 1] = temp;

}}

}Các hàm s p x p c a đ tài s d ng thu t toán s p x p n i b t ắp xếp ếp ủa ền hàng nhập theo các ngày trong tháng ử được lưu trữ k ụ ập số ắp xếp ếp ổ sung danh sách ọc dữ liệu từ file đưa và struct

V i m i i = 1,2,3, ,n-1 ta c n i phép so sánh Do đó s l n so sánh và đ i ới người lập trình Môn học này được xem như nền tản cơ bản của ỗ Thị Tuyết Hoa đã giúp đỡ chúng em ần rất quan trọng cũng như không thể ố ần rất quan trọng cũng như không thể ổ sung danh sách

ch trong gi i thu t là: ổ sung danh sách ập số

- Output: Thông tin trong hàng nh p tìm ki m đập số ếp ưa và structợc chọnc

Các hàm tìm ki m theo nhi u tiêu chí khác nhau có trong c u trúc d li uếp ền hàng nhập theo các ngày trong tháng ất quan trọng cũng như không thể ữ liệu vào ệu vàohàng nh p bao g m: Mã hàng, Tên hàng, Đ n v , Ngày nh p, S lập số ồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác ơ bản của ị danh sách ập số ố ưa và structợc chọnng, Đ nơ bản củagiá, Thành ti n.ền hàng nhập theo các ngày trong tháng

Trang 18

for (int i = 0; i < n; i++) {

if (strcmp(A[i].ten, text) == 0) {showLine(A,i,dem); // in ra dòng hàng nhập tìm được

dem++;

}}

- Input: Danh sách hàng nh p hi n t iập số ệu vào ại các dữ liệu giao dịch

- Output: Danh sách hàng nh p đã đập số ưa và structợc chọnc xóa m t hàng theo yêu c u nh pặt ra yêu cầu về tính toán lợi ần rất quan trọng cũng như không thể ập sốvào

Trang 19

&&((soLuong_temp == -1) ? 1: (A[i].soLuong == soLuong_temp))

&&((donGia_temp == -1) ? 1: (A[i].donGia == donGia_temp))

&&((thanhTien_temp == -1) ? 1: (A[i].thanhTien ==

thanhTien_temp))

)

&& i < n) {

Trang 20

i++;

}write(A,n);

Gi i thu t xóa và ghi d li u có đ ph c t p là O(n)ập số ữ liệu vào ệu vào ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch

V y đ ph c t p c a gi i thu t xóa là O(n)ập số ức dữ liệu để giải quyết các bài toán sao ại các dữ liệu giao dịch ủa ập số

V K t qu ch ết kế cấu trúc dữ liệu ải thuật và tính độ phức tạp ương trinh ng trinh

1 Menu chính:

Ch a các m c đi u khi n qu n lý hàng nh pức dữ liệu để giải quyết các bài toán sao ụ ền hàng nhập theo các ngày trong tháng ển thị danh sách ập số

Đi u khi n b ng các phím ền hàng nhập theo các ngày trong tháng ển thị danh sách ằng thuật toán tìm kiếm này là số lần so sánh giữa thông   ↓ ↑ và ch n b ng phím ENTERọc dữ liệu từ file đưa và struct ằng thuật toán tìm kiếm này là số lần so sánh giữa thông

Trang 21

2 Hi n th danh sách các hàng nh p ểu dữ liệu ị danh sách ật và tính độ phức tạp

Hi n th các trang lân c n b ng phím ển thị danh sách ị danh sách ập số ằng thuật toán tìm kiếm này là số lần so sánh giữa thông   ↓ ↑

Nh n phím INSERT đ thêm thông tin ESC đ thoát ất quan trọng cũng như không thể ển thị danh sách ển thị danh sách

3 Thêm thông tin hàng nh p ật và tính độ phức tạp

Nh p các thông tin tập số ưa và structơ bản củang ng các vùng, n u nh p không đúng d li u ức dữ liệu để giải quyết các bài toán sao ếp ập số ữ liệu vào ệu vào

sẽ có thông báo và yêu c u nh p l i vùng đó ần rất quan trọng cũng như không thể ập số ại các dữ liệu giao dịch

Trang 23

4 Th ng kê thành ti n hàng nh p theo các ngày trong tháng ố ề tài: ật và tính độ phức tạp

5 S p s p hàng nh p theo các tiêu chí đ ắp xếp ết kế cấu trúc dữ liệu ật và tính độ phức tạp ược chọn c ch n ọc dữ liệu từ file đưa và struct

Trang 24

6 Tìm ki m và hi n th hàng nh n ết kế cấu trúc dữ liệu ểu dữ liệu ị danh sách ật và tính độ phức tạp

Trong menu “TIEU CHI TIM KIEM”, s d ng ↑ ↓ ENTER đ ch n m cử được lưu trữ k ụ ển thị danh sách ọc dữ liệu từ file đưa và struct ụ

Nh n phím Tap đ chuy n sang “THONG TIN CAN TIM”ất quan trọng cũng như không thể ển thị danh sách ển thị danh sách

Trang 25

7 Xóa hàng nh p: ật và tính độ phức tạp

Trang 26

Nh p các thông tin c n xóa, chập số ần rất quan trọng cũng như không thể ưa và structơ bản củang trình sẽ xóa t t c các m u tin th a ất quan trọng cũng như không thể ẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó ỏ thì vấn đề

t t c các đi u ki n Thông tin nào không c n xét thì đ tr ng ất quan trọng cũng như không thể ền hàng nhập theo các ngày trong tháng ệu vào ần rất quan trọng cũng như không thể ển thị danh sách ố

Trang 27

VI K t Lu n: ết kế cấu trúc dữ liệu ật và tính độ phức tạp

Đồ án đã giúp em hiểu rõ hơn về tầm quan trọng của phân tích thiết kế giải thuật trongquá trình xây dựng chương trình Qua đó, thấy được những giải pháp tối ưu cho vấn đề mình đặt ra về việc chọn cấu trúc dữ liệu và thuật toán phù hợp với từng mục đích đề tài

Đồ án đã trình bày rõ các vấn đề về giải thuật trong bài toán giản lý hàng nhập trong một tháng Đó là công việc hiển thị, bổ sung, sắp xếp, thống kê, xóa các mẫu tin của hàng nhập Tất cả được thực hiện rõ các chỉ tiêu về độ phức tạp cũng như tính đa dạng của bài toán Theo đó thì mỗi hàm tương ứng với mỗi giải thuật riêng, mỗi độ phức tạp riêng

Giao diện chương trình được bố trí trưc quan, dễ hiểu Sát cận với các thao tác điều khiển ứng dụng hằng ngày Mang lại sự gần gũi giữa sự tương tác của người với chương trình thực hiện

Tuy đã cố gắng nhưng do code giao diện không sử dụng API nên vẫn còn nhiều hạn chế về load giao diện

Trang 29

typedef char MaHang[7];

typedef char Ten[15];

typedef char DonVi[10];

typedef int Ngay;

typedef int SoLuong;

typedef int DonGia;

typedef int ThanhTien;

typedef struct HangNhap{

Trang 30

char menuChinh_1[4][50] = { " HIEN THI DANH SACH ", " BO SUNG DANH SACH ", " THONG KE ", " SAP XEP " };

char menuChinh_2[3][50] = { " TIM KIEM ", " XOA ", " THOAT " };

char menuSapXep_1[4][50] = { " MA HANG ", " TEN HANG ", " DON VI ", " NGAY NHAP " };

char menuSapXep_2[3][50] = { " SO LUONG ", " DON GIA ", " THANH TIEN " };

char menuTieuChi[7][18] = {" MA HANG "," TEN HANG "," DON VI "," NGAY NHAP "," SO LUONG "," DON GIA "," THANH TIEN "};

void gotoxy(int x, int y){

Trang 32

* Input: Mang cau truc hang nhap

* Output: file da duoc luu du lieu cua mang cau truc

*/

void write(HN A[], int n){

int i;

FILE *f = fopen("HangNhap.txt", "w"); // mo file de ghi

if (f == NULL) thongBaoKhongLoadFile(); // neu file khong ton tai

// Ghi du lieu vao file

fprintf(f, "%3s%15s%10s%10s%10s%10s%10s", "ID","TenHang",

"DonVi", "NgayNhap", "SoLuong", "DonGia", "ThanhTien");

for (i = 0; i < n; i++) fprintf(f, "\n%3s%15s%10s%10d%10d%10d%10d", A[i].maHang, A[i].ten, A[i].donVi, A[i].ngayNhap, A[i].soLuong, A[i].donGia, A[i].thanhTien);

fclose(f); // Dong file

Trang 33

A[i].ngayNhap = atoi(strtok(NULL, " "));A[i].soLuong = atoi(strtok(NULL, " "));

A[i].donGia = atoi(strtok(NULL, " "));

A[i].thanhTien = atof(strtok(NULL, " "));i++;

Trang 34

gotoxy(43,13); printf("GIAM");sttTang = false;

}else {

setColor(11,12);

gotoxy(36,13); printf("TANG");setColor(11,6);

gotoxy(43,13); printf("GIAM");sttTang = true;

}break;

gotoxy(43,13); printf("GIAM");sttTang = false;

}else {

setColor(11,12);

gotoxy(36,13); printf("TANG");setColor(11,6);

Trang 35

gotoxy(43,13); printf("GIAM");sttTang = true;

}break;

}}

Trang 36

A[j] = A[j + 1];

A[j + 1] = temp;

}}

}

//Sap xep theo Ten

void sortGiam_ten(HN A[], int &n){

}

//Sap xep theo donVi

void sortGiam_donVi(HN A[], int &n){

printf("Sap xep theo don vi:\n");

Trang 37

}

//Sap xep theo ngayNhap

void sortGiam_ngayNhap(HN A[], int &n){

printf("Sap xep theo ngay nhap: \n");

}

//Sap xep theo soLuong

void sortGiam_soLuong(HN A[], int &n){

printf("Sap xep theo so luong: \n");

Trang 38

}

//Sap xep theo don gia

void sortGiam_donGia(HN A[], int &n){

printf("Sap xep theo don gia: \n");

}

// Sap xep theo ThanhTien

void sortGiam_thanhTien(HN A[], int &n){

}

Trang 39

void sortTang_maHang(HN A[], int &n){

}

//Sap xep theo Ten

void sortTang_ten(HN A[], int &n){

}

//Sap xep theo donVi

void sortTang_donVi(HN A[], int &n){

int i, j;

Trang 40

//Sap xep theo ngayNhap

void sortTang_ngayNhap(HN A[], int &n){

}

//Sap xep theo soLuong

void sortTang_soLuong(HN A[], int &n){

int i, j;

HN temp;

for (i = 1; i < n; i++)

for (j = 0; j < n - i; j++){

Ngày đăng: 08/04/2017, 23:44

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w