数据结构课程设计【家庭财务管理系统】

本文介绍了使用C语言进行数据结构课程设计,实现了一个家庭财务管理系统。通过详细讲解main.cpp和family.cpp文件的内容,展示了如何运用数据结构来管理日常收支记录,实现便捷的家庭财务管理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


main.cpp:

#include "family.h"

int main()
{
    US *h_user=NULL;
    PE *h_people=NULL;
    FILE *fp_people,*fp_user;             /*创建文件型指针*/
    Login();
    if((fp_user=fopen("User.txt","rb"))==NULL||(fp_people=fopen("People.txt","rb"))==NULL)
    {
        Init1(h_user);
        Init2(h_people);
        Login1(h_user,h_people);
    }
    else if((fp_user=fopen("User.txt","rb"))!=NULL||(fp_people=fopen("People.txt","rb"))!=NULL)
    {
        Load(h_user,h_people);
        Login1(h_user,h_people);
    }
    return 0;
}



family.h:

#ifndef FAMILY_H_INCLUDED
#define FAMILY_H_INCLUDED

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

typedef struct user
{
    char user_name[10];        //姓名
    char user_password[10];    //密码
    int user_flag;             //标志:0为普通成员,1为家长
    struct user *next;
}US;  //成员登陆信息

typedef struct people
{
    char people_name[10];   //姓名
    int people_income; //收入
    int people_output; //支出
    struct people *next;
}PE; //成员收支信息



void Login();//初始界面
void Init1(US *&h_user);//登录成员信息初始化
void Init2(PE *&h_people);//成员收支信息初始化
void Login1(US *h_user,PE *h_people);//);//成员登录

void Menu1(US *&h_user,PE *&h_people);//管理员选择界面
void Menu2(US *h_user,PE *h_people);//普通成员选择界面

void Add_user(US *&h_user,PE *h_people);//增加登录成员
void Add_people(US *h_user,PE *&h_people);//录入成员收支信息
void Delete_people(US *h_user,PE *&h_people);//删除成员收支信息
void Delete_user(US *&h_user,PE *h_people);//删除成员登录信息

void Print_people(PE *p);//输出成员收支信息
void Find_people1(US *h_user,PE *h_people);//查找成员收支信息
void Find_people2(US *h_user,PE *h_people);//查找成员收支信息
void Print_allpeople1(US *h_user,PE *h_people);//输出全部成员收支信息
void Print_allpeople2(US *h_user,PE *h_people);//输出全部成员收支信息
void Change_people(US *h_user,PE *h_people);//修改成员收支信息
void Change_code1(US *h_user,PE *h_people);//修改成员登录密码
void Change_code2(US *h_user,PE *h_people);//修改成员登录密码
void Save(US *h_user,PE *h_people);                 //保存
void Save_User(US *h_user);            //保存成员登陆信息
void Save_People(PE *h_people);          //保存成员收支信息
void Load(US *h_user,PE *h_people);                 //加载
void Load_User(US *h_user);            //加载成员登陆信息
void Load_People(PE *h_people);          //加载成员收支信息
int out();//退出系统
void List(US *h_user,PE *h_people);//排序


#endif // FAMILY_H_INCLUDED


family.cpp:

#include "family.h"
/********************************************************************************************************************************************
* 功能描述: 进入欢迎界面
* 输入参数: 任意值
* 输出参数:
* 返回值  :
* 其它说明:当存在家庭成员信息时进入登陆界面,否则进入初始化界面
*********************************************************************************************************************************************/

