Xây dựng chương trình quản lý hàng hóa gồm có các thuộc tính - Pdf 18

Lời Mở Đầu
Trong khoa học máy tính, cấu trúc dữ liệu là cách lưu dữ liệu trong máy
tính sao cho nó có thể sử dụng được một cách hiệu quả. Cấu trúc dữ liệu được
triển khai bằng các kiểu dữ liệu, các tham chiếu và các phép toán trên đó được
cung cấp bởi một ngôn ngữ lập trình.
Để giải quyết bài toán ta có thế nhiều thuật toán khác nhau, giải thuật ra
đời. giải thuật là các câu lệnh chặt chẽ, rõ rang xác định một trình tự các thao
tác trên một đối tượng nào đó.
Khi đã xác định được cấu trúc dữ liệu thích hợ, người lập trình sẽ bắt đầu
tiến hành xây dựng giải thuật tương ứng theo yêu cầu của đề bài đặt ra trên cơ
sở của cấu trúc dữ liệu đã được chọn. để giải quyết một vấn đề có thể có nhiều
phương pháp do vậy sự lựa chọn phương pháp phù hợp là rất quan trọng.
Giải thuật phản ánh các phép xử lý còn đối tượng xử lý của giải thuật lại
là dữ liệu, chính dữ liệu chứa đựng các thông tin để giải thuật. để xác định được
giải thuật phù hợp cần thiết phải biết nó tác động đến loại dữ liệu nào. Như vậy,
giải thuật và cấu trúc dữ liệu có mối quan hệ mật thiết với nhau được thể hiện
qua công thức:
Như vậy, khi đã có cấu trúc dữ liệu mà chưa tìm ra giải thuật thì không
thể có chương trình và ngược lại không thể có thuật giải khi chưa có cấu trúc
dữ liệu. một chương trình máy tính chỉ có thể được hoàn thiện khi có đầy đủ cả
cấu trúc dữ liệu để lưu trữ dữ liệu và giải thuật để xử lý dữ liệu theo yêu cầu
bài toán đặt ra.
Chúng em cám ơn thầy Trương Công Đoàn đã giúp chúng em hoàn thiện
bài tập, tìm hiểu và hiểu biết hơn về bộ môn này.
1 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u
Cấu trúc dữ liệu + Giải thuật = Chương trình
MENU CHÍNH
VÀO CHƯƠNG TRÌNH
THOÁT
NHẬP DANH SÁCH HHTÌM KIẾM SẢN PHẨMSẮP XẾP HH THEO ĐƠN GIÁ
THỐNG KÊ SẢN PHẨM THEO ĐƠN GIÁ

- Yêu cầu: Chương trình bao gồm các menu gì?
BANG MENU CHUC NANG

1.Nhap danh sach hang hoa.
2.Tim san pham trong danh sach.
3.Sap xep hang hoa theo don gia.
4.Thong ke san pham theo don gia
5.Cho phep tim ten hang gan dung.
De thoat chuong trinh xin moi nhap 0:
II. PHÂN TÍCH CHƯƠNG TRÌNH
1.Các thư viện cần khai báo
<stdio.h> : Thư viện chứa các hàm vào/ ra chuẩn (standard input/output).
Gồm các hàm printf(), scanf(), getc(), putc(), gets(), puts(), fflush(),
fopen(), fclose(), fread(), fwrite(), getchar(), putchar(), getw(), putw()…
- Khai báo : #include <stdio.h>
3 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u
<conio.h> : Thư viện chứa các hàm vào ra trong chế độ DOS (DOS
console). Gồm các hàm clrscr(), getch(), getche(), getpass(), cgets(),
cputs(), putch(), clreol(),…
- Khai báo : #include <conio.h>
<string.h>: Để điều chỉnh nhiều loại dãy kí tự.
- Khai báo : #include <string.h>
<stdlib.h> : Dùng để xúc tiến nhiều phép toán, bao gồm sự chuyển đổi,
các số giả ngầu nhiên, cấp phát vùng nhớ, kiểm soát quá trình, môi
trường, tín hiệu, tìm kiếm, và xếp thứ tự
- Khai báo : #include <stdlib.h>
2.Khai báo mảng cấu trúc sử dụng trong chương trình.
Khai báo kiểu cấu trúc là struct với tên cấu trúc là QL
struct QL
Cấu trúc thông tin hàng hóa:

