您的位置:首页 > 汽车 > 时评 > 基于C语言的个人收支管理系统

基于C语言的个人收支管理系统

2024/11/20 22:33:09 来源:https://blog.csdn.net/MAMA6681/article/details/142289184  浏览:    关键词:基于C语言的个人收支管理系统

基于C语言的个人收支管理系统可以是一个简单的命令行应用程序,用来记录用户的收入和支出情况,并能够查询余额和统计一段时间内的财务状况。下面是一个简单的例子,演示如何用C语言来实现这样的系统。

示例代码

这里提供的是一个非常基础的版本,仅用于演示目的。在实际应用中,您可能需要增加更多的功能,如数据持久化(保存到文件)、错误处理等。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX_RECORDS 100typedef struct {int type;      // 0 for income, 1 for expensechar description[50];double amount;
} Record;Record records[MAX_RECORDS];
int recordCount = 0;void addRecord(int type, const char *description, double amount) {if (recordCount >= MAX_RECORDS) {printf("Maximum number of records reached.\n");return;}records[recordCount].type = type;strncpy(records[recordCount].description, description, sizeof(records[recordCount].description)-1);records[recordCount].amount = amount;recordCount++;
}double getBalance() {double balance = 0.0;for (int i = 0; i < recordCount; i++) {if (records[i].type == 0) { // Incomebalance += records[i].amount;} else { // Expensebalance -= records[i].amount;}}return balance;
}void showRecords() {printf("Records:\n");for (int i = 0; i < recordCount; i++) {printf("%s: %s (%.2f)\n", records[i].type == 0 ? "Income" : "Expense",records[i].description, records[i].amount);}
}int main() {int choice;char description[50];double amount;int type;while (1) {printf("\nPersonal Finance Manager\n");printf("1. Add Income\n");printf("2. Add Expense\n");printf("3. Show Balance\n");printf("4. Show Records\n");printf("5. Exit\n");printf("Enter your choice: ");scanf("%d", &choice);switch (choice) {case 1:printf("Enter description: ");scanf("%s", description);printf("Enter amount: ");scanf("%lf", &amount);addRecord(0, description, amount);break;case 2:printf("Enter description: ");scanf("%s", description);printf("Enter amount: ");scanf("%lf", &amount);addRecord(1, description, amount);break;case 3:printf("Current Balance: %.2f\n", getBalance());break;case 4:showRecords();break;case 5:return 0;default:printf("Invalid choice!\n");}}return 0;
}

代码说明

  1. Record 结构体:用于存储每一条收支记录,包括类型(收入或支出)、描述和金额。
  2. addRecord 函数:向数组中添加一条新的记录。
  3. getBalance 函数:计算所有记录的余额。
  4. showRecords 函数:显示所有的收支记录。
  5. main 函数:主函数提供了用户交互界面,允许用户添加收入、支出、显示余额和记录,或者退出程序。

使用方法

编译并运行程序后,根据提示输入相应的选项即可进行操作。例如,要添加一笔收入,选择“1”,然后输入描述和金额;要查询当前余额,选择“3”。

注意事项

  • 此示例没有实现数据的持久化存储,即当程序关闭后,记录将会丢失。为了保存数据,可以考虑将数据写入文件或使用数据库。
  • 输入验证和错误处理在这个示例中没有详细展开,但在实际应用中非常重要。
  • 程序的界面设计较为简单,如果想要更友好的交互体验,可以考虑使用图形界面或其他高级用户交互方式。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com