void Login() /*欢迎界面*/
{
    system("cls");
    system("color 4f");
    printf("\n");
    printf("        **     **   *********    **          **              ***      \n");
    printf("        **     **   *********    **          **            **   **    \n");
    printf("        **     **   **           **          **           **     **   \n");
    printf("        **     **   **           **          **          **       **  \n");
    printf("        *********   *********    **          **          **       **  \n");
    printf("        *********   *********    **          **          **       **  \n");
    printf("        **     **   **           **          **          **       **  \n");
    printf("        **     **   **           **          **           **     **   \n");
    printf("        **     **   *********    *********   *********     **   **    \n");
    printf("        **     **   *********    *********   *********       ***      \n");
    printf("\n");
    printf("            欢 迎 进 入 家 庭 财 务 管 理 系 统!\n");
    printf("\n\n\n\t\t 按任意键进入系统...");
    getch();
    system("cls");
}
/**************************************************************************************************************
* 功能描述: 家庭成员信息初始化
* 输入参数: US *&h_user形参指针
* 输出参数: 无
* 返回值  :
* 其它说明:家庭成员信息包括姓名、密码和权限。
****************************************************************************************************************/
void Init1(US *&h_user)  //登录成员信息初始化
{
    system("cls");
    US *p0;
    printf("\n 【成员信息初始化】\n\n");
    p0=(US*)malloc(sizeof(US));      /*申请新结点存储空间*/
    h_user=(US*)malloc(sizeof(US));
    printf("\n请输入成员姓名:");
    scanf("%s",p0->user_name);
    printf("\n\n请输入新成员密码:");
    scanf("%s",p0->user_password);
    printf("\n\n新成员是否作为家长(是请输入1,否输入0):");
    scanf("%d",&p0->user_flag);
    p0->next=NULL;
    h_user->next=p0;
    printf("\n成员信息初始化完毕!按任意键继续下一步操作..\n");
    getch();
    system("cls");
}
/**************************************************************************************************************
* 功能描述: 家庭成员收支信息初始化
* 输入参数: PE *&h_people形参指针
* 输出参数: 无
* 返回值  :
* 其它说明:家庭成员收支信息包括姓名、收入和支出。
****************************************************************************************************************/
void Init2(PE *&h_people)  //成员收支信息初始化
{
    system("cls");
    PE *p0;
    printf("\n 【成员收支信息初始化】\n\n");
    p0=(PE*)malloc(sizeof(PE));      /*申请新结点存储空间*/
    h_people=(PE*)malloc(sizeof(PE));
    printf("\n请输入成员姓名:");
    scanf("%s",p0->people_name);
    printf("\n\n请输入成员收入:");
    scanf("%d",&p0->people_income);
    printf("\n\n请输入成员支出:");
    scanf("%d",&p0->people_output);
    p0->next=NULL;
    h_people->next=p0;
    printf("\n成员信息初始化完毕!按任意键继续下一步操作..\n");
    getch();
    system("cls");
}
/**************************************************************************************************************
* 功能描述: 家庭成员登陆
* 输入参数: US *&h_user,PE *h_people形参指针,US *p用来遍历的指针
* 输出参数: 无
* 返回值  :
* 其它说明:当家庭成员的姓名和密码正确时才进入选择菜单界面。不同权限进入不同界面。
****************************************************************************************************************/
void Login1(US *h_u
家庭理财管理系统课程设计 目 录 1 项目概述 1 1.1 系统概述 1 1.2 项目目标 1 1.3 项目范围 1 1.4 业务流程图 2 1.5 现系统存在的问题及薄弱环节分析 2 2问题定义 3 3 可行性研究 3 4 需求分析 4 4.1 总体目标 4 4.2 具体目标 5 4.3 系统功能建模 5 4.3.1 系统数据流程图 5 4.3.2 数据字典 7 4.4 系统数据模型 9 5概要设计 11 5.1 总体系结构设计 11 5.2 接口设计 12 5.2.1外部接口 12 5.2.2 内部接口 12 5.3 代码设计 12 5.3.1 代码设计 12 5.4 数据库设计 12 5.4.1关系模式设计 12 5.4.2 数据字典 13 5.5 家庭理财系统输入、输出设计 15 5.5.1 输入设计 15 5.5.2 输出设计 15 输出内容输出到各个对应数据窗口。 15 5.6运行设计 15 5.6.1运行环境 15 5.6.3 运行控制 16 5.6.4运行时间 16 5.7出错处理设计 16 5.7.1出错输出信息 16 5.7.2出错处理对策 16 5.8安全保密设计 16 5.8.1登录用户的安全性 16 5.9维护设计 16 6 详细设计 17 6.1 登陆模块 17 6.1.1 模块定义 17 6.1.2 算法 17 6.1.3 算法描述 17 6.2 存储查询模块 18 6.2.1 模块定义 18 6.2.2 算法 18 6.2.3 算法描述 18 6.3 界面设计 18 6.3.1 登录窗口界面 18 6.3.2 系统登窗口主界面 18 6.3.3"正常收入"窗口界面 19 6.3.4"正常支出"窗口界面 19 7 编码 20 7.1概述开发工具及编程脚本 20 7.2编码设计 20 7.2.1主函数模块 20 7.2.2数据连接读取模块 23 7.2.3登陆模块 24 8课程设计小结 26 9参考文献 26 10附录 27 附录1程序清单 27 附录1.2 显示模块程序清单 28 附录1.3 帮助模块程序清单 30 附录1.4 学生模块程序清单 31 1 项目概述 1.1 系统概述 家庭财务的中心内容账务管理。人们几乎每一天都会经过许多次货币活动。其中包括 了买入卖出实物,娱乐消费,起居饮食消费,还有发放工资,收缴保费等。如果能把各 类不同的活动进行分类,建立不同的账户,分别对活动进行管理,那么无论现在还是将 来,你的账务就会清楚明白了。 每天,我们对自己账务的操作有如下几类:添加新的数据项,比如今天我卖出了多少 股票,生活中,我们就要对自己还有多少钱,今天所得的利润进行统计。现在我们把这 些工作放到程序里去实现,就是这样的操作。某账户今天是添加还是减少,比如对RMB的 操作就是减少,如果与这个操作相关的账户是现金,然后根据货币兑换率提供的值计算 现金账户今天该录入的数值。再如变卖所有古董的收藏,再存入银行,在软件的实现就 为把古董的变卖值转入存款账户。日常生活中,当我们要对一周来,外汇交易的情况进 行了解,就非常困难,而观察外汇一个月里的利率走势就更加是问题。做到程序里,把 它存放到一个数据表里就可以了。归结后,账户的操作一般如下:新添,删除,增加, 减少,查找,转账,统计。 1.2 项目目标 现代社会家庭的理财观念进一步提高,理财手段变得更加丰富。随着生活水平和文化 水平的提高,家庭购买电脑的能力和应用电脑的能力开始提高。电脑及其应用的普及化 ,人们应用电脑进行家庭财务管理的观念增强,因此,开发一个通用性家庭理财软件已 经成为社会需求。本系统是一个家庭通用型理财软件,系统目标是把适合家庭化管理的 各种理财手段及家庭日常收支管理实现计算机化管理,使对家庭及家庭成员的收支活动 更好地进行记录并加以统计分析成为可能,也使家庭理财变得方便,快捷,全面。 1.3 项目范围 现在,人们的生活水平和文化素质普遍提高,并且开始注重生活质量。随着市场经济的 快速发展,观念的不断更新,个人理财意识普遍增强,特别是家庭理财意识得到很大发 展,在意识上,一方面,人们对家庭和个人的各方面消费有想进行统计和分析的愿望, 以便更好地做好家庭收支计划,和家庭财务管理。另一方面,各种理财手段不断丰富, 如何把各种理财手段统一起来,并且能更加方便的操作成为要求。在物质基础上,计算 机的应用开始普及,人们购置计算机和使用计算机的能力增强,人均计算机拥有量将快 速提高。这些条件说明,人们有购买一个家庭化财务软件的要求,在一个可接受的价格 范围内,将购买这种软件。使用这种软件学要家庭有一定的经济基础,所以这种软件适 用于家庭收入在中下层或中下层以上的家庭。 1.4 业务流程图 现行系统的业务流程图是分析和描述现行系统业务的重要工具之一
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值