You are on page 1of 14

#include <stdio.

h>
#include <stdlib.h>
#include<string.h>
#include <stdbool.h>
int orderSize = 40;
int idx = 0, i;

void clearStream(FILE *in) {


int ch;
clearerr(in);
do
ch = getc(in);
while (ch != '\n' && ch != EOF);
};
typedef struct {

char pilihan;
char namaMinuman[20];
char sizeMinuman[10];
char penyajian[10];
int harga,a;
}Minuman;

void readData(Minuman *minuman, int *Index){


FILE *dataMinumanPtr;
char db[2320];
char c;
dataMinumanPtr = fopen("./dataminuman.txt", "r+");
while (fscanf(dataMinumanPtr,"%[^#]#%[^#]#%[^#]#%d\
n",minuman[*Index].namaMinuman,minuman[*Index].sizeMinuman,minuman[*Index].pen
yajian,&minuman[*Index].harga)!=EOF){
*Index = *Index + 1;
}
fclose(dataMinumanPtr);

if(dataMinumanPtr == NULL){
printf("Error while opening dataminuman.txt oi");
exit(1);
};
while((c = fgetc(dataMinumanPtr)) != EOF){
//dummy data;
putchar(c);
};
};

void saveData(Minuman minuman[], int Index){


FILE *dataMinumanPtr = fopen("dataminuman.txt","w");
int i;
for(i=0; i<=Index; i++){
fprintf(dataMinumanPtr,"%s#%s#%s#%d\
n",minuman[i].namaMinuman,minuman[i].sizeMinuman,minuman[i].penyajian,
minuman[i].harga);
}
fclose(dataMinumanPtr);
}

