MINIMARKET


Source Code Minimarket

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int choice;
int flag = 0;

struct MiniMarket{
char name[2000];
int jumlah;
long long int harga;
struct MiniMarket *next, *prev;
}*head = NULL,*tail = NULL,*curr = NULL;

void pushdepan(char name[],int jumlah,long long int harga){
curr = (MiniMarket*) malloc(sizeof(MiniMarket));
strcpy(curr->name,name);
curr->jumlah = jumlah;
curr->harga = harga;
if(head==NULL){
head = tail = curr;
}else{
curr->next = head;
head->prev = curr;
head = curr;
}
tail->next = head->prev = NULL;
}

void pushbelakang(char name[], int quantity, long long int harga){
curr = (MiniMarket*) malloc(sizeof(MiniMarket));
strcpy(curr->name,name);
curr->jumlah = jumlah;
curr->harga = harga;
if(head == NULL){
head = tail = NULL;
}else{
tail->next = curr;
curr->prev = tail;
tail = curr;
}
head->prev = tail->next = NULL;
}

void push(char name[], int jumlah, long long int harga){
curr = (MiniMarket*) malloc(sizeof(MiniMarket));
strcpy(curr->name,name);
curr->jumlah = jumlah;
curr->harga = harga;
if(head == NULL){
head = tail = curr;
}else if(strcmp(curr->name,head->name)<0){
pushdepan(name,jumlah,harga);
}else if(strcmp(curr->name,tail->name)>0){
pushbelakang(name,jumlah,harga);
}else{
struct Market *temp = head;
while(strcmp(temp->next->name,curr->name)<0){
temp = temp->next;
}
curr->next = temp->next;
temp->next->prev = curr;
temp->next = curr;
curr->prev = temp;
}
}

void popdepan(){
curr = head;
head = head->next;
free(curr);
head->prev = NULL;
}

void popbelakang(){
curr = tail;
tail = tail->prev;
free(curr);
tail->next = NULL;
}

void pop(char name[]){
if(strcmp(head->name,name) == 0){
popdepan();
}else if(strcmp(tail->name,name) == 0){
popbelakang();
}else{
struct Market *temp = head;
int x = 0;
x = strcmp(temp->next->name,name);
while(x!=0){
temp = temp->next;
}
curr = temp->next;
temp->next = curr->next;
curr->next->prev = temp;
free(curr);
}
}

void menu(){
printf("Welcome to July Market !\n");
printf("1. Add Product\n");
printf("2. Add Item to Cart\n");
printf("3. Remove Item\n");
printf("4. Pay\n");
printf("5. Exit\n");
printf("Choose >> ");
scanf("%d",&pilih);
getchar();
}


void add(){
char nama[1000];
int jumlah;
long long int price;
do{
flag = 1;
printf("Product's name : ");
scanf("%[^\n]",nama); getchar();
curr = head;
while(curr != NULL){
flag = strcmp(curr->name,nama);
curr = curr->next;
if (flag == 0){
printf("Product already exist!\n");
break;
}
}
}while(flag==0);
push(nama,jumlah,price);
printf("Item Added!..\n");
getchar();
}

void tambah(){
char nama[1000];
int kuantitas;
long long int price;
curr = head;
if(curr == NULL){
printf("Please add product first!\n");
printf("Press enter to continue");
getchar();

}else{
cart();
do{
flag = 0;
printf("Input product to edit : ");
scanf("%[^\n]",nama); getchar();
curr = head;
while(curr != NULL){
flag = strcmp(curr->name,nama);
curr = curr->next;
if(flag == 0){
break;
}
}
}while(flag!=0);
if(flag!=0) printf("Product doesn't exist!\n");
printf("Input desired quantity : ");
scanf("%d",&kuantitas); getchar();

edit(namaProduk,jumlah,price);
printf("Edit Success!\n");
getchar();
}

void hapus(){
char nama[100];
curr = head;
if(curr == NULL){
printf("Cart empty\n");
getchar();
}else{
cart();
do{
flag = 0;
printf("Input product to delete : ");
scanf("%[^\n]",nama); getchar();
curr = head;
while(curr != NULL){
flag = strcmp(curr->name,nama);
curr = curr->next;
if(flag == 0){
break;
}
}while(flag!=0);
if(flag != 0) printf("Product doesn't exist!\n");
pop(nama);
printf("Delete Success!..\n");
getchar();

}


void bayar(){
curr = head;
if(curr == NULL){
printf("Cart Empty !\n");
}else{
while(curr!=NULL){
long long int total = curr->jumlah*curr->harga
printf(" %-10s  %-5d  %-5lld ",curr->name,curr->jumlah,curr->harga);
curr = curr->next;
}
printf("\nKindness is Free\n");
printf(" Thankyou\n");
getchar();
system("cls");
}
}

int main(){
do{
menu();
if(choice== 1){
add();
}else if(choice == 2){
tambah();
 }else if(choice == 3){
hapus();
}else if(choice == 4){
edit();
 }while(choice != 5);
return 0;
}

Comments

Popular posts from this blog

LINKED LIST

Linked List Review