导入
设计项目结构
与模拟客户进行访谈,将笔记转化为功能需求,并使用 AI 生成 Budget Tracker 项目所需的最小 C++ 项目骨架。
PageFlux AI 助手
💡 Select text then click "Ask AI", or press Ctrl+Enter to send
PageFlux AI 助手
💡 Select text then click "Ask AI", or press Ctrl+Enter to send
No configuration found for ID: 459b724da0eb34d1f5fd7478ff519191533040596fe20cd83c09749a13e64a0f
1double income = 0.0; 2 3using namespace std; 4 5// 支出:一个不断增长的 Expense 记录列表 6// 每条记录:类别(字符串),金额(双精度浮点数),可选备注(字符串) 7struct Expense { 8 string category; 9 double amount; 10 string note; 11}; 12 13vector<Expense> expenses;
1// 设置或更新月收入(必须大于 0) 2void addIncome(double amount); 3 4// 添加一条支出记录(类别,金额 > 0,可选备注) 5void addExpense(const string& category, double amount, const string& note);
PageFlux AI 助手
💡 Select text then click "Ask AI", or press Ctrl+Enter to send
生成按以下顺序包含这些函数原型的 C++ 代码:
- 设置/更新月收入(必须为正值)。
- 记录一项支出,包括类别、金额和可选备注。
- 根据索引删除一项支出。
- 返回所有支出金额的总和。
- 返回每个类别的总计。
- 打印简单的预算报告。
- 显示最小化的命令行菜单。
- 重置所有数据。
- 运行主命令行循环。
每个方法必须包含简短的文档注释和空实现。
生成按以下顺序包含这些函数原型的 C++ 代码:
- 设置/更新月收入(必须为正值)。
- 记录一项支出,包括类别、金额和可选备注。
- 根据索引删除一项支出。
- 返回所有支出金额的总和。
- 返回每个类别的总计。
- 打印简单的预算报告。
- 显示最小化的命令行菜单。
- 重置所有数据。
- 运行主命令行循环。
每个方法必须包含简短的文档注释和空实现。
1// 在此处添加你的代码
1#include <iostream> 2#include <vector> 3#include <map> 4#include <string> 5using namespace std; 6 7// 简单的 Expense 模型结构 8struct Expense { 9 string category; 10 double amount; 11 string note; 12}; 13 14// 全局内存状态(用于简单的 CLI 原型) 15static double g_income = 0.0; 16static vector<Expense> g_expenses; 17 18// 1) 设置或更新月收入(必须 > 0) 19void addIncome(double amount) { 20 // TODO: 设置或更新全局收入 21} 22 23// 2) 添加一条支出记录,包含类别、金额(>0)和可选备注 24void addExpense(const string& category, double amount, const string& note) { 25 // TODO: 将新的 Expense 推入 g_expenses 26} 27 28// 3) 根据索引(从 0 开始)删除一项支出 29void deleteExpense(int index) { 30 // TODO: 如果索引有效,则移除该位置的支出 31} 32 33// 4) 返回所有支出金额的总和 34double totalSpent() { 35 // TODO: 计算 g_expenses 中金额的总和 36 return 0.0; 37} 38 39// 5) 从支出列表中返回每个类别的总计 40map<string, double> computeCategoryTotals() { 41 // TODO: 将金额按类别累加到 map 中 42 return {}; 43} 44 45// 6) 打印格式化的预算报告,包含收入、总额和各分类 46void printReport() { 47 // TODO: 打印收入、总支出、剩余金额以及各分类的总计 48} 49 50// 7) 显示简单的命令行菜单 51void showMenu() { 52 // TODO: 向控制台打印最小化的菜单选项 53} 54 55// 8) 清除所有存储的数据并重置为初始状态 56void resetData() { 57 // TODO: 重置 g_income 并清空 g_expenses 58} 59 60// 9) 主循环:设置收入,添加支出,显示报告,重置,退出 61void runCli() { 62 // TODO: 循环读取用户选择并调用上述函数 63} 64 65int main() { 66 runCli(); 67 return 0; 68}
1#include <iostream> 2#include <vector> 3#include <map> 4#include <string> 5using namespace std; 6 7// 简单的 Expense 模型结构 8struct Expense { 9 string category; 10 double amount; 11 string note; 12}; 13 14// 全局内存状态(用于简单的 CLI 原型) 15static double g_income = 0.0; 16static vector<Expense> g_expenses; 17 18// 1) 设置或更新月收入(必须 > 0) 19void addIncome(double amount) { 20 // TODO: 设置或更新全局收入 21} 22 23// 2) 添加一条支出记录,包含类别、金额 (>0) 和可选备注 24void addExpense(const string& category, double amount, const string& note) { 25 // TODO: 将新的 Expense 推入 g_expenses 26} 27 28// 3) 根据索引(从 0 开始)删除一项支出 29void deleteExpense(int index) { 30 // TODO: 如果索引有效,则移除该位置的支出 31} 32 33// 4) 返回所有支出金额的总和 34double totalSpent() { 35 // TODO: 计算 g_expenses 中金额的总和 36 return 0.0; 37} 38 39// 5) 从支出列表中返回每个类别的总计 40map<string, double> computeCategoryTotals() { 41 // TODO: 将金额按类别累加到 map 中 42 return {}; 43} 44 45// 6) 打印格式化的预算报告,包含收入、总额和各分类 46void printReport() { 47 // TODO: 打印收入、总支出、剩余金额以及各分类的总计 48} 49 50// 7) 显示简单的命令行菜单 51void showMenu() { 52 // TODO: 向控制台打印最小化的菜单选项 53} 54 55// 8) 清除所有存储的数据并重置为初始状态 56void resetData() { 57 // TODO: 重置 g_income 并清空 g_expenses 58} 59 60// 9) 主循环:设置收入,添加支出,显示报告,重置,退出 61void runCli() { 62 // TODO: 循环读取用户选择并调用上述函数 63} 64 65int main() { 66 runCli(); 67 return 0; 68}