Я не могу найти, в чем проблема? Попробуйте выполнить это во второй раз, не завершая программу
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <process.h> #include <time.h> int array[10]={0,0,0,0,0,0,0,0,0,0,}; int flag=0; int flagg=0; int order(), billing(), receipt(), face(), edit(), product(), addnew(), delete(); int quanty, total, money, sum=0; int change, again, mag; int buff, prices, c, balik; char pagkain[99]; int food; int main(){ system("cls"); face(); return 0; } int order(){ int pricing, scale; char oorder[30]; int i; system("cls"); FILE *fp; fp = fopen("Products.txt", "r"); if(fp){ printf("\t\t\t ******Food Express******\n\n"); printf("\t\t\t\t*****Menu*****\n\n"); printf("\t\t\t Product Price\n\n"); while(fp){ fscanf(fp, "%d %s %d", &scale, oorder, &pricing); if(feof(fp)){ break; } printf("\t\t\t[%d][%s] [$%d]\n", scale, oorder, pricing); } fclose(fp); fp = fopen("Products.txt", "r"); printf("\t\t\t Number of product : "); scanf("%d", &food); while(fp){ fscanf(fp, "%d %s %d", &scale, oorder, &pricing); if(food==scale){ flagg=1; break; } if(feof(fp)){ break; } } fclose(fp); if(flagg==1){ printf("\t\t\t Quantity : "); scanf("%d", &quanty); total=quanty*pricing; flagg=0; printf("\t\t\tTotal Amount $%d\n",total); fp = fopen("cart.txt", "a"); fprintf(fp,"%s %d %d \n", oorder, quanty, total); fclose(fp); while(flagg==0){ printf("\t[1] If you want to Order again / [2] To proceed on billing : "); scanf("%d", &balik); printf("\n\n"); if(balik==1){ flagg=1; order(); }else if(balik==2){ flagg=1; billing(); }else{ printf("\t\t\tInvalid Selection"); getch(); } } }else{ printf("\t\t\tInvalid Selection"); getch(); system("cls"); order(); } }else{ printf("\n\n\n\n "); printf("\t\t\t *****No Item has been added***** \n\n"); getch(); system("cls"); main(); } } int billing(){ FILE *fp; fp = fopen("cart.txt", "r"); for (int i=0; i<10; i++){ fscanf(fp, "%s %d %d,", pagkain, &buff, &array[i]); sum+=array[i]; if(feof(fp)){ break; } } fclose(fp); while(sum>money){ printf("\t\t\tTotal Amount : %d\n", sum); printf("\t\t\tEnter Money : "); scanf("%d", &money); if(sum>money){ printf("Insufficient Money\n"); }else{ change = money-sum; receipt(); } } } int receipt(){ system("cls"); time_t t = time(NULL); struct tm tm = *localtime(&t); int taon=tm.tm_year + 1900; int buwan=tm.tm_mon + 1; int araw= tm.tm_mday; int year, mot, day, kita, lahat; FILE *fp; fp = fopen("cart.txt", "r"); printf("\t\t\t *****Food Express*****\n"); printf("\t\t\t *****Official Receipt*****\n"); printf("\t\t\t ****%d-%d-%d****\n", taon, buwan, araw); printf("\t\t\t****************************\n\n"); while(fp){ fscanf(fp, "%s %d %d \n", pagkain, &buff, &prices); printf("\t\t\t %s %dpiece(s) $%d \n",pagkain, buff, prices); if(feof(fp)){ break; } } fclose(fp); printf("\t\t\t Total : $%d \n",sum); printf("\t\t\t Money : $%d \n",money); printf("\t\t\t Change : $%d \n\n", change); printf("\t\t\t***************************\n"); printf("\t\t\t *****Have A Good Day*****\n"); printf("\t\t\t *****Come Back Again*****\n"); printf("\t\t\t *****Thank You*****\n\n"); for(size_t i = 0; i < sizeof array; ++i){ array[i] = 0; } /* fp = fopen("sales.txt", "a+"); if(fp){ while(fp){ fscanf(fp, "%d %d %d %d\n", &year, &mot, &day, &kita); lahat=sum+kita; fprintf(fp, "%d %d %d %d\n", taon, buwan, araw, lahat); if(feof(fp)){ break; } } }else{ fprintf(fp, "%d %d %d %d\n", taon, buwan, araw, sum); } fclose(fp);*/ remove("cart.txt"); getch(); system("cls"); printf("\t\t\t Press Any Key To Continue \n\n"); getch(); main(); } int face(){ char wish; system("cls"); printf("\t\t\t ******Food Express******\n\n"); printf("\n\t\t\t *****Main Menu*****\n\n"); printf("\n\t\t\t What Do You Wish To Do?\n\n"); printf("\n\t\t\t [1] Order \n"); printf("\n\t\t\t [2] Edit Menu \n"); printf("\n\t\t\t [3] Check Sales \n"); printf("Your Action : "); wish=getch(); printf("\n\n"); switch(wish){ case '1' : order(); break; case '2' : edit(); break; case '3' : product(); break; default : printf("\t\t\t ******Have A Good Day******\n\n"); break; } } int edit(){ char a; system("cls"); printf("\t\t\t ******Food Express******\n\n"); printf("\t\t\t ******Edit Section******\n\n"); printf("\n\t\t\t [1] Add Item In Menu \n"); printf("\n\t\t\t [2] Edit Items\n"); printf("Your Action : "); a=getch(); switch(a){ case '1' : addnew(); break; case '2' : delete(); break; default : printf("\n\t\t\t Invalid Selection\n"); getch(); system("cls"); face(); } } int product(){ char a; system("cls"); printf("\t\t\t ******Food Express******\n\n"); printf("\t\t\t ******Check Sales******\n\n"); FILE *fp; printf("\t\t\t Date | Income \n\n"); fp = fopen("Products.txt", "r"); /* while(fp){ // fscanf(fp, "%s %d", oorder, &pricing); if(feof(fp)){ break; } // printf("\t\t\t %s %d\n", oorder, pricing); } */ getch(); face(); return 0; } int addnew(){ char tinda[30], ewan[30]; int presyo, psp; int flag=0, codd=0; system("cls"); printf("\t\t\t ******Food Express******\n\n"); printf("\t\t\t ******Add Products******\n\n"); FILE *fp; fp = fopen("Products.txt", "r"); while(fp){ fscanf(fp, "%d %s %d", &codd, ewan, &psp); if(feof(fp)){ break; } } printf("\t\t Name of Product : "); scanf("%s", tinda); printf("\t\t Price of Product : "); scanf("%d", &presyo); codd++; if(strcmp(tinda,ewan)==0){ flag=1; } fclose(fp); fp = fopen("Products.txt", "a"); if(flag==1){ printf("\t\t\t Product is Existed\n\n"); getch(); face(); }else{ fprintf(fp, "%d %s %d\n", codd, tinda, presyo); } fclose(fp); printf("\t\t ******New item has been added******\n\n"); getch(); face(); } struct bura{ char code[30]; char lamon[30]; char magkano[30]; }bur; int delete(){ system("cls"); FILE *fromf; FILE *tof; char abo[30]; int ch; printf("\t\t\t ******Food Express******\n\n"); printf("\t\t\t ******Edit Section******\n\n"); printf("\t\t\tProduct you want to Edit : "); scanf("%s", abo); fromf = fopen("Products.txt", "r"); int flag=0; while (fscanf(fromf, "%s %s %s", bur.code, bur.lamon, bur.magkano)!=EOF){ if(strcmp(abo,bur.lamon)==0){ flag=1; } } fclose(fromf); if(flag==1){ fromf = fopen("Products.txt","r"); tof = fopen ("TempFile.txt", "a"); while(fscanf(fromf, "%s %s %s", bur.code, bur.lamon, bur.magkano)!=EOF){ if(strcmp(abo,bur.lamon)!=0){ fprintf(tof, "%s %s %s\n", bur.code, bur.lamon, bur.magkano); }else{ printf("\n\t\t\t[1] Update Item %s", bur.lamon); printf("\n\t\t\t[2] Update Price %s", bur.magkano); printf("\n\t\t\tEnter your choice:"); scanf("%d", &ch); switch(ch){ case 1 : printf("\t\t\tEnter New Name For Product : "); scanf("%s", bur.lamon); printf("\t\t\tUpdate Successfully"); break; case 2 : printf("\t\t\tEnter Price For Product : "); scanf("%s", &bur.magkano); printf("\t\t\tUpdate Successfully"); break; default : printf("\t\t\tInvalid Selection"); break; } fprintf(tof, "%s %s %s\n", bur.code, bur.lamon, bur.magkano); } if(feof(fromf)) { break ; } } fclose(fromf); fclose(tof); remove("Products.txt"); rename("TempFile.txt", "Products.txt"); getch(); system("cls"); face(); }else{ printf("\t\t\tProduct Not Found\n\n"); getch(); system("cls"); face(); } }
Что я уже пробовал:
while(flagg==0){
printf("\t[1] Если вы хотите сделать заказ снова / [2] чтобы продолжить выставление счета : ");
scanf("%d", &balik);
printf("\n\n");
если(Балик==1){
флагг=1;
приказ();
}else if(balik==2){
флагг=1;
выставление счетов();
}еще{
printf("\t\t\tInvalid Selection");
геч();
}
}
Это моя большая проблема
Что надо сделать чтоб помочь
CHill60
В чем же заключается реальная проблема?
Richard MacCutchan
Где-то в этих 400+ строках кода у вас есть ошибка. Пожалуйста, не просто сбрасывайте весь свой код и не ждите, что люди поймут, что он должен делать и почему он этого не делает. Предоставьте правильное объяснение и покажите только код, который вызывает проблему.
jeron1
После беглого взгляда кажется, что вы используете рекурсию, по крайней мере, метода face (), это намеренно? Без правильной стратегии выхода рекурсия может быть проблематичной.