首页 > 编程语言 >记账本程序开发笔记3:模块设计和框架搭建

记账本程序开发笔记3:模块设计和框架搭建

时间:2024-02-19 15:48:53浏览次数:33  
标签:菜单 函数 程序开发 用户 查询 选择 记账 模块

在记账本程序中,可以设计以下模块和框架:

              结构体 AccountItem:表示记账项,包括 itemType(收入或支出)、amount(金额)和 detail(说明)。

    1. loadDataFromFile 函数:从文件加载记账项数据到 vector<AccountItem> 中。

    2. accounting 函数:记账主函数,根据用户输入的操作调用相应的函数。

    3. insertIntoFile 函数:将记账项写入文件中。

    4. income 函数:处理用户添加收入的操作。

    5. expand 函数:处理用户添加支出的操作。

    6. printItem 函数:打印单个记账项的信息。

    7. query 函数:查询所有记账项的信息。

    8. queryItems 函数:根据记账项类型查询并打印信息。

 

    显示菜单的函数,这些函数通过控制台输出菜单选项,让用户可以选择不同的操作。下面是你定义的几个函数的功能:

    1.   showMainMenu 函数:显示主菜单,让用户选择记账、查询或退出程序。

    2.   showAccountingMenu 函数:显示记账种类菜单,让用户选择是记录收入还是支出,或者退出记账操作。

    3.   showQueryMenu 函数:显示查询条件菜单,让用户选择统计所有账目、统计收入、统计支出或返回主菜单。

 

    主函数代码,你已经开始实现记账本程序的主要逻辑。让我简要解释一下你的代码:

    1.   在主函数中,首先加载记账项数据到 items 向量中,然后进入一个循环,直到用户选择退出程序为止。

    2.   在每次循环中,首先显示主菜单,让用户选择记账、查询或退出操作。

    3.   根据用户输入的选择,通过 switch 语句进行不同的操作:

      1.   如果用户选择 '1',则显示记账种类菜单,并调用 accounting 函数进行记账操作。
      2.   如果用户选择 '2',则显示查询条件菜单,并调用 query 函数进行查询操作。
      3.   如果用户选择 '3',则询问用户是否确认退出,如果确认退出则将 quit 设为 true,退出循环。
    4.   对于其他未知选项,你可以在 default 分支中添加相应的处理逻辑。

标签:菜单,函数,程序开发,用户,查询,选择,记账,模块
From: https://www.cnblogs.com/cor0000/p/18021238

相关文章

  • 记账本程序开发笔记1
    记账本程序可以记录用户的收入和支出,可以查询用户的总收入和总支出,还可以查看用户的收支明细。用户可以通过命令行输入不同的指令来操作记账本程序,比如添加收入、添加支出、查询总收入、查询总支出、查看收支明细等。记账本程序的基本功能包括:添加收入:用户输入收入金额和收入说......
  • 记账本程序开发笔记2:需求分析和流程分析
    需求分析:用户可以通过命令行输入不同的指令来操作记账本程序,包括添加收入、添加支出、查询总收入、查询总支出、查看收支明细等功能。程序需要能够记录用户的收入和支出信息,并能够计算用户的总收入和总支出。用户可以查看收支明细,包括收入和支出的金额和说明......
  • Android家庭记账本开发第四天:SQLite数据库操作
    SQlite数据库是一个轻量级的数据库,被用在嵌入式设备上,2019年6月还在流行的两大移动终端操作系统,Android和ios都支持这款数据库。AndroidSDK中有一个包android.database.sqlite,其中专门对SQLite数据库进行了封装,并提供了一套供android使用的API。SQLiteOpenHelper 类包含一组用......
  • Flink入门之Flink程序开发步骤(java语言)
    Flink入门之Flink程序开发步骤(java语言)文章目录(0)开发程序所需依赖(1)获取执行环境(2)加载/创建数据源(3)数据转换处理(4)处理后数据放置/输出(5)执行计算程序(6)完整示例注:本篇章的flink学习均是基于java开发语言我们如果要使用flink进行计算开发,一个完整的开发步骤是怎样的呢?前......
  • 前端知识回顾概览--小程序开发
    1. 小程序入门小程序的基础使用小程序生命周期小程序架构-双线程模型运行机制自己仿一个简易小程序2. 微信小程序详解微信小程序开发API详解微信小程序开发/发布/上线流程详解微信小程序原理解析3. 工程化开发小程序小程序工程化详解4. 百度/支付宝小程序......
  • python的typing模块
    python的typing模块参考:3个提高Python开发效率的小工具、Python3Typing模块详解typeing模块在python中提供类型支持,主要功能有:类型检查,防止运行时出现参数和返回值类型不符合作为开发文档附件说明,方便使用者调用时传入和返回参数类型(python在调用函数或变量时,无需对参数......
  • BOSHIDA DC电源模块的保护与安全措施包括以下几个方面
    BOSHIDADC电源模块的保护与安全措施包括以下几个方面DC电源模块的保护与安全措施包括以下几个方面: 1.过压保护:在输入端加入过压保护电路,当输入电压超过设定值时,保护电路会自动切断电源,防止电源模块损坏。2.过流保护:在输出端加入过流保护电路,当输出电流超过设定值时,保护电......
  • typescript修改target导致模块找不到
    编译ts代码时,发现一个包只支持es6及更高的版本,无奈修改编译选项target,从es5修改为es6,发现原来导入包的地方报错,提示notfound。tsconfig.json{"files":["src/main.ts"],"compilerOptions":{"noImplicitAny":true,"target":......
  • Python模块之warnings
    模块作用简介:warnings模块由PEP230引入,作为一种警告程序员关于语言或库功能的变化的方法,以预测Python3.0带来的向后不兼容的变化。它还可用于报告从丢失的库中恢复的配置错误或功能退化。不过,最好是通过logging模块提供面向用户的消息,因为发送到控制台的警告可能丢失。......
  • JS模块化系统
    随着JavaScript开发变得越来越广泛,命名空间和依赖关系变得越来越难以处理。人们已经开发出不同的解决方案以模块系统的形式来解决这个问题。CommonJS(CJS)CommonJS是一种同步加载模块的规范,主要用于服务器端的Node.js环境。//模块导出module.exports={//模块内容......