以下是一个简单的个人财务管理系统的C语言代码,包括三个基本功能:记录收入、记录支出和显示余额。在此示例中,使用文本文件来存储和读取数据。
#include <stdio.h>
#include <stdlib.h>
void record_income(double amount) {
FILE *fptr;
double balance;
fptr = fopen("balance.txt", "r");
if (fptr == NULL) {
printf("错误:无法打开余额文件。\n");
exit(1);
}
fscanf(fptr, "%lf", &balance);
fclose(fptr);
balance += amount;
fptr = fopen("balance.txt", "w");
if (fptr == NULL) {
printf("错误:无法打开余额文件。\n");
exit(1);
}
fprintf(fptr, "%.2lf", balance);
fclose(fptr);
printf("成功记录收入%.2lf元。\n", amount);
}
void record_expense(double amount) {
FILE *fptr;
double balance;
fptr = fopen("balance.txt", "r");
if (fptr == NULL) {
printf("错误:无法打开余额文件。\n");
exit(1);
}
fscanf(fptr, "%lf", &balance);
fclose(fptr);
if (balance < amount) {
printf("错误:余额不足。\n");
return;
}
balance -= amount;
fptr = fopen("balance.txt", "w");
if (fptr == NULL) {
printf("错误:无法打开余额文件。\n");
exit(1);
}
fprintf(fptr, "%.2lf", balance);
fclose(fptr);
printf("成功记录支出%.2lf元。\n", amount);
}
void display_balance() {
FILE *fptr;
double balance;
fptr = fopen("balance.txt", "r");
if (fptr == NULL) {
printf("错误:无法打开余额文件。\n");
exit(1);
}
fscanf(fptr, "%lf", &balance);
fclose(fptr);
printf("当前余额为:%.2lf元。\n", balance);
}
int main() {
int option;
double amount;
printf("个人财务管理系统\n");
printf("----------------\n");
while (1) {
printf("\n请选择操作:\n");
printf("1. 记录收入\n");
printf("2. 记录支出\n");
printf("3. 显示余额\n");
printf("4. 退出\n");
printf("请输入您的选择:");
scanf("%d", &option);
switch (option) {
case 1:
printf("请输入金额:");
scanf("%lf", &amount);
record_income(amount);
break;
case 2:
printf("请输入金额:");
scanf("%lf", &amount);
record_expense(amount);
break;
case 3:
display_balance();
break;
case 4:
printf("正在退出...\n");
exit(0);
default:
printf("无效的选择,请重新输入。\n");
}
}
return 0;
}