Chatgpt kullanabilirsiniz.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 100
#define MAX_ITEM_COUNT 100
typedef struct {
char itemName[50];
int caloriesPerPortion;
} MenuItem;
typedef struct {
char itemName[50];
int portionCount;
} OrderItem;
// Dosyayı okuyarak menü öğelerini yükler
int loadMenu(const char *fileName, MenuItem menu[], int *menuCount) {
FILE *file = fopen(fileName, "r");
if (!file) {
perror("Dosya açılamadı");
return -1;
}
char line[MAX_LINE_LENGTH];
*menuCount = 0;
while (fgets(line, sizeof(line), file)) {
if (sscanf(line, "%s %d", menu[*menuCount].itemName, &menu[*menuCount].caloriesPerPortion) == 2) {
(*menuCount)++;
}
}
fclose(file);
return 0;
}
// Dosyayı okuyarak siparişleri yükler
int loadOrders(const char *fileName, OrderItem orders[], int *orderCount) {
FILE *file = fopen(fileName, "r");
if (!file) {
perror("Dosya açılamadı");
return -1;
}
char line[MAX_LINE_LENGTH];
*orderCount = 0;
while (fgets(line, sizeof(line), file)) {
if (sscanf(line, "%s %d", orders[*orderCount].itemName, &orders[*orderCount].portionCount) == 2) {
(*orderCount)++;
}
}
fclose(file);
return 0;
}
// Bir öğenin kalorisini menüden bulur
int findCalories(const char *itemName, MenuItem menu[], int menuCount) {
for (int i = 0; i < menuCount; i++) {
if (strcmp(itemName, menu.itemName) == 0) {
return menu.caloriesPerPortion;
}
}
return -1; // Bulunamadıysa
}
int main() {
MenuItem menu[MAX_ITEM_COUNT];
OrderItem orders[MAX_ITEM_COUNT];
int menuCount, orderCount;
// Menü ve siparişleri dosyadan yükle
if (loadMenu("kalori.txt", menu, &menuCount) != 0) {
return 1;
}
if (loadOrders("siparis.txt", orders, &orderCount) != 0) {
return 1;
}
int totalCalories = 0;
// Siparişlerdeki her öğenin kalorisini hesapla
for (int i = 0; i < orderCount; i++) {
int caloriesPerPortion = findCalories(orders.itemName, menu, menuCount);
if (caloriesPerPortion != -1) {
totalCalories += caloriesPerPortion * orders.portionCount;
} else {
printf("Uyarı: '%s' isimli öğe menüde bulunamadı.\n", orders.itemName);
}
}
printf("Toplam Kalori: %d\n", totalCalories);
return 0;
}