int nomorSatu(Minuman *minuman, int *Index){


clearStream(stdin);
char pilihan;
char namaMinuman[20];
char sizeMinuman[10];
char penyajian[10];
int harga,a;
bool done = false;

printf("Silahkan memasukan nama minuman \nKopi atau Teh atau Coklat atau
Soda (Case Sensitive) \n");
if(fgets(namaMinuman, sizeof(namaMinuman), stdin) != NULL){
namaMinuman[strcspn(namaMinuman, "\n")] = 0;
if( strcmp(namaMinuman, "Kopi") == 0 ||
strcmp(namaMinuman, "Teh") == 0 ||
strcmp(namaMinuman, "Coklat") == 0 ||
strcmp(namaMinuman, "Soda") == 0
){
printf("Minuman : %s \n", namaMinuman);
printf("Silahkan memasukan ukuran minuman \nSmall atau Medium atau
Largest (Case Sensitive) \n");
if(fgets(sizeMinuman, sizeof(sizeMinuman), stdin) != NULL){
sizeMinuman[strcspn(sizeMinuman, "\n")] = 0;
if( strcmp(sizeMinuman, "Small") == 0 ||
strcmp(sizeMinuman, "Medium") == 0 ||
strcmp(sizeMinuman, "Largest") == 0
){
printf("Ukuran : %s \n", sizeMinuman);
printf("Silahkan memasukan penyajian minuman \nDingin
atau Panas atau Hangat (Case Sensitive) \n");
if(fgets(penyajian, sizeof(penyajian), stdin) != NULL)
{
penyajian[strcspn(penyajian, "\n")] = 0;
if( strcmp(penyajian, "Dingin") == 0 ||
strcmp(penyajian, "Panas") == 0 ||
strcmp(penyajian, "Hangat") == 0
){
printf("Penyajian : %s \n", penyajian);
harga = strlen(sizeMinuman) *
strlen(namaMinuman) * strlen(penyajian) * 100;
printf("Berikut total order Saudara : %d \n",
harga);
printf("\n\n\nDetail Minuman\n");
printf("\nNama Minuman : %s", namaMinuman);
printf("\nSize : %s", sizeMinuman);
printf("\nPenyajian : %s", penyajian);
printf("\nHarga : %d", harga);
printf("Apakah anda yaking dengan orderan ?
(y/n) \n");
if(scanf("%s", &pilihan) == 1){
if(strcmp(&pilihan, "y") == 0){
FILE* dataMinumanPtr =
fopen("./dataminuman.txt", "a");
if(dataMinumanPtr == NULL){
printf("Error While Opening File");
exit(1);
};
fprintf(dataMinumanPtr, "%s\n%s\n%s\n%d\
n",namaMinuman, sizeMinuman, penyajian, harga);
fclose(dataMinumanPtr);
printf("Minuman berhasil diinput \n");
printf("Pilih menu 1-4 Kembali \n");
//Rekam Order
} else {
fprintf(stdout,"Orderan Batal \nPilih Menu
1-4 Kembali \n");
return 0;
};
} else {
fprintf(stdout,"Data yang dimasukan salah \
nPilih Menu 1-4 Kembali \n");
clearStream(stdin);
fflush(stdout);
};
} else {
fprintf(stdout,"Data yang dimasukan salah \nPilih
Menu 1-4 Kembali \n");
clearStream(stdin);
fflush(stdout);
};
} else {
fprintf(stdout,"Data yang dimasukan salah \nPilih Menu 1-4
Kembali \n");
clearStream(stdin);
fflush(stdout);
};
} else {
clearStream(stdin);
fflush(stdout);
fprintf(stdout,"Data yang dimasukan salah \n Pilih Menu 1-4
Kembali \n");
}
} else {
fprintf(stdout,"Data yang dimasukan salah \n Pilih Menu 1-4 Kembali
\n");
fflush(stdout);
};
} else {
fprintf(stdout,"Data yang dimasukan salah \n Pilih Menu 1-4 Kembali \
n");
fflush(stdout);
};
} else {
fprintf(stdout,"Data yang dimasukan salah \n Pilih Menu 1-4 Kembali \n");
fflush(stdout);
};

strcpy(minuman[*Index].namaMinuman, namaMinuman);
strcpy(minuman[*Index].sizeMinuman, sizeMinuman);
strcpy(minuman[*Index].penyajian, penyajian);
minuman[*Index].harga = harga;

readData(minuman, Index);
*Index = *Index + 1;
return 0;
}

void viewHistory(Minuman minuman[], int Index){


int i;
printf("No\t Nama Pesanan\t Size\t Penyajian\t Harga");

for(i=0; i < Index; i++)


{
printf("\n%d\t %s\t %s\t %s\t %d", i+1, minuman[i].namaMinuman,
minuman[i].sizeMinuman,minuman[i].penyajian, minuman[i].harga);
}
printf("\n\nPress Any Key to Continue\n");

int main(void)
{
Minuman minuman[100];
int menu, index, Index = 0;
int pilihan;
bool done = false;
printf("Pilih menu--- \n");
printf("1.Input Data \n2.View History \n3.Delete History \n4.Exit \n");
while(!done){
//Validasi data
if(scanf("%d", &pilihan) == 1 && (pilihan >= 1 && pilihan <= 4)){
if(pilihan == 1){
//Aldo
nomorSatu(minuman, &Index);
} else if(pilihan == 2){
//Tinggal rapiin data guys kasih output Nama Minuman: blabla
viewHistory(minuman, Index);
printf("\n Pilih Menu 1-4 Kembali \n");
} else if(pilihan == 3){

done = true;
} else if(pilihan == 4){
done = true;
};
} else {
printf("pilih 1-4 aja");
clearStream(stdin);
fflush(stdout);
};
};
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char nama[30];
char size[30];
char penyajian[30];
float harga;
}Minuman;
void readFile(Minuman *minuman, int *currentIndex){
FILE *f = fopen("dataminuman.txt","r");
while (fscanf(f,"%[^#]#%[^#]#%[^#]#%f\
n",minuman[*currentIndex].nama,
minuman[*currentIndex].size, minuman[*currentIndex].penyajian,
&minuman[*currentIndex].harga)!=EOF){
*currentIndex = *currentIndex + 1;
}
fclose(f);
}
void saveFile(Minuman minuman[], int currentIndex){
FILE *f = fopen("dataminuman.txt","w");
COMP6599 – Algorithm and Programming
int i;
for(i=0; i<=currentIndex; i++){
fprintf(f,"%s#%s#%s#%f\n",minuman[i].nama, minuman[i].size,
minuman[i].penyajian, minuman[i].harga);
}
fclose(f);
}
int inputDataMinuman(Minuman *minuman, int *currentIndex){
system("cls");
int i;
char nama[30];
char size[30];
char penyajian[30];
float harga;
char choose;
printf("Input Data Minuman\n\n");
while(1) {
printf("\nNama Minuman (kopi/teh/coklat/soda) : ");
scanf("%s", &nama);
if(strcmp(strlwr(nama), "kopi") == 0 || strcmp(strlwr(nama), "teh") ==
0 ||
strcmp(strlwr(nama), "coklat") == 0 || strcmp(strlwr(nama), "soda")
== 0){
break;
} else {
COMP6599 – Algorithm and Programming
printf("\nTolong masukkan pilihan minuman sesuai yang tesedia.");
}
}
while(1) {
printf("\nSize Minuman (small/medium/largest) : ");
scanf("%s", &size);
if(strcmp(strlwr(size), "small") == 0 || strcmp(strlwr(size), "medium")
== 0 ||
strcmp(strlwr(size), "largest") == 0){
break;
} else {
printf("\nTolong masukkan pilihan ukuran sesuai yang tesedia.");
}
}
while(1) {
printf("\nPenyajian Minuman (dingin/panas/hangat) : ");
scanf("%s", &penyajian);
if(strcmp(strlwr(penyajian), "dingin") == 0 || strcmp(strlwr(penyajian),
"panas") == 0 || strcmp(strlwr(penyajian), "hangat") == 0){
break;
} else {
printf("\nTolong masukkan pilihan penyajian sesuai yang tesedia.");
}
}

harga = strlen(nama) * strlen(size) * strlen(penyajian) * 100;


printf("\n\n\nDetail Minuman\n");
printf("\nNama Minuman : %s", nama);
printf("\nSize : %s", size);
printf("\nPenyajian : %s", penyajian);
printf("\nHarga : %.2f", harga);
while(1) {
printf("\nAnda ingin menyimpan data ini? (y/n) : ");
scanf(" %c", &choose);
if(choose == 'n'){
return 0;
} else if(choose == 'y'){
break;
} else {
printf("\n Tolong masukkan pilihan antara y/n.");
}
}
strcpy(minuman[*currentIndex].nama, nama);
strcpy(minuman[*currentIndex].size, size);
strcpy(minuman[*currentIndex].penyajian, penyajian);
minuman[*currentIndex].harga = harga;
printf("\nNama Minuman : %s", minuman[*currentIndex].nama);
COMP6599 – Algorithm and Programming
saveFile(minuman, *currentIndex);
*currentIndex = *currentIndex + 1;
return 0;
}
void viewHistory(Minuman minuman[], int currentIndex){
int i;
printf("No\t Nama Pesanan\t Size\t Penyajian\t Harga");
for(i=0; i < currentIndex; i++) {
printf("\n%d\t %s\t %s\t %s\t %.2f", i+1, minuman[i].nama,
minuman[i].size,
minuman[i].penyajian, minuman[i].harga);
}
printf("\n\nPress Any Key to Continue\n");
getch();
}
void deleteHistory(Minuman *minuman, int *currentIndex, int index){
int i;
*currentIndex = *currentIndex - 1;
for(i=index-1; i < *currentIndex; i++) {
strcpy(minuman[i].nama, minuman[i+1].nama);
strcpy(minuman[i].size, minuman[i+1].size);
strcpy(minuman[i].penyajian, minuman[i+1].penyajian);
minuman[i].harga = minuman[i+1].harga;
}
saveFile(minuman, *currentIndex - 1);
printf("Data Successfully delete!");
getch();
}
int main() {
Minuman minuman[100];
int menu, index, currentIndex = 0;
readFile(&minuman, &currentIndex);
do{
system("cls");
printf("Toko Minuman Binusian\n");
printf("======================\n\n\n");
printf("1. Input Data\n");
printf("2. View History\n");
printf("3. Delete History\n");
printf("4. Exit\n\n\n");
printf("Pilih : ");
scanf("%d", &menu);
switch(menu){
case 1:

inputDataMinuman(&minuman, &currentIndex);
break;
case 2:
viewHistory(minuman, currentIndex);
break;
case 3:
printf("Index/No Minuman yang Ingin dihapus : ");
scanf("%d", &index);
if (index > currentIndex){
printf("\n\nIndex yang dimasukkan diluar range!
Current index : %d", currentIndex);
getch();
} else {
deleteHistory(&minuman, &currentIndex, index);
}
break;
case 4:
break;
}
}while(menu!=4);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <stdbool.h>
int orderSize = 40;
int idx = 0;

void clearStream(FILE *in) {


int ch;
clearerr(in);
do
ch = getc(in);
while (ch != '\n' && ch != EOF);
};

void readData(){
FILE *dataMinumanPtr;
FILE *dataMinumanPtr2;
char db[2320];
char c;
char c2;
int count = 0;
dataMinumanPtr = fopen("./dataminuman.txt", "r+");
dataMinumanPtr2 = fopen("./dataminuman.txt", "r+");
if(dataMinumanPtr == NULL){
printf("Error while opening dataminuman.txt oi");
exit(1);
};
for (c2 = getc(dataMinumanPtr2); c2 != EOF;
c2 = getc(dataMinumanPtr2))
if (c2 == '\n')
count = count + 1;

char data[4][30] = {"Minuman", "Size", "Penyajian", "Harga"};


int counter = 0;
for(int i = 0; i < count; i++){
printf("%s : ",data[counter]);
counter++;
if(counter==4){
counter=0;
}
while((c = (getc(dataMinumanPtr))) != EOF){
printf("%c", c);

if(c=='\n'){
break;
}
};
}
printf("\n");
}

int nomorSatu(){
clearStream(stdin);
char pilihan;
char namaMinuman[20];
char sizeMinuman[10];
char penyajian[10];
int harga;
bool done = false;

printf("Silahkan memasukan nama minuman \nKopi atau Teh atau Coklat atau
Soda (Case Sensitive) \n");
if(fgets(namaMinuman, sizeof(namaMinuman), stdin) != NULL){
namaMinuman[strcspn(namaMinuman, "\n")] = 0;
if( strcmp(namaMinuman, "Kopi") == 0 ||
strcmp(namaMinuman, "Teh") == 0 ||
strcmp(namaMinuman, "Coklat") == 0 ||
strcmp(namaMinuman, "Soda") == 0
){
printf("Minuman : %s \n", namaMinuman);
printf("Silahkan memasukan ukuran minuman \nSmall atau Medium atau
Largest (Case Sensitive) \n");
if(fgets(sizeMinuman, sizeof(sizeMinuman), stdin) != NULL){
sizeMinuman[strcspn(sizeMinuman, "\n")] = 0;
if( strcmp(sizeMinuman, "Small") == 0 ||
strcmp(sizeMinuman, "Medium") == 0 ||
strcmp(sizeMinuman, "Largest") == 0
){
printf("Ukuran : %s \n", sizeMinuman);
printf("Silahkan memasukan penyajian minuman \nDingin
atau Panas atau Hangat (Case Sensitive) \n");
if(fgets(penyajian, sizeof(penyajian), stdin) != NULL)
{
penyajian[strcspn(penyajian, "\n")] = 0;
if( strcmp(penyajian, "Dingin") == 0 ||
strcmp(penyajian, "Panas") == 0 ||
strcmp(penyajian, "Hangat") == 0
){
printf("Penyajian : %s \n", penyajian);
harga = strlen(sizeMinuman) *
strlen(namaMinuman) * strlen(penyajian) * 100;
printf("Berikut total order Saudara : %d \n",
harga);
printf("Apakah anda yaking dengan orderan ?
(y/n) \n");
if(scanf("%s", &pilihan) == 1){
if(strcmp(&pilihan, "y") == 0){
FILE* dataMinumanPtr =
fopen("./dataminuman.txt", "a");
if(dataMinumanPtr == NULL){
printf("Error While Opening File");
exit(1);
};
fprintf(dataMinumanPtr, "%s\n%s\n%s\n%d\
n",namaMinuman, sizeMinuman, penyajian, harga);
fclose(dataMinumanPtr);
printf("Minuman berhasil diinput \n");
printf("Pilih menu 1-4 Kembali \n");
//Rekam Order
} else {
fprintf(stdout,"Orderan Batal \nPilih Menu
1-4 Kembali \n");
return 0;
};
} else {
fprintf(stdout,"Data yang dimasukan salah \
nPilih Menu 1-4 Kembali \n");
clearStream(stdin);
fflush(stdout);
};
} else {
fprintf(stdout,"Data yang dimasukan salah \nPilih
Menu 1-4 Kembali \n");
clearStream(stdin);
fflush(stdout);
};
} else {
fprintf(stdout,"Data yang dimasukan salah \nPilih Menu 1-4
Kembali \n");
clearStream(stdin);
fflush(stdout);
};
} else {
clearStream(stdin);
fflush(stdout);
fprintf(stdout,"Data yang dimasukan salah \n Pilih Menu 1-4
Kembali \n");
}
} else {
fprintf(stdout,"Data yang dimasukan salah \n Pilih Menu 1-4 Kembali
\n");
fflush(stdout);
};
} else {
fprintf(stdout,"Data yang dimasukan salah \n Pilih Menu 1-4 Kembali \
n");
fflush(stdout);
};
} else {
fprintf(stdout,"Data yang dimasukan salah \n Pilih Menu 1-4 Kembali \n");
fflush(stdout);
};
};

int main(void) {
int pilihan;
bool done = false;
printf("Pilih menu--- \n");
printf("1.Input Data \n2.View History \n3.Delete History \n4.Exit \n");
while(!done){
//Validasi data
if(scanf("%d", &pilihan) == 1 && (pilihan >= 1 && pilihan <= 4)){
if(pilihan == 1){
//Aldo
nomorSatu();
} else if(pilihan == 2){
//Tinggal rapiin data guys kasih output Nama Minuman: blabla
readData();
printf("Pilih Menu 1-4 Kembali \n");
} else if(pilihan == 3){

done = true;
} else if(pilihan == 4){
done = true;
};
} else {
printf("pilih 1-4 aja");
clearStream(stdin);
fflush(stdout);
};
};
return 0;
}

You might also like