C语言程序设计--个人账簿管理系统

news2024/11/17 23:27:03

目的在于:

  1. 为编码人员提供依据;
  2. 为修改、维护提供条件;
  3. 项目负责人将按计划书的要求布置和控制开发工作全过程;
  4. 项目质量保证组将按此计划书做阶段性和总结性的质量验证和确认。

本说明书的预期读者包括:

  1. 项目开发人员,特别是编码人员;
  2. 软件维护人员;
  3. 技术管理人员;
  4. 执行软件质量保证计划的专门人员;
  5. 参与本项目开发进程各阶段验证、确认以及负责为最后项目验收、鉴定提供相应报告的有关人员。
  6. 合作各方有关部门的负责人;项目组负责人和全体参加人员。
    1. 背景
  1. 系统名称:个人账簿管理系统
  2. 任务提出者:湖北师范大学软件工程老师
  3. 开发者:湖北师范大学软件工程学生
  4. 最终用户:湖北师范大学软件工程学生
    1. 定义
  1. 个人账簿管理系统

本文档中个人账簿管理系统是基于C语言、软件工程导论、数据结构与算法设计的应用。

    1. 参考资料
  1. 1.《即现订餐项目需求规格说明书-V0.2.doc》
  1. 程序系统的结构
    1. 程序系统结构

 

图2-1 程序系统架构图

2.2程序结构模块描述

2.2.1 录入数据

【流程描述】

1.选择操作:提示内容:“请输入要进行的操作:”,操作数为“1”。

2.输入数据:按照提示内容,分别输入内容,中间以空格符隔开。

提示内容:

请依次输入数据[说明:中间以空格符隔开]:

(本月月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 收入费用)

3.回车:显示“数据录入成功”。

【流程图】

2.2.2查看数据

【流程描述】

1.选择操作:提示内容:“请输入要进行的操作:”,操作数为“2”。

2.回车:系统打开“Myinfor.txt”文件,显示所有录入的数据。

【流程图】

2.2.3修改数据

【流程描述】

1.选择操作:提示内容:“请输入要进行的操作:”,操作数为“3”。

2.进行2.2.4 查询数据操作,从选择月份开始。

3.如果输入的数据合法,进行2.2.1 录入数据的“2.输入数据”操作。回车,输出“数据修改成功”。

【流程图】

2.2.4查询数据

【流程描述】

  1. 选择操作:提示内容:“请输入要进行的操作:”,操作数为“4”。:

2.选择月份:提示内容:“请正确输入要查询的月份:”

3.判断:

如果输入的月份在录入的数据中,则打印该月的账单。

否则,输出“没有符合条件的记录!” 返回菜单

【流程图】

2.2.5排序数据

【功能描述】

1.选择操作:提示内容:“请输入要进行的操作:”,操作数为“5”。:

2.进行2.2.4 查询数据操作,从2.选择月份开始。

3.如果输入的数据合法,调用冒泡排序函数进行从小到大排序,输出排序后的账单。

#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>

#define LEN sizeof(struct Node)

