请用c语言设计一个自动计费系统
时间: 2024-12-17 14:23:12 浏览: 2
在C语言中设计一个简单的自动计费系统,我们可以创建一个结构体来表示商品和价格,然后编写函数来处理用户输入、计算总金额并显示账单。这里是一个基础示例:
```c
#include <stdio.h>
// 商品结构体
typedef struct {
char name[50];
float price;
} Product;
// 计算总价
float calculate_total(Product products[], int num_products) {
float total = 0;
for (int i = 0; i < num_products; i++) {
total += products[i].price;
}
return total;
}
// 添加商品到数组
void add_product(Product *products, int *num_products, char *name, float price) {
products[*num_products] = (Product){.name = name, .price = price};
(*num_products)++;
}
// 显示账单
void display_bill(Product products[], int num_products) {
printf("-------------------------------------------------\n");
printf("自动计费系统\n");
printf("-------------------------------------------------\n");
for (int i = 0; i < num_products; i++) {
printf("%s - %.2f元\n", products[i].name, products[i].price);
}
printf("\n-------------------------------------------------\n");
printf("总价:%.2f元\n", calculate_total(products, num_products));
}
int main() {
Product products[10];
int num_products = 0;
// 用户购买商品
while (1) {
char choice;
printf("请输入 'a' 购买商品,'q' 退出:\n");
scanf(" %c", &choice);
if (choice == 'a') {
char product_name[50];
float product_price;
printf("请输入商品名称:\n");
fgets(product_name, sizeof(product_name), stdin); // 去除行结束符
product_name[strlen(product_name) - 1] = '\0'; // 修剪换行符
printf("请输入商品价格:\n");
scanf("%f", &product_price);
add_product(products, &num_products, product_name, product_price);
} else if (choice == 'q') {
break;
} else {
printf("无效选择,请重新输入。\n");
}
}
display_bill(products, num_products);
return 0;
}
```
在这个示例中,用户可以循环添加商品直到他们选择退出。注意,这只是一个基本的演示,实际应用可能会需要更复杂的数据验证、错误处理以及数据库支持。
阅读全文