Tải bản đầy đủ
Tìm kiếm và hiển thị hàng nhận

Tìm kiếm và hiển thị hàng nhận

Tải bản đầy đủ

7. Xóa hàng nhập:

Page 25

Nhập các thông tin cần xóa, chương trình sẽ xóa tất cả các mẫu tin thỏa tất
cả các điều kiện. Thông tin nào không cần xét thì để trống.

Page 26

VI. Kết Luận:
Đồ á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 trong
quá 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.

Page 27

Phụ Lục:
Source Code:

#include
#include
#include
#include
#include
#include
#include
#define MAXLIST 100
#define maxChar 30
#define item_1 4
#define item_2 3
#define DOWN 80
#define UP 72
#define LEFT 75
#define RIGHT 77
#define ENTER 13
#define ESC 27
#define BS 8
#define TAB 9
#define DEL 83
#define INS 82
#define SP 32
#define END 79
#define PgUP 73
#define PgDOWN 81
#define soitem1 7
using namespace std;

Page 28

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{
MaHang maHang;
Ten ten;
DonVi donVi;
Ngay ngayNhap;
SoLuong soLuong;
DonGia donGia;
ThanhTien thanhTien;
} HN;

void chayChu();
int nhapSo();
int showGUI(HN A[],int n);
void thongBaoSave();
void thongBaoKhongLoadFile();
void showLineCloseThongKe(int line);
bool out();
void prameShowTimKiem();
void thongBaoDuLieuKhongTonTai();
bool thongBaoTang_Giam();

Page 29

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

DON VI

" };

", "

NGAY NHAP

char menuSapXep_2[3][50] = { "
THANH TIEN

SO LUONG

", "

TEN HANG

", "

DON GIA

", "
", "

" };

char menuTieuChi[7][18] = {" MA HANG
NGAY NHAP "," SO LUONG "," DON GIA

"," TEN HANG "," DON VI
"," THANH TIEN "};

void gotoxy(int x, int y){
HANDLE hConsoleOutput;
COORD Cursor_an_Pos = { x, y };
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput, Cursor_an_Pos);
}
int wherex(void){
HANDLE hConsoleOutput;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);
return screen_buffer_info.dwCursorPosition.X;
}
int wherey(void){
HANDLE hConsoleOutput;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);
Page 30

","

return screen_buffer_info.dwCursorPosition.Y;
}
void SetColor(WORD color){
HANDLE hConsoleOutput;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);
WORD wAttributes = screen_buffer_info.wAttributes;
color &= 0x000f;
wAttributes &= 0xfff0;
wAttributes |= color;
SetConsoleTextAttribute(hConsoleOutput, wAttributes);
}
void SetBGColor(WORD color){
HANDLE hConsoleOutput;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);
WORD wAttributes = screen_buffer_info.wAttributes;
color &= 0x000f;
color <<= 4;
wAttributes &= 0xff0f;
wAttributes |= color;
SetConsoleTextAttribute(hConsoleOutput, wAttributes);
}
void setColor(int maunen, int mauchu){
SetBGColor(maunen);
SetColor(mauchu);
}
/* void write(HN A[], int n): ghi du lieu trong cau truc vao file
Page 31

* 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

}
/* void read(HN A[], int &n): Doc file
* Input: File txt
* Output: Du lieu trong file luu vao mang cau truc A
*/
void read(HN A[], int &n){
char strHang[150];
int i = 0;
FILE *f = fopen("HangNhap.txt", "r");
fgets(strHang, 100, f);
while (!feof(f))

{

fgets(strHang, 100, f);
strcpy(A[i].maHang, strtok(strHang, " "));
strcpy(A[i].ten, strtok(NULL, " "));
strcpy(A[i].donVi, strtok(NULL, " "));
Page 32

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);
n = i;
}
bool thongBaoTang_Giam(){
setColor(11,6);
for(int i=0;i<=19;i++)
for(int j=0;j<=6;j++)

{

gotoxy(31+i,9+j);
if(i==0||j==0||i==19||j==6) printf("%c",177);
else printf(" ");
}
gotoxy(34,11); printf(" SAP XEP ");
setColor(11,12);
gotoxy(36,13); printf("TANG");
setColor(11,6);
gotoxy(43,13); printf("GIAM");
char c;
int sttTang = true;
while(1){
c = getch();
if(c == ENTER) return sttTang;
switch(c)
{
Page 33

case LEFT:
{
if(sttTang)

{

setColor(11,6);
gotoxy(36,13); printf("TANG");
setColor(11,12);
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;
}
case RIGHT:
{
if(sttTang)

{

setColor(11,6);
gotoxy(36,13); printf("TANG");
setColor(11,12);
gotoxy(43,13); printf("GIAM");
sttTang = false;
}
else {
setColor(11,12);
gotoxy(36,13); printf("TANG");
setColor(11,6);
Page 34

gotoxy(43,13); printf("GIAM");
sttTang = true;
}
break;
}
}
}
gotoxy(0,20);
}
// lay ma hang
// input: ma hang vd: mh056
// output: gia tri cua ma hang int: 56
int layMaHang(char *str)
{
char *temp = new char[strlen(str)-1];
int j = 0;
for(int i = 2;i
{

temp[j++] = str[i];
}
temp[j] = '\0';
return atoi(temp);
}
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];
Page 35