//账单结构体
struct Node {
    int ID;                //月份
    //定义结构体定义各种费用
    float IncomeTotal;    //收入费用
    float FoodShoping;    //食品消费
    float House;        //房租费用
    float Education;    //子女教育费用
    float WaterAndEtc;    //水电费用
    float Hospital;        //医疗费用
    float Store;        //储蓄
    float Expend;        //支出总和
    struct Node *next;    //指向下一个节点的指针
};
typedef struct {// 自定义数据类型
    int no;
    int data;
} pType;
//建立动态链表--录入数据 
struct Node* CreateLink();
//插入一个月的数据
void Insert(struct Node *head);
//删除相同元素的值 
void DeleteSame(struct Node *L);
//菜单 
void menu(); 
//搜索某一月份的具体收支状况
struct Node* Search(struct Node *head);
//功能同上
struct Node* SearchNode(struct Node *p1,int n);
//打印一个月的收支状况
void PrintOneMonth(struct Node *p);
//输出详细的列表
void PrintAll(struct Node *head); 
//对链表进行排序
struct Node *Sort(struct Node *head);
//对单个链表排序 
void sort_Node(Node *a);
//修改某一月的记录
struct Node *Update(struct Node *head);
//删除数据 
bool Delete(struct Node **pHead);
//求年支出
int Sum(struct Node *q1);
//主函数
int main() {
    struct Node *a;
    int value,count;
    count = 1;
    menu();
    scanf("%d",&value);
    if(value!=1)
        printf("亲,您还未录入数据,无法进行后续操作 系统将3秒后退出!\n");
    else {
        while(value>=0) {
            switch(value) {
                case 1:
                    if(count ==1 ) {
                        a=CreateLink();
                        count++;

资料包括:

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/113216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

车用DC-DC模块 1224V转5V2A过认证大塑料外壳

名称&#xff1a;车用12V转5V2A电源转换器 型号&#xff1a;LM40J5V2A3S 性质&#xff1a;非隔离型的BUCK电源转换器&#xff0c; 特点&#xff1a;采用集成IC设计&#xff0c;具有转换效率高&#xff0c;体积小&#xff0c;稳定可靠的特点&#xff0c;采用灌胶工艺&#xf…

Arcgis使用教程(十三)ARCGIS地图制图之地图输出参数设置详解

目录 1.加载数据 2.页面大小设置 2.1 根据页面大小设置地图 2.2 根据固定比例尺设置页面大小 1.加载数据 在Arcmap中加载中国矢量图层数据&#xff08;中国省级行政区图&#xff0c;国界线两个图层&#xff09;&#xff0c;切换到Layout View窗口&#xff0c;设置地图符号要…

jvm-sandbox-repeater环境搭建

引流回放这个技术现在真的越来越成为了很多公司测试同学必备的一个工具了。当然引流回放的技术有很多&#xff0c;比如下来会提到的jvm-sandbox-repeater。 当然你也可以通过日志分析解析的方式去获取到请求返回的信息等。因为刚听过testerhome开发者大会&#xff0c;好几个主题…

不愧是阿里内部的「排序和数据结构学习笔记」面面俱到、太全了

算法——成为程序员强者的必经之路 算法到底有多重要不必多说&#xff0c;说「算法正在统治世界」也不为过。 在编程行业内&#xff0c;有句话是这么说的「薪资越高、算法越重要」&#xff0c;互联网头部企业花费了大量的时间和金钱&#xff0c;用来研究新算法&#xff0c;不…

Python pandas有几千个库函数,你用过几个?(6)

上一篇链接&#xff1a; Python pandas有好几百个库函数&#xff0c;你都用过吗&#xff08;5&#xff09;_Hann Yang的博客-CSDN博客 DataFrame 类方法&#xff08;211个&#xff0c;其中包含18个子类、2个子模块&#xff09; >>> import pandas as pd >>&g…

详解c++---string的介绍(下)

这里写目录标题前言string的Modifiersoperatorappendpush_backassigninserterasereplaceswappop_backString的operationsc_strcopyfindrfindfind_first_offind_last_offind_first_not_of和find_last_not_of前言 本片文章我们将继续介绍string的使用&#xff0c;点击&#xff1…

从IP V4 向IP V6 过渡(计算机网络-网络层)

目录 从IP V4 向IP V6 过渡 用双协议栈进行从 IPv4 到 IPv6 的过渡 使用隧道技术从 IPv4 到 IPv6 过渡 从IP V4 向IP V6 过渡 向 IPv6 过渡只能采用逐步演进的办法&#xff0c;同时&#xff0c;还必须使新安装的 IPv6 系统能够向后兼容 IPv6 系统必须能够接收和转发 IPv4 分…

node.js+uni计算机毕设项目基于微信小程序停车系统(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等…

node.js+uni计算机毕设项目基于微信小程序的订房系统(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等…

【12.23-12.24】Member Inference Attack

文章目录前言一、Repeated Knowledge Distillation with Confidence Masking to Mitigate Membership Inference Attacks1.1 Member Inference Attack2.2 Confidence Score Masking2.3 Knowledge Distillation二、Membership Inference Attacks Against Machine Learning Model…

垃圾收集器

1.术语 (1).吞吐量 CPU用于运行用户代码的时间与CPU总消耗的比值。 (2).全局停顿(Stop The World) 是在垃圾回收过程中&#xff0c;需要将JVM内存冻结的一种状态。在全局停顿状态下&#xff0c;除GC线程外&#xff0c;Java其它线程都是停止执行的&#xff0c;本地方法可以执行…

二叉树15:左叶子之和

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;404. 左叶子之和 题目&#xff1a; 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例&#xff1a…

支持设备的待机唤醒功能

系统待机唤醒功能 1 说明背景 1.1 需求 支持 GPU 进入低功耗模式&#xff0c;让用户选择降低设备的功耗 1.2 概念 上位词&#xff1a;APM, ACPI 同类词&#xff1a;睡眠模式, S0~S5 下位词&#xff1a;系统挂起, 系统唤醒, 运行时设备电源管理 1&#xff09;ACPI 在计算机…

Rabbit MQ的基本使用

目录 1. MQ是什么&#xff0c;有哪些作用&#xff1f; 2. 主要的MQ框架有哪些&#xff1f; 3. RabbitMQ安装 4. RabbitMQ中的主要概念 5. 消息队列的核心概念 6. 一个简单的生产者和消费者示例。 6.1 消息发送者模块 1. MQ是什么&#xff0c;有哪些作用&#xff1f; 消…

Jenkins配合git构建持续构建流程

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 理解CI CI(Continuous Integration)翻译成持续集成&#xff0c;是指在源代码变更后自动检测、检出、构建、自动化测试到发布的过程。常见的开源CI工具有J…

Go类型与进制

iota:总是从0开始&#xff0c;递增为1的整数 一、进制 二进制0b1001000 0100 1000 八进制 0o110 01 001 000》 1 * 8^21 * 8^10 * 8^072 十六进制0x48 0100 1000 十进制转二进制 除以基数2&#xff0c;直到商为0为止&#xff0c;反向提取余数。 转为十六进制 除以基…

机器视觉(六):频域图像增强

目录&#xff1a; 机器视觉&#xff08;一&#xff09;&#xff1a;概述 机器视觉&#xff08;二&#xff09;&#xff1a;机器视觉硬件技术 机器视觉&#xff08;三&#xff09;&#xff1a;摄像机标定技术 机器视觉&#xff08;四&#xff09;&#xff1a;空域图像增强 …

【云原生】Grafana Alerting 告警模块介绍与实战操作

文章目录一、概述二、Grafana Alerting 模块介绍三、配置图表四、告警告警规则五、配置告警通道&#xff08;Contact points&#xff09;1&#xff09;Email1、配置smtp&#xff08;grafana.ini&#xff09;2、配置消息模板3、配置告警通道2&#xff09;WebHook1、编写webhook …

【问题记录与解决】TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

目录 一、报错内容二、尝试再运行(最终解决)一、报错内容 先来看报错截图: 再往上看看: 程序其实是正确执行了一部分的,可以看出首次运行时,是需要下载一些东西的。 二、尝试再运行(最终解决) 所测试的代码如下: # 昵 称:XieXu # 时 间: 2022/12/24/0024 18:44 fr…

刷机-把机顶盒当服务器使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、为啥要刷机顶盒什么&#xff1f;二、使用步骤1.拆机2.准备下载工具3.准备烧录软件和固件4.烧录5.如何使用总结前言 今天给大家分享一篇关于如何把机顶盒刷机…