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

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

Đ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

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.

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA 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 SVTH : Nhóm : GVHD : 13.10 ĐỖ THỊ TUYẾT HOA Đà Nẵng, 2016 MỤC LỤC LỜI MỞ ĐẦU Giải thuật lập trình học phần quan trọng khơng thể thiếu người lập trình Mơn học xem tản lập trình máy tính Nó sở vững để giải toán lập trình, đồng thời cung cấp cho hiểu biết giải thuật tác động lên liệu, cách tổ chức liệu để giải toán cho hiệu tối ưu Sau hai học phần lý thuyết thực hành, chúng em nghiên cứu thực đồ án cách để củng cố mở rộng kiến thức Thơng qua q trình thực đồ án, chúng em nắm bắt kỹ thuật quan trọng việc xây dựng cấu trúc liệu cách xây dựng thuật toán cho tối ưu nhât Bài toán “Quản lý hàng nhập tháng” mà chúng em nghiên cứu trình bày báo cáo sau ví dụ Chúng em chân thành cảm ơn cô Đỗ Thị Tuyết Hoa giúp đỡ chúng em thực đồ án Và chúng em mong góp ý, giúp đỡ từ cô để làm chúng em hồn thiện Nhóm sinh viên Lê Trường Lâm Trần Văn Thanh Page I Giới thiệu Trong hệ thống bán hàng đơn lẻ hay to lớn đặt u cầu tính tốn lợi nhuận cho thao tác giao dịch Để quản lý điều cần phải có danh sách cơng cụ để lưu lại liệu giao dịch Nếu số lượng hàng hóa bạn nhập khơng nhiều, chủng loại không đa dạng, quy mô kinh doanh lại nhỏ vấn đề quản lý hàng nhập khơng q phức tạp Nhưng ngược lại, bạn phải nhập hàng trăm lơ hàng tháng, chí tuần, nhập kho để đảm bảo hàng hóa đủ số lượng, đạt chuẩn chất lượng, quản lý tồn chúng theo cách thơng thường khơng phải dễ Chính vậy, chương trình quản lý hàng nhập tháng đáp ứng phần nhu cầu, khó khăn đề Sau thơng tin chươ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 nhập, số lượng, đơn giá, thành tiền Trong tính thành tiền (TT) = số lượng*đơn giá giảm theo qui ước: Chương trình thực chức sau:  In danh sách thông tin tất đối tượng  Bổ sung thêm đối tượng vào danh sách  Tìm kiếm mẫu tin theo tiêu chí khác hiển thị mẫu tin  Sắp xếp theo thứ tự tăng dần/ giảm dần  Chèn mẫu tin  Xóa mẫu tin  In bảng thống kê theo ngày tháng gồm cột: ngày nhập, tổng số tiền  Xóa mặt hàng theo thơng tin cho trước Page II Phân tích tốn Dữ liệu vào Thông tin hàng nhập bao gồm trường: Tên trường Kiểu liệu Mã hàng Tên hàng Đơn vị hàng Ngày nhập Số lượng Đơn giá Thành tiền char[7] char[50] char[40] Int Int Int Int Bảng 1: Thông tin hàng nhập kiểu liệu Dữ liệu lấy từ file HangNhap.txt Dữ liệu Dữ liệu lưu lại vào file txt muốn Các thơng tin theo u cầu tốn: In danh sách thông tin tất đối tượng Bổ sung thêm đối tượng vào danh sách, chèn mẫu tin cho mảng theo thứ tự In bảng thống kê theo ngày tháng gồm cột: ngày nhập, tổng số tiền Sắp xếp theo thứ tự tăng dần/ giảm dần Tìm kiếm mẫu tin theo tiêu chí khác hiển thị mẫu tin Xóa mẫu tin Thốt chương trình III Thiết kế cấu trúc liệu Page Các trường mẫu tin liệt kê phân biệt vào biến thành viên struct HangNhap, biến tương ứng với liệu riêng phù hợ với đặc trưng biến Cấu trúc liệu hàng nhập tháng: Tên trường Khai báo Kiểu liệu Mã hàng maHang char[7] Tên hàng ten char[50] Đơn vị hàng donVi char[40] Ngày nhập ngayNhap Int Số lượng soLuong Int Đơn giá donGia Int Thành tiền thanhTien Int Thực khai bá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; typedef struct HangNhap { MaHang maHang; Ten ten; DonVi donVi; Page Ngay ngayNhap; SoLuong soLuong; DonGia donGia; ThanhTien thanhTien; } HN; Tạo danh sách hàng nhập mảng danh sách đặc (danh sách đặc danh sách mà phần tử lưu trữ nhớ, phần tử thứ i lưu trữ sau phần tử thứ i-1 giống mảng) Khai báo mảng danh sách với số danh sách tối đa MAXLIST = 100: #define MAXLIST HN A[MAXLIST]; Các biến liên quan khác: int n; // biến chứa nội dung số phần tử thực danh sách hàng nhập int ct; // Biến điều khiển mục thực chương trình (hiển thị, thống kê, tìm kiếm,vv ) Page IV Các giải thuật tính độ phức tạp Đọc liệu từ file đưa struct File HangNhap.txt file lưu trữ liệu trình thực thi sử dụng lâu dài Nó sở liệu đơn giản Hàm đọc file: - Input: Dữ liệu file “HangNhap.txt” - Output: Dữ liệu gia công struct giá trị n mẫu tin hàng nhập - Cài đặt: void read(HN A[], int &n){ char strHang[150]; // mảng lưu dòng chuỗi đọc int i = 0; FILE *f = fopen("HangNhap.txt", "r"); fgets(strHang, 100, f); /* Đọc để loại bỏ dòng tiêu đề ban đầu file*/ // đọc xử lý tách xâu dòng file while (!feof(f)) { /* file chưa đọc hết cịn thực */ fgets(strHang, 100, f); // đọc dòng đưa vào strHang // tách chuỗi phần đưa vào thành viên struct strcpy(A[i].maHang, strtok(strHang, " ")); strcpy(A[i].ten, strtok(NULL, " ")); strcpy(A[i].donVi, strtok(NULL, " ")); 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++; } fclose(f); // sau đọc đóng file lại n = i; Page } - Tính độ phức tạp: Nếu không kể hàm xử lý xâu thư viện “string.h” độ phức tạp giải thuật đọc liệu số hàng: O(n) Ghi liệu vào file Các liệu struct hành lưu vào file “HangNhap.txt” - Input: danh sách hàng nhập sau thực thao tác nhập, bổ sung, xóa - Output: lưu lại thay đổi vừa thự vào file “HangNhap.txt” - Cài đặ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 } - Tính độ phức tạp: Thuật tốn ghi file đơn giản ghi n dịng từ ngăn xếp vào file có độ phức tạp là: O(n) Page Hàm nhập số Để kiểm tra xem liệu nhập vào có phải số, rỗng hay không trả số - Phạm vi áp dụng đề tài: Nhập liệu từ bàn phím cho biến thành viên: ngayNhap, soLuong, donGia, - Input: Chuỗi ký tự - Output: Nếu xâu nhập: + Rỗng khơng phải số trả -1 + Là số trả số - Cài đặt: int nhapSo() { char str[20]; fflush(stdin); gets(str); if(strlen(str) == 0) return -1; //Nếu xâu nhập vào rỗng trả -1 for(int i=0;i

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

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • I. Giới thiệu

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

    • 1. Dữ liệu vào

    • 2. Dữ liệu ra

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

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

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

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

      • 3. Hàm nhập số

      • 4. Hiển thị danh sách

      • 5. Bổ sung danh sách

      • 6. Thống kê

      • 7. Sắp xếp

      • 8. Tìm kiếm

      • 9. Xóa

      • V. Kết quả chương trinh.

        • 1. Menu chính:

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

        • 3. Thêm thông tin hàng nhập

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

        • 5. Sắp sếp hàng nhập theo các tiêu chí được chọn

Tài liệu cùng người dùng

Tài liệu liên quan