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

目的在于:

  1. 为编码人员提供依据;

  2. 为修改、维护提供条件;

  3. 项目负责人将按计划书的要求布置和控制开发工作全过程;

  4. 项目质量保证组将按此计划书做阶段性和总结性的质量验证和确认。

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

  1. 项目开发人员,特别是编码人员;

  2. 软件维护人员;

  3. 技术管理人员;

  4. 执行软件质量保证计划的专门人员;

  5. 参与本项目开发进程各阶段验证、确认以及负责为最后项目验收、鉴定提供相应报告的有关人员。

  6. 合作各方有关部门的负责人;项目组负责人和全体参加人员。

  7. 背景

  1. 系统名称:个人账簿管理系统

  2. 任务提出者:湖北师范大学软件工程老师

  3. 开发者:湖北师范大学软件工程学生

  4. 最终用户:湖北师范大学软件工程学生

  5. 定义

  6. 个人账簿管理系统

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

  1. 参考资料

  1. 1.《即现订餐项目需求规格说明书-V0.2.doc》

  2. 程序系统的结构

  3. 程序系统结构

图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++;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值