C 创建一个简单的咖啡馆菜单

C 创建一个简单的咖啡馆菜单,c,C,我被要求做一个简单的编程,但我不知道如何使它简单。。我只是学习c编程,我使用了所有关于它的基本知识。我必须创建一个包含3个函数的编码。这是一个咖啡馆菜单,第一个功能是只显示,第二个功能是计算并返回价格,第三个功能是打印收据。我被第二个功能卡住了:(这是我的代码.) #include <stdio.h> #include <string.h> void displaymenu(void); double calculate(char* code1[], char* cod

我被要求做一个简单的编程,但我不知道如何使它简单。。我只是学习c编程,我使用了所有关于它的基本知识。我必须创建一个包含3个函数的编码。这是一个咖啡馆菜单,第一个功能是只显示,第二个功能是计算并返回价格,第三个功能是打印收据。我被第二个功能卡住了:(这是我的代码.)

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

void displaymenu(void);
double calculate(char* code1[], char* code2[], char* code3[], int quantity1, int quantity2, int quantity3);
double payment(double total);

int main () {
    
    char name[20];
    int tablenum;
    char ord1[3];
    char ord2[3];
    char ord3[3];
    int quant1, quant2, quant3;
    
    printf("~~~~~ Sunny Cafe Order Form ~~~~~ \n");
    printf("Customer Name : ");
    scanf("%s", &name);
    printf(" Table Number : ");
    scanf("%d", &tablenum);
    
    displaymenu();
    
    printf("Order 1 : ");
    scanf("%s", &ord1);
    printf("Order1 quantity: ");
    scanf("%d", &quant1);
    printf("Order 2 : ");
    scanf("%s", &ord2);
    printf("Order2 quantity: ");
    scanf("%d", &quant2);
    printf("Order 3 : ");
    scanf("%s", &ord3);
    printf("Order3 quantity: ");
    scanf("%d", &quant3);
    
    double total_price, total_bill;
    total_price = calculate(ord1, ord2, ord3, quant1, quant2, quant3);
    total_bill = payment(total_price);
    
    printf(" Please Come Again!");
    
    return 0;
}

void displaymenu() {

printf("~~~~~ Sunny Cafe Menu ~~~~~ \n");
printf("Food Menu:\nf1 - Burger (RM13.50)\nf2 - Sandwich(RM10.50)\nf3 - Hotdog(RM10.00)\nf4 - Pasta(RM12.50)\nf5 - Mushroom Soup(RM8.90)\n\n");
printf("Drinks Menu:\nd1 - Coffee(RM5.90)\nd2 - Tea(RM4.90)\nd3 - Juice(RM6.50)\nd4 - Sky Juice(RM0.50)\nd5 - Fizzy(RM2.00)\n\n");

}

double calculate(char* code1[], char* code2[], char* code3[], int quantity1, int quantity2, int quantity3) {
    
    double price1, price2, price3;
    
    if (code1 = 'f1') {
        price1 = 13.50;
    }
    else if (code1 = 'f2') {
        price1 = 10.50;
    }
    else if (code1 = 'f3') {
        price1 = 10.00;
    }
    else if (code1 = 'f4') {
        price1 = 12.50;
    }
    else if (code1 = 'f5') {
        price1 = 8.90;
    }
    else if (code1 = 'd1') {
        price1 = 5.90;
    }
    else if (code1 = 'd2') {
        price1 = 4.90;
    }
    else if (code1 = 'd3') {
        price1 = 6.50;
    }
    else if (code1 = 'd4') {
        price1 = 0.50;
    }
    else {
        price1 = 2.00;
    }
    
    if (code2 = 'f1') {
        price2 = 13.50;
    }
    else if (code2 = 'f2') {
        price2 = 10.50;
    }
    else if (code2 = 'f3') {
        price2 = 10.00;
    }
    else if (code2 = 'f4') {
        price2 = 12.50;
    }
    else if (code2 = 'f5') {
        price2 = 8.90;
    }
    else if (code2 = 'd1') {
        price2 = 5.90;
    }
    else if (code2 = 'd2') {
        price2 = 4.90;
    }
    else if (code2 = 'd3') {
        price2 = 6.50;
    }
    else if (code2 = 'd4') {
        price2 = 0.50;
    }
    else {
        price2 = 2.00;
    }
    
    if (code3 = 'f1') {
        price3 = 13.50;
    }
    else if (code3 = 'f2') {
        price3 = 10.50;
    }
    else if (code3 = 'f3') {
        price3 = 10.00;
    }
    else if (code3 = 'f4') {
        price3 = 12.50;
    }
    else if (code3 = 'f5') {
        price3 = 8.90;
    }
    else if (code3 = 'd1') {
        price3 = 5.90;
    }
    else if (code3 = 'd2') {
        price3 = 4.90;
    }
    else if (code3 = 'd3') {
        price3 = 6.50;
    }
    else if (code3 = 'd4') {
        price3 = 0.50;
    }
    else {
        price3 = 2.00;
    }
    
    double totprice1 = price1 * quantity1;
    double totprice2 = price2 * quantity2;
    double totprice3 = price3 * quantity3;
    
    printf("%s x %d = %f", code1, quantity1, totprice1);
    printf("%s x %d = %f", code2, quantity2, totprice2);
    printf("%s x %d = %f", code3, quantity3, totprice3);
    
    double result = totprice1 + totprice2 + totprice3;
    
    return result;
}

