thien
anhhackta
c_cpp
2 years ago
3.5 kB
13
Indexable
#include <stdio.h>
#include <string.h>
#define max 100
struct item {
char name[100];
char id[100];
float price;
};
typedef struct item ITEM;
struct queue {
ITEM A[max];
int front, rear;
};
typedef struct queue QUEUE;
void Init(QUEUE &q) {
q.front = 0;
q.rear = -1;
}
int IsEmpty(QUEUE q) {
if(q.front > q.rear) {
return 1;
}
return 0;
}
int IsFull(QUEUE q) {
if(q.rear == max - 1) {
return 1;
}
return 0;
}
void search(QUEUE q, char *namesearch) {
for(int i = q.front; i <= q.rear; i++) {
if(strcmp(q.A[i].name, namesearch) == 0) {
printf("tim thay mat hang\n");
return;
}
}
printf("khong tim thay\n");
}
void add(QUEUE &q, ITEM x) {
if(IsFull(q) == 0) {
q.rear++;
q.A[q.rear] = x;
}
}
void output(QUEUE q) {
for(int i = q.front; i <= q.rear; i++) {
printf("san phan thu [%d]: \n", i+1);
printf("ten san pham: %s \n", q.A[i].name);
printf("ID san phan: %s \n", q.A[i].id);
printf("gia san pham: %.2f \n", q.A[i].price);
printf("--------------------\n");
}
}
void change(QUEUE &q) {
char changename[100];
char nameNew[100];
printf("nhap ten san pham muon sua: ");
fflush(stdin);
gets(changename);
for(int i = q.front; i <= q.rear; i++) {
if(strcmp(changename, q.A[i].name) == 0) {
printf("nhap ten san pham muon thay doi lai: ");
fflush(stdin);
gets(nameNew);
strcpy(q.A[i].name, nameNew);
return;
}
}
printf("khong tim thay san pham de thay doi\n");
}
void Input(QUEUE &q, int n) {
for(int i = 0; i < n; i++) {
printf("Moi ban nhap info hang hoa thu [%d]: \n", i+1);
ITEM x;
printf("nhap ten hang: ");
fflush(stdin);
gets(x.name);
printf("nhap id: ");
fflush(stdin);
gets(x.id);
printf("nhap gia: ");
fflush(stdin);
scanf("%f", &x.price);
add(q, x);
}
}
void bubble_sort(QUEUE &q){
ITEM swap;
for(int i = 0; i <= q.rear - 1; i++) {
for (int j = 0; j < q.rear - i; j++) {
if(q.A[j].price > q.A[j+1].price) {
swap = q.A[j];
q.A[j] = q.A[j+1];
q.A[j+1] = swap;
}
}
}
}
void menu(QUEUE &q, char namesearch[100]) {
int choose;
do
{
printf("1. Them hang hoa\n");
printf("2. Tim hang hoa\n");
printf("3. Chinh sua hang hoa\n");
printf("4. Xuat thong tin hang hoa\n");
printf("5. Sap xep\n");
printf("6. Thoat\n");
printf("NHAP VAO LUA CHON: ");
int n;
scanf("%d", &choose);
switch(choose)
{
case 1:
printf("Nhap so luong hang hoa: ");
scanf("%d", &n);
Input(q, n);
break;
case 2:
printf("nhap ten hang hoa muon tim: ");
fflush(stdin);
gets(namesearch);
search(q, namesearch);
break;
case 3:
change(q);
break;
case 4:
output(q);
break;
case 5: bubble_sort(q);output(q);break;
case 6: printf("exit");break;
}
} while (choose != 5);
}
int main() {
QUEUE q;
char namesearch[100];
Init(q);
menu(q, namesearch);
}Editor is loading...
Leave a Comment