Ngược lại lặp lại bước 2.
- Cài đặt : code của hàm.
void BubbleSort(QL a[],int n)
{
int i,j;
QL tg;
for(i=0;i<n-1;i++)
for(j=n-1;j>i;j )
if(a[j].dongia<a[i].dongia)
{
tg=a[j];
a[j]=a[j-1];
a[j-1]=tg;
}
}
- Ví dụ minh họa tương ứng :
4.Các giải thuật về tìm kiếm.
Yêu cầu: Trình bày thuật toán tìm kiếm được sử dụng để cài đặt trong bài
(nếu có). Thuật toán gồm có: ý tưởng, các bước, cài đặt, ví dụ minh họa
tương ứng
Sử dụng thuật toán tìm kiếm tuần tự để tìm kiếm sản phẩm cần tìm theo
tên của sản phẩm.
5 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u
- Ý tưởng : Dùng thuật toán tìm kiếm để tìm kiếm một phần tử cho
trước trong một danh sách bằng cách duyệt lần lượt từng phần tử của
danh sách đó cho đến lúc tìm thấy giá trị mong muốn hay đã duyêt qua
toàn bộ danh sách.
- Các bước thực hiện:
Bước 1: Cần phải tạo một mảng kiểu kí tự để lưu trữ thông tin Tên
sản phẩm cần tìm do người dùng nhập vào sau đó tạo lên yêu cầu

6 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u
- Kết quả minh họa :
5.Hàm nhập xuất dữ liệu
a) Nhập dữ liệu:
Để lưu các thông tin của nhiều sản phẩm cần phải sử dụng một mảng một
chiều kiểu dữ liệu là cấu trúc quản lý sản phẩm.Và yêu cầu từ người dùng
khai báo số phần tử cần thêm vào
void nhapds(QL a[],int &n)
{
printf("\nNHAP SO LUONG SAN PHAM : ");
fflush(stdin);
scanf("%d",&n);
for(int i=0; i<n; i++)
{
printf("\nNhap thong tin san pham thu: %d \n",i+1);
nhapsp(a[i]);
}
}
7 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u
Sau đó sử dụng vòng lặp “for(int i=0; i<n; i++)” để thực hiện n bước
nhập cho n phần tử
Bước nhập phần tử gồm: tên hàng hóa, số lượng, đơn giá, ngày sản xuất
được thực hiện theo hàm sau:
void nhapsp(QL &p)
{
printf(" +) Nhap ten san pham : ");
fflush(stdin); gets(p.tensp);
printf(" +) Nhap so luong : ");
fflush(stdin);scanf("%d",&p.soluong);
printf("\n +) Nhap don gia : ");

6. Các hàm khác.
a. Ghi danh sách mặt hàng vào tệp
void ghitep (QL a[], int &n)
{
FILE *f;
f=fopen("danh sach san pham.txt","w+b");
if(f==NULL)
{
printf("Loi mo tep !");
getch();
return;
}
for(int i=0;i<n;i++)
fwrite(&a[i],sizeof(a[i]),1,f);
fclose(f);
}
b. Đọc danh sách mặt hàng từ tệp
void doctep (QL a[], int &n)
{
FILE *f;
f=fopen("danh sach san pham.txt","r+b");
if(f==NULL)
{
printf("Loi mo tep!");
getch();
return;
}
int i=0;
while(fread(&a[i],sizeof(a[i]),1,f)!=0)
i++;

{
for(int j=0;j<n;j++)
{
if(a[j].dongia==a[i].dongia&&a[j].dongia!=0)
{
xuatsp(a[j],k);
printf("\n");
x=1;
}
}
if(x==1)
printf("\n \n");
x=0;
for(int j=i+1;j<n;j++)
if(a[j].dongia==a[i].dongia)
a[j].dongia=0;
}
}
-Hình ảnh minh họa.
e. Xây dựng chức năng tìm kiếm gần đúng theo tên hàng
• Code chương trình
void timgandung(QL a[],int n,int k)
{
char s2[20];
k=0;
12 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u
printf("\nNhap ten gan dung cua san pham can tim: ");
fflush(stdin); gets(s2);
system("cls");
printf("thong tin cac san pham can tim la : \n");

int chon;
do
14 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u
{
system("cls");
menu();
scanf("%d",&chon);
if(chon>=0&&chon<=5)
switch(chon)
{
case 0: exit(1);
case 1:
system("cls");
printf("\n1. Nhap danh sach san pham.");
nhapds(ds,n);
ghitep(ds,n);
system("cls");
printf("\n");
printf("\n Danh sach san pham:\n.");
doctep(ds,n);
xuatds(ds,n,k);
printf("\nNhap phim bat ki de tro ve menu chinh :");
getch();
break;
case 2:
system("cls");
printf("\n2. Tim san pham trong danh sach.\n");
doctep(ds,n);
Search(ds,n,k);
printf("\n\nNhap phim bat ki de tro ve menu chinh :");

break;
default:printf("\nBan nhap khong hop le, xin moi nhap lai:");
printf("\nNhap phim bat ki de tro ve menu chinh :");
getch();
break;
}
else
{
printf("\nBan da nhap sai, chuong trinh se thoat:");
exit(1);
}
}
while(chon!=0);
getch();
}
16 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u
Contents
17 | P a g e B á o C á o B T L M ô n C ấ u t r ú c & g i ả i t h u ậ t d ữ l i ệ u


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status