double payment(double total) {
    
    double amountgiven;
    
    printf(" Total bill : RM %.2f \n", total);
    printf("Customer paid : \n");
    scanf(" %lf", &amountgiven);
    double change = amountgiven - total;
    printf("Balance : RM %.2f", change);
    
}
#包括
#包括
作废显示菜单(作废);
双重计算(char*code1[],char*code2[],char*code3[],int-quantity1,int-quantity2,int-quantity3);
双倍付款(双倍总额);
int main(){
字符名[20];
int tablenum;
charord1[3];
char-ord2[3];
char-ord3[3];
int-quant1、quant2、quant3;
printf(“~~~~~~~阳光咖啡订购单”~~~~\n”);
printf(“客户名称:”);
scanf(“%s”、&name);
printf(“表号:”);
scanf(“%d”和tablenum);
显示菜单();
printf(“订单1:”);
scanf(“%s”、&ord1);
printf(“订单1数量:”);
scanf(“%d”、&quant1);
printf(“订单2:”);
scanf(“%s”和&ord2);
printf(“订单2数量:”);
scanf(“%d”、&quant2);
printf(“订单3:”);
scanf(“%s”和&ord3);
printf(“订单3数量:”);
scanf(“%d”、&quant3);
双倍总价,总账单;
总价=计算(ord1、ord2、ord3、quant1、quant2、quant3);
账单总额=付款(总价);
printf(“请再来!”);
返回0;
}
void displaymenu(){
printf(“~~~~~~阳光咖啡馆菜单”~~~~\n”);
printf(“食物菜单:\nf1-汉堡(RM13.50)\nf2-三明治(RM10.50)\nf3-热狗(RM10.00)\nf4-意大利面(RM12.50)\nf5-蘑菇汤(RM8.90)\n\n”);
printf(“饮料菜单:\nd1-咖啡(RM5.90)\nd2-茶(RM4.90)\nd3-果汁(RM6.50)\nd4-天空果汁(RM0.50)\nd5-起泡(RM2.00)\n\n”);
}
双重计算(char*code1[],char*code2[],char*code3[],int-quantity1,int-quantity2,int-quantity3){
双倍价格1,价格2,价格3;
如果(代码1='f1'){
价格1=13.50;
}
否则如果(代码1='f2'){
价格1=10.50;
}
否则如果(代码1='f3'){
价格1=10.00;
}
否则如果(代码1='f4'){
价格1=12.50;
}
否则如果(代码1='f5'){
价格1=8.90;
}
否则如果(代码1='d1'){
价格1=5.90;
}
否则如果(代码1='d2'){
价格1=4.90;
}
否则如果(代码1='d3'){
价格1=6.50;
}
否则如果(代码1='d4'){
价格1=0.50;
}
否则{
价格1=2.00;
}
如果(代码2='f1'){
价格2=13.50;
}
否则如果(代码2='f2'){
价格2=10.50;
}
否则如果(代码2='f3'){
价格2=10.00;
}
否则如果(代码2='f4'){
价格2=12.50;
}
否则如果(代码2='f5'){
价格2=8.90;
}
否则如果(代码2='d1'){
价格2=5.90;
}
否则如果(代码2='d2'){
价格2=4.90;
}
否则如果(代码2='d3'){
价格2=6.50;
}
否则如果(代码2='d4'){
价格2=0.50;
}
否则{
价格2=2.00;
}
如果(代码3='f1'){
价格3=13.50;
}
否则如果(代码3='f2'){
价格3=10.50;
}
否则如果(代码3='f3'){
价格3=10.00;
}
否则如果(代码3='f4'){
价格3=12.50;
}
否则如果(代码3='f5'){
价格3=8.90;
}
否则如果(代码3='d1'){
价格3=5.90;
}
否则如果(代码3='d2'){
价格3=4.90;
}
否则如果(代码3='d3'){
价格3=6.50;
}
否则如果(代码3='d4'){
价格3=0.50;
}
否则{
价格3=2.00;
}
double totprice1=价格1*数量1;
double totprice2=价格2*数量2;
double totprice3=价格3*数量3;
printf(“%s x%d=%f”,代码1,数量1,总价1);
printf(“%s x%d=%f”,代码2,数量2,总价2);
printf(“%s x%d=%f”,代码3,数量3,总价3);
双重结果=totprice1+totprice2+totprice3;
返回结果;
}
双倍付款(双倍总额){
双倍金额;
printf(“账单总额:RM%.2f\n”,总计);
printf(“客户付费:\n”);
scanf(“%lf”,&给定的数量);
双重变化=给定数量-总计;
printf(“余额:RM%.2f”,变更);
}

if(code1='f1')
运算符错误。
=
是赋值。
=
是比较。即使这样也不正确,因为字符串不能像那样进行比较。需要使用
strcpy
。这是否回答了您的问题?如果在解决这些问题后仍然存在问题,请描述具体问题。“我卡住了”既不是一个问题,也不是一个特定问题的描述。我认为整个if-else if-else部分可以,但有点不可读。如果您想让它更容易,您可以将价格存储在数组中,解析字符串中的数字,然后使用此索引获取价格。这会更容易一些。